diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-12-29 19:54:13 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-12-29 19:54:13 +0300 |
commit | de4f94a96da4985332e059f6319380890480f5f9 (patch) | |
tree | 9e8115cb0c18a61a7aa1d02ee1fb3b1aa81b19ed /app/src/main/java/it/niedermann/owncloud/notes/persistence/migration | |
parent | 046a2c27edc1c1da8e604d919679be1fc246cb94 (diff) |
Fix migration of STARRED and RECENT list widgets
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud/notes/persistence/migration')
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java | 240 |
1 files changed, 139 insertions, 101 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java index 5ccb6c35..48ddd9eb 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java @@ -13,7 +13,7 @@ import androidx.sqlite.db.SupportSQLiteDatabase; import it.niedermann.android.util.ColorUtil; -public class Migration_19_20 extends Migration { +public final class Migration_19_20 extends Migration { public Migration_19_20() { super(19, 20); @@ -25,6 +25,18 @@ public class Migration_19_20 extends Migration { */ @Override public void migrate(@NonNull SupportSQLiteDatabase db) { + dropOldIndices(db); + createNewTables(db); + createNewIndices(db); + migrateAccounts(db); + migrateCategories(db); + migrateNotes(db); + migrateNotesListWidgets(db); + migrateSingleNotesWidgets(db); + dropOldTables(db); + } + + private static void dropOldIndices(@NonNull SupportSQLiteDatabase db) { db.execSQL("DROP INDEX ACCOUNTS_URL_idx"); db.execSQL("DROP INDEX ACCOUNTS_USERNAME_idx"); db.execSQL("DROP INDEX ACCOUNTS_ACCOUNT_NAME_idx"); @@ -36,13 +48,17 @@ public class Migration_19_20 extends Migration { db.execSQL("DROP INDEX NOTES_FAVORITE_idx"); db.execSQL("DROP INDEX NOTES_CATEGORY_idx"); db.execSQL("DROP INDEX NOTES_MODIFIED_idx"); + } + private static void createNewTables(@NonNull SupportSQLiteDatabase db) { db.execSQL("CREATE TABLE `Account` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `url` TEXT NOT NULL DEFAULT '', `userName` TEXT NOT NULL DEFAULT '', `accountName` TEXT NOT NULL DEFAULT '', `eTag` TEXT, `modified` INTEGER, `apiVersion` TEXT, `color` INTEGER NOT NULL DEFAULT -16743735, `textColor` INTEGER NOT NULL DEFAULT -16777216, `capabilitiesETag` TEXT)"); db.execSQL("CREATE TABLE `CategoryOptions` (`accountId` INTEGER NOT NULL, `category` TEXT NOT NULL, `sortingMethod` INTEGER, PRIMARY KEY(`accountId`, `category`), FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )"); db.execSQL("CREATE TABLE `Note` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `remoteId` INTEGER, `accountId` INTEGER NOT NULL, `status` TEXT NOT NULL, `title` TEXT NOT NULL DEFAULT '', `category` TEXT NOT NULL DEFAULT '', `modified` INTEGER, `content` TEXT NOT NULL DEFAULT '', `favorite` INTEGER NOT NULL DEFAULT 0, `eTag` TEXT, `excerpt` TEXT NOT NULL DEFAULT '', `scrollY` INTEGER NOT NULL DEFAULT 0, FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )"); db.execSQL("CREATE TABLE `NotesListWidgetData` (`mode` INTEGER NOT NULL, `category` TEXT, `id` INTEGER NOT NULL, `accountId` INTEGER NOT NULL, `themeMode` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`accountId`, `category`) REFERENCES `CategoryOptions`(`accountId`, `category`) ON UPDATE NO ACTION ON DELETE CASCADE )"); db.execSQL("CREATE TABLE `SingleNoteWidgetData` (`noteId` INTEGER NOT NULL, `id` INTEGER NOT NULL, `accountId` INTEGER NOT NULL, `themeMode` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`noteId`) REFERENCES `Note`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )"); + } + private static void createNewIndices(@NonNull SupportSQLiteDatabase db) { db.execSQL("CREATE INDEX `IDX_ACCOUNT_ACCOUNTNAME` ON `Account` (`accountName`)"); db.execSQL("CREATE INDEX `IDX_ACCOUNT_ETAG` ON `Account` (`eTag`)"); db.execSQL("CREATE INDEX `IDX_ACCOUNT_MODIFIED` ON `Account` (`modified`)"); @@ -68,120 +84,142 @@ public class Migration_19_20 extends Migration { db.execSQL("CREATE TRIGGER TRG_CLEANUP_CATEGORIES_DEL AFTER DELETE ON Note BEGIN DELETE FROM CategoryOptions WHERE CategoryOptions.category NOT IN (SELECT Note.category FROM Note WHERE Note.accountId = CategoryOptions.accountId); END;"); db.execSQL("CREATE TRIGGER TRG_CLEANUP_CATEGORIES_UPD AFTER UPDATE ON Note BEGIN DELETE FROM CategoryOptions WHERE CategoryOptions.category NOT IN (SELECT Note.category FROM Note WHERE Note.accountId = CategoryOptions.accountId); END;"); - final Cursor tmpAccountCursor = db.query("SELECT * FROM ACCOUNTS", null); - final ContentValues account_values = new ContentValues(10); - final int account_colPos_ID = tmpAccountCursor.getColumnIndex("ID"); - final int account_colPos_URL = tmpAccountCursor.getColumnIndex("URL"); - final int account_colPos_USERNAME = tmpAccountCursor.getColumnIndex("USERNAME"); - final int account_colPos_ACCOUNT_NAME = tmpAccountCursor.getColumnIndex("ACCOUNT_NAME"); - final int account_colPos_ETAG = tmpAccountCursor.getColumnIndex("ETAG"); - final int account_colPos_MODIFIED = tmpAccountCursor.getColumnIndex("MODIFIED"); - final int account_colPos_API_VERSION = tmpAccountCursor.getColumnIndex("API_VERSION"); - final int account_colPos_COLOR = tmpAccountCursor.getColumnIndex("COLOR"); - final int account_colPos_TEXT_COLOR = tmpAccountCursor.getColumnIndex("TEXT_COLOR"); - final int account_colPos_CAPABILITIES_ETAG = tmpAccountCursor.getColumnIndex("CAPABILITIES_ETAG"); - while (tmpAccountCursor.moveToNext()) { - account_values.put("ID", tmpAccountCursor.getInt(account_colPos_ID)); - account_values.put("URL", tmpAccountCursor.getString(account_colPos_URL)); - account_values.put("USERNAME", tmpAccountCursor.getString(account_colPos_USERNAME)); - account_values.put("ACCOUNTNAME", tmpAccountCursor.getString(account_colPos_ACCOUNT_NAME)); - account_values.put("ETAG", tmpAccountCursor.getString(account_colPos_ETAG)); - account_values.put("MODIFIED", tmpAccountCursor.getLong(account_colPos_MODIFIED)); - account_values.put("APIVERSION", tmpAccountCursor.getString(account_colPos_API_VERSION)); + } + + private static void migrateAccounts(@NonNull SupportSQLiteDatabase db) { + final Cursor cursor = db.query("SELECT * FROM ACCOUNTS", null); + final ContentValues values = new ContentValues(10); + + final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID"); + final int COLUMN_POSITION_URL = cursor.getColumnIndex("URL"); + final int COLUMN_POSITION_USERNAME = cursor.getColumnIndex("USERNAME"); + final int COLUMN_POSITION_ACCOUNT_NAME = cursor.getColumnIndex("ACCOUNT_NAME"); + final int COLUMN_POSITION_ETAG = cursor.getColumnIndex("ETAG"); + final int COLUMN_POSITION_MODIFIED = cursor.getColumnIndex("MODIFIED"); + final int COLUMN_POSITION_API_VERSION = cursor.getColumnIndex("API_VERSION"); + final int COLUMN_POSITION_COLOR = cursor.getColumnIndex("COLOR"); + final int COLUMN_POSITION_TEXT_COLOR = cursor.getColumnIndex("TEXT_COLOR"); + final int COLUMN_POSITION_CAPABILITIES_ETAG = cursor.getColumnIndex("CAPABILITIES_ETAG"); + + while (cursor.moveToNext()) { + values.put("ID", cursor.getInt(COLUMN_POSITION_ID)); + values.put("URL", cursor.getString(COLUMN_POSITION_URL)); + values.put("USERNAME", cursor.getString(COLUMN_POSITION_USERNAME)); + values.put("ACCOUNTNAME", cursor.getString(COLUMN_POSITION_ACCOUNT_NAME)); + values.put("ETAG", cursor.getString(COLUMN_POSITION_ETAG)); + values.put("MODIFIED", cursor.getLong(COLUMN_POSITION_MODIFIED)); + values.put("APIVERSION", cursor.getString(COLUMN_POSITION_API_VERSION)); try { - account_values.put("COLOR", Color.parseColor(ColorUtil.INSTANCE.formatColorToParsableHexString(tmpAccountCursor.getString(account_colPos_COLOR)))); + values.put("COLOR", Color.parseColor(ColorUtil.INSTANCE.formatColorToParsableHexString(cursor.getString(COLUMN_POSITION_COLOR)))); } catch (Exception e) { e.printStackTrace(); - account_values.put("COLOR", -16743735); + values.put("COLOR", -16743735); } try { - account_values.put("TEXTCOLOR", Color.parseColor(ColorUtil.INSTANCE.formatColorToParsableHexString(tmpAccountCursor.getString(account_colPos_TEXT_COLOR)))); + values.put("TEXTCOLOR", Color.parseColor(ColorUtil.INSTANCE.formatColorToParsableHexString(cursor.getString(COLUMN_POSITION_TEXT_COLOR)))); } catch (Exception e) { e.printStackTrace(); - account_values.put("TEXTCOLOR", -16777216); + values.put("TEXTCOLOR", -16777216); } - account_values.put("CAPABILITIESETAG", tmpAccountCursor.getString(account_colPos_CAPABILITIES_ETAG)); - db.insert("ACCOUNT", OnConflictStrategy.REPLACE, account_values); + values.put("CAPABILITIESETAG", cursor.getString(COLUMN_POSITION_CAPABILITIES_ETAG)); + db.insert("ACCOUNT", OnConflictStrategy.REPLACE, values); } - tmpAccountCursor.close(); - - final Cursor tmpCategoriesCursor = db.query("SELECT * FROM CATEGORIES", null); - final ContentValues categories_values = new ContentValues(3); - final int categories_colPos_ACCOUNT_ID = tmpCategoriesCursor.getColumnIndex("CATEGORY_ACCOUNT_ID"); - final int categories_colPos_TITLE = tmpCategoriesCursor.getColumnIndex("CATEGORY_TITLE"); - final int categories_colPos_SORTING_METHOD = tmpCategoriesCursor.getColumnIndex("CATEGORY_SORTING_METHOD"); - while (tmpCategoriesCursor.moveToNext()) { - categories_values.put("ACCOUNTID", tmpCategoriesCursor.getInt(categories_colPos_ACCOUNT_ID)); - categories_values.put("CATEGORY", tmpCategoriesCursor.getString(categories_colPos_TITLE)); - categories_values.put("SORTINGMETHOD", tmpCategoriesCursor.getInt(categories_colPos_SORTING_METHOD)); - db.insert("CATEGORYOPTIONS", OnConflictStrategy.REPLACE, categories_values); + cursor.close(); + } + + private static void migrateCategories(@NonNull SupportSQLiteDatabase db) { + final Cursor cursor = db.query("SELECT * FROM CATEGORIES", null); + final ContentValues values = new ContentValues(3); + + final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("CATEGORY_ACCOUNT_ID"); + final int COLUMN_POSITION_TITLE = cursor.getColumnIndex("CATEGORY_TITLE"); + final int COLUMN_POSITION_SORTING_METHOD = cursor.getColumnIndex("CATEGORY_SORTING_METHOD"); + + while (cursor.moveToNext()) { + values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID)); + values.put("CATEGORY", cursor.getString(COLUMN_POSITION_TITLE)); + values.put("SORTINGMETHOD", cursor.getInt(COLUMN_POSITION_SORTING_METHOD)); + db.insert("CATEGORYOPTIONS", OnConflictStrategy.REPLACE, values); } - tmpCategoriesCursor.close(); - - final Cursor tmpNotesCursor = db.query("SELECT NOTES.*, CATEGORIES.category_title as `CAT_TITLE` FROM NOTES INNER JOIN CATEGORIES ON NOTES.category = CATEGORIES.category_id", null); - final ContentValues note_values = new ContentValues(12); - final int notes_colPos_ID = tmpNotesCursor.getColumnIndex("ID"); - final int notes_colPos_REMOTEID = tmpNotesCursor.getColumnIndex("REMOTEID"); - final int notes_colPos_ACCOUNT_ID = tmpNotesCursor.getColumnIndex("ACCOUNT_ID"); - final int notes_colPos_STATUS = tmpNotesCursor.getColumnIndex("STATUS"); - final int notes_colPos_TITLE = tmpNotesCursor.getColumnIndex("TITLE"); - final int notes_colPos_MODIFIED = tmpNotesCursor.getColumnIndex("MODIFIED"); - final int notes_colPos_CONTENT = tmpNotesCursor.getColumnIndex("CONTENT"); - final int notes_colPos_FAVORITE = tmpNotesCursor.getColumnIndex("FAVORITE"); - final int notes_colPos_CAT_TITLE = tmpNotesCursor.getColumnIndex("CAT_TITLE"); - final int notes_colPos_ETAG = tmpNotesCursor.getColumnIndex("ETAG"); - final int notes_colPos_EXCERPT = tmpNotesCursor.getColumnIndex("EXCERPT"); - final int notes_colPos_SCROLL_Y = tmpNotesCursor.getColumnIndex("SCROLL_Y"); - while (tmpNotesCursor.moveToNext()) { - note_values.put("ID", tmpNotesCursor.getInt(notes_colPos_ID)); - note_values.put("REMOTEID", tmpNotesCursor.getInt(notes_colPos_REMOTEID)); - note_values.put("ACCOUNTID", tmpNotesCursor.getInt(notes_colPos_ACCOUNT_ID)); - note_values.put("STATUS", tmpNotesCursor.getString(notes_colPos_STATUS)); - note_values.put("TITLE", tmpNotesCursor.getString(notes_colPos_TITLE)); - note_values.put("MODIFIED", tmpNotesCursor.getLong(notes_colPos_MODIFIED)); - note_values.put("CONTENT", tmpNotesCursor.getString(notes_colPos_CONTENT)); - note_values.put("FAVORITE", tmpNotesCursor.getInt(notes_colPos_FAVORITE)); - note_values.put("CATEGORY", tmpNotesCursor.getString(notes_colPos_CAT_TITLE)); - note_values.put("ETAG", tmpNotesCursor.getString(notes_colPos_ETAG)); - note_values.put("EXCERPT", tmpNotesCursor.getString(notes_colPos_EXCERPT)); - note_values.put("SCROLLY", tmpNotesCursor.getString(notes_colPos_SCROLL_Y)); - db.insert("NOTE", OnConflictStrategy.REPLACE, note_values); + cursor.close(); + } + + private static void migrateNotes(@NonNull SupportSQLiteDatabase db) { + final Cursor cursor = db.query("SELECT NOTES.*, CATEGORIES.category_title as `CAT_TITLE` FROM NOTES LEFT JOIN CATEGORIES ON NOTES.category = CATEGORIES.category_id", null); + final ContentValues values = new ContentValues(12); + + final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID"); + final int COLUMN_POSITION_REMOTEID = cursor.getColumnIndex("REMOTEID"); + final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("ACCOUNT_ID"); + final int COLUMN_POSITION_STATUS = cursor.getColumnIndex("STATUS"); + final int COLUMN_POSITION_TITLE = cursor.getColumnIndex("TITLE"); + final int COLUMN_POSITION_MODIFIED = cursor.getColumnIndex("MODIFIED"); + final int COLUMN_POSITION_CONTENT = cursor.getColumnIndex("CONTENT"); + final int COLUMN_POSITION_FAVORITE = cursor.getColumnIndex("FAVORITE"); + final int COLUMN_POSITION_CAT_TITLE = cursor.getColumnIndex("CAT_TITLE"); + final int COLUMN_POSITION_ETAG = cursor.getColumnIndex("ETAG"); + final int COLUMN_POSITION_EXCERPT = cursor.getColumnIndex("EXCERPT"); + final int COLUMN_POSITION_SCROLL_Y = cursor.getColumnIndex("SCROLL_Y"); + + while (cursor.moveToNext()) { + values.put("ID", cursor.getInt(COLUMN_POSITION_ID)); + values.put("REMOTEID", cursor.getInt(COLUMN_POSITION_REMOTEID)); + values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID)); + values.put("STATUS", cursor.getString(COLUMN_POSITION_STATUS)); + values.put("TITLE", cursor.getString(COLUMN_POSITION_TITLE)); + values.put("MODIFIED", cursor.getLong(COLUMN_POSITION_MODIFIED)); + values.put("CONTENT", cursor.getString(COLUMN_POSITION_CONTENT)); + values.put("FAVORITE", cursor.getInt(COLUMN_POSITION_FAVORITE)); + values.put("CATEGORY", cursor.getString(COLUMN_POSITION_CAT_TITLE)); + values.put("ETAG", cursor.getString(COLUMN_POSITION_ETAG)); + values.put("EXCERPT", cursor.getString(COLUMN_POSITION_EXCERPT)); + values.put("SCROLLY", cursor.getString(COLUMN_POSITION_SCROLL_Y)); + db.insert("NOTE", OnConflictStrategy.REPLACE, values); } - tmpNotesCursor.close(); - - final Cursor tmpWidgetNotesListCursor = db.query("SELECT WIDGET_NOTE_LISTS.*, CATEGORIES.category_title as `CATEGORY` FROM WIDGET_NOTE_LISTS INNER JOIN CATEGORIES ON WIDGET_NOTE_LISTS.CATEGORY_ID = CATEGORIES.category_id", null); - final ContentValues nlw_values = new ContentValues(5); - final int nlw_colPos_ID = tmpWidgetNotesListCursor.getColumnIndex("ID"); - final int nlw_colPos_ACCOUNT_ID = tmpWidgetNotesListCursor.getColumnIndex("ACCOUNT_ID"); - final int nlw_colPos_CATEGORY = tmpWidgetNotesListCursor.getColumnIndex("CATEGORY"); - final int nlw_colPos_MODE = tmpWidgetNotesListCursor.getColumnIndex("MODE"); - final int nlw_colPos_THEME_MODE = tmpWidgetNotesListCursor.getColumnIndex("THEME_MODE"); - while (tmpWidgetNotesListCursor.moveToNext()) { - nlw_values.put("ID", tmpWidgetNotesListCursor.getInt(nlw_colPos_ID)); - nlw_values.put("ACCOUNTID", tmpWidgetNotesListCursor.getInt(nlw_colPos_ACCOUNT_ID)); - nlw_values.put("CATEGORY", tmpWidgetNotesListCursor.getString(nlw_colPos_CATEGORY)); - // TODO does work for categories, but not yet for FAVORITES - nlw_values.put("MODE", tmpWidgetNotesListCursor.getInt(nlw_colPos_MODE)); - nlw_values.put("THEMEMODE", tmpWidgetNotesListCursor.getInt(nlw_colPos_THEME_MODE)); - db.insert("NOTESLISTWIDGETDATA", OnConflictStrategy.REPLACE, nlw_values); + cursor.close(); + } + + private static void migrateNotesListWidgets(@NonNull SupportSQLiteDatabase db) { + final Cursor cursor = db.query("SELECT WIDGET_NOTE_LISTS.*, CATEGORIES.category_title as `CATEGORY` FROM WIDGET_NOTE_LISTS LEFT JOIN CATEGORIES ON WIDGET_NOTE_LISTS.CATEGORY_ID = CATEGORIES.category_id", null); + final ContentValues values = new ContentValues(5); + + final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID"); + final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("ACCOUNT_ID"); + final int COLUMN_POSITION_CATEGORY = cursor.getColumnIndex("CATEGORY"); + final int COLUMN_POSITION_MODE = cursor.getColumnIndex("MODE"); + final int COLUMN_POSITION_THEME_MODE = cursor.getColumnIndex("THEME_MODE"); + + while (cursor.moveToNext()) { + values.put("ID", cursor.getInt(COLUMN_POSITION_ID)); + values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID)); + values.put("CATEGORY", cursor.getString(COLUMN_POSITION_CATEGORY)); + values.put("MODE", cursor.getInt(COLUMN_POSITION_MODE)); + values.put("THEMEMODE", cursor.getInt(COLUMN_POSITION_THEME_MODE)); + db.insert("NOTESLISTWIDGETDATA", OnConflictStrategy.REPLACE, values); } - tmpWidgetNotesListCursor.close(); - - Cursor tmpWidgetSingleNotesCursor = db.query("SELECT * FROM WIDGET_SINGLE_NOTES", null); - final ContentValues snw_values = new ContentValues(4); - final int snw_colPos_ID = tmpWidgetSingleNotesCursor.getColumnIndex("ID"); - final int snw_colPos_ACCOUNT_ID = tmpWidgetSingleNotesCursor.getColumnIndex("ACCOUNT_ID"); - final int snw_colPos_NOTE_ID = tmpWidgetSingleNotesCursor.getColumnIndex("NOTE_ID"); - final int snw_colPos_THEME_MODE = tmpWidgetSingleNotesCursor.getColumnIndex("THEME_MODE"); - while (tmpWidgetSingleNotesCursor.moveToNext()) { - snw_values.put("ID", tmpWidgetSingleNotesCursor.getInt(snw_colPos_ID)); - snw_values.put("ACCOUNTID", tmpWidgetSingleNotesCursor.getInt(snw_colPos_ACCOUNT_ID)); - snw_values.put("NOTEID", tmpWidgetSingleNotesCursor.getInt(snw_colPos_NOTE_ID)); - snw_values.put("THEMEMODE", tmpWidgetSingleNotesCursor.getInt(snw_colPos_THEME_MODE)); - db.insert("SINGLENOTEWIDGETDATA", OnConflictStrategy.REPLACE, snw_values); + cursor.close(); + } + + private static void migrateSingleNotesWidgets(@NonNull SupportSQLiteDatabase db) { + final Cursor cursor = db.query("SELECT * FROM WIDGET_SINGLE_NOTES", null); + final ContentValues values = new ContentValues(4); + + final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID"); + final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("ACCOUNT_ID"); + final int COLUMN_POSITION_NOTE_ID = cursor.getColumnIndex("NOTE_ID"); + final int COLUMN_POSITION_THEME_MODE = cursor.getColumnIndex("THEME_MODE"); + + while (cursor.moveToNext()) { + values.put("ID", cursor.getInt(COLUMN_POSITION_ID)); + values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID)); + values.put("NOTEID", cursor.getInt(COLUMN_POSITION_NOTE_ID)); + values.put("THEMEMODE", cursor.getInt(COLUMN_POSITION_THEME_MODE)); + db.insert("SINGLENOTEWIDGETDATA", OnConflictStrategy.REPLACE, values); } - tmpWidgetSingleNotesCursor.close(); + cursor.close(); + } + private static void dropOldTables(@NonNull SupportSQLiteDatabase db) { db.execSQL("DROP TABLE IF EXISTS WIDGET_SINGLE_NOTES"); db.execSQL("DROP TABLE IF EXISTS WIDGET_NOTE_LISTS"); db.execSQL("DROP TABLE IF EXISTS CATEGORIES"); |