Merge "Manully post the task in onReceive" into main
diff --git a/service/java/com/android/server/wifi/WifiDeviceStateChangeManager.java b/service/java/com/android/server/wifi/WifiDeviceStateChangeManager.java
index 5fa82fe..74df0a5 100644
--- a/service/java/com/android/server/wifi/WifiDeviceStateChangeManager.java
+++ b/service/java/com/android/server/wifi/WifiDeviceStateChangeManager.java
@@ -66,16 +66,15 @@
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
- if (TextUtils.equals(action, Intent.ACTION_SCREEN_ON)) {
- handleScreenStateChanged(true);
- } else if (TextUtils.equals(action, Intent.ACTION_SCREEN_OFF)) {
- handleScreenStateChanged(false);
+ if (TextUtils.equals(action, Intent.ACTION_SCREEN_ON)
+ || TextUtils.equals(action, Intent.ACTION_SCREEN_OFF)) {
+ mHandler.post(() ->
+ handleScreenStateChanged(TextUtils.equals(action,
+ Intent.ACTION_SCREEN_ON)));
}
}
},
- filter,
- null,
- mHandler);
+ filter);
handleScreenStateChanged(mPowerManager.isInteractive());
mIsWifiServiceStarted = true;
}
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiDeviceStateChangeManagerTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiDeviceStateChangeManagerTest.java
index ed4910a..95eac5f 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiDeviceStateChangeManagerTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiDeviceStateChangeManagerTest.java
@@ -74,7 +74,7 @@
verify(mStateChangeCallback, never()).onScreenStateChanged(anyBoolean());
mWifiDeviceStateChangeManager.handleBootCompleted();
verify(mContext, atLeastOnce())
- .registerReceiver(mBroadcastReceiverCaptor.capture(), any(), any(), any());
+ .registerReceiver(mBroadcastReceiverCaptor.capture(), any());
verify(mStateChangeCallback).onScreenStateChanged(true);
reset(mStateChangeCallback);
setScreenState(true);
@@ -91,7 +91,7 @@
public void testRegisterAfterBootCompleted() {
mWifiDeviceStateChangeManager.handleBootCompleted();
verify(mContext, atLeastOnce())
- .registerReceiver(mBroadcastReceiverCaptor.capture(), any(), any(), any());
+ .registerReceiver(mBroadcastReceiverCaptor.capture(), any());
mWifiDeviceStateChangeManager.registerStateChangeCallback(mStateChangeCallback);
// Register after boot completed should immediately get a callback
verify(mStateChangeCallback).onScreenStateChanged(true);
@@ -102,5 +102,6 @@
assertNotNull(broadcastReceiver);
Intent intent = new Intent(screenOn ? ACTION_SCREEN_ON : ACTION_SCREEN_OFF);
broadcastReceiver.onReceive(mContext, intent);
+ mLooper.dispatchAll();
}
}