From 9b0862f268e48c3437819d6f455ace2f17643f93 Mon Sep 17 00:00:00 2001 From: Lucas Silva Date: Mon, 31 Jan 2022 21:49:24 +0000 Subject: [PATCH 1/2] Move dream complication config to framework. SettingsLib doesn't support runtime overlays well, see http://b/33694217. Moving these to framework so they can be overlayed. Test: locally on device Bug: 217222711 Change-Id: I6a460086b0df92b1c22ac975e4c604878ab2016a --- core/res/res/values/config.xml | 6 ++++++ core/res/res/values/symbols.xml | 2 ++ packages/SettingsLib/res/values/config.xml | 5 ----- .../com/android/settingslib/dream/DreamBackend.java | 12 ++++++------ .../android/settingslib/dream/DreamBackendTest.java | 8 ++++---- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 842065a7d987c..86980d2fa2651 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2376,6 +2376,12 @@ + + + + + + false diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 85eed85a9e70f..a51d7ab3917f0 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2213,6 +2213,8 @@ + + diff --git a/packages/SettingsLib/res/values/config.xml b/packages/SettingsLib/res/values/config.xml index b150e0169a962..45253bb7944af 100644 --- a/packages/SettingsLib/res/values/config.xml +++ b/packages/SettingsLib/res/values/config.xml @@ -28,9 +28,4 @@ false - - - - - \ No newline at end of file diff --git a/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java b/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java index 6bf43e5280094..a000c099347d1 100644 --- a/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java +++ b/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java @@ -151,13 +151,13 @@ public class DreamBackend { .map(ComponentName::unflattenFromString) .collect(Collectors.toSet()); - mSupportedComplications = - Arrays.stream(resources.getIntArray(R.array.config_supportedDreamComplications)) - .boxed() - .collect(Collectors.toSet()); + mSupportedComplications = Arrays.stream(resources.getIntArray( + com.android.internal.R.array.config_supportedDreamComplications)) + .boxed() + .collect(Collectors.toSet()); - mDefaultEnabledComplications = Arrays.stream( - resources.getIntArray(R.array.config_dreamComplicationsEnabledByDefault)) + mDefaultEnabledComplications = Arrays.stream(resources.getIntArray( + com.android.internal.R.array.config_dreamComplicationsEnabledByDefault)) .boxed() // A complication can only be enabled by default if it is also supported. .filter(mSupportedComplications::contains) diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/dream/DreamBackendTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/dream/DreamBackendTest.java index 53d465305a69e..89a5d1bd01cbc 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/dream/DreamBackendTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/dream/DreamBackendTest.java @@ -24,8 +24,6 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.res.Resources; -import com.android.settingslib.R; - import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -53,9 +51,11 @@ public final class DreamBackendTest { final Resources res = mock(Resources.class); when(mContext.getResources()).thenReturn(res); - when(res.getIntArray(R.array.config_supportedDreamComplications)).thenReturn( + when(res.getIntArray( + com.android.internal.R.array.config_supportedDreamComplications)).thenReturn( SUPPORTED_DREAM_COMPLICATIONS); - when(res.getIntArray(R.array.config_dreamComplicationsEnabledByDefault)).thenReturn( + when(res.getIntArray( + com.android.internal.R.array.config_dreamComplicationsEnabledByDefault)).thenReturn( DEFAULT_DREAM_COMPLICATIONS); mBackend = new DreamBackend(mContext); } From 42e19912c8a397c6b8599ca414edcb5682c4327f Mon Sep 17 00:00:00 2001 From: Lucas Silva Date: Tue, 1 Feb 2022 22:11:42 +0000 Subject: [PATCH 2/2] Fix DreamBackendTest In the test, getStringArray is currently returning null which is causing a null pointer exception. This only happens in testing when we mock Resources, and it cannot return null in prod. Test: atest SettingsLibRoboTests:DreamBackendTest Change-Id: I8d7e21e26d3d786fce977c530f7537c549a1b678 --- .../src/com/android/settingslib/dream/DreamBackendTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/dream/DreamBackendTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/dream/DreamBackendTest.java index 89a5d1bd01cbc..86f7850cf1f24 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/dream/DreamBackendTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/dream/DreamBackendTest.java @@ -57,6 +57,9 @@ public final class DreamBackendTest { when(res.getIntArray( com.android.internal.R.array.config_dreamComplicationsEnabledByDefault)).thenReturn( DEFAULT_DREAM_COMPLICATIONS); + when(res.getStringArray( + com.android.internal.R.array.config_disabledDreamComponents)).thenReturn( + new String[]{}); mBackend = new DreamBackend(mContext); }