Merge "Fix some uid issues in battery stats."
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 10fd2f0..26d7f5f 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -270,7 +270,6 @@
 
     boolean mWifiOn;
     StopwatchTimer mWifiOnTimer;
-    int mWifiOnUid = -1;
 
     boolean mGlobalWifiRunning;
     StopwatchTimer mGlobalWifiRunningTimer;
@@ -2912,10 +2911,6 @@
             mWifiOn = false;
             mWifiOnTimer.stopRunningLocked(elapsedRealtime);
         }
-        if (mWifiOnUid >= 0) {
-            getUidStatsLocked(mWifiOnUid).noteWifiStoppedLocked(elapsedRealtime);
-            mWifiOnUid = -1;
-        }
     }
 
     public void noteAudioOnLocked(int uid) {
@@ -5973,7 +5968,7 @@
 
                     if (entry.rxBytes == 0 || entry.txBytes == 0) continue;
 
-                    final Uid u = getUidStatsLocked(entry.uid);
+                    final Uid u = getUidStatsLocked(mapUid(entry.uid));
                     u.noteNetworkActivityLocked(NETWORK_MOBILE_RX_DATA, entry.rxBytes,
                             entry.rxPackets);
                     u.noteNetworkActivityLocked(NETWORK_MOBILE_TX_DATA, entry.txBytes,
@@ -6040,7 +6035,7 @@
 
                     if (entry.rxBytes == 0 || entry.txBytes == 0) continue;
 
-                    final Uid u = getUidStatsLocked(entry.uid);
+                    final Uid u = getUidStatsLocked(mapUid(entry.uid));
                     u.noteNetworkActivityLocked(NETWORK_WIFI_RX_DATA, entry.rxBytes,
                             entry.rxPackets);
                     u.noteNetworkActivityLocked(NETWORK_WIFI_TX_DATA, entry.txBytes,
@@ -6240,6 +6235,7 @@
      * if needed.
      */
     public Uid.Proc getProcessStatsLocked(int uid, String name) {
+        uid = mapUid(uid);
         Uid u = getUidStatsLocked(uid);
         return u.getProcessStatsLocked(name);
     }
@@ -6249,6 +6245,7 @@
      * if needed.
      */
     public Uid.Pkg getPackageStatsLocked(int uid, String pkg) {
+        uid = mapUid(uid);
         Uid u = getUidStatsLocked(uid);
         return u.getPackageStatsLocked(pkg);
     }
@@ -6258,6 +6255,7 @@
      * if needed.
      */
     public Uid.Pkg.Serv getServiceStatsLocked(int uid, String pkg, String name) {
+        uid = mapUid(uid);
         Uid u = getUidStatsLocked(uid);
         return u.getServiceStatsLocked(pkg, name);
     }
diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java
index df06bae..81af636 100644
--- a/services/core/java/com/android/server/power/Notifier.java
+++ b/services/core/java/com/android/server/power/Notifier.java
@@ -165,11 +165,11 @@
             int newFlags, String newTag, String newPackageName, int newOwnerUid,
             int newOwnerPid, WorkSource newWorkSource, String newHistoryTag) {
 
-        final int monitorType = getBatteryStatsWakeLockMonitorType(flags);
-        final int newMonitorType = getBatteryStatsWakeLockMonitorType(newFlags);
-        boolean unimportantForLogging = (flags&PowerManager.UNIMPORTANT_FOR_LOGGING) != 0
-                && ownerUid == Process.SYSTEM_UID;
         if (workSource != null && newWorkSource != null) {
+            final int monitorType = getBatteryStatsWakeLockMonitorType(flags);
+            final int newMonitorType = getBatteryStatsWakeLockMonitorType(newFlags);
+            boolean unimportantForLogging = (newFlags&PowerManager.UNIMPORTANT_FOR_LOGGING) != 0
+                    && newOwnerUid == Process.SYSTEM_UID;
             if (DEBUG) {
                 Slog.d(TAG, "onWakeLockChanging: flags=" + newFlags + ", tag=\"" + newTag
                         + "\", packageName=" + newPackageName