diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-12-29 17:07:07 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-12-29 17:07:07 +0300 |
commit | 4bece6a5e32231610efa7c27a55b07abe93b5247 (patch) | |
tree | f4833f2b387d6b402f2d075db66f8c4c066c4de8 /app/src/main/java/it/niedermann/owncloud/notes/widget | |
parent | bb542a887f9b90c3280332469df80542620edbab (diff) |
Denormalize database to eleminate artifical category ID
see https://github.com/stefan-niedermann/nextcloud-notes/pull/967#issuecomment-751854626
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud/notes/widget')
5 files changed, 15 insertions, 23 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java index 84a15231..6b6d5050 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java @@ -46,10 +46,7 @@ public class NoteListWidget extends AppWidgetProvider { if (data != null) { final Account localAccount = db.getAccountDao().getAccount(data.getAccountId()); - String category = null; - if (data.getCategoryId() != null) { - category = db.getCategoryDao().getCategoryTitleById(data.getCategoryId()); - } + String category = data.getCategory(); darkTheme = DarkModeSetting.fromModeID(data.getThemeMode()); @@ -72,7 +69,7 @@ public class NoteListWidget extends AppWidgetProvider { new Intent(context, EditNoteActivity.class).putExtra(PARAM_CATEGORY, data.getMode() == MODE_DISPLAY_STARRED ? new NavigationCategory(ENavigationCategoryType.FAVORITES) - : new NavigationCategory(db.getCategoryDao().getCategoryByTitle(localAccount.getId(), category))), + : new NavigationCategory(localAccount.getId(), category)), PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent templatePI = PendingIntent.getActivity(context, PENDING_INTENT_EDIT_NOTE_RQ, diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetConfigurationActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetConfigurationActivity.java index c2ef6122..eb251a9c 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetConfigurationActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetConfigurationActivity.java @@ -99,13 +99,13 @@ public class NoteListWidgetConfigurationActivity extends LockedActivity { } case UNCATEGORIZED: { data.setMode(MODE_DISPLAY_CATEGORY); - data.setCategoryId(null); + data.setCategory(null); } case DEFAULT_CATEGORY: default: { if (item.getClass() == NavigationItem.CategoryNavigationItem.class) { data.setMode(MODE_DISPLAY_CATEGORY); - data.setCategoryId(((NavigationItem.CategoryNavigationItem) item).categoryId); + data.setCategory(((NavigationItem.CategoryNavigationItem) item).category); } else { data.setMode(MODE_DISPLAY_ALL); Log.e(TAG, "Unknown item navigation type. Fallback to show " + RECENT); @@ -141,7 +141,7 @@ public class NoteListWidgetConfigurationActivity extends LockedActivity { recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(adapterCategories); distinctUntilChanged( - map(db.getCategoryDao().getCategoriesLiveData(localAccount.getId()), fromDatabase -> { + map(db.getNoteDao().getCategoriesLiveData(localAccount.getId()), fromDatabase -> { List<NavigationItem.CategoryNavigationItem> categories = convertToCategoryNavigationItem(NoteListWidgetConfigurationActivity.this, fromDatabase); ArrayList<NavigationItem> items = new ArrayList<>(fromDatabase.size() + 3); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetFactory.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetFactory.java index beb6f87d..5b200f8f 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetFactory.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetFactory.java @@ -18,10 +18,8 @@ import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.edit.EditNoteActivity; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.persistence.entity.Note; -import it.niedermann.owncloud.notes.persistence.entity.NoteWithCategory; import it.niedermann.owncloud.notes.persistence.entity.NotesListWidgetData; import it.niedermann.owncloud.notes.preferences.DarkModeSetting; -import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod; import static it.niedermann.owncloud.notes.persistence.entity.NotesListWidgetData.MODE_DISPLAY_ALL; import static it.niedermann.owncloud.notes.persistence.entity.NotesListWidgetData.MODE_DISPLAY_CATEGORY; @@ -35,7 +33,7 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact private final NotesListWidgetData data; private final boolean darkTheme; private NotesDatabase db; - private List<NoteWithCategory> noteEntities; + private List<Note> noteEntities; NoteListWidgetFactory(Context context, Intent intent) { this.context = context; @@ -49,7 +47,7 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact @Override public void onCreate() { - final LiveData<List<NoteWithCategory>> noteEntitiesLiveData; + final LiveData<List<Note>> noteEntitiesLiveData; try { Log.v(TAG, "--- data - " + data); switch (data.getMode()) { @@ -61,8 +59,8 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact break; case MODE_DISPLAY_CATEGORY: default: - if (data.getCategoryId() != null) { - noteEntitiesLiveData = db.getNoteDao().searchCategoryByModified(data.getAccountId(), "%", db.getCategoryDao().getCategoryTitleById(data.getCategoryId())); + if (data.getCategory() != null) { + noteEntitiesLiveData = db.getNoteDao().searchCategoryByModified(data.getAccountId(), "%", data.getCategory()); } else { noteEntitiesLiveData = db.getNoteDao().searchUncategorizedByModified(data.getAccountId(), "%"); } @@ -102,7 +100,7 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact return null; } - Note note = noteEntities.get(position).getNote(); + Note note = noteEntities.get(position); final Intent fillInIntent = new Intent(); final Bundle extras = new Bundle(); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java index 7651d5e7..797cc908 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetConfigurationActivity.java @@ -16,7 +16,7 @@ import it.niedermann.owncloud.notes.NotesApplication; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.exception.ExceptionHandler; import it.niedermann.owncloud.notes.main.MainActivity; -import it.niedermann.owncloud.notes.persistence.entity.NoteWithCategory; +import it.niedermann.owncloud.notes.persistence.entity.Note; import it.niedermann.owncloud.notes.persistence.entity.SingleNoteWidgetData; public class SingleNoteWidgetConfigurationActivity extends MainActivity { @@ -42,7 +42,7 @@ public class SingleNoteWidgetConfigurationActivity extends MainActivity { @Override public void onNoteClick(int position, View v) { - final NoteWithCategory note = (NoteWithCategory) adapter.getItem(position); + final Note note = (Note) adapter.getItem(position); final Bundle extras = getIntent().getExtras(); if (extras == null) { diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java index 5c09e154..49783eae 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java @@ -8,17 +8,14 @@ import android.util.Log; import android.widget.RemoteViews; import android.widget.RemoteViewsService; -import java.util.NoSuchElementException; - import it.niedermann.android.markdown.MarkdownUtil; import it.niedermann.owncloud.notes.NotesApplication; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.edit.EditNoteActivity; import it.niedermann.owncloud.notes.persistence.NotesDatabase; -import it.niedermann.owncloud.notes.persistence.entity.NoteWithCategory; +import it.niedermann.owncloud.notes.persistence.entity.Note; import it.niedermann.owncloud.notes.persistence.entity.SingleNoteWidgetData; import it.niedermann.owncloud.notes.preferences.DarkModeSetting; -import it.niedermann.owncloud.notes.shared.util.MarkDownUtil; public class SingleNoteWidgetFactory implements RemoteViewsService.RemoteViewsFactory { @@ -27,7 +24,7 @@ public class SingleNoteWidgetFactory implements RemoteViewsService.RemoteViewsFa private final int appWidgetId; private NotesDatabase db; - private NoteWithCategory note; + private Note note; private boolean darkModeActive = false; private static final String TAG = SingleNoteWidget.class.getSimpleName(); @@ -56,7 +53,7 @@ public class SingleNoteWidgetFactory implements RemoteViewsService.RemoteViewsFa if (data != null) { final long noteId = data.getNoteId(); Log.v(TAG, "Fetch note with id " + noteId); - note = db.getNoteDao().getFullNoteWithCategory(noteId); + note = db.getNoteDao().getNoteById(noteId); if (note == null) { Log.e(TAG, "Error: note not found"); |