Merge "Initialize values from sticy ACTION_BATTERY_CHANGED" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8debfa8357
@@ -251,7 +251,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
private boolean mDeviceProvisioned;
|
||||
|
||||
// Battery status
|
||||
private BatteryStatus mBatteryStatus;
|
||||
@VisibleForTesting
|
||||
BatteryStatus mBatteryStatus;
|
||||
|
||||
private StrongAuthTracker mStrongAuthTracker;
|
||||
|
||||
@@ -1698,6 +1699,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
||||
.getServiceStateForSubscriber(subId);
|
||||
mHandler.sendMessage(
|
||||
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);
|
||||
|
||||
@@ -225,6 +225,8 @@ public class PowerUI extends SystemUI implements CommandQueue.Callbacks {
|
||||
@VisibleForTesting
|
||||
final class Receiver extends BroadcastReceiver {
|
||||
|
||||
private boolean mHasReceivedBattery = false;
|
||||
|
||||
public void init() {
|
||||
// Register for Intent broadcasts for...
|
||||
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_USER_SWITCHED);
|
||||
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
|
||||
@@ -246,6 +259,7 @@ public class PowerUI extends SystemUI implements CommandQueue.Callbacks {
|
||||
}
|
||||
});
|
||||
} else if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
|
||||
mHasReceivedBattery = true;
|
||||
final int oldBatteryLevel = mBatteryLevel;
|
||||
mBatteryLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 100);
|
||||
final int oldBatteryStatus = mBatteryStatus;
|
||||
|
||||
@@ -74,7 +74,8 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
|
||||
protected boolean mPowerSave;
|
||||
private boolean mAodPowerSave;
|
||||
private boolean mTestmode = false;
|
||||
private boolean mHasReceivedBattery = false;
|
||||
@VisibleForTesting
|
||||
boolean mHasReceivedBattery = false;
|
||||
private Estimate mEstimate;
|
||||
private boolean mFetchingEstimate = false;
|
||||
|
||||
@@ -102,6 +103,16 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
|
||||
@Override
|
||||
public void init() {
|
||||
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();
|
||||
updateEstimate();
|
||||
}
|
||||
|
||||
@@ -210,6 +210,13 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
|
||||
mKeyguardUpdateMonitor.destroy();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInitialBatteryLevelRequested() {
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
assertThat(mKeyguardUpdateMonitor.mBatteryStatus).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReceiversRegistered() {
|
||||
verify(mBroadcastDispatcher, atLeastOnce()).registerReceiverWithHandler(
|
||||
|
||||
@@ -67,27 +67,35 @@ public class SysuiTestableContext extends TestableContext {
|
||||
|
||||
@Override
|
||||
public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
|
||||
mRegisteredReceivers.add(receiver);
|
||||
if (receiver != null) {
|
||||
mRegisteredReceivers.add(receiver);
|
||||
}
|
||||
return super.registerReceiver(receiver, filter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter,
|
||||
String broadcastPermission, Handler scheduler) {
|
||||
mRegisteredReceivers.add(receiver);
|
||||
if (receiver != null) {
|
||||
mRegisteredReceivers.add(receiver);
|
||||
}
|
||||
return super.registerReceiver(receiver, filter, broadcastPermission, scheduler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
|
||||
IntentFilter filter, String broadcastPermission, Handler scheduler) {
|
||||
mRegisteredReceivers.add(receiver);
|
||||
if (receiver != null) {
|
||||
mRegisteredReceivers.add(receiver);
|
||||
}
|
||||
return super.registerReceiverAsUser(receiver, user, filter, broadcastPermission, scheduler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterReceiver(BroadcastReceiver receiver) {
|
||||
mRegisteredReceivers.remove(receiver);
|
||||
if (receiver != null) {
|
||||
mRegisteredReceivers.remove(receiver);
|
||||
}
|
||||
super.unregisterReceiver(receiver);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +58,11 @@ public class BatteryControllerTest extends SysuiTestCase {
|
||||
mBatteryController.init();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBatteryInitialized() {
|
||||
Assert.assertTrue(mBatteryController.mHasReceivedBattery);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIndependentAODBatterySaver_true() {
|
||||
PowerSaveState state = new PowerSaveState.Builder()
|
||||
|
||||
Reference in New Issue
Block a user