diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index c44a3735d1f..1eb1903ef05 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -532,6 +532,10 @@ public class PowerUsageSummary extends PowerUsageBase { @VisibleForTesting void updateHeaderPreference(BatteryInfo info) { + final Context context = getContext(); + if (context == null) { + return; + } final BatteryMeterView batteryView = (BatteryMeterView) mBatteryLayoutPref .findViewById(R.id.battery_header_icon); final TextView timeText = (TextView) mBatteryLayoutPref.findViewById(R.id.time); @@ -542,8 +546,7 @@ public class PowerUsageSummary extends PowerUsageBase { R.string.estimated_time_left : R.string.estimated_charging_time_left; if (info.remainingTimeUs != 0) { - timeText.setText(Utils.formatElapsedTime(getContext(), - info.remainingTimeUs / 1000, false)); + timeText.setText(Utils.formatElapsedTime(context, info.remainingTimeUs / 1000, false)); } else { timeText.setText(info.statusLabel); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java index dab39e4c264..796f5644e1c 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java @@ -358,6 +358,14 @@ public class PowerUsageSummaryTest { verify(mSummary1).setText(R.string.estimated_time_left); } + @Test + public void testUpdateHeaderPreference_AsyncUpdate_ShouldNotCrash() { + when(mPowerUsageSummary.getContext()).thenReturn(null); + mBatteryInfo.remainingTimeUs = REMAINING_TIME_US; + + //Should not crash + mPowerUsageSummary.updateHeaderPreference(mBatteryInfo); + } private void testToggleAllApps(final boolean isShowApps) { mFragment.mShowAllApps = isShowApps;