private void init() {
        setOrientation(VERTICAL);
        final Context ctw = ViewUtils.wrap(getContext());
        inflate(ctw, R.layout.calculatedcoordinate_input_guide, this);
        this.grid = findViewById(R.id.cc_guide_grid);
        this.value = findViewById(R.id.cc_guide_value);
        this.valueLayout = findViewById(R.id.cc_guide_value_layout);
        this.valueHiddenHint = findViewById(R.id.cc_guide_value_hiddenhint);

        this.value.addTextChangedListener(ViewUtils.createSimpleWatcher(t -> {
            if (markedButton != null) {
                markedButton.setText(t.toString());
            }
        }));

        this.value.setOnEditorActionListener((vv, a, e) -> {
            if (markedButton == null) {
                return false;
            }
            final View nextButton = ViewUtils.nextView(markedButton, v -> v instanceof GridLayout, v -> v instanceof CharButton);
            if (nextButton == null) {
                return false;
            }
            markButton((CharButton) nextButton);
            return true;
        });

        setData(PLAIN, null, null, null);
        markButton(null);
    }
returns true if latPatternn/lonPattern could be applied, false otherwise
main/src/main/java/cgeo/geocaching/ui/CalculatedCoordinateInputGuideView.java