diff options
| author | 2020-02-25 19:03:54 +0000 | |
|---|---|---|
| committer | 2020-02-25 19:03:54 +0000 | |
| commit | 0fcf7f11a724d0a4d844e7de53e7230387158447 (patch) | |
| tree | fbbf75a7fd055a2f0d0fc437135549e00e4c0929 | |
| parent | 3e4c88087ddebc28feaa51136a82e78bef282500 (diff) | |
| parent | 17623bfa8f42c8399698f88d5a8cf745c65301d4 (diff) | |
Merge "Prevent early destroying HotspotTile" into rvc-dev
2 files changed, 29 insertions, 9 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java index d0904049d85a..7d532a88caac 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java @@ -56,8 +56,9 @@ public class HotspotControllerImpl implements HotspotController, WifiManager.Sof private int mHotspotState; private volatile int mNumConnectedDevices; - private volatile boolean mIsTetheringSupported; - private volatile boolean mHasTetherableWifiRegexs; + // Assume tethering is available until told otherwise + private volatile boolean mIsTetheringSupported = true; + private volatile boolean mHasTetherableWifiRegexs = true; private boolean mWaitingForTerminalState; private TetheringManager.TetheringEventCallback mTetheringCallback = @@ -97,6 +98,15 @@ public class HotspotControllerImpl implements HotspotController, WifiManager.Sof new HandlerExecutor(backgroundHandler), mTetheringCallback); } + /** + * Whether hotspot is currently supported. + * + * This will return {@code true} immediately on creation of the controller, but may be updated + * later. Callbacks from this controllers will notify if the state changes. + * + * @return {@code true} if hotspot is supported (or we haven't been told it's not) + * @see #addCallback + */ @Override public boolean isHotspotSupported() { return mIsTetheringSupported && mHasTetherableWifiRegexs diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HotspotControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HotspotControllerImplTest.java index cd91f22bb753..57714722aea4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HotspotControllerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HotspotControllerImplTest.java @@ -16,7 +16,6 @@ package com.android.systemui.statusbar.policy; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; @@ -140,13 +139,16 @@ public class HotspotControllerImplTest extends SysuiTestCase { } @Test - public void testDefault_hotspotNotSupported() { - assertFalse(mController.isHotspotSupported()); + public void testHotspotSupported_default() { + assertTrue(mController.isHotspotSupported()); } @Test public void testHotspotSupported_rightConditions() { mTetheringCallbackCaptor.getValue().onTetheringSupported(true); + + assertTrue(mController.isHotspotSupported()); + mTetheringCallbackCaptor.getValue() .onTetherableInterfaceRegexpsChanged(mTetheringInterfaceRegexps); @@ -154,13 +156,21 @@ public class HotspotControllerImplTest extends SysuiTestCase { } @Test - public void testHotspotSupported_callbackCalledOnChange() { + public void testHotspotSupported_callbackCalledOnChange_tetheringSupported() { + mController.addCallback(mCallback1); + mTetheringCallbackCaptor.getValue().onTetheringSupported(false); + + verify(mCallback1).onHotspotAvailabilityChanged(false); + } + + @Test + public void testHotspotSupported_callbackCalledOnChange_tetherableInterfaces() { + when(mTetheringInterfaceRegexps.getTetherableWifiRegexs()) + .thenReturn(Collections.emptyList()); mController.addCallback(mCallback1); - mTetheringCallbackCaptor.getValue().onTetheringSupported(true); mTetheringCallbackCaptor.getValue() .onTetherableInterfaceRegexpsChanged(mTetheringInterfaceRegexps); - verify(mCallback1).onHotspotAvailabilityChanged(true); + verify(mCallback1).onHotspotAvailabilityChanged(false); } - } |