Merge "Keep setting of "TurnOff hotspot automatically" when AP is changed" am: 79e1afbdfa

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2123300

Change-Id: Icf6b8698aa4f01e89076fc0566f5d71ef35c1742
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
index b54a80f..5dc5758 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
@@ -29,6 +29,7 @@
         Preference.OnPreferenceChangeListener {
 
     private final WifiManager mWifiManager;
+    private boolean mSettingsOn;
 
     public WifiTetherAutoOffPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
@@ -43,9 +44,9 @@
     @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 @@
                 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 23601fa..0524ef5 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.Log;
 
 import androidx.annotation.VisibleForTesting;
-import androidx.preference.PreferenceGroup;
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
@@ -70,6 +69,7 @@
     private WifiTetherPasswordPreferenceController mPasswordPreferenceController;
     private WifiTetherSecurityPreferenceController mSecurityPreferenceController;
     private WifiTetherMaximizeCompatibilityPreferenceController mMaxCompatibilityPrefController;
+    private WifiTetherAutoOffPreferenceController mWifiTetherAutoOffPreferenceController;
 
     private WifiManager mWifiManager;
     private boolean mRestartWifiApAfterConfigChange;
@@ -117,6 +117,7 @@
         mPasswordPreferenceController = use(WifiTetherPasswordPreferenceController.class);
         mMaxCompatibilityPrefController =
                 use(WifiTetherMaximizeCompatibilityPreferenceController.class);
+        mWifiTetherAutoOffPreferenceController = use(WifiTetherAutoOffPreferenceController.class);
     }
 
     @Override
@@ -215,6 +216,8 @@
                     securityType);
         }
         mMaxCompatibilityPrefController.setupMaximizeCompatibility(configBuilder);
+        configBuilder.setAutoShutdownEnabled(
+                mWifiTetherAutoOffPreferenceController.isEnabled());
         return configBuilder.build();
     }