Fragmentize TetherSettings and WifiApSettings.
PreferenceScreen for BT tethering isn't fragmentized yet.
We'll need to do so in the near future.
Change-Id: I5a84fecaf84d55b59b6efa8151f2549ad37ca5db
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index bcd772e..272a3d4 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -18,27 +18,22 @@
import com.android.settings.wifi.WifiApEnabler;
+import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothPan;
-import android.bluetooth.IBluetooth;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.ServiceManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.AssetManager;
import android.net.ConnectivityManager;
+import android.os.Bundle;
import android.os.Environment;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
-import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
-import android.util.Log;
import android.webkit.WebView;
import java.io.InputStream;
@@ -48,7 +43,7 @@
/*
* Displays preferences for Tethering.
*/
-public class TetherSettings extends PreferenceActivity {
+public class TetherSettings extends SettingsPreferenceFragment {
private static final String TAG = "TetheringSettings";
private static final String USB_TETHER_SETTINGS = "usb_tether_settings";
@@ -86,11 +81,16 @@
private BluetoothPan mBluetoothPan;
@Override
- protected void onCreate(Bundle icicle) {
+ public void onCreate(Bundle icicle) {
super.onCreate(icicle);
-
- mBluetoothPan = new BluetoothPan(this);
addPreferencesFromResource(R.xml.tether_prefs);
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ final Activity activity = getActivity();
+ mBluetoothPan = new BluetoothPan(activity);
mEnableWifiAp = (CheckBoxPreference) findPreference(ENABLE_WIFI_AP);
mWifiApSettings = (PreferenceScreen) findPreference(WIFI_AP_SETTINGS);
@@ -131,31 +131,31 @@
}
}
if (wifiAvailable && usbAvailable && bluetoothAvailable){
- setTitle(R.string.tether_settings_title_all);
+ activity.setTitle(R.string.tether_settings_title_all);
} else if (wifiAvailable && usbAvailable){
- setTitle(R.string.tether_settings_title_all);
+ activity.setTitle(R.string.tether_settings_title_all);
} else if (wifiAvailable && bluetoothAvailable){
- setTitle(R.string.tether_settings_title_all);
+ activity.setTitle(R.string.tether_settings_title_all);
} else if (wifiAvailable) {
- setTitle(R.string.tether_settings_title_wifi);
+ activity.setTitle(R.string.tether_settings_title_wifi);
} else if (usbAvailable && bluetoothAvailable) {
- setTitle(R.string.tether_settings_title_usb_bluetooth);
+ activity.setTitle(R.string.tether_settings_title_usb_bluetooth);
} else if (usbAvailable) {
- setTitle(R.string.tether_settings_title_usb);
+ activity.setTitle(R.string.tether_settings_title_usb);
} else {
- setTitle(R.string.tether_settings_title_bluetooth);
+ activity.setTitle(R.string.tether_settings_title_bluetooth);
}
- mWifiApEnabler = new WifiApEnabler(this, mEnableWifiAp);
- mView = new WebView(this);
+ mWifiApEnabler = new WifiApEnabler(activity, mEnableWifiAp);
+ mView = new WebView(activity);
}
@Override
- protected Dialog onCreateDialog(int id) {
+ public Dialog onCreateDialog(int id) {
if (id == DIALOG_TETHER_HELP) {
Locale locale = Locale.getDefault();
// check for the full language + country resource, if not there, try just language
- AssetManager am = getAssets();
+ final AssetManager am = getActivity().getAssets();
String path = HELP_PATH.replace("%y", locale.getLanguage().toLowerCase());
path = path.replace("%z", "_"+locale.getCountry().toLowerCase());
boolean useCountry = true;
@@ -185,7 +185,7 @@
mView.loadUrl(url);
- return new AlertDialog.Builder(this)
+ return new AlertDialog.Builder(getActivity())
.setCancelable(true)
.setTitle(R.string.tethering_help_button_text)
.setView(mView)
@@ -218,31 +218,33 @@
}
@Override
- protected void onResume() {
+ public void onResume() {
super.onResume();
+ final Activity activity = getActivity();
+
mTetherChangeReceiver = new TetherChangeReceiver();
IntentFilter filter = new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
- Intent intent = registerReceiver(mTetherChangeReceiver, filter);
+ Intent intent = activity.registerReceiver(mTetherChangeReceiver, filter);
filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_SHARED);
filter.addAction(Intent.ACTION_MEDIA_UNSHARED);
filter.addDataScheme("file");
- registerReceiver(mTetherChangeReceiver, filter);
+ activity.registerReceiver(mTetherChangeReceiver, filter);
filter = new IntentFilter();
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
- registerReceiver(mTetherChangeReceiver, filter);
+ activity.registerReceiver(mTetherChangeReceiver, filter);
- if (intent != null) mTetherChangeReceiver.onReceive(this, intent);
+ if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);
mWifiApEnabler.resume();
}
@Override
- protected void onPause() {
+ public void onPause() {
super.onPause();
- unregisterReceiver(mTetherChangeReceiver);
+ getActivity().unregisterReceiver(mTetherChangeReceiver);
mTetherChangeReceiver = null;
mWifiApEnabler.pause();
}
@@ -458,7 +460,8 @@
} else if (preference == mTetherHelp) {
showDialog(DIALOG_TETHER_HELP);
}
- return false;
+
+ return super.onPreferenceTreeClick(preferenceScreen, preference);
}
private String findIface(String[] ifaces, String[] regexes) {