Merge "Autogenerate SearchIndexableResources subclass"
diff --git a/res/layout/switch_bar.xml b/res/layout/switch_bar.xml
index 29e125b..a172051 100644
--- a/res/layout/switch_bar.xml
+++ b/res/layout/switch_bar.xml
@@ -29,7 +29,6 @@
         android:ellipsize="end"
         android:textAppearance="@style/TextAppearance.Switch"
         android:textColor="?android:attr/textColorPrimary"
-        android:textSize="18sp"
         android:textAlignment="viewStart" />
 
     <ImageView
diff --git a/res/values/styles.xml b/res/values/styles.xml
index b3178f5..8ff7300 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -305,7 +305,9 @@
 
     <style name="TextAppearance.Medium" parent="@android:style/TextAppearance.Material.Medium" />
     <style name="TextAppearance.Small" parent="@android:style/TextAppearance.Material.Small" />
-    <style name="TextAppearance.Switch" parent="@android:style/TextAppearance.Material.Title" />
+    <style name="TextAppearance.Switch" parent="@android:style/TextAppearance.Material.Title">
+        <item name="android:textSize">18sp</item>
+    </style>
 
     <style name="TextAppearance.CategoryTitle" parent="@android:style/TextAppearance.Material.Body2">
         <item name="android:textColor">?android:attr/textColorSecondary</item>
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
index fd150e4..1b6e2f0 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.os.BatteryStats;
 import android.support.annotation.VisibleForTesting;
+import android.text.format.DateUtils;
 
 import com.android.internal.os.BatterySipper;
 import com.android.internal.os.BatteryStatsHelper;
@@ -72,18 +73,20 @@
                         final long foregroundTimeMs = mBatteryUtils.getProcessTimeMs(
                                 BatteryUtils.StatusType.FOREGROUND, batterySipper.uidObj,
                                 BatteryStats.STATS_SINCE_CHARGED);
-                        mHighUsageAppList.add(new AppInfo.Builder()
-                                .setUid(batterySipper.getUid())
-                                .setPackageName(
-                                        mBatteryUtils.getPackageName(batterySipper.getUid()))
-                                .setScreenOnTimeMs(foregroundTimeMs)
-                                .build());
+                        if (foregroundTimeMs >= DateUtils.MINUTE_IN_MILLIS) {
+                            mHighUsageAppList.add(new AppInfo.Builder()
+                                    .setUid(batterySipper.getUid())
+                                    .setPackageName(
+                                            mBatteryUtils.getPackageName(batterySipper.getUid()))
+                                    .setScreenOnTimeMs(foregroundTimeMs)
+                                    .build());
+                        }
                     }
                 }
 
+                Collections.sort(mHighUsageAppList, Collections.reverseOrder());
                 mHighUsageAppList = mHighUsageAppList.subList(0,
                         Math.min(mPolicy.highUsageAppCount, mHighUsageAppList.size()));
-                Collections.sort(mHighUsageAppList, Collections.reverseOrder());
             }
         }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java
index 14627c5..d983dfc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java
@@ -17,8 +17,10 @@
 package com.android.settings.fuelgauge.batterytip.detectors;
 
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
@@ -48,7 +50,8 @@
 
 @RunWith(SettingsRobolectricTestRunner.class)
 public class HighUsageDetectorTest {
-    private static final int UID = 123;
+    private static final int UID_HIGH = 123;
+    private static final int UID_ZERO = 345;
     private static final long SCREEN_ON_TIME_MS = DateUtils.HOUR_IN_MILLIS;
     private Context mContext;
     @Mock
@@ -56,7 +59,9 @@
     @Mock
     private BatteryUtils mBatteryUtils;
     @Mock
-    private BatterySipper mBatterySipper;
+    private BatterySipper mHighBatterySipper;
+    @Mock
+    private BatterySipper mZeroBatterySipper;
     @Mock
     private HighUsageDataParser mDataParser;
 
@@ -75,14 +80,25 @@
         mHighUsageDetector.mBatteryUtils = mBatteryUtils;
         mHighUsageDetector.mDataParser = mDataParser;
         doNothing().when(mHighUsageDetector).parseBatteryData();
-        doReturn(UID).when(mBatterySipper).getUid();
+        doReturn(UID_HIGH).when(mHighBatterySipper).getUid();
+        mHighBatterySipper.uidObj = mock(BatteryStats.Uid.class);
+        mZeroBatterySipper.uidObj = mock(BatteryStats.Uid.class);
+        doReturn(UID_ZERO).when(mZeroBatterySipper).getUid();
         mAppInfo = new AppInfo.Builder()
-                .setUid(UID)
+                .setUid(UID_HIGH)
                 .setScreenOnTimeMs(SCREEN_ON_TIME_MS)
                 .build();
 
+        doReturn(SCREEN_ON_TIME_MS).when(mBatteryUtils).getProcessTimeMs(
+                BatteryUtils.StatusType.FOREGROUND, mHighBatterySipper.uidObj,
+                BatteryStats.STATS_SINCE_CHARGED);
+        doReturn(0L).when(mBatteryUtils).getProcessTimeMs(
+                BatteryUtils.StatusType.FOREGROUND, mZeroBatterySipper.uidObj,
+                BatteryStats.STATS_SINCE_CHARGED);
+
         mUsageList = new ArrayList<>();
-        mUsageList.add(mBatterySipper);
+        mUsageList.add(mHighBatterySipper);
+        when(mBatteryStatsHelper.getUsageList()).thenReturn(mUsageList);
     }
 
     @Test
@@ -95,10 +111,16 @@
     @Test
     public void testDetect_containsHighUsageApp_tipVisible() {
         doReturn(true).when(mDataParser).isDeviceHeavilyUsed();
-        when(mBatteryStatsHelper.getUsageList()).thenReturn(mUsageList);
-        doReturn(SCREEN_ON_TIME_MS).when(mBatteryUtils).getProcessTimeMs(
-                BatteryUtils.StatusType.FOREGROUND, mBatterySipper.uidObj,
-                BatteryStats.STATS_SINCE_CHARGED);
+
+        final HighUsageTip highUsageTip = (HighUsageTip) mHighUsageDetector.detect();
+        assertThat(highUsageTip.isVisible()).isTrue();
+        assertThat(highUsageTip.getHighUsageAppList()).containsExactly(mAppInfo);
+    }
+
+    @Test
+    public void testDetect_containsHighUsageApp_removeZeroOne() {
+        doReturn(true).when(mDataParser).isDeviceHeavilyUsed();
+        mUsageList.add(mZeroBatterySipper);
 
         final HighUsageTip highUsageTip = (HighUsageTip) mHighUsageDetector.detect();
         assertThat(highUsageTip.isVisible()).isTrue();