summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/deviceinfo/Status.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/deviceinfo/Status.java')
-rw-r--r--src/com/android/settings/deviceinfo/Status.java392
1 files changed, 0 insertions, 392 deletions
diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java
deleted file mode 100644
index 4132ed5..0000000
--- a/src/com/android/settings/deviceinfo/Status.java
+++ /dev/null
@@ -1,392 +0,0 @@
-/*
- * Copyright (C) 2008 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.bluetooth.BluetoothDevice;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.res.Resources;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
-import android.os.BatteryManager;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.SystemClock;
-import android.os.SystemProperties;
-import android.os.NetStat;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
-import android.telephony.PhoneStateListener;
-import android.telephony.ServiceState;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.PhoneStateIntentReceiver;
-import com.android.internal.telephony.TelephonyProperties;
-import com.android.settings.R;
-
-import java.lang.ref.WeakReference;
-
-/**
- * Display the following information
- * # Phone Number
- * # Network
- * # Roaming
- * # IMEI
- * # Network type
- * # Signal Strength
- * # Battery Strength : TODO
- * # Uptime
- * # Awake Time
- * # XMPP/buzz/tickle status : TODO
- *
- */
-public class Status extends PreferenceActivity {
-
- private static final String KEY_WIFI_MAC_ADDRESS = "wifi_mac_address";
- private static final String KEY_BT_ADDRESS = "bt_address";
- private static final String KEY_NETWORK_TRAFFIC_STATS = "network_traffic_stats";
- private static final int EVENT_SIGNAL_STRENGTH_CHANGED = 200;
- private static final int EVENT_SERVICE_STATE_CHANGED = 300;
-
- private static final int EVENT_UPDATE_STATS = 500;
-
- private TelephonyManager mTelephonyManager;
- private Phone mPhone = null;
- private PhoneStateIntentReceiver mPhoneStateReceiver;
- private Resources mRes;
- private Preference mSignalStrength;
- private Preference mUptime;
- private Preference mAwakeTime;
-
- private static String sUnknown;
-
- private Preference mBatteryStatus;
- private Preference mBatteryLevel;
-
- private Handler mHandler;
-
- private static class MyHandler extends Handler {
- private WeakReference<Status> mStatus;
-
- public MyHandler(Status activity) {
- mStatus = new WeakReference<Status>(activity);
- }
-
- @Override
- public void handleMessage(Message msg) {
- Status status = mStatus.get();
- if (status == null) {
- return;
- }
-
- switch (msg.what) {
- case EVENT_SIGNAL_STRENGTH_CHANGED:
- status.updateSignalStrength();
- break;
-
- case EVENT_SERVICE_STATE_CHANGED:
- ServiceState serviceState = status.mPhoneStateReceiver.getServiceState();
- status.updateServiceState(serviceState);
- break;
-
- case EVENT_UPDATE_STATS:
- status.updateTimes();
- status.setNetworkTrafficStats();
- sendEmptyMessageDelayed(EVENT_UPDATE_STATS, 1000);
- break;
- }
- }
- }
-
- private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {
-
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
-
- int level = intent.getIntExtra("level", 0);
- int scale = intent.getIntExtra("scale", 100);
-
- mBatteryLevel.setSummary(String.valueOf(level * 100 / scale) + "%");
-
- int plugType = intent.getIntExtra("plugged", 0);
- int status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN);
- String statusString;
- if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
- statusString = getString(R.string.battery_info_status_charging);
- if (plugType > 0) {
- statusString = statusString + " " + getString(
- (plugType == BatteryManager.BATTERY_PLUGGED_AC)
- ? R.string.battery_info_status_charging_ac
- : R.string.battery_info_status_charging_usb);
- }
- } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) {
- statusString = getString(R.string.battery_info_status_discharging);
- } else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
- statusString = getString(R.string.battery_info_status_not_charging);
- } else if (status == BatteryManager.BATTERY_STATUS_FULL) {
- statusString = getString(R.string.battery_info_status_full);
- } else {
- statusString = getString(R.string.battery_info_status_unknown);
- }
- mBatteryStatus.setSummary(statusString);
- }
- }
- };
-
- private PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
- @Override
- public void onDataConnectionStateChanged(int state) {
- updateDataState();
- updateNetworkType();
- }
- };
-
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- mHandler = new MyHandler(this);
-
- mTelephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
-
- addPreferencesFromResource(R.xml.device_info_status);
- mBatteryLevel = findPreference("battery_level");
- mBatteryStatus = findPreference("battery_status");
-
- mRes = getResources();
- if (sUnknown == null) {
- sUnknown = mRes.getString(R.string.device_info_default);
- }
-
- mPhone = PhoneFactory.getDefaultPhone();
- mSignalStrength = findPreference("signal_strength");
- mUptime = findPreference("up_time");
- mAwakeTime = findPreference("awake_time");
-
- setSummaryText("imei", mPhone.getDeviceId());
- setSummaryText("imei_sv",
- ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
- .getDeviceSoftwareVersion());
- setSummaryText("number", mPhone.getLine1Number());
-
- mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler);
- mPhoneStateReceiver.notifySignalStrength(EVENT_SIGNAL_STRENGTH_CHANGED);
- mPhoneStateReceiver.notifyServiceState(EVENT_SERVICE_STATE_CHANGED);
-
- setWifiStatus();
- setBtStatus();
- }
-
- @Override
- protected void onResume() {
- super.onResume();
-
- mPhoneStateReceiver.registerIntent();
- registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
-
- updateSignalStrength();
- updateServiceState(mPhone.getServiceState());
- updateDataState();
-
- mTelephonyManager.listen(mPhoneStateListener,
- PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
-
- mHandler.sendEmptyMessage(EVENT_UPDATE_STATS);
- }
-
- @Override
- public void onPause() {
- super.onPause();
-
- mPhoneStateReceiver.unregisterIntent();
- mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
- unregisterReceiver(mBatteryInfoReceiver);
- mHandler.removeMessages(EVENT_UPDATE_STATS);
- }
-
- /**
- * @param preference The key for the Preference item
- * @param property The system property to fetch
- * @param alt The default value, if the property doesn't exist
- */
- private void setSummary(String preference, String property, String alt) {
- try {
- findPreference(preference).setSummary(
- SystemProperties.get(property, alt));
- } catch (RuntimeException e) {
-
- }
- }
-
- private void setSummaryText(String preference, String text) {
- if (TextUtils.isEmpty(text)) {
- text = sUnknown;
- }
-
- findPreference(preference).setSummary(text);
- }
-
- private void updateNetworkType() {
- // Whether EDGE, UMTS, etc...
- setSummary("network_type", TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE, sUnknown);
- }
-
- private void updateDataState() {
- int state = mTelephonyManager.getDataState();
- String display = mRes.getString(R.string.radioInfo_unknown);
-
- switch (state) {
- case TelephonyManager.DATA_CONNECTED:
- display = mRes.getString(R.string.radioInfo_data_connected);
- break;
- case TelephonyManager.DATA_SUSPENDED:
- display = mRes.getString(R.string.radioInfo_data_suspended);
- break;
- case TelephonyManager.DATA_CONNECTING:
- display = mRes.getString(R.string.radioInfo_data_connecting);
- break;
- case TelephonyManager.DATA_DISCONNECTED:
- display = mRes.getString(R.string.radioInfo_data_disconnected);
- break;
- }
-
- setSummaryText("data_state", display);
- }
-
- private void updateServiceState(ServiceState serviceState) {
- int state = serviceState.getState();
- String display = mRes.getString(R.string.radioInfo_unknown);
-
- switch (state) {
- case ServiceState.STATE_IN_SERVICE:
- display = mRes.getString(R.string.radioInfo_service_in);
- break;
- case ServiceState.STATE_OUT_OF_SERVICE:
- case ServiceState.STATE_EMERGENCY_ONLY:
- display = mRes.getString(R.string.radioInfo_service_out);
- break;
- case ServiceState.STATE_POWER_OFF:
- display = mRes.getString(R.string.radioInfo_service_off);
- break;
- }
-
- setSummaryText("service_state", display);
-
- if (serviceState.getRoaming()) {
- setSummaryText("roaming_state", mRes.getString(R.string.radioInfo_roaming_in));
- } else {
- setSummaryText("roaming_state", mRes.getString(R.string.radioInfo_roaming_not));
- }
- setSummaryText("operator_name", serviceState.getOperatorAlphaLong());
- }
-
- void updateSignalStrength() {
- int state =
- mPhoneStateReceiver.getServiceState().getState();
- Resources r = getResources();
-
- if ((ServiceState.STATE_OUT_OF_SERVICE == state) ||
- (ServiceState.STATE_POWER_OFF == state)) {
- mSignalStrength.setSummary("0");
- }
-
- int signalDbm = mPhoneStateReceiver.getSignalStrengthDbm();
-
- if (-1 == signalDbm) signalDbm = 0;
-
- int signalAsu = mPhoneStateReceiver.getSignalStrength();
-
- if (-1 == signalAsu) signalAsu = 0;
-
- mSignalStrength.setSummary(String.valueOf(signalDbm) + " "
- + r.getString(R.string.radioInfo_display_dbm) + " "
- + String.valueOf(signalAsu) + " "
- + r.getString(R.string.radioInfo_display_asu));
- }
-
- private void setWifiStatus() {
- WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
- WifiInfo wifiInfo = wifiManager.getConnectionInfo();
-
- Preference wifiMacAddressPref = findPreference(KEY_WIFI_MAC_ADDRESS);
- String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
- wifiMacAddressPref.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress
- : getString(R.string.status_unavailable));
- }
-
- private void setBtStatus() {
- BluetoothDevice bluetooth = (BluetoothDevice) getSystemService(BLUETOOTH_SERVICE);
- Preference btAddressPref = findPreference(KEY_BT_ADDRESS);
-
- if (bluetooth == null) {
- // device not BT capable
- getPreferenceScreen().removePreference(btAddressPref);
- } else {
- String address = bluetooth.isEnabled() ? bluetooth.getAddress() : null;
- btAddressPref.setSummary(!TextUtils.isEmpty(address) ? address
- : getString(R.string.status_unavailable));
- }
- }
-
- private void setNetworkTrafficStats() {
- long txPkts = NetStat.getTotalTxPkts();
- long txBytes = NetStat.getTotalTxBytes();
- long rxPkts = NetStat.getTotalRxPkts();
- long rxBytes = NetStat.getTotalRxBytes();
-
- Preference netStatsPref = findPreference(KEY_NETWORK_TRAFFIC_STATS);
- netStatsPref.setSummary(getString(R.string.status_network_traffic_summary,
- txPkts, txBytes, rxPkts, rxBytes));
- }
-
- void updateTimes() {
- long at = SystemClock.uptimeMillis() / 1000;
- long ut = SystemClock.elapsedRealtime() / 1000;
- long st = ut - at;
-
- if (ut == 0) {
- ut = 1;
- }
-
- mUptime.setSummary(convert(ut));
- mAwakeTime.setSummary(convert(at) + " (" + (((1000 * at / ut) + 5) / 10) + "%)");
- }
-
- 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);
- }
-}