diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-04-03 17:38:00 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-04-03 17:38:00 +0300 |
commit | a4f0e0bec68ce9ab77649ce21e1e0ffb86746e05 (patch) | |
tree | a2371ec2af1ee8b09ee62f5fc70533781fce1727 /app/src/main/java/it/niedermann/owncloud/notes | |
parent | c1a12299b4f7a793dca8b3c7862d767a2a4aa13f (diff) |
Ensure note has been loaded before restoring scroll position
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud/notes')
3 files changed, 33 insertions, 35 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java index d03c1220..2dfaf1d1 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java @@ -16,6 +16,7 @@ import android.view.MenuItem; import android.view.View; import android.widget.ScrollView; +import androidx.annotation.CallSuper; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -157,23 +158,6 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego protected abstract void scrollToY(int scrollY); @Override - public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - this.originalScrollY = note.getScrollY(); - scrollToY(originalScrollY); - final ScrollView scrollView = getScrollView(); - if (scrollView != null) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - scrollView.setOnScrollChangeListener((View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) -> { - if (scrollY > 0) { - note.setScrollY(scrollY); - } - }); - } - } - } - - @Override public void onResume() { super.onResume(); listener.onNoteUpdated(note); @@ -293,7 +277,21 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego return super.onOptionsItemSelected(item); } - protected abstract void onNoteLoaded(Note note); + @CallSuper + protected void onNoteLoaded(Note note) { + this.originalScrollY = note.getScrollY(); + scrollToY(originalScrollY); + final ScrollView scrollView = getScrollView(); + if (scrollView != null) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + scrollView.setOnScrollChangeListener((View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) -> { + if (scrollY > 0) { + note.setScrollY(scrollY); + } + }); + } + } + } public void onCloseNote() { if (!titleModified && originalNote == null && getContent().isEmpty()) { 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 2ca2d436..99b50663 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 @@ -142,28 +142,27 @@ public class NoteEditFragment extends SearchableBaseNoteFragment { @Override protected void onNoteLoaded(Note note) { - if (note != null) { - if (note.getContent().isEmpty()) { - binding.editContent.requestFocus(); + super.onNoteLoaded(note); + if (note.getContent().isEmpty()) { + binding.editContent.requestFocus(); - requireActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); + requireActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); - final InputMethodManager imm = (InputMethodManager) requireContext().getSystemService(Context.INPUT_METHOD_SERVICE); - if (imm != null) { - imm.showSoftInput(getView(), InputMethodManager.SHOW_IMPLICIT); - } else { - Log.e(TAG, InputMethodManager.class.getSimpleName() + " is null."); - } + final InputMethodManager imm = (InputMethodManager) requireContext().getSystemService(Context.INPUT_METHOD_SERVICE); + if (imm != null) { + imm.showSoftInput(getView(), InputMethodManager.SHOW_IMPLICIT); + } else { + Log.e(TAG, InputMethodManager.class.getSimpleName() + " is null."); } + } - binding.editContent.setMarkdownString(note.getContent()); - binding.editContent.setEnabled(true); + binding.editContent.setMarkdownString(note.getContent()); + binding.editContent.setEnabled(true); - final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(requireContext().getApplicationContext()); - binding.editContent.setTextSize(TypedValue.COMPLEX_UNIT_PX, getFontSizeFromPreferences(requireContext(), sp)); - if (sp.getBoolean(getString(R.string.pref_key_font), false)) { - binding.editContent.setTypeface(Typeface.MONOSPACE); - } + final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(requireContext().getApplicationContext()); + binding.editContent.setTextSize(TypedValue.COMPLEX_UNIT_PX, getFontSizeFromPreferences(requireContext(), sp)); + if (sp.getBoolean(getString(R.string.pref_key_font), false)) { + binding.editContent.setTypeface(Typeface.MONOSPACE); } } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java index 6d3549e1..fca142e9 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java @@ -111,6 +111,7 @@ public class NotePreviewFragment extends SearchableBaseNoteFragment implements O @Override protected void onNoteLoaded(Note note) { + super.onNoteLoaded(note); noteLoaded = true; registerInternalNoteLinkHandler(); changedText = note.getContent(); |