Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-03-22 18:49:57 +0300
committerStefan Niedermann <info@niedermann.it>2021-03-22 18:49:57 +0300
commite73639c801e22f69220ef339f46e1e190c0297f0 (patch)
treecb207562efb883bfbed5fa36a64358920b9ae1e1 /app/src/main/java
parent71542a36185cdba4cdcb58ecc60c2db07f72159a (diff)
Fix #1046 Remember scroll position in preview mode
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java26
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/NoteEditFragment.java7
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java16
3 files changed, 33 insertions, 16 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 5a00e4fd..ca104112 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
@@ -135,26 +135,22 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego
@Nullable
protected abstract ScrollView getScrollView();
+ 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) {
- scrollView.getViewTreeObserver().addOnScrollChangedListener(() -> {
- if (scrollView.getScrollY() > 0) {
- note.setScrollY(scrollView.getScrollY());
- }
- });
- }
- }
-
- @Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- final ScrollView scrollView = getScrollView();
- if (scrollView != null) {
- this.originalScrollY = note.getScrollY();
- scrollView.post(() -> scrollView.scrollTo(0, originalScrollY));
+ 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);
+ }
+ });
+ }
}
}
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 5aca156d..b6d389f5 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
@@ -79,6 +79,13 @@ public class NoteEditFragment extends SearchableBaseNoteFragment {
}
@Override
+ protected void scrollToY(int y) {
+ if (binding != null) {
+ binding.scrollView.post(() -> binding.scrollView.setScrollY(y));
+ }
+ }
+
+ @Override
protected Layout getLayout() {
binding.editContent.onPreDraw();
return binding.editContent.getLayout();
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 0cdd4d40..409cefab 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
@@ -42,6 +42,9 @@ public class NotePreviewFragment extends SearchableBaseNoteFragment implements O
protected FragmentNotePreviewBinding binding;
+ @Nullable
+ private Runnable setScrollY;
+
@Override
public void onPrepareOptionsMenu(@NonNull Menu menu) {
super.onPrepareOptionsMenu(menu);
@@ -55,6 +58,17 @@ public class NotePreviewFragment extends SearchableBaseNoteFragment implements O
}
@Override
+ protected synchronized void scrollToY(int y) {
+ this.setScrollY = () -> {
+ if (binding != null) {
+ Log.v("SCROLL set (preview) to", y + "");
+ binding.scrollView.post(() -> binding.scrollView.setScrollY(y));
+ }
+ setScrollY = null;
+ };
+ }
+
+ @Override
protected FloatingActionButton getSearchNextButton() {
return binding.searchNext;
}
@@ -83,7 +97,7 @@ public class NotePreviewFragment extends SearchableBaseNoteFragment implements O
super.onActivityCreated(savedInstanceState);
registerInternalNoteLinkHandler();
- binding.singleNoteContent.setMarkdownString(note.getContent());
+ binding.singleNoteContent.setMarkdownString(note.getContent(), setScrollY);
binding.singleNoteContent.setMovementMethod(LinkMovementMethod.getInstance());
changedText = note.getContent();