Actually use the cache for names and icons.

Fixes the flashes in name and icon in Battery usage screen when refreshing.
Bug: 8219466

Some earlier refactoring must have messed up the cache's scope. It will now
avoid reloading name and icon if already present in the cache.

Change-Id: I99c1f14dd53828dcb74cf12c02c47628e2e64d30
diff --git a/src/com/android/settings/fuelgauge/BatterySipper.java b/src/com/android/settings/fuelgauge/BatterySipper.java
index ffc6651..9a8e783 100644
--- a/src/com/android/settings/fuelgauge/BatterySipper.java
+++ b/src/com/android/settings/fuelgauge/BatterySipper.java
@@ -32,7 +32,8 @@
 
 class BatterySipper implements Comparable<BatterySipper> {
     final Context mContext;
-    final HashMap<String,UidToDetail> mUidCache = new HashMap<String,UidToDetail>();
+    /* Cache cleared when PowerUsageSummary is destroyed */
+    static final HashMap<String,UidToDetail> sUidCache = new HashMap<String,UidToDetail>();
     final ArrayList<BatterySipper> mRequestQueue;
     final Handler mHandler;
     String name;
@@ -99,8 +100,8 @@
     void getQuickNameIconForUid(Uid uidObj) {
         final int uid = uidObj.getUid();
         final String uidString = Integer.toString(uid);
-        if (mUidCache.containsKey(uidString)) {
-            UidToDetail utd = mUidCache.get(uidString);
+        if (sUidCache.containsKey(uidString)) {
+            UidToDetail utd = sUidCache.get(uidString);
             defaultPackageName = utd.packageName;
             name = utd.name;
             icon = utd.icon;
@@ -193,7 +194,7 @@
         utd.name = name;
         utd.icon = icon;
         utd.packageName = defaultPackageName;
-        mUidCache.put(uidString, utd);
+        sUidCache.put(uidString, utd);
         mHandler.sendMessage(mHandler.obtainMessage(PowerUsageSummary.MSG_UPDATE_NAME_ICON, this));
     }
 }
\ No newline at end of file
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 8ee8960..1dcb02c 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -178,6 +178,8 @@
         super.onDestroy();
         if (getActivity().isChangingConfigurations()) {
             sStatsXfer = mStats;
+        } else {
+            BatterySipper.sUidCache.clear();
         }
     }