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

Commit 8debfa83 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "Initialize values from sticy ACTION_BATTERY_CHANGED" into rvc-dev

parents 1b824ba3 99abb711
Loading
Loading
Loading
Loading
+13 −1
Original line number Original line Diff line number Diff line
@@ -251,7 +251,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
    private boolean mDeviceProvisioned;
    private boolean mDeviceProvisioned;


    // Battery status
    // Battery status
    private BatteryStatus mBatteryStatus;
    @VisibleForTesting
    BatteryStatus mBatteryStatus;


    private StrongAuthTracker mStrongAuthTracker;
    private StrongAuthTracker mStrongAuthTracker;


@@ -1698,6 +1699,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
                    .getServiceStateForSubscriber(subId);
                    .getServiceStateForSubscriber(subId);
            mHandler.sendMessage(
            mHandler.sendMessage(
                    mHandler.obtainMessage(MSG_SERVICE_STATE_CHANGE, subId, 0, serviceState));
                    mHandler.obtainMessage(MSG_SERVICE_STATE_CHANGE, subId, 0, serviceState));

            // Get initial state. Relying on Sticky behavior until API for getting info.
            if (mBatteryStatus == null) {
                Intent intent = mContext.registerReceiver(
                        null,
                        new IntentFilter(Intent.ACTION_BATTERY_CHANGED)
                );
                if (intent != null && mBatteryStatus == null) {
                    mBroadcastReceiver.onReceive(mContext, intent);
                }
            }
        });
        });


        mHandler.post(this::registerRingerTracker);
        mHandler.post(this::registerRingerTracker);
+14 −0
Original line number Original line Diff line number Diff line
@@ -225,6 +225,8 @@ public class PowerUI extends SystemUI implements CommandQueue.Callbacks {
    @VisibleForTesting
    @VisibleForTesting
    final class Receiver extends BroadcastReceiver {
    final class Receiver extends BroadcastReceiver {


        private boolean mHasReceivedBattery = false;

        public void init() {
        public void init() {
            // Register for Intent broadcasts for...
            // Register for Intent broadcasts for...
            IntentFilter filter = new IntentFilter();
            IntentFilter filter = new IntentFilter();
@@ -234,6 +236,17 @@ public class PowerUI extends SystemUI implements CommandQueue.Callbacks {
            filter.addAction(Intent.ACTION_SCREEN_ON);
            filter.addAction(Intent.ACTION_SCREEN_ON);
            filter.addAction(Intent.ACTION_USER_SWITCHED);
            filter.addAction(Intent.ACTION_USER_SWITCHED);
            mBroadcastDispatcher.registerReceiverWithHandler(this, filter, mHandler);
            mBroadcastDispatcher.registerReceiverWithHandler(this, filter, mHandler);
            // Force get initial values. Relying on Sticky behavior until API for getting info.
            if (!mHasReceivedBattery) {
                // Get initial state
                Intent intent = mContext.registerReceiver(
                        null,
                        new IntentFilter(Intent.ACTION_BATTERY_CHANGED)
                );
                if (intent != null) {
                    onReceive(mContext, intent);
                }
            }
        }
        }


        @Override
        @Override
@@ -246,6 +259,7 @@ public class PowerUI extends SystemUI implements CommandQueue.Callbacks {
                    }
                    }
                });
                });
            } else if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
            } else if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
                mHasReceivedBattery = true;
                final int oldBatteryLevel = mBatteryLevel;
                final int oldBatteryLevel = mBatteryLevel;
                mBatteryLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 100);
                mBatteryLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 100);
                final int oldBatteryStatus = mBatteryStatus;
                final int oldBatteryStatus = mBatteryStatus;
+12 −1
Original line number Original line Diff line number Diff line
@@ -74,7 +74,8 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
    protected boolean mPowerSave;
    protected boolean mPowerSave;
    private boolean mAodPowerSave;
    private boolean mAodPowerSave;
    private boolean mTestmode = false;
    private boolean mTestmode = false;
    private boolean mHasReceivedBattery = false;
    @VisibleForTesting
    boolean mHasReceivedBattery = false;
    private Estimate mEstimate;
    private Estimate mEstimate;
    private boolean mFetchingEstimate = false;
    private boolean mFetchingEstimate = false;


@@ -102,6 +103,16 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
    @Override
    @Override
    public void init() {
    public void init() {
        registerReceiver();
        registerReceiver();
        if (!mHasReceivedBattery) {
            // Get initial state. Relying on Sticky behavior until API for getting info.
            Intent intent = mContext.registerReceiver(
                    null,
                    new IntentFilter(Intent.ACTION_BATTERY_CHANGED)
            );
            if (intent != null && !mHasReceivedBattery) {
                onReceive(mContext, intent);
            }
        }
        updatePowerSave();
        updatePowerSave();
        updateEstimate();
        updateEstimate();
    }
    }
+7 −0
Original line number Original line Diff line number Diff line
@@ -210,6 +210,13 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
        mKeyguardUpdateMonitor.destroy();
        mKeyguardUpdateMonitor.destroy();
    }
    }


    @Test
    public void testInitialBatteryLevelRequested() {
        mTestableLooper.processAllMessages();

        assertThat(mKeyguardUpdateMonitor.mBatteryStatus).isNotNull();
    }

    @Test
    @Test
    public void testReceiversRegistered() {
    public void testReceiversRegistered() {
        verify(mBroadcastDispatcher, atLeastOnce()).registerReceiverWithHandler(
        verify(mBroadcastDispatcher, atLeastOnce()).registerReceiverWithHandler(
+12 −4
Original line number Original line Diff line number Diff line
@@ -67,27 +67,35 @@ public class SysuiTestableContext extends TestableContext {


    @Override
    @Override
    public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
    public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
        if (receiver != null) {
            mRegisteredReceivers.add(receiver);
            mRegisteredReceivers.add(receiver);
        }
        return super.registerReceiver(receiver, filter);
        return super.registerReceiver(receiver, filter);
    }
    }


    @Override
    @Override
    public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter,
    public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter,
            String broadcastPermission, Handler scheduler) {
            String broadcastPermission, Handler scheduler) {
        if (receiver != null) {
            mRegisteredReceivers.add(receiver);
            mRegisteredReceivers.add(receiver);
        }
        return super.registerReceiver(receiver, filter, broadcastPermission, scheduler);
        return super.registerReceiver(receiver, filter, broadcastPermission, scheduler);
    }
    }


    @Override
    @Override
    public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
    public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
            IntentFilter filter, String broadcastPermission, Handler scheduler) {
            IntentFilter filter, String broadcastPermission, Handler scheduler) {
        if (receiver != null) {
            mRegisteredReceivers.add(receiver);
            mRegisteredReceivers.add(receiver);
        }
        return super.registerReceiverAsUser(receiver, user, filter, broadcastPermission, scheduler);
        return super.registerReceiverAsUser(receiver, user, filter, broadcastPermission, scheduler);
    }
    }


    @Override
    @Override
    public void unregisterReceiver(BroadcastReceiver receiver) {
    public void unregisterReceiver(BroadcastReceiver receiver) {
        if (receiver != null) {
            mRegisteredReceivers.remove(receiver);
            mRegisteredReceivers.remove(receiver);
        }
        super.unregisterReceiver(receiver);
        super.unregisterReceiver(receiver);
    }
    }
}
}
Loading