Refresh Wifi AP Config display when config changes

Change-Id: I6fe284355223cbcedd82f95d6415c4d6b660f39f
Fixes: 64757839
Test: robotests
Test: rerun ACTS WifiTetheringTest:test_change_wifi_hotspot_ssid_when_hotspot_enabled
This commit is contained in:
Fan Zhang
2017-09-01 11:10:37 -07:00
parent fe18f8e876
commit 5a8b70d3da
8 changed files with 102 additions and 30 deletions

View File

@@ -44,6 +44,7 @@ import java.util.List;
public class WifiTetherSettings extends RestrictedDashboardFragment
implements WifiTetherBasePreferenceController.OnTetherConfigUpdateListener {
private static final String TAG = "WifiTetherSettings";
private static final IntentFilter TETHER_STATE_CHANGE_FILTER;
private WifiTetherSwitchBarController mSwitchBarController;
@@ -161,27 +162,37 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
return config;
}
private void startTether() {
mRestartWifiApAfterConfigChange = false;
mSwitchBarController.startTether();
}
private void updateDisplayWithNewConfig() {
getPreferenceController(WifiTetherSSIDPreferenceController.class)
.updateDisplay();
getPreferenceController(WifiTetherPasswordPreferenceController.class)
.updateDisplay();
getPreferenceController(WifiTetherApBandPreferenceController.class)
.updateDisplay();
}
@VisibleForTesting
class TetherChangeReceiver extends BroadcastReceiver {
private static final String TAG = "TetherChangeReceiver";
@Override
public void onReceive(Context content, Intent intent) {
String action = intent.getAction();
Log.d(TAG, "updating display config due to receiving broadcast action " + action);
updateDisplayWithNewConfig();
if (action.equals(ACTION_TETHER_STATE_CHANGED)) {
if (mWifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_DISABLED
&& mRestartWifiApAfterConfigChange) {
mRestartWifiApAfterConfigChange = false;
Log.d(TAG, "Restarting WifiAp due to prior config change.");
mSwitchBarController.startTether();
startTether();
}
} else if (action.equals(WIFI_AP_STATE_CHANGED_ACTION)) {
int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_AP_STATE, 0);
if (state == WifiManager.WIFI_AP_STATE_DISABLED
&& mRestartWifiApAfterConfigChange) {
mRestartWifiApAfterConfigChange = false;
Log.d(TAG, "Restarting WifiAp due to prior config change.");
mSwitchBarController.startTether();
startTether();
}
}
}