GesturesSettingPreferenceController to Toggle

Convert GesturesSettingPreferenceController to
TogglePreferenceController,
All of its children need follow the change,
add setter and robotest for them:
AssistGestureSettingsPreferenceController
DoubleTapPowerPreferenceController
DoubleTapScreenPreferenceController
DoubleTwistPreferenceController
PickupGesturePreferenceController
SwipeToNotificationPreferenceController

Change-Id: I792b2d370eea828bf345fb2b1cc3eac260eb66f4
Merged-In: I792b2d370eea828bf345fb2b1cc3eac260eb66f4
Fixes: 74913806
Fixes: 67998110
Fixes: 67998098
Fixes: 67998048
Fixes: 67998069
Fixes: 67997452
Test: make RunSettingsRoboTests
This commit is contained in:
HJ ChangLiao
2018-04-02 17:06:55 +08:00
parent 85c34077d3
commit 3c4c3fc5c7
40 changed files with 320 additions and 429 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.gestures;
import android.content.ContentResolver;
import android.content.Context;
import android.provider.Settings;
import android.support.annotation.NonNull;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R;
@@ -33,6 +34,7 @@ public class GesturesSettingPreferenceController extends BasePreferenceControlle
private List<AbstractPreferenceController> mGestureControllers;
private static final String KEY_GESTURES_SETTINGS = "gesture_settings";
private static final String FAKE_PREF_KEY = "fake_key_only_for_get_available";
public GesturesSettingPreferenceController(Context context) {
super(context, KEY_GESTURES_SETTINGS);
@@ -42,16 +44,38 @@ public class GesturesSettingPreferenceController extends BasePreferenceControlle
@Override
public int getAvailabilityStatus() {
if (mGestureControllers == null) {
mGestureControllers = GestureSettings.buildPreferenceControllers(mContext,
null /* lifecycle */, new AmbientDisplayConfiguration(mContext));
mGestureControllers = buildAllPreferenceControllers(mContext);
}
boolean isAvailable = false;
for (AbstractPreferenceController controller : mGestureControllers) {
isAvailable = isAvailable || controller.isAvailable();
}
return isAvailable
? AVAILABLE
: DISABLED_UNSUPPORTED;
return isAvailable ? AVAILABLE : DISABLED_UNSUPPORTED;
}
/**
* Get all controllers for their availability status when doing getAvailabilityStatus.
* Do not use this method to add controllers into fragment, most of below controllers already
* convert to TogglePreferenceController, please register them in xml.
* The key is fake because those controllers won't be use to control preference.
*/
private static List<AbstractPreferenceController> buildAllPreferenceControllers(
@NonNull Context context) {
final AmbientDisplayConfiguration ambientDisplayConfiguration =
new AmbientDisplayConfiguration(context);
final List<AbstractPreferenceController> controllers =
GestureSettings.buildPreferenceControllers(context, null);
controllers.add(new AssistGestureSettingsPreferenceController(context, FAKE_PREF_KEY)
.setAssistOnly(false));
controllers.add(new SwipeToNotificationPreferenceController(context, FAKE_PREF_KEY));
controllers.add(new DoubleTwistPreferenceController(context, FAKE_PREF_KEY));
controllers.add(new DoubleTapPowerPreferenceController(context, FAKE_PREF_KEY));
controllers.add(new PickupGesturePreferenceController(context, FAKE_PREF_KEY)
.setConfig(ambientDisplayConfiguration));
controllers.add(new DoubleTapScreenPreferenceController(context, FAKE_PREF_KEY)
.setConfig(ambientDisplayConfiguration));
return controllers;
}
@Override