Disable lift-to-wake when always-on is checked
The setting has little to no meaning when AOD is on. Test: make ROBOTEST_FILTER=AmbientDisplayAlwaysOnPreferenceControllerTest RunSettingsRoboTests -j Bug:62391405 Change-Id:If5492227755ca81ec0bcf921a81e2bfd33a85b9c
This commit is contained in:
@@ -36,11 +36,17 @@ public class AmbientDisplayAlwaysOnPreferenceController extends
|
||||
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
|
||||
@@ -57,6 +63,9 @@ public class AmbientDisplayAlwaysOnPreferenceController extends
|
||||
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;
|
||||
}
|
||||
|
||||
|
@@ -50,11 +50,13 @@ public class AmbientDisplaySettings extends DashboardFragment {
|
||||
|
||||
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
|
||||
Lifecycle lifecycle, AmbientDisplayConfiguration config,
|
||||
MetricsFeatureProvider metricsFeatureProvider) {
|
||||
MetricsFeatureProvider metricsFeatureProvider,
|
||||
AmbientDisplayAlwaysOnPreferenceController.OnPreferenceChangedCallback aodCallback) {
|
||||
final List<AbstractPreferenceController> 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,
|
||||
@@ -76,7 +78,8 @@ public class AmbientDisplaySettings extends DashboardFragment {
|
||||
@Override
|
||||
protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
|
||||
return buildPreferenceControllers(context, getLifecycle(),
|
||||
new AmbientDisplayConfiguration(context), mMetricsFeatureProvider);
|
||||
new AmbientDisplayConfiguration(context), mMetricsFeatureProvider,
|
||||
() -> { updatePreferenceStates(); });
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -100,7 +103,7 @@ public class AmbientDisplaySettings extends DashboardFragment {
|
||||
@Override
|
||||
public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
|
||||
return buildPreferenceControllers(context, null,
|
||||
new AmbientDisplayConfiguration(context), null);
|
||||
new AmbientDisplayConfiguration(context), null, null);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user