Merge "Fix null pointer error && add settings side guard"

This commit is contained in:
Salvador Martinez
2017-05-10 18:50:53 +00:00
committed by Android (Google) Code Review
2 changed files with 33 additions and 3 deletions

View File

@@ -166,7 +166,8 @@ public class PowerUsageSummary extends PowerUsageBase implements
} }
}; };
private LoaderManager.LoaderCallbacks<Cursor> mBatteryPredictionLoaderCallbacks = @VisibleForTesting
LoaderManager.LoaderCallbacks<Cursor> mBatteryPredictionLoaderCallbacks =
new LoaderManager.LoaderCallbacks<Cursor>() { new LoaderManager.LoaderCallbacks<Cursor>() {
@Override @Override
@@ -177,8 +178,11 @@ public class PowerUsageSummary extends PowerUsageBase implements
@Override @Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
if (cursor == null) {
return;
}
try { try {
if (cursor != null && cursor.moveToFirst()) { if (cursor.moveToFirst()) {
mEnhancedEstimate = mEnhancedEstimate =
mPowerFeatureProvider.getTimeRemainingEstimate(cursor); mPowerFeatureProvider.getTimeRemainingEstimate(cursor);
} }
@@ -746,7 +750,8 @@ public class PowerUsageSummary extends PowerUsageBase implements
@VisibleForTesting @VisibleForTesting
void useEnhancedEstimateIfAvailable(Context context, BatteryInfo batteryInfo) { void useEnhancedEstimateIfAvailable(Context context, BatteryInfo batteryInfo) {
if (mEnhancedEstimate > 0) { if (mEnhancedEstimate > 0
&& mPowerFeatureProvider.isEnhancedBatteryPredictionEnabled(context)) {
final Resources resources = context.getResources(); final Resources resources = context.getResources();
batteryInfo.remainingTimeUs = mEnhancedEstimate; batteryInfo.remainingTimeUs = mEnhancedEstimate;
String timeString = Formatter.formatShortElapsedTime(context, mEnhancedEstimate); String timeString = Formatter.formatShortElapsedTime(context, mEnhancedEstimate);

View File

@@ -494,6 +494,7 @@ public class PowerUsageSummaryTest {
// mock out the provider // mock out the provider
final long time = 60 * 1000 * 1000; final long time = 60 * 1000 * 1000;
PowerUsageFeatureProvider provider = mFeatureFactory.getPowerUsageFeatureProvider(mContext); PowerUsageFeatureProvider provider = mFeatureFactory.getPowerUsageFeatureProvider(mContext);
when(provider.isEnhancedBatteryPredictionEnabled(any())).thenReturn(true);
mFragment.mPowerFeatureProvider = provider; mFragment.mPowerFeatureProvider = provider;
mFragment.mEnhancedEstimate = time; mFragment.mEnhancedEstimate = time;
@@ -505,6 +506,30 @@ public class PowerUsageSummaryTest {
assertThat(mBatteryInfo.remainingLabel).contains("About 17 hrs"); assertThat(mBatteryInfo.remainingLabel).contains("About 17 hrs");
} }
@Test
public void testUseEnhancedEstimateIfAvailable_noOpsOnDisabled() {
// mock out the provider
final long time = 60 * 1000 * 1000;
PowerUsageFeatureProvider provider = mFeatureFactory.getPowerUsageFeatureProvider(mContext);
when(provider.isEnhancedBatteryPredictionEnabled(any())).thenReturn(false);
mFragment.mPowerFeatureProvider = provider;
mFragment.mEnhancedEstimate = time;
mBatteryInfo.remainingTimeUs = TIME_SINCE_LAST_FULL_CHARGE_US;
mBatteryInfo.remainingLabel = TIME_LEFT;
mFragment.useEnhancedEstimateIfAvailable(mRealContext, mBatteryInfo);
// check to make sure the values did not change
assertThat(mBatteryInfo.remainingTimeUs).isEqualTo(TIME_SINCE_LAST_FULL_CHARGE_US);
assertThat(mBatteryInfo.remainingLabel).contains(TIME_LEFT);
}
@Test
public void testBatteryPredictionLoaderCallbacks_DoesNotCrashOnNull() {
// Sanity test to check for crash
mFragment.mBatteryPredictionLoaderCallbacks.onLoadFinished(null, null);
}
@Test @Test
public void testInitAnomalyDetectionIfPossible_detectionEnabled_init() { public void testInitAnomalyDetectionIfPossible_detectionEnabled_init() {
when(mFeatureFactory.powerUsageFeatureProvider.isAnomalyDetectionEnabled()).thenReturn( when(mFeatureFactory.powerUsageFeatureProvider.isAnomalyDetectionEnabled()).thenReturn(