Add support for tethering errors.

This commit is contained in:
Robert Greenwalt
2010-03-02 17:33:11 -08:00
parent 65daa5f593
commit d5f121c66a
2 changed files with 20 additions and 2 deletions

View File

@@ -1360,6 +1360,8 @@
<string name="usb_tethering_storage_active_subtext">Tethering disabled (USB storage is in use)</string> <string name="usb_tethering_storage_active_subtext">Tethering disabled (USB storage is in use)</string>
<!-- USB unavailable subtext - shown when USB is not connected --> <!-- USB unavailable subtext - shown when USB is not connected -->
<string name="usb_tethering_unavailable_subtext">USB not connected</string> <string name="usb_tethering_unavailable_subtext">USB not connected</string>
<!-- USB errored subtext - shown when USB is broken for some reason -->
<string name="usb_tethering_errored_subtext">USB tethering has had a problem.</string>
<!-- Wireless controls, item title to go into the network settings --> <!-- Wireless controls, item title to go into the network settings -->
<string name="network_settings_title">Mobile networks</string> <string name="network_settings_title">Mobile networks</string>

View File

@@ -78,8 +78,10 @@ public class TetherSettings extends PreferenceActivity {
ConnectivityManager.EXTRA_AVAILABLE_TETHER); ConnectivityManager.EXTRA_AVAILABLE_TETHER);
ArrayList<String> active = intent.getStringArrayListExtra( ArrayList<String> active = intent.getStringArrayListExtra(
ConnectivityManager.EXTRA_ACTIVE_TETHER); ConnectivityManager.EXTRA_ACTIVE_TETHER);
ArrayList<String> errored = intent.getStringArrayListExtra(
ConnectivityManager.EXTRA_ERRORED_TETHER);
updateState(available, active); updateState(available, active, errored);
} }
} }
@@ -105,13 +107,16 @@ public class TetherSettings extends PreferenceActivity {
mTetherChangeReceiver = null; mTetherChangeReceiver = null;
} }
private void updateState(ArrayList<String> available, ArrayList<String> tethered) { private void updateState(ArrayList<String> available, ArrayList<String> tethered,
ArrayList<String> errored) {
boolean usbTethered = false; boolean usbTethered = false;
boolean usbAvailable = false; boolean usbAvailable = false;
boolean usbErrored = false;
boolean wifiTethered = false; boolean wifiTethered = false;
boolean wifiAvailable = false; boolean wifiAvailable = false;
boolean massStorageActive = boolean massStorageActive =
Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState()); Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
boolean wifiErrored = false;
for (String s : available) { for (String s : available) {
for (String regex : mUsbRegexs) { for (String regex : mUsbRegexs) {
@@ -129,6 +134,14 @@ public class TetherSettings extends PreferenceActivity {
if (s.matches(regex)) wifiTethered = true; if (s.matches(regex)) wifiTethered = true;
} }
} }
for (String s: errored) {
for (String regex : mUsbRegexs) {
if (s.matches(regex)) usbErrored = true;
}
for (String regex : mWifiRegexs) {
if (s.matches(regex)) wifiErrored = true;
}
}
if (usbTethered) { if (usbTethered) {
mUsbTether.setSummary(R.string.usb_tethering_active_subtext); mUsbTether.setSummary(R.string.usb_tethering_active_subtext);
@@ -139,6 +152,9 @@ public class TetherSettings extends PreferenceActivity {
} else if (usbAvailable) { } else if (usbAvailable) {
mUsbTether.setSummary(R.string.usb_tethering_available_subtext); mUsbTether.setSummary(R.string.usb_tethering_available_subtext);
mUsbTether.setEnabled(true); mUsbTether.setEnabled(true);
} else if (usbErrored) {
mUsbTether.setSummary(R.string.usb_tethering_errored_subtext);
mUsbTether.setEnabled(false);
} else { } else {
mUsbTether.setSummary(R.string.usb_tethering_unavailable_subtext); mUsbTether.setSummary(R.string.usb_tethering_unavailable_subtext);
mUsbTether.setEnabled(false); mUsbTether.setEnabled(false);