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 <fangxiao.x.cao@sony.com>

Test: manual test
Bug: 235370570
Change-Id: Ibd3d59b6a86edaf1253a2c9b035576e60a7beb96
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();
     }