From be55d969ff4fd0141433fd83c485b8c71e5bcaa8 Mon Sep 17 00:00:00 2001 From: Charlie Anderson Date: Wed, 11 Dec 2024 22:11:09 +0000 Subject: [PATCH] Prevent bad grid configuration by making sure RestoreDbTask updates IDP correctly. IPD#reset() was resetting the internal IDP dbFile to the factory default instead of current grid/db This lead to LoaderTask and grid migration creating an empty DB for the wrong grid size, while the restored DB remained unused. Leading to an empty home screen because an empty DB file was used. Bug: 377510898 Flag: EXEMPT bugfix Test: manually testing backup & restore with various grid sizes (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:3eec1895edab17b713e8148dcfe763083e99c185) Merged-In: I709201e484afb8f12a4fde21198d2c5793d89ca1 Change-Id: I709201e484afb8f12a4fde21198d2c5793d89ca1 --- .../android/launcher3/InvariantDeviceProfile.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index dddc43f913..aefb2b1594 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -245,10 +245,6 @@ public class InvariantDeviceProfile implements SafeCloseable { @TargetApi(23) private InvariantDeviceProfile(Context context) { String gridName = getCurrentGridName(context); - FileLog.d(TAG, "New InvariantDeviceProfile, before initGrid(): " - + "gridName:" + gridName - + ", LauncherPrefs GRID_NAME:" + LauncherPrefs.get(context).get(GRID_NAME) - + ", LauncherPrefs DB_FILE:" + LauncherPrefs.get(context).get(DB_FILE)); initGrid(context, gridName); DisplayController.INSTANCE.get(context).setPriorityListener( (displayContext, info, flags) -> { @@ -353,6 +349,11 @@ public class InvariantDeviceProfile implements SafeCloseable { } private String initGrid(Context context, String gridName) { + FileLog.d(TAG, "Before initGrid:" + + "gridName:" + gridName + + ", dbFile:" + dbFile + + ", LauncherPrefs GRID_NAME:" + LauncherPrefs.get(context).get(GRID_NAME) + + ", LauncherPrefs DB_FILE:" + LauncherPrefs.get(context).get(DB_FILE)); Info displayInfo = DisplayController.INSTANCE.get(context).getInfo(); List allOptions = getPredefinedDeviceProfiles( context, @@ -378,8 +379,9 @@ public class InvariantDeviceProfile implements SafeCloseable { } initGrid(context, displayInfo, displayOption); - FileLog.d(TAG, "initGrid: " + FileLog.d(TAG, "After initGrid:" + "gridName:" + gridName + + ", dbFile:" + dbFile + ", LauncherPrefs GRID_NAME:" + LauncherPrefs.get(context).get(GRID_NAME) + ", LauncherPrefs DB_FILE:" + LauncherPrefs.get(context).get(DB_FILE)); return displayOption.grid.name; @@ -397,7 +399,7 @@ public class InvariantDeviceProfile implements SafeCloseable { */ @Deprecated public void reset(Context context) { - initGrid(context, getDefaultGridName(context)); + initGrid(context, getCurrentGridName(context)); } @VisibleForTesting