DO NOT MERGE Fix issue #24118803: The screen doesn't turn off...

...after more than 60 minutes left

The sensing timeout alarm was being cancelled immediately after it
was scheduled it.  Now only cancel it when we are done sensing or
have reset activity.

Change-Id: Id0440cda7dd1b81bf871f16dfb015df6284cf6af
diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java
index d2d4b7b..b88658b 100644
--- a/services/core/java/com/android/server/DeviceIdleController.java
+++ b/services/core/java/com/android/server/DeviceIdleController.java
@@ -1280,7 +1280,6 @@
                 if (DEBUG) Slog.d(TAG, "Moved from STATE_IDLE_PENDING to STATE_SENSING.");
                 EventLogTags.writeDeviceIdle(mState, "step");
                 scheduleSensingAlarmLocked(mConstants.SENSING_TIMEOUT);
-                cancelSensingAlarmLocked();
                 cancelLocatingLocked();
                 mAnyMotionDetector.checkForAnyMotion();
                 mNotMoving = false;
@@ -1292,7 +1291,6 @@
                 mState = STATE_LOCATING;
                 if (DEBUG) Slog.d(TAG, "Moved from STATE_SENSING to STATE_LOCATING.");
                 EventLogTags.writeDeviceIdle(mState, "step");
-                cancelSensingAlarmLocked();
                 scheduleSensingAlarmLocked(mConstants.LOCATING_TIMEOUT);
                 mLocating = true;
                 mLocationManager.requestLocationUpdates(mLocationRequest, mGenericLocationListener,
@@ -1350,6 +1348,7 @@
             mState = STATE_ACTIVE;
             mInactiveTimeout = timeout;
             EventLogTags.writeDeviceIdle(mState, type);
+            cancelSensingAlarmLocked();
             becomeInactiveIfAppropriateLocked();
         }
     }