Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94e0da52 authored by Doris Ling's avatar Doris Ling
Browse files

Remove pickup gesture settings if sensor is not found.

Update gesture settings to check for available pickup sensor before
showing pickup gesture settings.

Test: manual - launch gesture settings on different device and check for
pickup preference. Auto test pending.

Bug: 32072298

Change-Id: Iaab0290dcfeb2b0c9195df685f225d092a658347
parent e0b74a6d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -52,6 +52,10 @@
    <string name="gesture_double_twist_sensor_name" translatable="false"></string>
    <string name="gesture_double_twist_sensor_vendor" translatable="false"></string>

    <!-- Pickup sensor name and vendor used by gesture setting -->
    <string name="gesture_pickup_sensor_name" translatable="false"></string>
    <string name="gesture_pickup_sensor_vendor" translatable="false"></string>

    <!-- When true enable gesture setting. -->
    <bool name="config_gesture_settings_enabled">false</bool>

+16 −6
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ public class GestureSettings extends SettingsPreferenceFragment implements

        // Ambient Display
        boolean dozeEnabled = isDozeAvailable(context);
        if (dozeEnabled) {
        if (dozeEnabled && isPickupAvailable(context)) {
            int pickup = Secure.getInt(getContentResolver(), Secure.DOZE_PULSE_ON_PICK_UP, 1);
            addPreference(PREF_KEY_PICK_UP, pickup != 0, PREF_ID_PICK_UP);
        } else {
@@ -204,9 +204,19 @@ public class GestureSettings extends SettingsPreferenceFragment implements
    }

    private static boolean isDoubleTwistAvailable(Context context) {
        return hasSensor(context, R.string.gesture_double_twist_sensor_name,
                R.string.gesture_double_twist_sensor_vendor);
    }

    private static boolean isPickupAvailable(Context context) {
        return hasSensor(context, R.string.gesture_pickup_sensor_name,
                R.string.gesture_pickup_sensor_vendor);
    }

    private static boolean hasSensor(Context context, int nameResId, int vendorResId) {
        Resources resources = context.getResources();
        String name = resources.getString(R.string.gesture_double_twist_sensor_name);
        String vendor = resources.getString(R.string.gesture_double_twist_sensor_vendor);
        String name = resources.getString(nameResId);
        String vendor = resources.getString(vendorResId);
        if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(vendor)) {
            SensorManager sensorManager =
                    (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
@@ -253,10 +263,10 @@ public class GestureSettings extends SettingsPreferenceFragment implements
                if (!isCameraDoubleTapPowerGestureAvailable(context.getResources())) {
                    result.add(PREF_KEY_DOUBLE_TAP_POWER);
                }
                if (!isDozeAvailable(context)) {
                if (!isDozeAvailable(context) || !isPickupAvailable(context)) {
                    result.add(PREF_KEY_PICK_UP);
                    result.add(PREF_KEY_DOUBLE_TAP_SCREEN);
                } else if (!isDoubleTapAvailable(context)) {
                }
                if (!isDozeAvailable(context) || !isDoubleTapAvailable(context)) {
                    result.add(PREF_KEY_DOUBLE_TAP_SCREEN);
                }
                if (!isSystemUINavigationAvailable(context)) {