diff options
| author | 2023-03-14 22:39:31 +0000 | |
|---|---|---|
| committer | 2023-03-14 22:39:31 +0000 | |
| commit | 74dc6408fa8c30fbd95b30e326f042ce10b46aa5 (patch) | |
| tree | 02736911adddebaf9125c6eb2059c0289befede0 /packages/SettingsLib/src | |
| parent | 6f2a456d438563d8d8260e64fbc0bdcbf9aac02f (diff) | |
| parent | 8762e2b7c322a71864cac42c4f1492723956f2c6 (diff) | |
Merge "Add screensaver home control setting" into tm-qpr-dev am: 9b98c8e940 am: 8762e2b7c3
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21936160
Change-Id: I4e1e2837a559533e92306900cd7e2def03c8c9be
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'packages/SettingsLib/src')
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java b/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java index 688fc720d058..c4f09cecfa1f 100644 --- a/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java +++ b/packages/SettingsLib/src/com/android/settingslib/dream/DreamBackend.java @@ -31,13 +31,15 @@ import android.os.ServiceManager; import android.provider.Settings; import android.service.dreams.DreamService; import android.service.dreams.IDreamManager; +import android.util.ArraySet; import android.util.Log; +import com.android.internal.annotations.VisibleForTesting; + import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Set; @@ -116,7 +118,7 @@ public class DreamBackend { private final boolean mDreamsActivatedOnSleepByDefault; private final boolean mDreamsActivatedOnDockByDefault; private final Set<ComponentName> mDisabledDreams; - private final Set<Integer> mSupportedComplications; + private Set<Integer> mSupportedComplications; private static DreamBackend sInstance; public static DreamBackend getInstance(Context context) { @@ -281,7 +283,18 @@ public class DreamBackend { /** Gets all complications which have been enabled by the user. */ public Set<Integer> getEnabledComplications() { - return getComplicationsEnabled() ? mSupportedComplications : Collections.emptySet(); + final Set<Integer> enabledComplications = + getComplicationsEnabled() + ? new ArraySet<>(mSupportedComplications) : new ArraySet<>(); + + if (!getHomeControlsEnabled()) { + enabledComplications.remove(COMPLICATION_TYPE_HOME_CONTROLS); + } else if (mSupportedComplications.contains(COMPLICATION_TYPE_HOME_CONTROLS)) { + // Add home control type to list of enabled complications, even if other complications + // have been disabled. + enabledComplications.add(COMPLICATION_TYPE_HOME_CONTROLS); + } + return enabledComplications; } /** Sets complication enabled state. */ @@ -290,6 +303,18 @@ public class DreamBackend { Settings.Secure.SCREENSAVER_COMPLICATIONS_ENABLED, enabled ? 1 : 0); } + /** Sets whether home controls are enabled by the user on the dream */ + public void setHomeControlsEnabled(boolean enabled) { + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.SCREENSAVER_HOME_CONTROLS_ENABLED, enabled ? 1 : 0); + } + + /** Gets whether home controls button is enabled on the dream */ + private boolean getHomeControlsEnabled() { + return Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.SCREENSAVER_HOME_CONTROLS_ENABLED, 1) == 1; + } + /** * Gets whether complications are enabled on this device */ @@ -304,6 +329,14 @@ public class DreamBackend { return mSupportedComplications; } + /** + * Sets the list of supported complications. Should only be used in tests. + */ + @VisibleForTesting + public void setSupportedComplications(Set<Integer> complications) { + mSupportedComplications = complications; + } + public boolean isEnabled() { return getBoolean(Settings.Secure.SCREENSAVER_ENABLED, mDreamsEnabledByDefault); } |