Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fcf7f11 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "Prevent early destroying HotspotTile" into rvc-dev

parents 3e4c8808 17623bfa
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -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
+17 −7
Original line number Diff line number Diff line
@@ -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);
    }

}