OmniGears: more cleanup for wakelock view

also add check for latest unplug to make sure
clean ref data is created and no wrong data can be shown

Change-Id: I8c31fa4b6cf6052387eb67ef0e09c49ded13f8b7
diff --git a/src/org/omnirom/omnigears/system/Wakelocks.java b/src/org/omnirom/omnigears/system/Wakelocks.java
index 17715a8..7035b04 100644
--- a/src/org/omnirom/omnigears/system/Wakelocks.java
+++ b/src/org/omnirom/omnigears/system/Wakelocks.java
@@ -88,8 +88,8 @@
 public class Wakelocks extends SettingsPreferenceFragment {
     private static final String TAG = "Wakelocks";
     private static String sRefFilename = "wakelockdata.ref";
-    private static final int MAX_KERNEL_LIST_ITEMS = 10;
-    private static final int MAX_USER_LIST_ITEMS = 7;
+    private static final int MAX_KERNEL_LIST_ITEMS = 15;
+    private static final int MAX_USER_LIST_ITEMS = 15;
     private LinearLayout mStatesView;
     private TextView mTotalStateTime;
     private TextView mKernelWakelockWarning;
@@ -99,8 +99,6 @@
     private BatteryStatsHelper mStatsHelper;
     private long rawUptime;
     private long rawRealtime;
-    private long sleepTime;
-    private int mBatteryLevel;
     private LinearLayout mProgress;
     private ArrayList<WakelockStats> mKernelWakelocks = new ArrayList<WakelockStats>();
     private ArrayList<WakelockStats> mUserWakelocks = new ArrayList<WakelockStats>();
@@ -115,9 +113,6 @@
     private boolean mShowAll;
     private StringBuffer mShareData;
     private PopupMenu mPopup;
-    private long mUnplugBatteryUptime;
-    private long mUnplugBatteryRealtime;
-    private int mUnplugBatteryLevel;
     private boolean mIsOnBattery;
     private List<WakelockAppStats> mAppWakelockList = new ArrayList<WakelockAppStats>();
     private Intent mShareIntent;
@@ -428,8 +423,11 @@
                 long now = System.currentTimeMillis();
                 long bootTime = now - rawRealtime;
                 long refDumpTime = getRefDataDumpTime();
-                if (refDumpTime == -1 || bootTime > refDumpTime) {
-                    // ref data was dumped before a reboot or no ref data at all
+                long timeSinceUnplugged = mBatteryStats.computeBatteryRealtime(
+                        rawRealtime * 1000, BatteryStats.STATS_SINCE_UNPLUGGED) / 1000;
+                long unplugTime = now - timeSinceUnplugged;
+                if (refDumpTime == -1 || bootTime > refDumpTime || unplugTime > refDumpTime) {
+                    // ref data was dumped before a reboot before last unplug or no ref data at all
                     // makes no sense to use require user to create new refpint
                     mKernelWakelockWarning.setText(getResources().getString(
                             R.string.no_stat_because_reset_wakelock));
@@ -449,7 +447,7 @@
                 mKernelWakelockWarning.setVisibility(View.VISIBLE);
             }
 
-            sleepTime = Math.max(totalTimeInSecs - totalUptimeInSecs, 0);
+            long sleepTime = Math.max(totalTimeInSecs - totalUptimeInSecs, 0);
 
             if (mListType == 0 && showStats) {
                 generateTimeRow(getResources().getString(R.string.awake_time),
@@ -1116,9 +1114,9 @@
                     if (partialWakeTimer != null) {
                         long totalTimeMillis = computeWakeLock(
                                 partialWakeTimer, rawRealtime * 1000,
-                                BatteryStats.STATS_SINCE_CHARGED);
+                                BatteryStats.STATS_CURRENT);
                         int count = partialWakeTimer
-                                .getCountLocked(BatteryStats.STATS_SINCE_CHARGED);
+                                .getCountLocked(BatteryStats.STATS_CURRENT);
                         if (totalTimeMillis > 0 && count > 0) {
                             WakelockStats foundEntry = indexList.get(ent
                                     .getKey());
@@ -1151,9 +1149,9 @@
                 BatteryStats.Timer wl = ent.getValue();
 
                 long totalTimeMillis = microToMillis(wl.getTotalTimeLocked(
-                        rawRealtime * 1000, BatteryStats.STATS_SINCE_CHARGED));
+                        rawRealtime * 1000, BatteryStats.STATS_CURRENT));
                 int count = wl
-                        .getCountLocked(BatteryStats.STATS_SINCE_CHARGED);
+                        .getCountLocked(BatteryStats.STATS_CURRENT);
 
                 if (totalTimeMillis > 0 && count > 0) {
                     WakelockStats entry = new WakelockStats(0, ent.getKey(),
@@ -1177,13 +1175,6 @@
 
         rawUptime = SystemClock.uptimeMillis();
         rawRealtime = SystemClock.elapsedRealtime();
-        mBatteryLevel = mBatteryStats.getDischargeCurrentLevel();
-        mUnplugBatteryLevel = mBatteryStats.getDischargeStartLevel();
-
-        mUnplugBatteryUptime = mBatteryStats.computeBatteryUptime(
-                rawUptime * 1000, BatteryStats.STATS_SINCE_CHARGED);
-        mUnplugBatteryRealtime = mBatteryStats.computeBatteryRealtime(
-                rawRealtime * 1000, BatteryStats.STATS_SINCE_CHARGED);
         mIsOnBattery = mBatteryStats.getIsOnBattery();
 
         mShareData.append("\n================\n");