summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/java/com/android/server/wifi/HalDeviceManager.java6
-rw-r--r--tests/wifitests/src/com/android/server/wifi/HalDeviceManagerTest.java23
2 files changed, 6 insertions, 23 deletions
diff --git a/service/java/com/android/server/wifi/HalDeviceManager.java b/service/java/com/android/server/wifi/HalDeviceManager.java
index bcc0348a8..4382c8126 100644
--- a/service/java/com/android/server/wifi/HalDeviceManager.java
+++ b/service/java/com/android/server/wifi/HalDeviceManager.java
@@ -532,7 +532,6 @@ public class HalDeviceManager {
private void initializeInternal() {
initIServiceManagerIfNecessary();
- initIWifiIfNecessary();
}
private void teardownInternal() {
@@ -562,7 +561,9 @@ public class HalDeviceManager {
Log.d(TAG, "IWifi registration notification: fqName=" + fqName
+ ", name=" + name + ", preexisting=" + preexisting);
synchronized (mLock) {
+ mWifi = null; // get rid of old copy!
initIWifiIfNecessary();
+ stopWifi(); // just in case
}
}
};
@@ -672,8 +673,7 @@ public class HalDeviceManager {
mWifi = null;
return;
}
- // Stopping wifi just in case. This would also trigger the status callback.
- stopWifi();
+ managerStatusListenerDispatch();
} catch (RemoteException e) {
Log.e(TAG, "Exception while operating on IWifi: " + e);
}
diff --git a/tests/wifitests/src/com/android/server/wifi/HalDeviceManagerTest.java b/tests/wifitests/src/com/android/server/wifi/HalDeviceManagerTest.java
index 54c67b222..3e203a666 100644
--- a/tests/wifitests/src/com/android/server/wifi/HalDeviceManagerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/HalDeviceManagerTest.java
@@ -164,22 +164,6 @@ public class HalDeviceManagerTest {
}
/**
- * Test the service manager notification coming in after
- * {@link HalDeviceManager#initIWifiIfNecessary()} is already invoked as a part of
- * {@link HalDeviceManager#initialize()}.
- */
- @Test
- public void testServiceRegisterationAfterInitialize() throws Exception {
- mInOrder = inOrder(mServiceManagerMock, mWifiMock, mManagerStatusListenerMock);
- executeAndValidateInitializationSequence();
-
- // This should now be ignored since IWifi is already non-null.
- mServiceNotificationCaptor.getValue().onRegistration(IWifi.kInterfaceName, "", true);
-
- verifyNoMoreInteractions(mManagerStatusListenerMock, mWifiMock, mServiceManagerMock);
- }
-
- /**
* Validate that multiple callback registrations are called and that duplicate ones are
* only called once.
*/
@@ -237,7 +221,7 @@ public class HalDeviceManagerTest {
// verify: service and callback calls
mInOrder.verify(mWifiMock).start();
- mInOrder.verify(mManagerStatusListenerMock, times(2)).onStatusChanged();
+ mInOrder.verify(mManagerStatusListenerMock, times(3)).onStatusChanged();
verifyNoMoreInteractions(mManagerStatusListenerMock);
}
@@ -1113,13 +1097,12 @@ public class HalDeviceManagerTest {
mInOrder.verify(mServiceManagerMock).registerForNotifications(eq(IWifi.kInterfaceName),
eq(""), mServiceNotificationCaptor.capture());
- // The service should already be up at this point.
+ // act: get the service started (which happens even when service was already up)
+ mServiceNotificationCaptor.getValue().onRegistration(IWifi.kInterfaceName, "", true);
// verify: wifi initialization sequence
mInOrder.verify(mWifiMock).linkToDeath(mDeathRecipientCaptor.capture(), anyLong());
mInOrder.verify(mWifiMock).registerEventCallback(mWifiEventCallbackCaptor.capture());
- // verify: onStop called as a part of initialize.
- mInOrder.verify(mWifiMock).stop();
collector.checkThat("isReady is true", mDut.isReady(), equalTo(true));
}