Use uptimeMillis instead of currentTimeMillis for interval calculation.

uptime is guaranteed monotonic; currentTime may go backwards in the event
of NTP updates or other wackiness.

Test: manual sanity check of logs; android.support.test.metricshelper.MetricsAssertsTest passes
Bug: 37538546, 18584861

Change-Id: I222b20be9d561e1184b11155fe44c574d90872a5
diff --git a/services/core/java/com/android/server/am/ActivityMetricsLogger.java b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
index 08ff7de..2dd3b74 100644
--- a/services/core/java/com/android/server/am/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/am/ActivityMetricsLogger.java
@@ -133,7 +133,7 @@
      */
     void notifyActivityLaunching() {
         if (!isAnyTransitionActive()) {
-            mCurrentTransitionStartTime = System.currentTimeMillis();
+            mCurrentTransitionStartTime = SystemClock.uptimeMillis();
         }
     }
 
@@ -299,7 +299,7 @@
     private int calculateCurrentDelay() {
 
         // Shouldn't take more than 25 days to launch an app, so int is fine here.
-        return (int) (System.currentTimeMillis() - mCurrentTransitionStartTime);
+        return (int) (SystemClock.uptimeMillis() - mCurrentTransitionStartTime);
     }
 
     private void logAppTransitionMultiEvents() {