diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2014-01-17 19:17:58 -0800 |
---|---|---|
committer | Fabrice Di Meglio <fdimeglio@google.com> | 2014-02-03 16:36:46 -0800 |
commit | 263bcc8b732dbb47d3ce63904e0e05191fabbad6 (patch) | |
tree | dc8fd51052ac94e418473d378c1244cb42594665 /src/com/android/settings/deviceinfo/Status.java | |
parent | af79ddb358ff6ed078708ce5995da9ff269f1679 (diff) | |
download | packages_apps_Settings-263bcc8b732dbb47d3ce63904e0e05191fabbad6.zip packages_apps_Settings-263bcc8b732dbb47d3ce63904e0e05191fabbad6.tar.gz packages_apps_Settings-263bcc8b732dbb47d3ce63904e0e05191fabbad6.tar.bz2 |
Use Drawer in Settings app
- get rid of PreferenceActivity as much as we can and use fragments instead
- add Drawer widget
- add Dashboard high level entry into the Drawer (but this is work in progress and would be done in another CL)
- add bypass of fragment's Header validation when launched from the Drawer but *force* validation if external
call thru an Intent
Be aware that WifiPickerActivity should remain for now a PreferenceActivity. It is used by SetupWizard and should
not trigger running the SettingsActivity's header building code. SetupWizard is a Home during the provisionnig process
and then deactivate itself as a Home but would make the Home header to appear in the Drawer (because momentarily we
would have two Home).
Also, verified that:
- the WiFi settings still work when called from SetupWizard
- when you have multiple Launchers, the Home header will appear in the list of Headers in the Drawer
Change-Id: I407a5e0fdd843ad7615d3d511c416a44e3d97c90
Diffstat (limited to 'src/com/android/settings/deviceinfo/Status.java')
-rw-r--r-- | src/com/android/settings/deviceinfo/Status.java | 89 |
1 files changed, 46 insertions, 43 deletions
diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java index a448dae..f9f0416 100644 --- a/src/com/android/settings/deviceinfo/Status.java +++ b/src/com/android/settings/deviceinfo/Status.java @@ -16,6 +16,7 @@ package com.android.settings.deviceinfo; +import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.content.BroadcastReceiver; import android.content.ClipboardManager; @@ -24,7 +25,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; import android.net.ConnectivityManager; -import android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Build; @@ -35,19 +35,15 @@ import android.os.SystemClock; import android.os.SystemProperties; import android.os.UserHandle; import android.preference.Preference; -import android.preference.PreferenceActivity; -import android.preference.PreferenceScreen; import android.telephony.CellBroadcastMessage; import android.telephony.PhoneNumberUtils; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.TelephonyManager; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ListAdapter; -import android.widget.ListView; import android.widget.Toast; import com.android.internal.telephony.Phone; @@ -56,6 +52,7 @@ import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.PhoneStateIntentReceiver; import com.android.internal.util.ArrayUtils; import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; import java.lang.ref.WeakReference; @@ -75,7 +72,7 @@ import java.lang.ref.WeakReference; * # XMPP/buzz/tickle status : TODO * */ -public class Status extends PreferenceActivity { +public class Status extends SettingsPreferenceFragment { private static final String KEY_DATA_STATE = "data_state"; private static final String KEY_SERVICE_STATE = "service_state"; @@ -166,8 +163,8 @@ public class Status extends PreferenceActivity { private static class MyHandler extends Handler { private WeakReference<Status> mStatus; - public MyHandler(Status activity) { - mStatus = new WeakReference<Status>(activity); + public MyHandler(Status status) { + mStatus = new WeakReference<Status>(status); } @Override @@ -257,14 +254,14 @@ public class Status extends PreferenceActivity { } @Override - protected void onCreate(Bundle icicle) { + public void onCreate(Bundle icicle) { super.onCreate(icicle); mHandler = new MyHandler(this); - mCM = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); - mTelephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); - mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE); + mCM = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE); + mTelephonyManager = (TelephonyManager)getSystemService(Activity.TELEPHONY_SERVICE); + mWifiManager = (WifiManager) getSystemService(Activity.WIFI_SERVICE); addPreferencesFromResource(R.xml.device_info_status); mBatteryLevel = findPreference(KEY_BATTERY_LEVEL); @@ -279,13 +276,14 @@ public class Status extends PreferenceActivity { mUnavailable = mRes.getString(R.string.status_unavailable); if (UserHandle.myUserId() == UserHandle.USER_OWNER) { + PhoneFactory.makeDefaultPhone(getActivity()); mPhone = PhoneFactory.getDefaultPhone(); } // Note - missing in zaku build, be careful later... mSignalStrength = findPreference(KEY_SIGNAL_STRENGTH); mUptime = findPreference("up_time"); - if (mPhone == null || Utils.isWifiOnly(getApplicationContext())) { + if (mPhone == null || Utils.isWifiOnly(getActivity())) { for (String key : PHONE_RELATED_ENTRIES) { removePreferenceFromScreen(key); } @@ -315,7 +313,7 @@ public class Status extends PreferenceActivity { setSummaryText(KEY_IMEI, mPhone.getDeviceId()); setSummaryText(KEY_IMEI_SV, - ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) + ((TelephonyManager) getSystemService(Activity.TELEPHONY_SERVICE)) .getDeviceSoftwareVersion()); // device is not CDMA, do not display CDMA features @@ -339,7 +337,7 @@ public class Status extends PreferenceActivity { // If formattedNumber is null or empty, it'll display as "Unknown". setSummaryText(KEY_PHONE_NUMBER, formattedNumber); - mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler); + mPhoneStateReceiver = new PhoneStateIntentReceiver(getActivity(), mHandler); mPhoneStateReceiver.notifySignalStrength(EVENT_SIGNAL_STRENGTH_CHANGED); mPhoneStateReceiver.notifyServiceState(EVENT_SERVICE_STATE_CHANGED); @@ -371,34 +369,39 @@ public class Status extends PreferenceActivity { } else { removePreferenceFromScreen(KEY_SERIAL_NUMBER); } + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); // Make every pref on this screen copy its data to the clipboard on longpress. // Super convenient for capturing the IMEI, MAC addr, serial, etc. getListView().setOnItemLongClickListener( - new AdapterView.OnItemLongClickListener() { - @Override - public boolean onItemLongClick(AdapterView<?> parent, View view, - int position, long id) { - ListAdapter listAdapter = (ListAdapter) parent.getAdapter(); - Preference pref = (Preference) listAdapter.getItem(position); - - ClipboardManager cm = (ClipboardManager) - getSystemService(Context.CLIPBOARD_SERVICE); - cm.setText(pref.getSummary()); - Toast.makeText( - Status.this, - com.android.internal.R.string.text_copied, - Toast.LENGTH_SHORT).show(); - return true; - } - }); + new AdapterView.OnItemLongClickListener() { + @Override + public boolean onItemLongClick(AdapterView<?> parent, View view, + int position, long id) { + ListAdapter listAdapter = (ListAdapter) parent.getAdapter(); + Preference pref = (Preference) listAdapter.getItem(position); + + ClipboardManager cm = (ClipboardManager) + getSystemService(Context.CLIPBOARD_SERVICE); + cm.setText(pref.getSummary()); + Toast.makeText( + getActivity(), + com.android.internal.R.string.text_copied, + Toast.LENGTH_SHORT).show(); + return true; + } + }); } @Override - protected void onResume() { + public void onResume() { super.onResume(); - if (mPhone != null && !Utils.isWifiOnly(getApplicationContext())) { + if (mPhone != null && !Utils.isWifiOnly(getActivity())) { mPhoneStateReceiver.registerIntent(); updateSignalStrength(); @@ -407,17 +410,17 @@ public class Status extends PreferenceActivity { mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_DATA_CONNECTION_STATE); if (mShowLatestAreaInfo) { - registerReceiver(mAreaInfoReceiver, new IntentFilter(CB_AREA_INFO_RECEIVED_ACTION), + getActivity().registerReceiver(mAreaInfoReceiver, new IntentFilter(CB_AREA_INFO_RECEIVED_ACTION), CB_AREA_INFO_SENDER_PERMISSION, null); // Ask CellBroadcastReceiver to broadcast the latest area info received Intent getLatestIntent = new Intent(GET_LATEST_CB_AREA_INFO_ACTION); - sendBroadcastAsUser(getLatestIntent, UserHandle.ALL, + getActivity().sendBroadcastAsUser(getLatestIntent, UserHandle.ALL, CB_AREA_INFO_SENDER_PERMISSION); } } - registerReceiver(mConnectivityReceiver, mConnectivityIntentFilter, - android.Manifest.permission.CHANGE_NETWORK_STATE, null); - registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + getActivity().registerReceiver(mConnectivityReceiver, mConnectivityIntentFilter, + android.Manifest.permission.CHANGE_NETWORK_STATE, null); + getActivity().registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); mHandler.sendEmptyMessage(EVENT_UPDATE_STATS); } @@ -425,15 +428,15 @@ public class Status extends PreferenceActivity { public void onPause() { super.onPause(); - if (mPhone != null && !Utils.isWifiOnly(getApplicationContext())) { + if (mPhone != null && !Utils.isWifiOnly(getActivity())) { mPhoneStateReceiver.unregisterIntent(); mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); } if (mShowLatestAreaInfo) { - unregisterReceiver(mAreaInfoReceiver); + getActivity().unregisterReceiver(mAreaInfoReceiver); } - unregisterReceiver(mBatteryInfoReceiver); - unregisterReceiver(mConnectivityReceiver); + getActivity().unregisterReceiver(mBatteryInfoReceiver); + getActivity().unregisterReceiver(mConnectivityReceiver); mHandler.removeMessages(EVENT_UPDATE_STATS); } |