diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 9bf65d9cc45..cb007808019 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -24,7 +24,7 @@ import android.content.Loader; import android.os.BatteryStats; import android.os.Bundle; import android.provider.SearchIndexableResource; -import androidx.annotation.VisibleForTesting; +import android.text.BidiFormatter; import android.text.format.Formatter; import android.util.SparseArray; import android.view.Menu; @@ -33,6 +33,7 @@ import android.view.MenuItem; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.TextView; +import androidx.annotation.VisibleForTesting; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; @@ -433,7 +434,7 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList BatteryInfo.getBatteryInfo(mContext, new BatteryInfo.Callback() { @Override public void onBatteryInfoLoaded(BatteryInfo info) { - mLoader.setSummary(SummaryProvider.this, info.chargeLabel); + mLoader.setSummary(SummaryProvider.this, getDashboardLabel(mContext, info)); } }, true /* shortString */); }); @@ -449,6 +450,20 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList } } + @VisibleForTesting + static CharSequence getDashboardLabel(Context context, BatteryInfo info) { + CharSequence label; + final BidiFormatter formatter = BidiFormatter.getInstance(); + if (info.remainingLabel == null) { + label = info.batteryPercentString; + } else { + label = context.getString(R.string.power_remaining_settings_home_page, + formatter.unicodeWrap(info.batteryPercentString), + formatter.unicodeWrap(info.remainingLabel)); + } + return label; + } + public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java index b20cf168261..b48f00e295b 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java @@ -48,6 +48,7 @@ import com.android.internal.os.BatteryStatsHelper; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.applications.LayoutPreference; +import com.android.settings.dashboard.SummaryLoader; import com.android.settings.fuelgauge.anomaly.Anomaly; import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController; import com.android.settings.testutils.FakeFeatureFactory; @@ -375,6 +376,18 @@ public class PowerUsageSummaryTest { verify(mFragment).restartBatteryTipLoader(); } + @Test + public void getDashboardLabel_returnsCorrectLabel() { + BatteryInfo info = new BatteryInfo(); + info.batteryPercentString = "3%"; + assertThat(PowerUsageSummary.getDashboardLabel(mRealContext, info)) + .isEqualTo(info.batteryPercentString); + + info.remainingLabel = "Phone will shut down soon"; + assertThat(PowerUsageSummary.getDashboardLabel(mRealContext, info)) + .isEqualTo("3% - Phone will shut down soon"); + } + public static class TestFragment extends PowerUsageSummary { private Context mContext;