diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-06-08 11:01:50 +0300 |
---|---|---|
committer | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2020-06-08 14:55:59 +0300 |
commit | 7c4f6f200707df8f9d35d8ade3d3ad38f0ccb42f (patch) | |
tree | 6150c09abbf5e325ceb1e1d8c9fda81e145f9304 /app/src/main | |
parent | 6ef22884dc8194802ce4bd6985f2a64d1c32ac9f (diff) |
#227 Remember last scrolling position per note
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java | 12 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java | 3 |
2 files changed, 12 insertions, 3 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java index a3ab86dc..ccdfc6ab 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java @@ -64,8 +64,10 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego private SingleSignOnAccount ssoAccount; protected DBNote note; + // TODO do we really need this? The reference to note is currently the same @Nullable private DBNote originalNote; + private int originalScrollY; protected NotesDatabase db; private NoteFragmentListener listener; @@ -134,7 +136,8 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego super.onActivityCreated(savedInstanceState); final ScrollView scrollView = getScrollView(); if (scrollView != null) { - scrollView.post(() -> scrollView.scrollTo(0, note.getScrollY())); + this.originalScrollY = note.getScrollY(); + scrollView.post(() -> scrollView.scrollTo(0, originalScrollY)); } } @@ -287,7 +290,12 @@ public abstract class BaseNoteFragment extends BrandedFragment implements Catego if (note != null) { String newContent = getContent(); if (note.getContent().equals(newContent)) { - Log.v(TAG, "... not saving, since nothing has changed"); + if (note.getScrollY() != originalScrollY) { + Log.v(TAG, "... only saving new scroll state, since content did not change"); + db.updateScrollY(note.getId(), note.getScrollY()); + } else { + Log.v(TAG, "... not saving, since nothing has changed"); + } } else { note = db.updateNoteAndSync(ssoAccount, localAccount.getId(), note, newContent, callback); listener.onNoteUpdated(note); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java index 5243967c..d19c5734 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java @@ -540,10 +540,11 @@ public class NotesDatabase extends AbstractNotesDatabase { } public void updateScrollY(long noteId, int scrollY) { + Log.e(TAG, "Updated scrollY: " + scrollY); SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(1); values.put(key_scroll_y, scrollY); - db.update(table_notes, values, key_id + " = ? ", new String[]{String.valueOf(scrollY)}); + db.update(table_notes, values, key_id + " = ? ", new String[]{String.valueOf(noteId)}); } /** |