Merge "Prevent early destroying HotspotTile" into rvc-dev

This commit is contained in:
Fabian Kozynski
2020-02-25 19:03:54 +00:00
committed by Android (Google) Code Review
2 changed files with 29 additions and 9 deletions

View File

@@ -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

View File

@@ -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);
}
}