Merge "Disable dreams home controls button when disabled on lockscreen" into udc-dev am: 68aff1a319

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23322078

Change-Id: I71e8016a611a9b24770358f1ebb5da6be2d9adc3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Lucas Silva
2023-05-22 21:08:59 +00:00
committed by Automerger Merge Worker
3 changed files with 45 additions and 4 deletions

View File

@@ -111,6 +111,9 @@ public class DreamBackend {
public static final int COMPLICATION_TYPE_SMARTSPACE = 7;
public static final int COMPLICATION_TYPE_MEDIA_ENTRY = 8;
private static final int SCREENSAVER_HOME_CONTROLS_ENABLED_DEFAULT = 1;
private static final int LOCKSCREEN_SHOW_CONTROLS_DEFAULT = 0;
private final Context mContext;
private final IDreamManager mDreamManager;
private final DreamInfoComparator mComparator;
@@ -311,8 +314,14 @@ public class DreamBackend {
/** 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;
return Settings.Secure.getInt(
mContext.getContentResolver(),
Settings.Secure.LOCKSCREEN_SHOW_CONTROLS,
LOCKSCREEN_SHOW_CONTROLS_DEFAULT) == 1
&& Settings.Secure.getInt(
mContext.getContentResolver(),
Settings.Secure.SCREENSAVER_HOME_CONTROLS_ENABLED,
SCREENSAVER_HOME_CONTROLS_ENABLED_DEFAULT) == 1;
}
/**

View File

@@ -28,6 +28,7 @@ import static org.mockito.Mockito.when;
import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
import android.provider.Settings;
import org.junit.After;
import org.junit.Before;
@@ -84,6 +85,7 @@ public final class DreamBackendTest {
@Test
public void testComplicationsEnabledByDefault() {
setControlsEnabledOnLockscreen(true);
assertThat(mBackend.getComplicationsEnabled()).isTrue();
assertThat(mBackend.getEnabledComplications()).containsExactlyElementsIn(
SUPPORTED_DREAM_COMPLICATIONS_LIST);
@@ -91,6 +93,7 @@ public final class DreamBackendTest {
@Test
public void testEnableComplicationExplicitly() {
setControlsEnabledOnLockscreen(true);
mBackend.setComplicationsEnabled(true);
assertThat(mBackend.getEnabledComplications()).containsExactlyElementsIn(
SUPPORTED_DREAM_COMPLICATIONS_LIST);
@@ -99,6 +102,7 @@ public final class DreamBackendTest {
@Test
public void testDisableComplications() {
setControlsEnabledOnLockscreen(true);
mBackend.setComplicationsEnabled(false);
assertThat(mBackend.getEnabledComplications())
.containsExactly(COMPLICATION_TYPE_HOME_CONTROLS);
@@ -107,6 +111,7 @@ public final class DreamBackendTest {
@Test
public void testHomeControlsDisabled_ComplicationsEnabled() {
setControlsEnabledOnLockscreen(true);
mBackend.setComplicationsEnabled(true);
mBackend.setHomeControlsEnabled(false);
// Home controls should not be enabled, only date and time.
@@ -118,6 +123,7 @@ public final class DreamBackendTest {
@Test
public void testHomeControlsDisabled_ComplicationsDisabled() {
setControlsEnabledOnLockscreen(true);
mBackend.setComplicationsEnabled(false);
mBackend.setHomeControlsEnabled(false);
assertThat(mBackend.getEnabledComplications()).isEmpty();
@@ -125,9 +131,9 @@ public final class DreamBackendTest {
@Test
public void testHomeControlsEnabled_ComplicationsDisabled() {
setControlsEnabledOnLockscreen(true);
mBackend.setComplicationsEnabled(false);
mBackend.setHomeControlsEnabled(true);
// Home controls should not be enabled, only date and time.
final List<Integer> enabledComplications =
Collections.singletonList(COMPLICATION_TYPE_HOME_CONTROLS);
assertThat(mBackend.getEnabledComplications())
@@ -136,9 +142,9 @@ public final class DreamBackendTest {
@Test
public void testHomeControlsEnabled_ComplicationsEnabled() {
setControlsEnabledOnLockscreen(true);
mBackend.setComplicationsEnabled(true);
mBackend.setHomeControlsEnabled(true);
// Home controls should not be enabled, only date and time.
final List<Integer> enabledComplications =
Arrays.asList(
COMPLICATION_TYPE_HOME_CONTROLS,
@@ -148,4 +154,26 @@ public final class DreamBackendTest {
assertThat(mBackend.getEnabledComplications())
.containsExactlyElementsIn(enabledComplications);
}
@Test
public void testHomeControlsEnabled_lockscreenDisabled() {
setControlsEnabledOnLockscreen(false);
mBackend.setComplicationsEnabled(true);
mBackend.setHomeControlsEnabled(true);
// Home controls should not be enabled, only date and time.
final List<Integer> enabledComplications =
Arrays.asList(
COMPLICATION_TYPE_DATE,
COMPLICATION_TYPE_TIME
);
assertThat(mBackend.getEnabledComplications())
.containsExactlyElementsIn(enabledComplications);
}
private void setControlsEnabledOnLockscreen(boolean enabled) {
Settings.Secure.putInt(
mContext.getContentResolver(),
Settings.Secure.LOCKSCREEN_SHOW_CONTROLS,
enabled ? 1 : 0);
}
}

View File

@@ -77,6 +77,10 @@ public class ComplicationTypesUpdater extends ConditionalCoreStartable {
Settings.Secure.SCREENSAVER_HOME_CONTROLS_ENABLED,
settingsObserver,
UserHandle.myUserId());
mSecureSettings.registerContentObserverForUser(
Settings.Secure.LOCKSCREEN_SHOW_CONTROLS,
settingsObserver,
UserHandle.myUserId());
settingsObserver.onChange(false);
}