diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 74092e58b91..ebd76373e06 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -168,6 +168,16 @@ + + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 0d4033075c8..d1458415b18 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1256,6 +1256,27 @@ Set up voicemail, call forwarding, call waiting, caller ID + + Tethering settings + + Set up and manage tethering + + + Tethering settings + + + Notifications + + Show a notification when USB tethering is available + + USB tethering + + USB connected, select to tether + + Connected, select to disconnect + + USB not connected + Mobile networks diff --git a/res/xml/tether_prefs.xml b/res/xml/tether_prefs.xml new file mode 100644 index 00000000000..321129f3535 --- /dev/null +++ b/res/xml/tether_prefs.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + diff --git a/res/xml/wireless_settings.xml b/res/xml/wireless_settings.xml index 24930212b8a..9977505434f 100644 --- a/res/xml/wireless_settings.xml +++ b/res/xml/wireless_settings.xml @@ -56,6 +56,15 @@ android:targetClass="com.android.settings.bluetooth.BluetoothSettings" /> + + + + 0, + intent.getIntExtra(ConnectivityManager.EXTRA_ACTIVE_TETHER_COUNT,0)>0); + } + } + + @Override + protected void onResume() { + super.onResume(); + mEnableTetherNotice.setChecked(Settings.Secure.getInt(getContentResolver(), + Settings.Secure.TETHER_NOTIFY, 0) != 0); + + IntentFilter filter = new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED); + mTetherChangeReceiver = new TetherChangeReceiver(); + registerReceiver(mTetherChangeReceiver, filter); + + ConnectivityManager cm = + (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); + updateState(cm.getTetherableIfaces().length>0, cm.getTetheredIfaces().length>0); + } + + @Override + protected void onPause() { + super.onPause(); + unregisterReceiver(mTetherChangeReceiver); + mTetherChangeReceiver = null; + } + + private void updateState(boolean isAvailable, boolean isTethered) { + if (isTethered) { + mUsbTether.setSummary(R.string.usb_tethering_active_subtext); + mUsbTether.setEnabled(true); + } else if (isAvailable) { + mUsbTether.setSummary(R.string.usb_tethering_available_subtext); + mUsbTether.setEnabled(true); + } else { + mUsbTether.setSummary(R.string.usb_tethering_unavailable_subtext); + mUsbTether.setEnabled(false); + } + } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { + + if (preference == mEnableTetherNotice) { + boolean newState = mEnableTetherNotice.isChecked(); + Settings.Secure.putInt(getContentResolver(), + Settings.Secure.TETHER_NOTIFY, newState ? 1 : 0); + return true; + } + return false; + } + +}