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-04-02 20:58:50 +0300
committerStefan Niedermann <info@niedermann.it>2021-04-02 20:58:50 +0300
commitf31a1756e4bfb3cb2b6bbcf5f6cf5fd1f2133699 (patch)
tree696839778181af70b71a5facd8e6364a53692b22 /app/src/main/java/it/niedermann
parentec775e342f196e4c1e38dc7813979afab71a92e1 (diff)
Merge scrollY logic from master
Diffstat (limited to 'app/src/main/java/it/niedermann')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java47
-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.java14
3 files changed, 43 insertions, 25 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 a706c667..47054364 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
@@ -93,30 +93,9 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego
db = NotesDatabase.getInstance(context);
}
- @Nullable
- protected abstract ScrollView getScrollView();
-
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- 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 (!isNew && scrollView != null) {
- this.originalScrollY = note.getScrollY();
- scrollView.post(() -> scrollView.scrollTo(0, originalScrollY));
- }
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
new Thread(() -> {
try {
SingleSignOnAccount ssoAccount = SingleAccountHelper.getCurrentSingleSignOnAccount(requireContext().getApplicationContext());
@@ -172,6 +151,28 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego
setHasOptionsMenu(true);
}
+ @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) {
+ 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();
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 1c821431..2ca2d436 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 67507b1b..ed918bd1 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
@@ -60,6 +60,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;
}
@@ -89,7 +100,6 @@ public class NotePreviewFragment extends SearchableBaseNoteFragment implements O
binding.swiperefreshlayout.setOnRefreshListener(this);
registerInternalNoteLinkHandler();
- binding.singleNoteContent.setMarkdownString(note.getContent(), setScrollY);
binding.singleNoteContent.setMovementMethod(LinkMovementMethod.getInstance());
final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(requireActivity().getApplicationContext());
@@ -104,7 +114,7 @@ public class NotePreviewFragment extends SearchableBaseNoteFragment implements O
noteLoaded = true;
registerInternalNoteLinkHandler();
changedText = note.getContent();
- binding.singleNoteContent.setMarkdownString(note.getContent());
+ binding.singleNoteContent.setMarkdownString(note.getContent(), setScrollY);
binding.singleNoteContent.getMarkdownString().observe(requireActivity(), (newContent) -> {
changedText = newContent.toString();
saveNote(null);