diff --git a/res/values/strings.xml b/res/values/strings.xml index 8f6cc9c40dc..ce0370ec65d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2695,8 +2695,6 @@ Bluetooth address Serial number - - Unavailable Up time @@ -5532,8 +5530,6 @@ Sync for this item is currently disabled. To change this setting, temporarily turn on background data and automatic sync. - 4G - 4G MAC address To start Android, enter your password @@ -9071,10 +9067,4 @@ This feature is not available on this device - - "IMS registration state" - - "Registered" - - "Not registered" diff --git a/res/xml/device_info_status.xml b/res/xml/device_info_status.xml index 3456f9199ea..07bbc4e9939 100644 --- a/res/xml/device_info_status.xml +++ b/res/xml/device_info_status.xml @@ -82,13 +82,6 @@ android:title="@string/status_up_time" android:summary="@string/summary_placeholder" android:persistent="false" /> - mStatus; - - public MyHandler(Status activity) { - mStatus = new WeakReference(activity); - } - - @Override - public void handleMessage(Message msg) { - Status status = mStatus.get(); - if (status == null) { - return; - } - - switch (msg.what) { - case EVENT_UPDATE_STATS: - status.updateTimes(); - sendEmptyMessageDelayed(EVENT_UPDATE_STATS, 1000); - break; - - case EVENT_UPDATE_CONNECTIVITY: - status.updateConnectivity(); - break; - } - } - } + private BluetoothAddressPreferenceController mBluetoothAddressPreferenceController; + private IpAddressPreferenceController mIpAddressPreferenceController; + private WifiMacAddressPreferenceController mWifiMacAddressPreferenceController; + private ImsStatusPreferenceController mImsStatusPreferenceController; private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() { @@ -138,68 +68,33 @@ public class Status extends SettingsPreferenceFragment implements Indexable { } }; - private IntentFilter mConnectivityIntentFilter; - private final BroadcastReceiver mConnectivityReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (ArrayUtils.contains(CONNECTIVITY_INTENTS, action)) { - mHandler.sendEmptyMessage(EVENT_UPDATE_CONNECTIVITY); - } - } - }; - - private boolean hasBluetooth() { - return BluetoothAdapter.getDefaultAdapter() != null; - } - - private boolean hasWimax() { - return mCM.getNetworkInfo(ConnectivityManager.TYPE_WIMAX) != null; - } - @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); - mHandler = new MyHandler(this); - - mCM = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); - mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE); - mSerialNumberPreferenceController = new SerialNumberPreferenceController(getActivity()); + final Context context = getContext(); + final Lifecycle lifecycle = getLifecycle(); + mSerialNumberPreferenceController = new SerialNumberPreferenceController(context); + mUptimePreferenceController = new UptimePreferenceController(context, lifecycle); + mBluetoothAddressPreferenceController = + new BluetoothAddressPreferenceController(context, lifecycle); + mIpAddressPreferenceController = new IpAddressPreferenceController(context, lifecycle); + mWifiMacAddressPreferenceController = + new WifiMacAddressPreferenceController(context, lifecycle); + mImsStatusPreferenceController = new ImsStatusPreferenceController(context, lifecycle); addPreferencesFromResource(R.xml.device_info_status); mBatteryLevel = findPreference(KEY_BATTERY_LEVEL); mBatteryStatus = findPreference(KEY_BATTERY_STATUS); - mBtAddress = findPreference(KEY_BT_ADDRESS); - mWifiMacAddress = findPreference(KEY_WIFI_MAC_ADDRESS); - mWimaxMacAddress = findPreference(KEY_WIMAX_MAC_ADDRESS); - mIpAddress = findPreference(KEY_IP_ADDRESS); - mImsStatus = findPreference(KEY_IMS_REGISTRATION_STATE); - mRes = getResources(); - mUnavailable = mRes.getString(R.string.status_unavailable); - - // Note - missing in zaku build, be careful later... - mUptime = findPreference("up_time"); final PreferenceScreen screen = getPreferenceScreen(); - if (!hasBluetooth()) { - screen.removePreference(mBtAddress); - mBtAddress = null; - } - - if (!hasWimax()) { - screen.removePreference(mWimaxMacAddress); - mWimaxMacAddress = null; - } - - mConnectivityIntentFilter = new IntentFilter(); - for (String intent: CONNECTIVITY_INTENTS) { - mConnectivityIntentFilter.addAction(intent); - } - - updateConnectivity(); mSerialNumberPreferenceController.displayPreference(screen); + mUptimePreferenceController.displayPreference(screen); + mBluetoothAddressPreferenceController.displayPreference(screen); + mIpAddressPreferenceController.displayPreference(screen); + mWifiMacAddressPreferenceController.displayPreference(screen); + mImsStatusPreferenceController.displayPreference(screen); // Remove SimStatus and Imei for Secondary user as it access Phone b/19165700 // Also remove on Wi-Fi only devices. @@ -219,11 +114,8 @@ public class Status extends SettingsPreferenceFragment implements Indexable { @Override public void onResume() { super.onResume(); - getContext().registerReceiver(mConnectivityReceiver, mConnectivityIntentFilter, - android.Manifest.permission.CHANGE_NETWORK_STATE, null); getContext().registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); - mHandler.sendEmptyMessage(EVENT_UPDATE_STATS); } @Override @@ -231,8 +123,6 @@ public class Status extends SettingsPreferenceFragment implements Indexable { super.onPause(); getContext().unregisterReceiver(mBatteryInfoReceiver); - getContext().unregisterReceiver(mConnectivityReceiver); - mHandler.removeMessages(EVENT_UPDATE_STATS); } /** @@ -246,96 +136,6 @@ public class Status extends SettingsPreferenceFragment implements Indexable { } } - private void setWimaxStatus() { - if (mWimaxMacAddress != null) { - String macAddress = SystemProperties.get("net.wimax.mac.address", mUnavailable); - mWimaxMacAddress.setSummary(macAddress); - } - } - - private void setWifiStatus() { - WifiInfo wifiInfo = mWifiManager.getConnectionInfo(); - boolean hasMacAddress = wifiInfo != null && wifiInfo.hasRealMacAddress(); - String macAddress = hasMacAddress ? wifiInfo.getMacAddress() : null; - mWifiMacAddress.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress : mUnavailable); - } - - private void setIpAddressStatus() { - String ipAddress = Utils.getDefaultIpAddresses(this.mCM); - if (ipAddress != null) { - mIpAddress.setSummary(ipAddress); - } else { - mIpAddress.setSummary(mUnavailable); - } - } - - private void setBtStatus() { - BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter(); - if (bluetooth != null && mBtAddress != null) { - String address = bluetooth.isEnabled() ? bluetooth.getAddress() : null; - if (!TextUtils.isEmpty(address)) { - // Convert the address to lowercase for consistency with the wifi MAC address. - mBtAddress.setSummary(address.toLowerCase()); - } else { - mBtAddress.setSummary(mUnavailable); - } - } - } - - private void setImsRegistrationStatus() { - CarrierConfigManager configManager = (CarrierConfigManager) - getSystemService(Context.CARRIER_CONFIG_SERVICE); - int subId = SubscriptionManager.getDefaultDataSubscriptionId(); - PersistableBundle config = null; - if (configManager != null) { - config = configManager.getConfigForSubId(subId); - } - if (config != null && config.getBoolean( - CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)) { - TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - mImsStatus.setSummary((tm != null && tm.isImsRegistered(subId)) ? - R.string.ims_reg_status_registered : R.string.ims_reg_status_not_registered); - } else { - removePreferenceFromScreen(KEY_IMS_REGISTRATION_STATE); - mImsStatus = null; - } - } - - void updateConnectivity() { - setWimaxStatus(); - setWifiStatus(); - setBtStatus(); - setIpAddressStatus(); - setImsRegistrationStatus(); - } - - void updateTimes() { - long at = SystemClock.uptimeMillis() / 1000; - long ut = SystemClock.elapsedRealtime() / 1000; - - if (ut == 0) { - ut = 1; - } - - mUptime.setSummary(convert(ut)); - } - - private String pad(int n) { - if (n >= 10) { - return String.valueOf(n); - } else { - return "0" + String.valueOf(n); - } - } - - private String convert(long t) { - int s = (int)(t % 60); - int m = (int)((t / 60) % 60); - int h = (int)((t / 3600)); - - return h + ":" + pad(m) + ":" + pad(s); - } - /** * For Search. */ diff --git a/src/com/android/settings/deviceinfo/UptimePreferenceController.java b/src/com/android/settings/deviceinfo/UptimePreferenceController.java new file mode 100644 index 00000000000..8bb0df75d64 --- /dev/null +++ b/src/com/android/settings/deviceinfo/UptimePreferenceController.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.deviceinfo; + +import android.content.Context; + +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.deviceinfo.AbstractUptimePreferenceController; + +/** + * Concrete subclass of uptime preference controller + */ +public class UptimePreferenceController extends AbstractUptimePreferenceController + implements PreferenceControllerMixin { + public UptimePreferenceController(Context context, Lifecycle lifecycle) { + super(context, lifecycle); + } + + // This space intentionally left blank +} diff --git a/src/com/android/settings/deviceinfo/WifiMacAddressPreferenceController.java b/src/com/android/settings/deviceinfo/WifiMacAddressPreferenceController.java new file mode 100644 index 00000000000..92390d750e0 --- /dev/null +++ b/src/com/android/settings/deviceinfo/WifiMacAddressPreferenceController.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.deviceinfo; + +import android.content.Context; + +import com.android.settings.core.PreferenceControllerMixin; +import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.deviceinfo.AbstractWifiMacAddressPreferenceController; + +/** + * Concrete subclass of WIFI MAC address preference controller + */ +public class WifiMacAddressPreferenceController extends AbstractWifiMacAddressPreferenceController + implements PreferenceControllerMixin { + public WifiMacAddressPreferenceController(Context context, Lifecycle lifecycle) { + super(context, lifecycle); + } + + // This space intentionally left blank +}