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 c4adc066c..168fcb2d0 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 void run() { }; private TextWatcher textWatcher; private boolean keyboardShown = false; + private int lastSelection = -1; @Override public void onCreate(@Nullable Bundle savedInstanceState) { @@ -151,6 +152,19 @@ public void afterTextChanged(final Editable s) { } } }; + + 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 @@ protected void onNoteLoaded(Note note) { 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() {