Change camera lift sensor to trigger sensor

Camera Lift Trigger sensor is a trigger sensor, fix references and calls in
GestureLauncherService

Bug: 36401147
Test: Did gesture, camera launches
Change-Id: I141e888047517d3aba132ee937919892ba42fa10
diff --git a/services/core/java/com/android/server/GestureLauncherService.java b/services/core/java/com/android/server/GestureLauncherService.java
index 0453a9e..47f157d 100644
--- a/services/core/java/com/android/server/GestureLauncherService.java
+++ b/services/core/java/com/android/server/GestureLauncherService.java
@@ -29,6 +29,8 @@
 import android.hardware.SensorEvent;
 import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
+import android.hardware.TriggerEvent;
+import android.hardware.TriggerEventListener;
 import android.os.Handler;
 import android.os.PowerManager;
 import android.os.PowerManager.WakeLock;
@@ -260,7 +262,7 @@
 
             SensorManager sensorManager = (SensorManager) mContext.getSystemService(
                     Context.SENSOR_SERVICE);
-            sensorManager.unregisterListener(mCameraLiftTriggerListener);
+            sensorManager.cancelTriggerSensor(mCameraLiftTriggerListener, mCameraLiftTriggerSensor);
         }
     }
 
@@ -281,15 +283,15 @@
                 com.android.internal.R.string.config_cameraLiftTriggerSensorStringType);
             mCameraLiftTriggerSensor = sensorManager.getDefaultSensor(
                     cameraLiftTriggerId,
-                    false /*wakeUp*/);
+                    true /*wakeUp*/);
 
             // Compare the camera lift trigger string type to that in the resource file to make
             // sure we are registering the correct sensor. This is redundant check, it
             // makes the code more robust.
             if (mCameraLiftTriggerSensor != null) {
                 if (sensorName.equals(mCameraLiftTriggerSensor.getStringType())) {
-                    mCameraLiftRegistered = sensorManager.registerListener(mCameraLiftTriggerListener,
-                            mCameraLiftTriggerSensor, 0);
+                    mCameraLiftRegistered = sensorManager.requestTriggerSensor(mCameraLiftTriggerListener,
+                            mCameraLiftTriggerSensor);
                 } else {
                     String message = String.format("Wrong configuration. Sensor type and sensor "
                             + "string type don't match: %s in resources, %s in the sensor.",
@@ -511,14 +513,18 @@
         }
     }
 
-    private final class CameraLiftTriggerEventListener implements SensorEventListener {
+    private final class CameraLiftTriggerEventListener extends TriggerEventListener {
         @Override
-        public void onSensorChanged(SensorEvent event) {
+        public void onTrigger(TriggerEvent event) {
             if (!mCameraLiftRegistered) {
               if (DBG) Slog.d(TAG, "Ignoring camera lift event because it's unregistered.");
               return;
             }
             if (event.sensor == mCameraLiftTriggerSensor) {
+                Resources resources = mContext.getResources();
+                SensorManager sensorManager = (SensorManager) mContext.getSystemService(
+                        Context.SENSOR_SERVICE);
+
                 if (DBG) {
                     float[] values = event.values;
                     Slog.d(TAG, String.format("Received a camera lift trigger event: " +
@@ -532,13 +538,13 @@
                 } else if (DBG) {
                     Slog.d(TAG, "Ignoring lift event because device is awake");
                 }
+
+                mCameraLiftRegistered = sensorManager.requestTriggerSensor(mCameraLiftTriggerListener,
+                        mCameraLiftTriggerSensor);
+
+                if (DBG) Slog.d(TAG, "Camera lift trigger sensor re-registered: " + mCameraLiftRegistered);
                 return;
             }
         }
-
-        @Override
-        public void onAccuracyChanged(Sensor sensor, int accuracy) {
-            // Ignored.
-        }
     }
 }