diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-10-05 21:51:07 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-10-05 21:51:07 +0300 |
commit | 3a8077cd909b41402b6286732395d692ab2843c0 (patch) | |
tree | 8233ede5995309f00055ebf7c57733b0288e55b2 /app/src/main/java/it/niedermann/owncloud/notes/widget | |
parent | 8feb06f93b8bf69d323de3813c65a0ba684eea97 (diff) |
#831 Migrate from SQLiteOpenHelper to Room
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud/notes/widget')
6 files changed, 34 insertions, 22 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/AbstractWidgetData.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/AbstractWidgetData.java index 019a2153..9873d100 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/AbstractWidgetData.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/AbstractWidgetData.java @@ -1,27 +1,32 @@ package it.niedermann.owncloud.notes.widget; +import androidx.annotation.IntRange; +import androidx.room.PrimaryKey; + public abstract class AbstractWidgetData { - private int appWidgetId; + @PrimaryKey + private int id; private long accountId; + @IntRange(from = 0, to = 2) private int themeMode; protected AbstractWidgetData() { } - protected AbstractWidgetData(int appWidgetId, long accountId, int themeMode) { - this.appWidgetId = appWidgetId; + protected AbstractWidgetData(int id, long accountId, @IntRange(from = 0, to = 2) int themeMode) { + this.id = id; this.accountId = accountId; this.themeMode = themeMode; } - public int getAppWidgetId() { - return appWidgetId; + public int getId() { + return id; } - public void setAppWidgetId(int appWidgetId) { - this.appWidgetId = appWidgetId; + public void setId(int id) { + this.id = id; } public long getAccountId() { @@ -32,11 +37,12 @@ public abstract class AbstractWidgetData { this.accountId = accountId; } + @IntRange(from = 0, to = 2) public int getThemeMode() { return themeMode; } - public void setThemeMode(int themeMode) { + public void setThemeMode(@IntRange(from = 0, to = 2) int themeMode) { this.themeMode = themeMode; } } 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 c2a0f1af..1c94433c 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 @@ -45,12 +45,12 @@ public class NoteListWidget extends AppWidgetProvider { for (int appWidgetId : appWidgetIds) { try { - final NoteListsWidgetData data = sqliteOpenHelperDatabase.getNoteListWidgetData(appWidgetId); + final NoteListsWidgetData data = roomDatabase.getWidgetNotesListDao().getNoteListWidgetData(appWidgetId); final LocalAccountEntity localAccountEntity = roomDatabase.getLocalAccountDao().getAccount(data.getAccountId()); String category = null; if (data.getCategoryId() != null) { - category = sqliteOpenHelperDatabase.getCategoryTitleById(data.getAccountId(), data.getCategoryId()); + category = roomDatabase.getCategoryDao().getCategoryTitleById(data.getCategoryId()); } darkTheme = DarkModeSetting.fromModeID(data.getThemeMode()); 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 5fde5010..c5b1da01 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 @@ -12,6 +12,7 @@ import android.widget.RemoteViewsService; import java.util.List; import it.niedermann.owncloud.notes.R; +import it.niedermann.owncloud.notes.persistence.NotesRoomDatabase; import it.niedermann.owncloud.notes.preferences.DarkModeSetting; import it.niedermann.owncloud.notes.edit.EditNoteActivity; import it.niedermann.owncloud.notes.shared.model.DBNote; @@ -28,7 +29,8 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact private final Context context; private final NoteListsWidgetData data; private final boolean darkTheme; - private NotesDatabase db; + private NotesDatabase sqliteOpenHelperDatabase; + private NotesRoomDatabase roomDatabase; private List<DBNote> dbNotes; NoteListWidgetFactory(Context context, Intent intent) { @@ -36,8 +38,9 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact final int appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); - db = NotesDatabase.getInstance(context); - data = db.getNoteListWidgetData(appWidgetId); + sqliteOpenHelperDatabase = NotesDatabase.getInstance(context); + roomDatabase = NotesRoomDatabase.getInstance(context); + data = roomDatabase.getWidgetNotesListDao().getNoteListWidgetData(appWidgetId); darkTheme = NotesApplication.isDarkThemeActive(context, DarkModeSetting.fromModeID(data.getThemeMode())); } @@ -52,14 +55,14 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact Log.v(TAG, "--- data - " + data); switch (data.getMode()) { case MODE_DISPLAY_ALL: - dbNotes = db.getNotes(data.getAccountId()); + dbNotes = sqliteOpenHelperDatabase.getNotes(data.getAccountId()); break; case MODE_DISPLAY_STARRED: - dbNotes = db.searchNotes(data.getAccountId(), null, null, true); + dbNotes = sqliteOpenHelperDatabase.searchNotes(data.getAccountId(), null, null, true); break; case MODE_DISPLAY_CATEGORY: if (data.getCategoryId() != null) { - dbNotes = db.searchNotes(data.getAccountId(), null, db.getCategoryTitleById(data.getAccountId(), data.getCategoryId()), null); + dbNotes = sqliteOpenHelperDatabase.searchNotes(data.getAccountId(), null, roomDatabase.getCategoryDao().getCategoryTitleById(data.getCategoryId()), null); } break; } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidget.java index c7b94d15..4f5fdcdc 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidget.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidget.java @@ -14,6 +14,7 @@ import java.util.NoSuchElementException; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.persistence.NotesRoomDatabase; +import it.niedermann.owncloud.notes.persistence.entity.WidgetSingleNoteEntity; import it.niedermann.owncloud.notes.preferences.DarkModeSetting; import it.niedermann.owncloud.notes.edit.EditNoteActivity; import it.niedermann.owncloud.notes.edit.BaseNoteFragment; @@ -26,11 +27,11 @@ public class SingleNoteWidget extends AppWidgetProvider { static void updateAppWidget(Context context, AppWidgetManager awm, int[] appWidgetIds) { final Intent templateIntent = new Intent(context, EditNoteActivity.class); - final NotesDatabase db = NotesDatabase.getInstance(context); + final NotesRoomDatabase db = NotesRoomDatabase.getInstance(context); for (int appWidgetId : appWidgetIds) { try { - final SingleNoteWidgetData data = db.getSingleNoteWidgetData(appWidgetId); + final WidgetSingleNoteEntity data = db.getWidgetSingleNoteDao().getSingleNoteWidgetData(appWidgetId); templateIntent.putExtra(BaseNoteFragment.PARAM_ACCOUNT_ID, data.getAccountId()); 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 25d4f408..fd17fe51 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 @@ -15,6 +15,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; 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.WidgetSingleNoteEntity; import it.niedermann.owncloud.notes.shared.model.DBNote; import it.niedermann.owncloud.notes.NotesApplication; @@ -52,8 +53,8 @@ public class SingleNoteWidgetConfigurationActivity extends MainActivity { int appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); try { - sqliteOpenHelperDatabase.createOrUpdateSingleNoteWidgetData( - new SingleNoteWidgetData( + roomDatabase.getWidgetSingleNoteDao().createOrUpdateSingleNoteWidgetData( + new WidgetSingleNoteEntity( appWidgetId, note.getAccountId(), note.getId(), 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 431bcd7b..1ef8223c 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 @@ -16,6 +16,7 @@ import java.util.NoSuchElementException; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.persistence.NotesRoomDatabase; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; +import it.niedermann.owncloud.notes.persistence.entity.WidgetSingleNoteEntity; import it.niedermann.owncloud.notes.preferences.DarkModeSetting; import it.niedermann.owncloud.notes.edit.EditNoteActivity; import it.niedermann.owncloud.notes.shared.model.DBNote; @@ -47,7 +48,7 @@ public class SingleNoteWidgetFactory implements RemoteViewsService.RemoteViewsFa markdownProcessor = new MarkdownProcessor(this.context); markdownProcessor.factory(TextFactory.create()); try { - SingleNoteWidgetData data = sqliteOpenHelperDatabase.getSingleNoteWidgetData(appWidgetId); + WidgetSingleNoteEntity data = roomDatabase.getWidgetSingleNoteDao().getSingleNoteWidgetData(appWidgetId); darkModeActive = NotesApplication.isDarkThemeActive(context, DarkModeSetting.fromModeID(data.getThemeMode())); } catch (NoSuchElementException e) { Log.w(TAG, "Widget with ID " + appWidgetId + " seems to be not configured yet."); @@ -64,7 +65,7 @@ public class SingleNoteWidgetFactory implements RemoteViewsService.RemoteViewsFa @Override public void onDataSetChanged() { try { - final SingleNoteWidgetData data = sqliteOpenHelperDatabase.getSingleNoteWidgetData(appWidgetId); + final WidgetSingleNoteEntity data = roomDatabase.getWidgetSingleNoteDao().getSingleNoteWidgetData(appWidgetId); final long noteId = data.getNoteId(); Log.v(TAG, "Fetch note with id " + noteId); note = NoteEntity.entityToDBNote(roomDatabase.getNoteDao().getNote(data.getAccountId(), noteId)); |