Merge "Make anomaly item refresh in battery" into oc-dr1-dev

This commit is contained in:
Lei Yu
2017-07-21 20:28:01 +00:00
committed by Android (Google) Code Review
4 changed files with 14 additions and 10 deletions

View File

@@ -50,7 +50,7 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
updateBatteryStatus(intent);
updateBatteryStatus(intent, false /* forceUpdate */);
}
public void setBatteryChangedListener(OnBatteryChangedListener lsn) {
@@ -60,20 +60,21 @@ public class BatteryBroadcastReceiver extends BroadcastReceiver {
public void register() {
final Intent intent = mContext.registerReceiver(this,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
updateBatteryStatus(intent);
updateBatteryStatus(intent, true /* forceUpdate */);
}
public void unRegister() {
mContext.unregisterReceiver(this);
}
private void updateBatteryStatus(Intent intent) {
private void updateBatteryStatus(Intent intent, boolean forceUpdate) {
if (intent != null && mBatteryListener != null && Intent.ACTION_BATTERY_CHANGED.equals(
intent.getAction())) {
String batteryLevel = Utils.getBatteryPercentage(intent);
String batteryStatus = Utils.getBatteryStatus(
mContext.getResources(), intent);
if (!batteryLevel.equals(mBatteryLevel) || !batteryStatus.equals(mBatteryStatus)) {
if (forceUpdate || !batteryLevel.equals(mBatteryLevel) || !batteryStatus.equals(
mBatteryStatus)) {
mBatteryLevel = batteryLevel;
mBatteryStatus = batteryStatus;
mBatteryListener.onBatteryChanged();

View File

@@ -522,7 +522,7 @@ public class PowerUsageSummary extends PowerUsageBase implements
return;
}
initAnomalyDetectionIfPossible();
restartAnomalyDetectionIfPossible();
// reload BatteryInfo and updateUI
restartBatteryInfoLoader();
@@ -647,9 +647,9 @@ public class PowerUsageSummary extends PowerUsageBase implements
}
@VisibleForTesting
void initAnomalyDetectionIfPossible() {
void restartAnomalyDetectionIfPossible() {
if (getAnomalyDetectionPolicy().isAnomalyDetectionEnabled()) {
getLoaderManager().initLoader(ANOMALY_LOADER, Bundle.EMPTY, mAnomalyLoaderCallbacks);
getLoaderManager().restartLoader(ANOMALY_LOADER, Bundle.EMPTY, mAnomalyLoaderCallbacks);
}
}

View File

@@ -37,6 +37,7 @@ import static org.mockito.Matchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -100,13 +101,15 @@ public class BatteryBroadcastReceiverTest {
public void testRegister_updateBatteryStatus() {
doReturn(mChargingIntent).when(mContext).registerReceiver(any(), any());
mBatteryBroadcastReceiver.register();
mBatteryBroadcastReceiver.register();
assertThat(mBatteryBroadcastReceiver.mBatteryLevel).isEqualTo(
Utils.getBatteryPercentage(mChargingIntent));
assertThat(mBatteryBroadcastReceiver.mBatteryStatus).isEqualTo(
Utils.getBatteryStatus(mContext.getResources(), mChargingIntent));
verify(mBatteryListener).onBatteryChanged();
// 2 times because register will force update the battery
verify(mBatteryListener, times(2)).onBatteryChanged();
}
}

View File

@@ -483,9 +483,9 @@ public class PowerUsageSummaryTest {
doReturn(mAnomalyDetectionPolicy).when(mFragment).getAnomalyDetectionPolicy();
when(mAnomalyDetectionPolicy.isAnomalyDetectionEnabled()).thenReturn(true);
mFragment.initAnomalyDetectionIfPossible();
mFragment.restartAnomalyDetectionIfPossible();
verify(mLoaderManager).initLoader(eq(PowerUsageSummary.ANOMALY_LOADER), eq(Bundle.EMPTY),
verify(mLoaderManager).restartLoader(eq(PowerUsageSummary.ANOMALY_LOADER), eq(Bundle.EMPTY),
any());
}