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

Commit a3bd409a authored by Irfan Sheriff's avatar Irfan Sheriff
Browse files

settings variable for wifi saved state

We add a variable for saving wifi state
to restore after tethering.

Bring up wifi on boot up if the state indicates so.

Bug: 2537983
Change-Id: I9c6548b93df6fcbc0cec1e6b857f7224dc6d1b2c
parent bfb7bfa5
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -2508,11 +2508,13 @@ public final class Settings {
        public static final String WIFI_ON = "wifi_on";

        /**
         * Whether the Wi-Fi AP should be on.
         * Used to save the Wifi_ON state prior to tethering.
         * This state will be checked to restore Wifi after
         * the user turns off tethering.
         *
         * @hide
         */
        public static final String WIFI_AP_ON = "wifi_ap_on";
        public static final String WIFI_SAVED_STATE = "wifi_saved_state";

        /**
         * AP SSID
+16 −2
Original line number Diff line number Diff line
@@ -264,10 +264,11 @@ public class WifiService extends IWifiManager.Stub {
     * if needed
     */
    public void startWifi() {
        boolean wifiEnabled = getPersistedWifiEnabled();
        /* Start if Wi-Fi is enabled or the saved state indicates Wi-Fi was on */
        boolean wifiEnabled = getPersistedWifiEnabled() || testAndClearWifiSavedState();
        Slog.i(TAG, "WifiService starting up with Wi-Fi " +
                (wifiEnabled ? "enabled" : "disabled"));
        setWifiEnabledBlocking(wifiEnabled, false, Process.myUid());
        setWifiEnabledBlocking(wifiEnabled, true, Process.myUid());
    }

    private void updateTetherState(ArrayList<String> available, ArrayList<String> tethered) {
@@ -316,6 +317,19 @@ public class WifiService extends IWifiManager.Stub {
        }
    }

    private boolean testAndClearWifiSavedState() {
        final ContentResolver cr = mContext.getContentResolver();
        int wifiSavedState = 0;
        try {
            wifiSavedState = Settings.Secure.getInt(cr, Settings.Secure.WIFI_SAVED_STATE);
            if(wifiSavedState == 1)
                Settings.Secure.putInt(cr, Settings.Secure.WIFI_SAVED_STATE, 0);
        } catch (Settings.SettingNotFoundException e) {
            ;
        }
        return (wifiSavedState == 1);
    }

    private boolean getPersistedWifiEnabled() {
        final ContentResolver cr = mContext.getContentResolver();
        try {