Dynamically update connectivity and IP address.

The settings status page dynamically updates mobile network
status (in/out of service, signal strength, network type, etc.)
but not IP address and connectivity information. Dynamically
update that information as well, for consistency.

For consistency, also update the advanced wifi settings page.

Bug: 10232006
Change-Id: I3a292d8bd9e36ab16c37e107eefff4b37d884a4c
This commit is contained in:
Lorenzo Colitti
2013-09-06 18:04:26 +09:00
parent 6eb6a90821
commit deb8f08ace
2 changed files with 59 additions and 0 deletions

View File

@@ -16,8 +16,10 @@
package com.android.settings.wifi;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiWatchdogStateMachine;
@@ -53,6 +55,18 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment
private WifiManager mWifiManager;
private IntentFilter mFilter;
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION) ||
action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
refreshWifiInfo();
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -63,15 +77,26 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
mFilter = new IntentFilter();
mFilter.addAction(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION);
mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
}
@Override
public void onResume() {
super.onResume();
initPreferences();
getActivity().registerReceiver(mReceiver, mFilter,
android.Manifest.permission.CHANGE_NETWORK_STATE, null);
refreshWifiInfo();
}
@Override
public void onPause() {
super.onPause();
getActivity().unregisterReceiver(mReceiver);
}
private void initPreferences() {
CheckBoxPreference notifyOpenNetworks =
(CheckBoxPreference) findPreference(KEY_NOTIFY_OPEN_NETWORKS);