Make anomaly item refresh in battery
Bug: 63908155 Test: RunSettingsRoboTest Change-Id: I3e220001ca989020447403641360fade4d09e969
This commit is contained in:
@@ -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();
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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());
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user