diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java index c4adc066..168fcb2d 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java @@ -68,6 +68,7 @@ public class NoteEditFragment extends SearchableBaseNoteFragment { }; private TextWatcher textWatcher; private boolean keyboardShown = false; + private int lastSelection = -1; @Override 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 != null && binding.editContent.hasFocus()) { + outState.putInt("lastSelection", binding.editContent.getSelectionStart()); + } } @Override @@ -178,6 +192,10 @@ public class NoteEditFragment extends SearchableBaseNoteFragment { if (sp.getBoolean(getString(R.string.pref_key_font), false)) { binding.editContent.setTypeface(Typeface.MONOSPACE); } + + if (lastSelection > 0 && binding.editContent.length() >= lastSelection) { + binding.editContent.setSelection(lastSelection); + } } private void openSoftKeyboard() {