Merge "Disable lift-to-wake when always-on is checked" into oc-dr1-dev
am: 00ac782f3e
Change-Id: I5151ab5ba2ed2dfb94460a118705b3f68a18f777
This commit is contained in:
@@ -34,11 +34,17 @@ public class AmbientDisplayAlwaysOnPreferenceController extends PreferenceContro
|
||||
private static final int MY_USER = UserHandle.myUserId();
|
||||
|
||||
private final AmbientDisplayConfiguration mConfig;
|
||||
private final OnPreferenceChangedCallback mCallback;
|
||||
|
||||
public interface OnPreferenceChangedCallback {
|
||||
void onPreferenceChanged();
|
||||
}
|
||||
|
||||
public AmbientDisplayAlwaysOnPreferenceController(Context context,
|
||||
AmbientDisplayConfiguration config) {
|
||||
AmbientDisplayConfiguration config, OnPreferenceChangedCallback callback) {
|
||||
super(context);
|
||||
mConfig = config;
|
||||
mCallback = callback;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,6 +61,9 @@ public class AmbientDisplayAlwaysOnPreferenceController extends PreferenceContro
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
int enabled = (boolean) newValue ? 1 : 0;
|
||||
Settings.Secure.putInt(mContext.getContentResolver(), DOZE_ALWAYS_ON, enabled);
|
||||
if (mCallback != null) {
|
||||
mCallback.onPreferenceChanged();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -51,11 +51,13 @@ public class AmbientDisplaySettings extends DashboardFragment {
|
||||
|
||||
private static List<PreferenceController> buildPreferenceControllers(Context context,
|
||||
Lifecycle lifecycle, AmbientDisplayConfiguration config,
|
||||
MetricsFeatureProvider metricsFeatureProvider) {
|
||||
MetricsFeatureProvider metricsFeatureProvider,
|
||||
AmbientDisplayAlwaysOnPreferenceController.OnPreferenceChangedCallback aodCallback) {
|
||||
final List<PreferenceController> controllers = new ArrayList<>();
|
||||
controllers.add(new AmbientDisplayNotificationsPreferenceController(context, config,
|
||||
metricsFeatureProvider));
|
||||
controllers.add(new AmbientDisplayAlwaysOnPreferenceController(context, config));
|
||||
controllers.add(new AmbientDisplayAlwaysOnPreferenceController(context, config,
|
||||
aodCallback));
|
||||
controllers.add(new DoubleTapScreenPreferenceController(context, lifecycle, config,
|
||||
MY_USER_ID, KEY_AMBIENT_DISPLAY_DOUBLE_TAP));
|
||||
controllers.add(new PickupGesturePreferenceController(context, lifecycle, config,
|
||||
@@ -77,7 +79,8 @@ public class AmbientDisplaySettings extends DashboardFragment {
|
||||
@Override
|
||||
protected List<PreferenceController> getPreferenceControllers(Context context) {
|
||||
return buildPreferenceControllers(context, getLifecycle(),
|
||||
new AmbientDisplayConfiguration(context), mMetricsFeatureProvider);
|
||||
new AmbientDisplayConfiguration(context), mMetricsFeatureProvider,
|
||||
() -> { updatePreferenceStates(); });
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -101,7 +104,7 @@ public class AmbientDisplaySettings extends DashboardFragment {
|
||||
@Override
|
||||
public List<PreferenceController> getPreferenceControllers(Context context) {
|
||||
return buildPreferenceControllers(context, null,
|
||||
new AmbientDisplayConfiguration(context), null);
|
||||
new AmbientDisplayConfiguration(context), null, null);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -61,6 +61,8 @@ public abstract class GesturePreferenceController extends PreferenceController
|
||||
? R.string.gesture_setting_on
|
||||
: R.string.gesture_setting_off);
|
||||
}
|
||||
// Different meanings of "Enabled" for the Preference and Controller.
|
||||
preference.setEnabled(canHandleClicks());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,4 +83,8 @@ public abstract class GesturePreferenceController extends PreferenceController
|
||||
protected abstract String getVideoPrefKey();
|
||||
|
||||
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);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canHandleClicks() {
|
||||
return mAmbientConfig.pulseOnPickupCanBeModified(mUserId);
|
||||
}
|
||||
}
|
||||
|
@@ -34,6 +34,10 @@ public class AmbientDisplayConfiguration {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean pulseOnPickupCanBeModified(int user) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean pulseOnDoubleTapAvailable() {
|
||||
return true;
|
||||
}
|
||||
|
@@ -48,11 +48,13 @@ public class AmbientDisplayAlwaysOnPreferenceControllerTest {
|
||||
@Mock SwitchPreference mSwitchPreference;
|
||||
|
||||
AmbientDisplayAlwaysOnPreferenceController mController;
|
||||
boolean mCallbackInvoked;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mController = new AmbientDisplayAlwaysOnPreferenceController(mContext, mConfig);
|
||||
mController = new AmbientDisplayAlwaysOnPreferenceController(mContext, mConfig,
|
||||
() -> { mCallbackInvoked = true; });
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -75,6 +77,13 @@ public class AmbientDisplayAlwaysOnPreferenceControllerTest {
|
||||
verify(mSwitchPreference).setChecked(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPreferenceChange_callback() throws Exception {
|
||||
assertThat(mCallbackInvoked).isFalse();
|
||||
mController.onPreferenceChange(mSwitchPreference, true);
|
||||
assertThat(mCallbackInvoked).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPreferenceChange_enable() throws Exception {
|
||||
mController.onPreferenceChange(mSwitchPreference, true);
|
||||
|
@@ -83,4 +83,18 @@ public class PIckupGesturePreferenceControllerTest {
|
||||
|
||||
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