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;
|
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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,11 @@ public class BatteryControllerTest extends SysuiTestCase {
|
|||||||
mBatteryController.init();
|
mBatteryController.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBatteryInitialized() {
|
||||||
|
Assert.assertTrue(mBatteryController.mHasReceivedBattery);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIndependentAODBatterySaver_true() {
|
public void testIndependentAODBatterySaver_true() {
|
||||||
PowerSaveState state = new PowerSaveState.Builder()
|
PowerSaveState state = new PowerSaveState.Builder()
|
||||||
|
|||||||
Reference in New Issue
Block a user