From b16ac39ee1e4b315186fe1d0032f2c68fb60dba4 Mon Sep 17 00:00:00 2001 From: Bruno Kremp Date: Wed, 15 Jun 2022 09:20:18 +0200 Subject: [PATCH] Keep setting of "TurnOff hotspot automatically" when AP is changed When AP config is changed, setting of "TurnOff hotspot automatically" will be reset to default. Hence keep the setting when AP config changed. Keep setting of whether auto shut down is enabled when AP config changed. Co-authored-by: Fangxiao Cao Test: manual test Bug: 235370570 Change-Id: Ibd3d59b6a86edaf1253a2c9b035576e60a7beb96 --- .../tether/WifiTetherAutoOffPreferenceController.java | 10 ++++++++-- .../settings/wifi/tether/WifiTetherSettings.java | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java index b54a80f6b41..5dc5758dc90 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java +++ b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java @@ -29,6 +29,7 @@ public class WifiTetherAutoOffPreferenceController extends BasePreferenceControl Preference.OnPreferenceChangeListener { private final WifiManager mWifiManager; + private boolean mSettingsOn; public WifiTetherAutoOffPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); @@ -43,9 +44,9 @@ public class WifiTetherAutoOffPreferenceController extends BasePreferenceControl @Override public void updateState(Preference preference) { SoftApConfiguration softApConfiguration = mWifiManager.getSoftApConfiguration(); - final boolean settingsOn = softApConfiguration.isAutoShutdownEnabled(); + mSettingsOn = softApConfiguration.isAutoShutdownEnabled(); - ((SwitchPreference) preference).setChecked(settingsOn); + ((SwitchPreference) preference).setChecked(mSettingsOn); } @Override @@ -56,6 +57,11 @@ public class WifiTetherAutoOffPreferenceController extends BasePreferenceControl new SoftApConfiguration.Builder(softApConfiguration) .setAutoShutdownEnabled(settingsOn) .build(); + mSettingsOn = settingsOn; return mWifiManager.setSoftApConfiguration(newSoftApConfiguration); } + + public boolean isEnabled() { + return mSettingsOn; + } } diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java index 23601fac5d8..0524ef57d53 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java +++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java @@ -32,7 +32,6 @@ import android.util.FeatureFlagUtils; import android.util.Log; import androidx.annotation.VisibleForTesting; -import androidx.preference.PreferenceGroup; import com.android.settings.R; import com.android.settings.SettingsActivity; @@ -70,6 +69,7 @@ public class WifiTetherSettings extends RestrictedDashboardFragment private WifiTetherPasswordPreferenceController mPasswordPreferenceController; private WifiTetherSecurityPreferenceController mSecurityPreferenceController; private WifiTetherMaximizeCompatibilityPreferenceController mMaxCompatibilityPrefController; + private WifiTetherAutoOffPreferenceController mWifiTetherAutoOffPreferenceController; private WifiManager mWifiManager; private boolean mRestartWifiApAfterConfigChange; @@ -117,6 +117,7 @@ public class WifiTetherSettings extends RestrictedDashboardFragment mPasswordPreferenceController = use(WifiTetherPasswordPreferenceController.class); mMaxCompatibilityPrefController = use(WifiTetherMaximizeCompatibilityPreferenceController.class); + mWifiTetherAutoOffPreferenceController = use(WifiTetherAutoOffPreferenceController.class); } @Override @@ -215,6 +216,8 @@ public class WifiTetherSettings extends RestrictedDashboardFragment securityType); } mMaxCompatibilityPrefController.setupMaximizeCompatibility(configBuilder); + configBuilder.setAutoShutdownEnabled( + mWifiTetherAutoOffPreferenceController.isEnabled()); return configBuilder.build(); }