diff options
author | dan0xii <1926270+dan0xii@users.noreply.github.com> | 2018-02-11 23:48:05 +0300 |
---|---|---|
committer | korelstar <korelstar@users.noreply.github.com> | 2018-02-11 23:48:05 +0300 |
commit | b273eed280199a9eda599e4b7cbab7222428ccc3 (patch) | |
tree | 594cc97f138ef5cf030c7a860cb8aacc75787e18 | |
parent | cd25b82e2c831d8cba4422ce1814b90e09a5bbe5 (diff) |
Moved widget update functions (#324)
3 files changed, 13 insertions, 11 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 43ff561e..7c92148a 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 @@ -139,8 +139,6 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo protected void saveNote(@Nullable ICallback callback) { Log.d(getClass().getSimpleName(), "saveData()"); note = db.updateNoteAndSync(note, getContent(), callback); - db.updateSingleNoteWidgets(); - db.updateNoteListWidgets(); listener.onNoteUpdated(note); } protected abstract String getContent(); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java index fd474d51..54692e39 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java @@ -178,6 +178,7 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper { public long addNoteAndSync(CloudNote note) { DBNote dbNote = new DBNote(0, 0, note.getModified(), note.getTitle(), note.getContent(), note.isFavorite(), note.getCategory(), note.getEtag(), DBStatus.LOCAL_EDITED); long id = addNote(dbNote); + notifyNotesChanged(); getNoteServerSyncHelper().scheduleSync(true); return id; } @@ -440,6 +441,7 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper { int rows = db.update(table_notes, values, key_id + " = ? AND (" + key_content + " != ? OR " + key_category + " != ?)", new String[]{String.valueOf(newNote.getId()), newNote.getContent(), newNote.getCategory()}); // if data was changed, set new status and schedule sync (with callback); otherwise invoke callback directly. if(rows > 0) { + notifyNotesChanged(); if(callback!=null) { serverSyncHelper.addCallbackPush(callback); } @@ -518,6 +520,7 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper { values, key_id + " = ?", new String[]{String.valueOf(id)}); + notifyNotesChanged(); getNoteServerSyncHelper().scheduleSync(true); return i; } @@ -536,12 +539,18 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper { new String[]{String.valueOf(id), forceDBStatus.getTitle()}); } + /** + * Notify about changed notes. + */ + void notifyNotesChanged() { + updateSingleNoteWidgets(); + updateNoteListWidgets(); + } /** * Update single note widget, if the note data was changed. - * TODO This should be replaced by using the observer pattern */ - public void updateSingleNoteWidgets() { + private void updateSingleNoteWidgets() { Intent intent = new Intent(getContext(), SingleNoteWidget.class); intent.setAction("android.appwidget.action.APPWIDGET_UPDATE"); getContext().sendBroadcast(intent); @@ -549,9 +558,8 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper { /** * Update note list widgets, if the note data was changed. - * TODO This should be replaced by using the observer pattern */ - public void updateNoteListWidgets() { + private void updateNoteListWidgets() { Intent intent = new Intent(getContext(), NoteListWidget.class); intent.setAction("android.appwidget.action.APPWIDGET_UPDATE"); getContext().sendBroadcast(intent); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteServerSyncHelper.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteServerSyncHelper.java index 21da794e..9d22d5a7 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteServerSyncHelper.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteServerSyncHelper.java @@ -38,8 +38,6 @@ import it.niedermann.owncloud.notes.util.NotesClientUtil.LoginStatus; import it.niedermann.owncloud.notes.util.ServerResponse; import it.niedermann.owncloud.notes.util.SupportUtil; -import static android.content.ContentValues.TAG; - /** * Helps to synchronize the Database to the Server. */ @@ -395,9 +393,7 @@ public class NoteServerSyncHelper { for (ICallback callback : callbacks) { callback.onFinish(); } - Log.d(TAG, "onPostExecute: Update widgets"); - dbHelper.updateSingleNoteWidgets(); - dbHelper.updateNoteListWidgets(); + dbHelper.notifyNotesChanged(); // start next sync if scheduled meanwhile if(syncScheduled) { scheduleSync(false); |