Fix NullPointerException when showEmptyChart

Bug: 301880705
Fix: 301880705
Test: presubmit
Change-Id: I22a1df6b791396b398038c6bdb8e6b3ca37dc9e1
This commit is contained in:
Zaiyue Xue
2023-09-26 11:36:47 +08:00
parent 5d00a71a16
commit 6bf04986ac
2 changed files with 27 additions and 0 deletions

View File

@@ -327,6 +327,10 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
// Show empty hourly chart view only if there is no valid battery usage data. // Show empty hourly chart view only if there is no valid battery usage data.
void showEmptyChart() { void showEmptyChart() {
if (mDailyChartView == null || mHourlyChartView == null) {
// Chart views are not initialized.
return;
}
setChartSummaryVisible(true); setChartSummaryVisible(true);
mDailyChartView.setVisibility(View.GONE); mDailyChartView.setVisibility(View.GONE);
mHourlyChartView.setVisibility(View.VISIBLE); mHourlyChartView.setVisibility(View.VISIBLE);

View File

@@ -334,6 +334,29 @@ public final class BatteryChartPreferenceControllerTest {
verify(mHourlyChartView).setVisibility(View.VISIBLE); verify(mHourlyChartView).setVisibility(View.VISIBLE);
} }
@Test
public void showEmptyChart_dailyChartViewIsNull_ignoreShowEmptyChart() {
mBatteryChartPreferenceController.mDailyChartView = null;
doReturn(View.GONE).when(mHourlyChartView).getVisibility();
mBatteryChartPreferenceController.showEmptyChart();
verify(mChartSummaryTextView, never()).setVisibility(View.VISIBLE);
verify(mDailyChartView, never()).setVisibility(View.GONE);
verify(mHourlyChartView, never()).setVisibility(View.VISIBLE);
}
@Test
public void showEmptyChart_hourlyChartViewIsNull_ignoreShowEmptyChart() {
mBatteryChartPreferenceController.mHourlyChartView = null;
mBatteryChartPreferenceController.showEmptyChart();
verify(mChartSummaryTextView, never()).setVisibility(View.VISIBLE);
verify(mDailyChartView, never()).setVisibility(View.GONE);
verify(mHourlyChartView, never()).setVisibility(View.VISIBLE);
}
@Test @Test
public void refreshUi_dailyChartViewIsNull_ignoreRefresh() { public void refreshUi_dailyChartViewIsNull_ignoreRefresh() {
mBatteryChartPreferenceController.mDailyChartView = null; mBatteryChartPreferenceController.mDailyChartView = null;