Show IP address of current active link instead of just the WiFi IP address.

Bug: 5359194

Show "Unavailable" only if there's no active link.

Change-Id: I82ba6bda3a08ea84080a8d8cda331f22d7c7a2bd
This commit is contained in:
Amith Yamasani
2011-10-17 16:41:00 -07:00
parent 68da83649e
commit 6822b749bb
2 changed files with 26 additions and 5 deletions

View File

@@ -306,6 +306,23 @@ public class Utils {
ConnectivityManager cm = (ConnectivityManager) ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE); context.getSystemService(Context.CONNECTIVITY_SERVICE);
LinkProperties prop = cm.getLinkProperties(ConnectivityManager.TYPE_WIFI); LinkProperties prop = cm.getLinkProperties(ConnectivityManager.TYPE_WIFI);
return formatIpAddresses(prop);
}
/**
* Returns the default link's IP addresses, if any, taking into account IPv4 and IPv6 style
* addresses.
* @param context the application context
* @return the formatted and comma-separated IP addresses, or null if none.
*/
public static String getDefaultIpAddresses(Context context) {
ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
LinkProperties prop = cm.getActiveLinkProperties();
return formatIpAddresses(prop);
}
private static String formatIpAddresses(LinkProperties prop) {
if (prop == null) return null; if (prop == null) return null;
Iterator<InetAddress> iter = prop.getAddresses().iterator(); Iterator<InetAddress> iter = prop.getAddresses().iterator();
// If there are no entries, return null // If there are no entries, return null

View File

@@ -78,7 +78,7 @@ public class Status extends PreferenceActivity {
private static final String KEY_SIGNAL_STRENGTH = "signal_strength"; private static final String KEY_SIGNAL_STRENGTH = "signal_strength";
private static final String KEY_BATTERY_STATUS = "battery_status"; private static final String KEY_BATTERY_STATUS = "battery_status";
private static final String KEY_BATTERY_LEVEL = "battery_level"; private static final String KEY_BATTERY_LEVEL = "battery_level";
private static final String KEY_WIFI_IP_ADDRESS = "wifi_ip_address"; private static final String KEY_IP_ADDRESS = "wifi_ip_address";
private static final String KEY_WIFI_MAC_ADDRESS = "wifi_mac_address"; private static final String KEY_WIFI_MAC_ADDRESS = "wifi_mac_address";
private static final String KEY_BT_ADDRESS = "bt_address"; private static final String KEY_BT_ADDRESS = "bt_address";
private static final String KEY_SERIAL_NUMBER = "serial_number"; private static final String KEY_SERIAL_NUMBER = "serial_number";
@@ -250,6 +250,7 @@ public class Status extends PreferenceActivity {
setWifiStatus(); setWifiStatus();
setBtStatus(); setBtStatus();
setIpAddressStatus();
String serial = Build.SERIAL; String serial = Build.SERIAL;
if (serial != null && !serial.equals("")) { if (serial != null && !serial.equals("")) {
@@ -413,16 +414,19 @@ public class Status extends PreferenceActivity {
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); WifiInfo wifiInfo = wifiManager.getConnectionInfo();
Preference wifiMacAddressPref = findPreference(KEY_WIFI_MAC_ADDRESS); Preference wifiMacAddressPref = findPreference(KEY_WIFI_MAC_ADDRESS);
String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress(); String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
wifiMacAddressPref.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress wifiMacAddressPref.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress
: getString(R.string.status_unavailable)); : getString(R.string.status_unavailable));
}
Preference wifiIpAddressPref = findPreference(KEY_WIFI_IP_ADDRESS); private void setIpAddressStatus() {
String ipAddress = Utils.getWifiIpAddresses(this); Preference ipAddressPref = findPreference(KEY_IP_ADDRESS);
String ipAddress = Utils.getDefaultIpAddresses(this);
if (ipAddress != null) { if (ipAddress != null) {
wifiIpAddressPref.setSummary(ipAddress); ipAddressPref.setSummary(ipAddress);
} else { } else {
wifiIpAddressPref.setSummary(getString(R.string.status_unavailable)); ipAddressPref.setSummary(getString(R.string.status_unavailable));
} }
} }