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) {