OSDN Git Service

Disable tethering checkbox when USB mass storage is active.
authorMike Lockwood <lockwood@android.com>
Wed, 3 Mar 2010 11:19:55 +0000 (06:19 -0500)
committerMike Lockwood <lockwood@android.com>
Wed, 3 Mar 2010 11:19:55 +0000 (06:19 -0500)
Change-Id: If60fab4c18bbac4da22af6c1799f28344e9870bd
Signed-off-by: Mike Lockwood <lockwood@android.com>
res/values/strings.xml
src/com/android/settings/TetherSettings.java

index 67196e9..aa218c3 100644 (file)
     <string name="usb_tethering_available_subtext">USB connected, select to tether</string>
     <!-- USB tethered subtext - shown when USB is connected and being tethered -->
     <string name="usb_tethering_active_subtext">Connected, select to disconnect</string>
+    <!-- USB storage subtext - shown when tethering is disabled because USB storage is active -->
+    <string name="usb_tethering_storage_active_subtext">Tethering disabled (USB storage is in use)</string>
     <!-- USB unavailable subtext - shown when USB is not connected -->
     <string name="usb_tethering_unavailable_subtext">USB not connected</string>
 
index 1e9c4e2..b9e266a 100644 (file)
@@ -23,6 +23,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.net.ConnectivityManager;
+import android.os.Environment;
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
@@ -89,6 +90,8 @@ public class TetherSettings extends PreferenceActivity {
                 Settings.Secure.TETHER_NOTIFY, 0) != 0);
 
         IntentFilter filter = new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
+        filter.addAction(Intent.ACTION_MEDIA_SHARED);
+        filter.addAction(Intent.ACTION_MEDIA_UNSHARED);
         mTetherChangeReceiver = new TetherChangeReceiver();
         Intent intent = registerReceiver(mTetherChangeReceiver, filter);
 
@@ -107,6 +110,8 @@ public class TetherSettings extends PreferenceActivity {
         boolean usbAvailable = false;
         boolean wifiTethered = false;
         boolean wifiAvailable = false;
+        boolean massStorageActive =
+                Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
 
         for (String s : available) {
             for (String regex : mUsbRegexs) {
@@ -128,6 +133,9 @@ public class TetherSettings extends PreferenceActivity {
         if (usbTethered) {
             mUsbTether.setSummary(R.string.usb_tethering_active_subtext);
             mUsbTether.setEnabled(true);
+        } else if (massStorageActive) {
+            mUsbTether.setSummary(R.string.usb_tethering_storage_active_subtext);
+            mUsbTether.setEnabled(false);
         } else if (usbAvailable) {
             mUsbTether.setSummary(R.string.usb_tethering_available_subtext);
             mUsbTether.setEnabled(true);