diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java
index a0e56c1..bcc2346 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfo.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfo.java
@@ -219,10 +219,8 @@
                 CharSequence timeString = Utils.formatElapsedTime(context,
                         BatteryUtils.convertUsToMs(drainTimeUs), false /* withSeconds */);
                 info.remainingLabel = TextUtils.expandTemplate(context.getText(shortString ?
-                        (basedOnUsage ?
-                                R.string.power_remaining_duration_only_short_enhanced :
-                                R.string.power_remaining_duration_only_short) :
-                        (basedOnUsage ?
+                                R.string.power_remaining_duration_only_short :
+                         (basedOnUsage ?
                                 R.string.power_remaining_duration_only_enhanced :
                                 R.string.power_remaining_duration_only)), timeString);
                 info.chargeLabel = TextUtils.expandTemplate(context.getText(
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 433f7d6..ee6ebb2 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -887,7 +887,7 @@
                     public void onBatteryInfoLoaded(BatteryInfo info) {
                         mLoader.setSummary(SummaryProvider.this, info.chargeLabel);
                     }
-                });
+                }, true /* shortString */);
             });
         }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index 9bd0b6f..7392eb6 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -131,7 +131,7 @@
     }
 
     @Test
-    public void testGetBatteryInfo_basedOnUsageTrue_usesUsageString() {
+    public void testGetBatteryInfo_basedOnUsageTrue_usesCorrectString() {
         BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mDisChargingBatteryBroadcast,
                 mBatteryStats, SystemClock.elapsedRealtime() * 1000, false /* shortString */,
                 1000, true /* basedOnUsage */);
@@ -139,8 +139,10 @@
                 mBatteryStats, SystemClock.elapsedRealtime() * 1000, true /* shortString */,
                 1000, true /* basedOnUsage */);
 
+        // We only add special mention for the long string
         assertThat(info.remainingLabel.toString()).contains(ENHANCED_STRING_SUFFIX);
-        assertThat(info2.remainingLabel.toString()).contains(ENHANCED_STRING_SUFFIX);
+        // shortened string should not have extra text
+        assertThat(info2.remainingLabel.toString()).doesNotContain(ENHANCED_STRING_SUFFIX);
     }
 
     @Test
