From 72e8f9de9b83c503662c1ddc3af755e32038eff3 Mon Sep 17 00:00:00 2001 From: Xiaowen Lei Date: Sat, 22 Jan 2022 01:13:32 +0000 Subject: [PATCH 1/2] Don't set initial value for SCREENSAVER_COMPONENTS. We need to use SCREENSAVER_COMPONENTS==null to indicate that the user hasn't selected a dream. Test: atest NudgeToSetupDreamCallbackTest Test: manually flash device and run Bug: 213368707 Change-Id: I7140197690d266fbd70cf38cd7a96f175b247a75 --- .../src/com/android/providers/settings/DatabaseHelper.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java index dec3245a102f6..dc7632dbc4a99 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java @@ -1176,8 +1176,6 @@ class DatabaseHelper extends SQLiteOpenHelper { com.android.internal.R.bool.config_dreamsActivatedOnDockByDefault); loadBooleanSetting(stmt, Settings.Secure.SCREENSAVER_ACTIVATE_ON_SLEEP, com.android.internal.R.bool.config_dreamsActivatedOnSleepByDefault); - loadStringSetting(stmt, Settings.Secure.SCREENSAVER_COMPONENTS, - com.android.internal.R.string.config_dreamsDefaultComponent); loadStringSetting(stmt, Settings.Secure.SCREENSAVER_DEFAULT_COMPONENT, com.android.internal.R.string.config_dreamsDefaultComponent); @@ -2362,8 +2360,6 @@ class DatabaseHelper extends SQLiteOpenHelper { com.android.internal.R.bool.config_dreamsActivatedOnDockByDefault); loadBooleanSetting(stmt, Settings.Secure.SCREENSAVER_ACTIVATE_ON_SLEEP, com.android.internal.R.bool.config_dreamsActivatedOnSleepByDefault); - loadStringSetting(stmt, Settings.Secure.SCREENSAVER_COMPONENTS, - com.android.internal.R.string.config_dreamsDefaultComponent); loadStringSetting(stmt, Settings.Secure.SCREENSAVER_DEFAULT_COMPONENT, com.android.internal.R.string.config_dreamsDefaultComponent); From a272643fa0f176ad3e465648ab3bf813627a54e4 Mon Sep 17 00:00:00 2001 From: Xiaowen Lei Date: Sat, 22 Jan 2022 01:15:08 +0000 Subject: [PATCH 2/2] Fix bug that the dream is set to "" when null is passed. Currently if null is passed, the active dream is set to "" instead of null. This is problematic because our code doesn't have logic for handling "" like null. Test: atest NudgeToSetupDreamCallbackTest Test: manually flash device and run Test: atest DreamManagerServiceTests Bug: 213368707 Change-Id: Ic4922fb61f7ceef9fc48e81f1455872861e34af5 --- .../android/server/dreams/DreamManagerService.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/dreams/DreamManagerService.java b/services/core/java/com/android/server/dreams/DreamManagerService.java index 258689a3ed933..611b28850efe2 100644 --- a/services/core/java/com/android/server/dreams/DreamManagerService.java +++ b/services/core/java/com/android/server/dreams/DreamManagerService.java @@ -484,14 +484,15 @@ public final class DreamManagerService extends SystemService { } private static String componentsToString(ComponentName[] componentNames) { + if (componentNames == null) { + return null; + } StringBuilder names = new StringBuilder(); - if (componentNames != null) { - for (ComponentName componentName : componentNames) { - if (names.length() > 0) { - names.append(','); - } - names.append(componentName.flattenToString()); + for (ComponentName componentName : componentNames) { + if (names.length() > 0) { + names.append(','); } + names.append(componentName.flattenToString()); } return names.toString(); }