diff --git a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java index d38902e50b4..213259be012 100644 --- a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java +++ b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java @@ -64,4 +64,14 @@ public class DoubleTapPowerPreferenceController extends GesturePreferenceControl Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0); return cameraDisabled == 0; } + + @Override + public ResultPayload getResultPayload() { + ArrayMap valueMap = new ArrayMap<>(); + valueMap.put(0, true); + valueMap.put(1, false); + + return new InlineSwitchPayload(Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, + ResultPayload.SettingsSource.SECURE, valueMap); + } } diff --git a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java index 49e8f51758e..02d8dd73b01 100644 --- a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java +++ b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java @@ -70,4 +70,14 @@ public class DoubleTapScreenPreferenceController extends GesturePreferenceContro protected boolean isSwitchPrefEnabled() { return mAmbientConfig.pulseOnDoubleTapEnabled(mUserId); } + + @Override + public ResultPayload getResultPayload() { + ArrayMap valueMap = new ArrayMap<>(); + valueMap.put(1, true); + valueMap.put(0, false); + + return new InlineSwitchPayload(Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP, + ResultPayload.SettingsSource.SECURE, valueMap); + } } diff --git a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java index c5174fd536b..fea1c9dab18 100644 --- a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java +++ b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java @@ -85,4 +85,14 @@ public class DoubleTwistPreferenceController extends GesturePreferenceController } return false; } + + @Override + public ResultPayload getResultPayload() { + ArrayMap valueMap = new ArrayMap<>(); + valueMap.put(1, true); + valueMap.put(0, false); + + return new InlineSwitchPayload(Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, + ResultPayload.SettingsSource.SECURE, valueMap); + } } diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java index 390fd4c8db2..db6925e8348 100644 --- a/src/com/android/settings/gestures/GestureSettings.java +++ b/src/com/android/settings/gestures/GestureSettings.java @@ -170,5 +170,24 @@ public class GestureSettings extends DashboardFragment { } return result; } + + @Override + public List getPreferenceControllers(Context context) { + List controllers = new ArrayList<>(); + AmbientDisplayConfiguration ambientConfig + = new AmbientDisplayConfiguration(context); + + controllers.add(new DoubleTapPowerPreferenceController(context, + null /* lifecycle */)); + controllers.add(new PickupGesturePreferenceController(context, + null /* lifecycle */, ambientConfig, UserHandle.myUserId())); + controllers.add(new DoubleTapScreenPreferenceController(context, + null /* lifecycle */, ambientConfig, UserHandle.myUserId())); + controllers.add(new SwipeToNotificationPreferenceController(context, + null /* lifecycle */)); + controllers.add(new DoubleTwistPreferenceController(context, + null /* lifecycle */)); + return controllers; + } }; } diff --git a/src/com/android/settings/gestures/PickupGesturePreferenceController.java b/src/com/android/settings/gestures/PickupGesturePreferenceController.java index ce20f157966..f48551e7c8b 100644 --- a/src/com/android/settings/gestures/PickupGesturePreferenceController.java +++ b/src/com/android/settings/gestures/PickupGesturePreferenceController.java @@ -70,4 +70,14 @@ public class PickupGesturePreferenceController extends GesturePreferenceControll Settings.Secure.DOZE_PULSE_ON_PICK_UP, enabled ? 1 : 0); return true; } + + @Override + public ResultPayload getResultPayload() { + ArrayMap valueMap = new ArrayMap<>(); + valueMap.put(1, true); + valueMap.put(0, false); + + return new InlineSwitchPayload(Settings.Secure.DOZE_PULSE_ON_PICK_UP, + ResultPayload.SettingsSource.SECURE, valueMap); + } } diff --git a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java index 22b88fc15fd..67c8e142ad6 100644 --- a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java +++ b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java @@ -63,4 +63,14 @@ public class SwipeToNotificationPreferenceController extends GesturePreferenceCo Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 0) == 1; } + + @Override + public ResultPayload getResultPayload() { + ArrayMap valueMap = new ArrayMap<>(); + valueMap.put(1, true); + valueMap.put(0, false); + + return new InlineSwitchPayload(Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, + ResultPayload.SettingsSource.SECURE, valueMap); + } } diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java index bdb35221be2..5f7d8b506e3 100644 --- a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java @@ -93,4 +93,23 @@ public class DoubleTapPowerPreferenceControllerTest { assertThat(mController.isSwitchPrefEnabled()).isFalse(); } + + @Test + public void testPreferenceController_ProperResultPayloadType() { + final Context context = ShadowApplication.getInstance().getApplicationContext(); + mController = new DoubleTapPowerPreferenceController(context, null); + ResultPayload payload = mController.getResultPayload(); + assertThat(payload).isInstanceOf(InlineSwitchPayload.class); + } + + @Test + public void testPreferenceController_CorrectPayload() { + final Context context = ShadowApplication.getInstance().getApplicationContext(); + mController = new DoubleTapPowerPreferenceController(context, null); + InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload(); + assertThat(payload.settingsUri).isEqualTo("camera_double_tap_power_gesture_disabled"); + assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE); + assertThat(payload.valueMap.get(0)).isEqualTo(true); + assertThat(payload.valueMap.get(1)).isEqualTo(false); + } } diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java index adf8b752a6f..2f922d56d90 100644 --- a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java @@ -81,4 +81,19 @@ public class DoubleTapScreenPreferenceControllerTest { assertThat(mController.isSwitchPrefEnabled()).isFalse(); } + + @Test + public void testPreferenceController_ProperResultPayloadType() { + ResultPayload payload = mController.getResultPayload(); + assertThat(payload).isInstanceOf(InlineSwitchPayload.class); + } + + @Test + public void testPreferenceController_CorrectPayload() { + InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload(); + assertThat(payload.settingsUri).isEqualTo("doze_pulse_on_double_tap"); + assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE); + assertThat(payload.valueMap.get(1)).isEqualTo(true); + assertThat(payload.valueMap.get(0)).isEqualTo(false); + } } diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java index 9bf66558e34..ad682b2521b 100644 --- a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java @@ -113,4 +113,19 @@ public class DoubleTwistPreferenceControllerTest { assertThat(mController.isSwitchPrefEnabled()).isFalse(); } + + @Test + public void testPreferenceController_ProperResultPayloadType() { + ResultPayload payload = mController.getResultPayload(); + assertThat(payload).isInstanceOf(InlineSwitchPayload.class); + } + + @Test + public void testPreferenceController_CorrectPayload() { + InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload(); + assertThat(payload.settingsUri).isEqualTo("camera_double_twist_to_flip_enabled"); + assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE); + assertThat(payload.valueMap.get(1)).isEqualTo(true); + assertThat(payload.valueMap.get(0)).isEqualTo(false); + } } diff --git a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java index 9dce07441ee..f112b9ef27a 100644 --- a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java @@ -83,4 +83,19 @@ public class PIckupGesturePreferenceControllerTest { assertThat(mController.isSwitchPrefEnabled()).isFalse(); } + + @Test + public void testPreferenceController_ProperResultPayloadType() { + ResultPayload payload = mController.getResultPayload(); + assertThat(payload).isInstanceOf(InlineSwitchPayload.class); + } + + @Test + public void testPreferenceController_CorrectPayload() { + InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload(); + assertThat(payload.settingsUri).isEqualTo("doze_pulse_on_pick_up"); + assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE); + assertThat(payload.valueMap.get(1)).isEqualTo(true); + assertThat(payload.valueMap.get(0)).isEqualTo(false); + } } diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java index e9096673cac..49d73ea8371 100644 --- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java @@ -89,4 +89,19 @@ public class SwipeToNotificationPreferenceControllerTest { assertThat(mController.isSwitchPrefEnabled()).isFalse(); } + + @Test + public void testPreferenceController_ProperResultPayloadType() { + ResultPayload payload = mController.getResultPayload(); + assertThat(payload).isInstanceOf(InlineSwitchPayload.class); + } + + @Test + public void testPreferenceController_CorrectPayload() { + InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload(); + assertThat(payload.settingsUri).isEqualTo("system_navigation_keys_enabled"); + assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE); + assertThat(payload.valueMap.get(1)).isEqualTo(true); + assertThat(payload.valueMap.get(0)).isEqualTo(false); + } } diff --git a/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtilsTest.java b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtilsTest.java index f4370fc97ca..a13a24e0adf 100644 --- a/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtilsTest.java +++ b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtilsTest.java @@ -72,6 +72,14 @@ public class DatabaseIndexingUtilsTest { assertThat(map).isNull(); } + @Test + public void testGetPreferenceControllerUriMap_CompatibleClass_ReturnsNotNull() { + String className = "com.android.settings.gestures.GestureSettings"; + + Map map = DatabaseIndexingUtils.getPreferenceControllerUriMap(className, mContext); + assertThat(map).isNotNull(); + } + @Test public void testGetPreferenceControllerUriMap_CompatibleClass_ReturnsValidMap() { String className = "com.android.settings.DisplaySettings"; @@ -88,7 +96,7 @@ public class DatabaseIndexingUtilsTest { } @Test - public void testGetPayloadFromMap_MatchingKey_ReturnsPayload() { + public void testGetPayloadFromMap_MatchingKey_ReturnsPayloa() { final String key = "key"; PreferenceController prefController = new PreferenceController(mContext) { @Override