Merge "Fix null pointer error && add settings side guard"
This commit is contained in:
committed by
Android (Google) Code Review
commit
37e51e2d3b
@@ -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);
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user