Merge "Disable lift-to-wake when always-on is checked"
This commit is contained in:
committed by
Android (Google) Code Review
commit
85c0be9bf4
@@ -36,11 +36,17 @@ public class AmbientDisplayAlwaysOnPreferenceController extends
|
|||||||
private static final int MY_USER = UserHandle.myUserId();
|
private static final int MY_USER = UserHandle.myUserId();
|
||||||
|
|
||||||
private final AmbientDisplayConfiguration mConfig;
|
private final AmbientDisplayConfiguration mConfig;
|
||||||
|
private final OnPreferenceChangedCallback mCallback;
|
||||||
|
|
||||||
|
public interface OnPreferenceChangedCallback {
|
||||||
|
void onPreferenceChanged();
|
||||||
|
}
|
||||||
|
|
||||||
public AmbientDisplayAlwaysOnPreferenceController(Context context,
|
public AmbientDisplayAlwaysOnPreferenceController(Context context,
|
||||||
AmbientDisplayConfiguration config) {
|
AmbientDisplayConfiguration config, OnPreferenceChangedCallback callback) {
|
||||||
super(context);
|
super(context);
|
||||||
mConfig = config;
|
mConfig = config;
|
||||||
|
mCallback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -57,6 +63,9 @@ public class AmbientDisplayAlwaysOnPreferenceController extends
|
|||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
int enabled = (boolean) newValue ? 1 : 0;
|
int enabled = (boolean) newValue ? 1 : 0;
|
||||||
Settings.Secure.putInt(mContext.getContentResolver(), DOZE_ALWAYS_ON, enabled);
|
Settings.Secure.putInt(mContext.getContentResolver(), DOZE_ALWAYS_ON, enabled);
|
||||||
|
if (mCallback != null) {
|
||||||
|
mCallback.onPreferenceChanged();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -50,11 +50,13 @@ public class AmbientDisplaySettings extends DashboardFragment {
|
|||||||
|
|
||||||
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
|
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
|
||||||
Lifecycle lifecycle, AmbientDisplayConfiguration config,
|
Lifecycle lifecycle, AmbientDisplayConfiguration config,
|
||||||
MetricsFeatureProvider metricsFeatureProvider) {
|
MetricsFeatureProvider metricsFeatureProvider,
|
||||||
|
AmbientDisplayAlwaysOnPreferenceController.OnPreferenceChangedCallback aodCallback) {
|
||||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||||
controllers.add(new AmbientDisplayNotificationsPreferenceController(context, config,
|
controllers.add(new AmbientDisplayNotificationsPreferenceController(context, config,
|
||||||
metricsFeatureProvider));
|
metricsFeatureProvider));
|
||||||
controllers.add(new AmbientDisplayAlwaysOnPreferenceController(context, config));
|
controllers.add(new AmbientDisplayAlwaysOnPreferenceController(context, config,
|
||||||
|
aodCallback));
|
||||||
controllers.add(new DoubleTapScreenPreferenceController(context, lifecycle, config,
|
controllers.add(new DoubleTapScreenPreferenceController(context, lifecycle, config,
|
||||||
MY_USER_ID, KEY_AMBIENT_DISPLAY_DOUBLE_TAP));
|
MY_USER_ID, KEY_AMBIENT_DISPLAY_DOUBLE_TAP));
|
||||||
controllers.add(new PickupGesturePreferenceController(context, lifecycle, config,
|
controllers.add(new PickupGesturePreferenceController(context, lifecycle, config,
|
||||||
@@ -76,7 +78,8 @@ public class AmbientDisplaySettings extends DashboardFragment {
|
|||||||
@Override
|
@Override
|
||||||
protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
|
protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
|
||||||
return buildPreferenceControllers(context, getLifecycle(),
|
return buildPreferenceControllers(context, getLifecycle(),
|
||||||
new AmbientDisplayConfiguration(context), mMetricsFeatureProvider);
|
new AmbientDisplayConfiguration(context), mMetricsFeatureProvider,
|
||||||
|
() -> { updatePreferenceStates(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -100,7 +103,7 @@ public class AmbientDisplaySettings extends DashboardFragment {
|
|||||||
@Override
|
@Override
|
||||||
public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
|
public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
|
||||||
return buildPreferenceControllers(context, null,
|
return buildPreferenceControllers(context, null,
|
||||||
new AmbientDisplayConfiguration(context), null);
|
new AmbientDisplayConfiguration(context), null, null);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -71,6 +71,8 @@ public abstract class GesturePreferenceController extends AbstractPreferenceCont
|
|||||||
? R.string.gesture_setting_on
|
? R.string.gesture_setting_on
|
||||||
: R.string.gesture_setting_off);
|
: R.string.gesture_setting_off);
|
||||||
}
|
}
|
||||||
|
// Different meanings of "Enabled" for the Preference and Controller.
|
||||||
|
preference.setEnabled(canHandleClicks());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,4 +108,8 @@ public abstract class GesturePreferenceController extends AbstractPreferenceCont
|
|||||||
protected abstract String getVideoPrefKey();
|
protected abstract String getVideoPrefKey();
|
||||||
|
|
||||||
protected abstract boolean isSwitchPrefEnabled();
|
protected abstract boolean isSwitchPrefEnabled();
|
||||||
|
|
||||||
|
protected boolean canHandleClicks() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -76,4 +76,9 @@ public class PickupGesturePreferenceController extends GesturePreferenceControll
|
|||||||
Settings.Secure.DOZE_PULSE_ON_PICK_UP, enabled ? 1 : 0);
|
Settings.Secure.DOZE_PULSE_ON_PICK_UP, enabled ? 1 : 0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canHandleClicks() {
|
||||||
|
return mAmbientConfig.pulseOnPickupCanBeModified(mUserId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,6 +34,10 @@ public class AmbientDisplayConfiguration {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean pulseOnPickupCanBeModified(int user) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean pulseOnDoubleTapAvailable() {
|
public boolean pulseOnDoubleTapAvailable() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -48,11 +48,13 @@ public class AmbientDisplayAlwaysOnPreferenceControllerTest {
|
|||||||
@Mock SwitchPreference mSwitchPreference;
|
@Mock SwitchPreference mSwitchPreference;
|
||||||
|
|
||||||
AmbientDisplayAlwaysOnPreferenceController mController;
|
AmbientDisplayAlwaysOnPreferenceController mController;
|
||||||
|
boolean mCallbackInvoked;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mController = new AmbientDisplayAlwaysOnPreferenceController(mContext, mConfig);
|
mController = new AmbientDisplayAlwaysOnPreferenceController(mContext, mConfig,
|
||||||
|
() -> { mCallbackInvoked = true; });
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -75,6 +77,13 @@ public class AmbientDisplayAlwaysOnPreferenceControllerTest {
|
|||||||
verify(mSwitchPreference).setChecked(false);
|
verify(mSwitchPreference).setChecked(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onPreferenceChange_callback() throws Exception {
|
||||||
|
assertThat(mCallbackInvoked).isFalse();
|
||||||
|
mController.onPreferenceChange(mSwitchPreference, true);
|
||||||
|
assertThat(mCallbackInvoked).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onPreferenceChange_enable() throws Exception {
|
public void onPreferenceChange_enable() throws Exception {
|
||||||
mController.onPreferenceChange(mSwitchPreference, true);
|
mController.onPreferenceChange(mSwitchPreference, true);
|
||||||
|
@@ -83,4 +83,18 @@ public class PIckupGesturePreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.isSwitchPrefEnabled()).isFalse();
|
assertThat(mController.isSwitchPrefEnabled()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCanHandleClicks_configIsSet_shouldReturnTrue() {
|
||||||
|
when(mAmbientDisplayConfiguration.pulseOnPickupCanBeModified(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
assertThat(mController.canHandleClicks()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCanHandleClicks_configIsNotSet_shouldReturnFalse() {
|
||||||
|
when(mAmbientDisplayConfiguration.pulseOnPickupCanBeModified(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
|
assertThat(mController.canHandleClicks()).isFalse();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user