diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-10-05 17:24:02 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-10-05 17:24:02 +0300 |
commit | 21ba77dc68cfca11da5bca0ac1921582a2c2709a (patch) | |
tree | bdf8ce97fd6804a4c9996f5ad074fa8b5e1ff806 /app/src/main | |
parent | f0b57a2ad8f16cb0e18765b4dea03605f1c7ad13 (diff) |
#831 Migrate from SQLiteOpenHelper to Room
Starting widgets
Diffstat (limited to 'app/src/main')
8 files changed, 71 insertions, 21 deletions
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 9c9c7563..05b8118a 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 @@ -564,11 +564,6 @@ public class NotesDatabase extends AbstractNotesDatabase { return data; } - public void removeSingleNoteWidget(int appWidgetId) { - final SQLiteDatabase db = getWritableDatabase(); - db.delete(table_widget_single_notes, key_id + " = ?", new String[]{String.valueOf(appWidgetId)}); - } - public void createOrUpdateSingleNoteWidgetData(@NonNull SingleNoteWidgetData data) throws SQLException { validateAccountId(data.getAccountId()); final SQLiteDatabase db = getWritableDatabase(); @@ -598,11 +593,6 @@ public class NotesDatabase extends AbstractNotesDatabase { return data; } - public void removeNoteListWidget(int appWidgetId) { - final SQLiteDatabase db = getWritableDatabase(); - db.delete(table_widget_note_list, key_id + " = ?", new String[]{String.valueOf(appWidgetId)}); - } - public void createOrUpdateNoteListWidgetData(@NonNull NoteListsWidgetData data) throws SQLException { validateAccountId(data.getAccountId()); final SQLiteDatabase db = getWritableDatabase(); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesRoomDatabase.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesRoomDatabase.java index 57f0a56a..efac971a 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesRoomDatabase.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesRoomDatabase.java @@ -1,12 +1,9 @@ package it.niedermann.owncloud.notes.persistence; -import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutManager; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; import android.graphics.drawable.Icon; import android.os.Build; import android.text.TextUtils; @@ -35,10 +32,14 @@ import it.niedermann.owncloud.notes.edit.EditNoteActivity; import it.niedermann.owncloud.notes.persistence.dao.CategoryDao; import it.niedermann.owncloud.notes.persistence.dao.LocalAccountDao; import it.niedermann.owncloud.notes.persistence.dao.NoteDao; +import it.niedermann.owncloud.notes.persistence.dao.WidgetNotesListDao; +import it.niedermann.owncloud.notes.persistence.dao.WidgetSingleNoteDao; import it.niedermann.owncloud.notes.persistence.entity.CategoryEntity; import it.niedermann.owncloud.notes.persistence.entity.Converters; import it.niedermann.owncloud.notes.persistence.entity.LocalAccountEntity; import it.niedermann.owncloud.notes.persistence.entity.NoteEntity; +import it.niedermann.owncloud.notes.persistence.entity.WidgetNotesListEntity; +import it.niedermann.owncloud.notes.persistence.entity.WidgetSingleNoteEntity; import it.niedermann.owncloud.notes.shared.model.Capabilities; import it.niedermann.owncloud.notes.shared.model.CloudNote; import it.niedermann.owncloud.notes.shared.model.DBNote; @@ -55,7 +56,9 @@ import static it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidget.up entities = { LocalAccountEntity.class, NoteEntity.class, - CategoryEntity.class + CategoryEntity.class, + WidgetSingleNoteEntity.class, + WidgetNotesListEntity.class }, version = 18 ) @TypeConverters({Converters.class}) @@ -102,10 +105,10 @@ public abstract class NotesRoomDatabase extends RoomDatabase { }; public abstract LocalAccountDao getLocalAccountDao(); - public abstract CategoryDao getCategoryDao(); - public abstract NoteDao getNoteDao(); + public abstract WidgetSingleNoteDao getWidgetSingleNoteDao(); + public abstract WidgetNotesListDao getWidgetNotesListDao(); @SuppressWarnings("UnusedReturnValue") public long addAccount(@NonNull String url, @NonNull String username, @NonNull String accountName, @NonNull Capabilities capabilities) { @@ -328,7 +331,7 @@ public abstract class NotesRoomDatabase extends RoomDatabase { public Map<Long, Long> getIdMap(long accountId) { validateAccountId(accountId); Map<Long, Long> result = new HashMap<>(); - for(NoteEntity note : getNoteDao().getRemoteIdAndId(accountId)) { + for (NoteEntity note : getNoteDao().getRemoteIdAndId(accountId)) { result.put(note.getRemoteId(), note.getId()); } return result; diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/WidgetNotesListDao.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/WidgetNotesListDao.java new file mode 100644 index 00000000..272b9820 --- /dev/null +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/WidgetNotesListDao.java @@ -0,0 +1,12 @@ +package it.niedermann.owncloud.notes.persistence.dao; + +import androidx.room.Dao; +import androidx.room.Query; + +@Dao +public interface WidgetNotesListDao { + + @Query("DELETE FROM WidgetNotesListEntity WHERE id = :appWidgetId") + void removeNoteListWidget(int appWidgetId); + +} diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/WidgetSingleNoteDao.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/WidgetSingleNoteDao.java new file mode 100644 index 00000000..e79ea1db --- /dev/null +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/WidgetSingleNoteDao.java @@ -0,0 +1,18 @@ +package it.niedermann.owncloud.notes.persistence.dao; + +import android.database.sqlite.SQLiteDatabase; + +import androidx.annotation.NonNull; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.Query; + +import it.niedermann.owncloud.notes.persistence.entity.CategoryEntity; + +@Dao +public interface WidgetSingleNoteDao { + + @Query("DELETE FROM WidgetSingleNoteEntity WHERE id = :appWidgetId") + void removeSingleNoteWidget(int appWidgetId); + +} diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/WidgetNotesListEntity.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/WidgetNotesListEntity.java new file mode 100644 index 00000000..f5cdf650 --- /dev/null +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/WidgetNotesListEntity.java @@ -0,0 +1,10 @@ +package it.niedermann.owncloud.notes.persistence.entity; + +import androidx.room.Entity; +import androidx.room.PrimaryKey; + +@Entity() +public class WidgetNotesListEntity { + @PrimaryKey + private long id; +}
\ No newline at end of file diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/WidgetSingleNoteEntity.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/WidgetSingleNoteEntity.java new file mode 100644 index 00000000..80d03cfc --- /dev/null +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/entity/WidgetSingleNoteEntity.java @@ -0,0 +1,16 @@ +package it.niedermann.owncloud.notes.persistence.entity; + +import androidx.room.Embedded; +import androidx.room.Entity; +import androidx.room.PrimaryKey; + +import java.util.Calendar; + +import it.niedermann.owncloud.notes.shared.model.DBNote; +import it.niedermann.owncloud.notes.shared.model.DBStatus; + +@Entity() +public class WidgetSingleNoteEntity { + @PrimaryKey + private long id; +}
\ No newline at end of file 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 bdc8abe4..c2a0f1af 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 @@ -162,10 +162,10 @@ public class NoteListWidget extends AppWidgetProvider { @Override public void onDeleted(Context context, int[] appWidgetIds) { super.onDeleted(context, appWidgetIds); - final NotesDatabase db = NotesDatabase.getInstance(context); + final NotesRoomDatabase db = NotesRoomDatabase.getInstance(context); for (int appWidgetId : appWidgetIds) { - db.removeNoteListWidget(appWidgetId); + db.getWidgetNotesListDao().removeNoteListWidget(appWidgetId); } } 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 777cd25e..c7b94d15 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 @@ -13,6 +13,7 @@ import android.widget.RemoteViews; import java.util.NoSuchElementException; 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.edit.BaseNoteFragment; @@ -79,10 +80,10 @@ public class SingleNoteWidget extends AppWidgetProvider { @Override public void onDeleted(Context context, int[] appWidgetIds) { - final NotesDatabase db = NotesDatabase.getInstance(context); + final NotesRoomDatabase roomDatabase = NotesRoomDatabase.getInstance(context); for (int appWidgetId : appWidgetIds) { - db.removeSingleNoteWidget(appWidgetId); + roomDatabase.getWidgetSingleNoteDao().removeSingleNoteWidget(appWidgetId); } super.onDeleted(context, appWidgetIds); } |