Restore selection

This commit is contained in:
quthla 2024-07-23 00:56:55 +02:00 committed by Tobias Kaminsky
parent ab6c78ec80
commit b7d56765de

View file

@ -68,6 +68,7 @@ public class NoteEditFragment extends SearchableBaseNoteFragment {
}; };
private TextWatcher textWatcher; private TextWatcher textWatcher;
private boolean keyboardShown = false; private boolean keyboardShown = false;
private int lastSelection = -1;
@Override @Override
public void onCreate(@Nullable Bundle savedInstanceState) { public void onCreate(@Nullable Bundle savedInstanceState) {
@ -151,6 +152,19 @@ public class NoteEditFragment extends SearchableBaseNoteFragment {
} }
} }
}; };
if (savedInstanceState != null) {
lastSelection = savedInstanceState.getInt("lastSelection", -1);
}
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
if (binding.editContent != null && binding.editContent.hasFocus()) {
outState.putInt("lastSelection", binding.editContent.getSelectionStart());
}
} }
@Override @Override
@ -178,6 +192,10 @@ public class NoteEditFragment extends SearchableBaseNoteFragment {
if (sp.getBoolean(getString(R.string.pref_key_font), false)) { if (sp.getBoolean(getString(R.string.pref_key_font), false)) {
binding.editContent.setTypeface(Typeface.MONOSPACE); binding.editContent.setTypeface(Typeface.MONOSPACE);
} }
if (lastSelection > 0 && binding.editContent.length() >= lastSelection) {
binding.editContent.setSelection(lastSelection);
}
} }
private void openSoftKeyboard() { private void openSoftKeyboard() {