diff --git a/res/xml/wifi_tether_settings.xml b/res/xml/wifi_tether_settings.xml index 8962d6201d9..c9dbafd67a9 100644 --- a/res/xml/wifi_tether_settings.xml +++ b/res/xml/wifi_tether_settings.xml @@ -44,10 +44,12 @@ android:persistent="false" android:title="@string/wifi_hotspot_password_title"/> - + android:summary="%s" + android:entries="@array/custom_timeout_entries" + android:entryValues="@array/custom_timeout_values" /> 0); } - mSettingsOn = settingsOn; return mWifiManager.setSoftApConfiguration(configBuilder.build()); } - public boolean isEnabled() { - return mSettingsOn; + public void updateConfig(SoftApConfiguration.Builder builder) { + if (builder == null) return; + final long timeout = getAutoOffTimeout(); + setShutdownTimeout(builder, timeout); + } + + private void setShutdownTimeout(SoftApConfiguration.Builder builder, long timeout) { + builder.setAutoShutdownEnabled(timeout > 0); + if (timeout > 0) { + builder.setShutdownTimeoutMillis(timeout); + } + updateDisplay(timeout); + } + + public void updateDisplay() { + updateDisplay(getAutoOffTimeout()); + } + + private void updateDisplay(long timeout) { + if (mPreference != null) { + mPreference.setValue(String.valueOf(timeout)); + if (timeout > 0) { + int index = mPreference.findIndexOfValue(String.valueOf(timeout)); + mPreference.setSummary(mPreference.getEntries()[index]); + } else { + mPreference.setSummary(mContext.getResources().getString( + R.string.wifi_hotspot_auto_off_summary)); + } + } } } diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java index 40285574a51..e9b5ac86a26 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java +++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java @@ -336,8 +336,7 @@ public class WifiTetherSettings extends RestrictedDashboardFragment if (!mWifiTetherViewModel.isSpeedFeatureAvailable()) { mMaxCompatibilityPrefController.setupMaximizeCompatibility(configBuilder); } - configBuilder.setAutoShutdownEnabled( - mWifiTetherAutoOffPreferenceController.isEnabled()); + mWifiTetherAutoOffPreferenceController.updateConfig(configBuilder); mClientPrefController.updateConfig(configBuilder); return configBuilder.build(); } @@ -347,6 +346,7 @@ public class WifiTetherSettings extends RestrictedDashboardFragment use(WifiTetherSecurityPreferenceController.class).updateDisplay(); use(WifiTetherPasswordPreferenceController.class).updateDisplay(); use(WifiTetherMaximizeCompatibilityPreferenceController.class).updateDisplay(); + use(WifiTetherAutoOffPreferenceController.class).updateDisplay(); } public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =