Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +13 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading packages/SystemUI/src/com/android/systemui/power/PowerUI.java +14 −0 Original line number Original line Diff line number Diff line Loading @@ -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(); Loading @@ -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 Loading @@ -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; Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java +12 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); } } Loading packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -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( Loading packages/SystemUI/tests/src/com/android/systemui/SysuiTestableContext.java +12 −4 Original line number Original line Diff line number Diff line Loading @@ -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
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +13 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading
packages/SystemUI/src/com/android/systemui/power/PowerUI.java +14 −0 Original line number Original line Diff line number Diff line Loading @@ -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(); Loading @@ -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 Loading @@ -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; Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java +12 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); } } Loading
packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -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( Loading
packages/SystemUI/tests/src/com/android/systemui/SysuiTestableContext.java +12 −4 Original line number Original line Diff line number Diff line Loading @@ -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); } } } }