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

Commit 63989577 authored by Roshan Pius's avatar Roshan Pius
Browse files

WifiManager: Add API for scan always available toggle

Needed for moving away from using Settings.Global values as pseudo APIs.

Bug: 148514485
Test: atest android.net.wifi
Test: Verified wifi wifi scan toggle in location settings.
Change-Id: Iec75d331c7866180a55a327813466323c565319a
parent 1861fa18
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -7750,6 +7750,7 @@ package android.net.wifi {
    method @RequiresPermission(android.Manifest.permission.WIFI_SET_DEVICE_MOBILITY_STATE) public void setDeviceMobilityState(int);
    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setMacRandomizationSettingPasspointEnabled(@NonNull String, boolean);
    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setMeteredOverridePasspoint(@NonNull String, int);
    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setScanAlwaysAvailable(boolean);
    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setScanThrottleEnabled(boolean);
    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public boolean setSoftApConfiguration(@NonNull android.net.wifi.SoftApConfiguration);
    method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setVerboseLoggingEnabled(boolean);
+2 −0
Original line number Diff line number Diff line
@@ -125,6 +125,8 @@ interface IWifiManager

    DhcpInfo getDhcpInfo();

    void setScanAlwaysAvailable(boolean isAvailable);

    boolean isScanAlwaysAvailable();

    boolean acquireWifiLock(IBinder lock, int lockType, String tag, in WorkSource ws);
+20 −0
Original line number Diff line number Diff line
@@ -2754,6 +2754,26 @@ public class WifiManager {
        }
    }

    /**
     * Set if scanning is always available.
     *
     * If set to {@code true}, apps can issue {@link #startScan} and fetch scan results
     * even when Wi-Fi is turned off.
     *
     * @param isAvailable true to enable, false to disable.
     * @hide
     * @see #isScanAlwaysAvailable()
     */
    @SystemApi
    @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
    public void setScanAlwaysAvailable(boolean isAvailable) {
        try {
            mService.setScanAlwaysAvailable(isAvailable);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    /**
     * Check if scanning is always available.
     *
+11 −0
Original line number Diff line number Diff line
@@ -2401,4 +2401,15 @@ public class WifiManagerTest {
        assertFalse(mWifiManager.isAutoWakeupEnabled());
        verify(mWifiService).isAutoWakeupEnabled();
    }


    @Test
    public void testScanAvailable() throws Exception {
        mWifiManager.setScanAlwaysAvailable(true);
        verify(mWifiService).setScanAlwaysAvailable(true);

        when(mWifiService.isScanAlwaysAvailable()).thenReturn(false);
        assertFalse(mWifiManager.isScanAlwaysAvailable());
        verify(mWifiService).isScanAlwaysAvailable();
    }
}