Only launch on camera lift from locked or asleep

Test: Tried gesture when device is awake, locked, and asleep
Change-Id: I8af8eeb18966e8aadbba83681fa5481f8a7ef432
diff --git a/services/core/java/com/android/server/GestureLauncherService.java b/services/core/java/com/android/server/GestureLauncherService.java
index 6c44cc8..0453a9e 100644
--- a/services/core/java/com/android/server/GestureLauncherService.java
+++ b/services/core/java/com/android/server/GestureLauncherService.java
@@ -17,6 +17,7 @@
 package com.android.server;
 
 import android.app.ActivityManager;
+import android.app.KeyguardManager;
 import android.app.StatusBarManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -78,6 +79,8 @@
     private Sensor mCameraLiftTriggerSensor;
     private Context mContext;
     private final MetricsLogger mMetricsLogger;
+    private PowerManager mPowerManager;
+    private KeyguardManager mKeyguardManager;
 
     /** The wake lock held when a gesture is detected. */
     private WakeLock mWakeLock;
@@ -145,9 +148,11 @@
                 return;
             }
 
-            PowerManager powerManager = (PowerManager) mContext.getSystemService(
+            mKeyguardManager = (KeyguardManager) mContext.getSystemService(
+                    Context.KEYGUARD_SERVICE);
+            mPowerManager = (PowerManager) mContext.getSystemService(
                     Context.POWER_SERVICE);
-            mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
+            mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
                     "GestureLauncherService");
             updateCameraRegistered();
             updateCameraDoubleTapPowerEnabled();
@@ -519,9 +524,13 @@
                     Slog.d(TAG, String.format("Received a camera lift trigger event: " +
                             "values=[%.4f].", values[0]));
                 }
-                if (handleCameraGesture(true /* useWakelock */,
-                        StatusBarManager.CAMERA_LAUNCH_SOURCE_LIFT_TRIGGER)) {
-                    MetricsLogger.action(mContext, MetricsEvent.ACTION_CAMERA_LIFT_TRIGGER);
+                if (mKeyguardManager.isKeyguardLocked() || !mPowerManager.isInteractive()) {
+                    if (handleCameraGesture(true /* useWakelock */,
+                            StatusBarManager.CAMERA_LAUNCH_SOURCE_LIFT_TRIGGER)) {
+                        MetricsLogger.action(mContext, MetricsEvent.ACTION_CAMERA_LIFT_TRIGGER);
+                    }
+                } else if (DBG) {
+                    Slog.d(TAG, "Ignoring lift event because device is awake");
                 }
                 return;
             }