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

Commit ec3471c1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Wake-screen gesture implementation"

parents 029f67f8 323f9ffc
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -7255,6 +7255,14 @@ public final class Settings {
        private static final Validator DOZE_REACH_GESTURE_VALIDATOR = BOOLEAN_VALIDATOR;
        /**
         * Gesture that wakes up the display, showing the ambient version of the status bar.
         * @hide
         */
        public static final String DOZE_WAKE_SCREEN_GESTURE = "doze_wake_screen_gesture";
        private static final Validator DOZE_WAKE_SCREEN_GESTURE_VALIDATOR = BOOLEAN_VALIDATOR;
        /**
         * The current night mode that has been selected by the user.  Owned
         * and controlled by UiModeManagerService.  Constants are as per
@@ -8158,6 +8166,7 @@ public final class Settings {
            DOZE_PICK_UP_GESTURE,
            DOZE_DOUBLE_TAP_GESTURE,
            DOZE_REACH_GESTURE,
            DOZE_WAKE_SCREEN_GESTURE,
            NFC_PAYMENT_DEFAULT_COMPONENT,
            AUTOMATIC_STORAGE_MANAGER_DAYS_TO_RETAIN,
            FACE_UNLOCK_KEYGUARD_ENABLED,
@@ -8302,6 +8311,7 @@ public final class Settings {
            VALIDATORS.put(DOZE_PICK_UP_GESTURE, DOZE_PICK_UP_GESTURE_VALIDATOR);
            VALIDATORS.put(DOZE_DOUBLE_TAP_GESTURE, DOZE_DOUBLE_TAP_GESTURE_VALIDATOR);
            VALIDATORS.put(DOZE_REACH_GESTURE, DOZE_REACH_GESTURE_VALIDATOR);
            VALIDATORS.put(DOZE_WAKE_SCREEN_GESTURE, DOZE_WAKE_SCREEN_GESTURE_VALIDATOR);
            VALIDATORS.put(NFC_PAYMENT_DEFAULT_COMPONENT, NFC_PAYMENT_DEFAULT_COMPONENT_VALIDATOR);
            VALIDATORS.put(AUTOMATIC_STORAGE_MANAGER_DAYS_TO_RETAIN,
                    AUTOMATIC_STORAGE_MANAGER_DAYS_TO_RETAIN_VALIDATOR);
+13 −0
Original line number Diff line number Diff line
@@ -75,6 +75,15 @@ public class AmbientDisplayConfiguration {
        return !TextUtils.isEmpty(reachSensorType());
    }

    public boolean wakeScreenGestureEnabled(int user) {
        return boolSettingDefaultOn(Settings.Secure.DOZE_WAKE_SCREEN_GESTURE, user)
                && wakeScreenGestureAvailable();
    }

    public boolean wakeScreenGestureAvailable() {
        return !TextUtils.isEmpty(wakeScreenSensorType());
    }

    public String doubleTapSensorType() {
        return mContext.getResources().getString(R.string.config_dozeDoubleTapSensorType);
    }
@@ -87,6 +96,10 @@ public class AmbientDisplayConfiguration {
        return mContext.getResources().getString(R.string.config_dozeReachSensorType);
    }

    public String wakeScreenSensorType() {
        return mContext.getResources().getString(R.string.config_dozeWakeScreenSensorType);
    }

    public boolean pulseOnLongPressEnabled(int user) {
        return pulseOnLongPressAvailable() && boolSettingDefaultOff(
                Settings.Secure.DOZE_PULSE_ON_LONG_PRESS, user);
+3 −0
Original line number Diff line number Diff line
@@ -2116,6 +2116,9 @@
    <!-- Type of the reach sensor. Empty if reach is not supported. -->
    <string name="config_dozeReachSensorType" translatable="false"></string>

    <!-- Type of the wake up sensor. Empty if not supported. -->
    <string name="config_dozeWakeScreenSensorType" translatable="false"></string>

    <!-- Control whether the always on display mode is available. This should only be enabled on
         devices where the display has been tuned to be power efficient in DOZE and/or DOZE_SUSPEND
         states. -->
+1 −0
Original line number Diff line number Diff line
@@ -3462,4 +3462,5 @@

  <java-symbol type="integer" name="db_wal_truncate_size" />
  <java-symbol type="integer" name="config_wakeUpDelayDoze" />
  <java-symbol type="string" name="config_dozeWakeScreenSensorType" />
</resources>
+14 −12
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ public class DozeLog {
    private static final int SIZE = Build.IS_DEBUGGABLE ? 400 : 50;
    static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM-dd HH:mm:ss.SSS");

    private static final int PULSE_REASONS = 7;
    private static final int REASONS = 8;

    public static final int PULSE_REASON_NONE = -1;
    public static final int PULSE_REASON_INTENT = 0;
@@ -45,6 +45,7 @@ public class DozeLog {
    public static final int PULSE_REASON_SENSOR_DOUBLE_TAP = 4;
    public static final int PULSE_REASON_SENSOR_LONG_PRESS = 5;
    public static final int PULSE_REASON_SENSOR_REACH = 6;
    public static final int REASON_SENSOR_WAKE_UP = 7;

    private static boolean sRegisterKeyguardCallback = true;

@@ -74,7 +75,7 @@ public class DozeLog {
    public static void tracePulseStart(int reason) {
        if (!ENABLED) return;
        sPulsing = true;
        log("pulseStart reason=" + pulseReasonToString(reason));
        log("pulseStart reason=" + reasonToString(reason));
    }

    public static void tracePulseFinish() {
@@ -102,8 +103,8 @@ public class DozeLog {
                sScreenOnPulsingStats = new SummaryStats();
                sScreenOnNotPulsingStats = new SummaryStats();
                sEmergencyCallStats = new SummaryStats();
                sProxStats = new SummaryStats[PULSE_REASONS][2];
                for (int i = 0; i < PULSE_REASONS; i++) {
                sProxStats = new SummaryStats[REASONS][2];
                for (int i = 0; i < REASONS; i++) {
                    sProxStats[i][0] = new SummaryStats();
                    sProxStats[i][1] = new SummaryStats();
                }
@@ -176,15 +177,15 @@ public class DozeLog {
    }

    public static void traceProximityResult(Context context, boolean near, long millis,
            int pulseReason) {
            int reason) {
        if (!ENABLED) return;
        init(context);
        log("proximityResult reason=" + pulseReasonToString(pulseReason) + " near=" + near
        log("proximityResult reason=" + reasonToString(reason) + " near=" + near
                + " millis=" + millis);
        sProxStats[pulseReason][near ? 0 : 1].append();
        sProxStats[reason][near ? 0 : 1].append();
    }

    public static String pulseReasonToString(int pulseReason) {
    public static String reasonToString(int pulseReason) {
        switch (pulseReason) {
            case PULSE_REASON_INTENT: return "intent";
            case PULSE_REASON_NOTIFICATION: return "notification";
@@ -193,6 +194,7 @@ public class DozeLog {
            case PULSE_REASON_SENSOR_DOUBLE_TAP: return "doubletap";
            case PULSE_REASON_SENSOR_LONG_PRESS: return "longpress";
            case PULSE_REASON_SENSOR_REACH: return "reach";
            case REASON_SENSOR_WAKE_UP: return "wakeup";
            default: throw new IllegalArgumentException("bad reason: " + pulseReason);
        }
    }
@@ -218,8 +220,8 @@ public class DozeLog {
            sScreenOnPulsingStats.dump(pw, "Screen on (pulsing)");
            sScreenOnNotPulsingStats.dump(pw, "Screen on (not pulsing)");
            sEmergencyCallStats.dump(pw, "Emergency call");
            for (int i = 0; i < PULSE_REASONS; i++) {
                final String reason = pulseReasonToString(i);
            for (int i = 0; i < REASONS; i++) {
                final String reason = reasonToString(i);
                sProxStats[i][0].dump(pw, "Proximity near (" + reason + ")");
                sProxStats[i][1].dump(pw, "Proximity far (" + reason + ")");
            }
@@ -262,10 +264,10 @@ public class DozeLog {
        }
    }

    public static void traceSensor(Context context, int pulseReason) {
    public static void traceSensor(Context context, int reason) {
        if (!ENABLED) return;
        init(context);
        log("sensor type=" + pulseReasonToString(pulseReason));
        log("sensor type=" + reasonToString(reason));
    }

    private static class SummaryStats {
Loading