diff options
-rw-r--r-- | service/java/com/android/server/wifi/HalDeviceManager.java | 6 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/HalDeviceManagerTest.java | 23 |
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)); } |