Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ec3e4e6 authored by Lei Yu's avatar Lei Yu Committed by Android (Google) Code Review
Browse files

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

parents a6ac4890 88b27fde
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -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();
+3 −3
Original line number Diff line number Diff line
@@ -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);
        }
    }

+4 −1
Original line number Diff line number Diff line
@@ -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();
    }

}
+2 −2
Original line number Diff line number Diff line
@@ -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());
    }