From 929e3a2742671d7501d448bc9a11e5b82be4c61f Mon Sep 17 00:00:00 2001 From: Andras Kloczl Date: Mon, 6 Sep 2021 03:30:30 +0100 Subject: [PATCH] Remove widget panel related leftover workspace items Upgrade launcher DB version and remove items with widget panel IDs from the database. Test: follow test instructions (in CL comment) Bug: 198254728 Change-Id: I077a5f70ee93b7eca738b38f6b0e788d49f7ce70 --- res/raw/downgrade_schema.json | 3 ++- src/com/android/launcher3/LauncherProvider.java | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/res/raw/downgrade_schema.json b/res/raw/downgrade_schema.json index bc25cece2d..14eac9f6ed 100644 --- a/res/raw/downgrade_schema.json +++ b/res/raw/downgrade_schema.json @@ -2,8 +2,9 @@ // Note: Comments are not supported in JSON schema, but android parser is lenient. // Maximum DB version supported by this schema - "version" : 29, + "version" : 30, + "downgrade_to_29" : [], "downgrade_to_28" : [ "ALTER TABLE favorites RENAME TO temp_favorites;", "CREATE TABLE favorites(_id INTEGER PRIMARY KEY, title TEXT, intent TEXT, container INTEGER, screen INTEGER, cellX INTEGER, cellY INTEGER, spanX INTEGER, spanY INTEGER, itemType INTEGER, appWidgetId INTEGER NOT NULL DEFAULT - 1, iconPackage TEXT, iconResource TEXT, icon BLOB, appWidgetProvider TEXT, modified INTEGER NOT NULL DEFAULT 0, restored INTEGER NOT NULL DEFAULT 0, profileId INTEGER DEFAULT 0, rank INTEGER NOT NULL DEFAULT 0, options INTEGER NOT NULL DEFAULT 0);", diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index 49f20c6272..df09f29241 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -97,7 +97,7 @@ public class LauncherProvider extends ContentProvider { * Represents the schema of the database. Changes in scheme need not be backwards compatible. * When increasing the scheme version, ensure that downgrade_schema.json is updated */ - public static final int SCHEMA_VERSION = 29; + public static final int SCHEMA_VERSION = 30; public static final String AUTHORITY = BuildConfig.APPLICATION_ID + ".settings"; public static final String KEY_LAYOUT_PROVIDER_AUTHORITY = "KEY_LAYOUT_PROVIDER_AUTHORITY"; @@ -864,6 +864,11 @@ public class LauncherProvider extends ContentProvider { } } case 29: { + // Remove widget panel related leftover workspace items + db.delete(Favorites.TABLE_NAME, Utilities.createDbSelectionQuery( + Favorites.SCREEN, IntArray.wrap(-777, -778)), null); + } + case 30: { // DB Upgraded successfully return; }