diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index c0c8618aaf96e..721072804f899 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2399,6 +2399,9 @@ false com.android.deskclock/com.android.deskclock.Screensaver + + + false diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index f6393503ebd5c..f42ff01354859 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2222,6 +2222,7 @@ + diff --git a/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java b/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java index 7168f3cf1f9cd..46e31ceb74857 100644 --- a/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java +++ b/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java @@ -116,6 +116,7 @@ public class DreamBackend { private final boolean mDreamsEnabledByDefault; private final boolean mDreamsActivatedOnSleepByDefault; private final boolean mDreamsActivatedOnDockByDefault; + private final Set mDisabledDreams; private final Set mSupportedComplications; private final Set mDefaultEnabledComplications; @@ -143,6 +144,10 @@ public class DreamBackend { com.android.internal.R.bool.config_dreamsActivatedOnDockByDefault); mDreamPreviewDefault = resources.getDrawable( com.android.internal.R.drawable.default_dream_preview); + mDisabledDreams = Arrays.stream(resources.getStringArray( + com.android.internal.R.array.config_disabledDreamComponents)) + .map(ComponentName::unflattenFromString) + .collect(Collectors.toSet()); mSupportedComplications = Arrays.stream(resources.getIntArray(R.array.config_supportedDreamComplications)) @@ -166,14 +171,16 @@ public class DreamBackend { PackageManager.GET_META_DATA); List dreamInfos = new ArrayList<>(resolveInfos.size()); for (ResolveInfo resolveInfo : resolveInfos) { - if (resolveInfo.serviceInfo == null) { + final ComponentName componentName = getDreamComponentName(resolveInfo); + if (componentName == null || mDisabledDreams.contains(componentName)) { continue; } + DreamInfo dreamInfo = new DreamInfo(); dreamInfo.caption = resolveInfo.loadLabel(pm); dreamInfo.icon = resolveInfo.loadIcon(pm); dreamInfo.description = getDescription(resolveInfo, pm); - dreamInfo.componentName = getDreamComponentName(resolveInfo); + dreamInfo.componentName = componentName; dreamInfo.isActive = dreamInfo.componentName.equals(activeDream); final DreamMetadata dreamMetadata = getDreamMetadata(pm, resolveInfo);