Remove more entries not relevant to wifi-only devices.
Bug: 3488384 Bug: 3487976 Bug: 3488381 Removed Cell standby entry from Battery use screen. Removed Mobile signal strength from BatteryHistory screen. Added wifi IP address to About->Status Remove auto-timezone checkbox in Settings->Date & time Change-Id: I228721a3613b1aeb600026e42274337886552698
This commit is contained in:
@@ -90,6 +90,11 @@
|
||||
android:title="@string/status_imei_sv"
|
||||
android:summary="@string/device_info_not_available"
|
||||
android:persistent="false" />
|
||||
<Preference android:key="wifi_ip_address"
|
||||
style="?android:attr/preferenceInformationStyle"
|
||||
android:title="@string/wifi_advanced_ip_address_title"
|
||||
android:summary="@string/device_info_not_available"
|
||||
android:persistent="false" />
|
||||
<Preference android:key="wifi_mac_address"
|
||||
style="?android:attr/preferenceInformationStyle"
|
||||
android:title="@string/status_wifi_mac_address"
|
||||
|
@@ -87,6 +87,12 @@ public class DateTimeSettings extends SettingsPreferenceFragment
|
||||
mAutoTimePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME);
|
||||
mAutoTimePref.setChecked(autoTimeEnabled);
|
||||
mAutoTimeZonePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME_ZONE);
|
||||
// Override auto-timezone if it's a wifi-only device.
|
||||
// TODO: Remove this when auto-timezone is implemented based on wifi-location.
|
||||
if (Utils.isWifiOnly()) {
|
||||
getPreferenceScreen().removePreference(mAutoTimeZonePref);
|
||||
autoTimeZoneEnabled = false;
|
||||
}
|
||||
mAutoTimeZonePref.setChecked(autoTimeZoneEnabled);
|
||||
|
||||
mTimePref = findPreference("time");
|
||||
@@ -125,7 +131,6 @@ public class DateTimeSettings extends SettingsPreferenceFragment
|
||||
mTimeZone.setEnabled(!autoTimeZoneEnabled);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
@@ -39,6 +39,7 @@ import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class DeviceInfoSettings extends SettingsPreferenceFragment {
|
||||
|
||||
private static final String TAG = "DeviceInfoSettings";
|
||||
|
||||
private static final String KEY_CONTAINER = "container";
|
||||
@@ -49,6 +50,11 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment {
|
||||
private static final String KEY_COPYRIGHT = "copyright";
|
||||
private static final String KEY_SYSTEM_UPDATE_SETTINGS = "system_update_settings";
|
||||
private static final String PROPERTY_URL_SAFETYLEGAL = "ro.url.safetylegal";
|
||||
private static final String KEY_KERNEL_VERSION = "kernel_version";
|
||||
private static final String KEY_BUILD_NUMBER = "build_number";
|
||||
private static final String KEY_DEVICE_MODEL = "device_model";
|
||||
private static final String KEY_BASEBAND_VERSION = "baseband_version";
|
||||
private static final String KEY_FIRMWARE_VERSION = "firmware_version";
|
||||
|
||||
long[] mHits = new long[3];
|
||||
|
||||
@@ -69,17 +75,22 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment {
|
||||
getPreferenceScreen().removePreference(findPreference("system_tutorial"));
|
||||
}
|
||||
|
||||
setStringSummary("firmware_version", Build.VERSION.RELEASE);
|
||||
findPreference("firmware_version").setEnabled(true);
|
||||
setValueSummary("baseband_version", "gsm.version.baseband");
|
||||
setStringSummary("device_model", Build.MODEL);
|
||||
setStringSummary("build_number", Build.DISPLAY);
|
||||
findPreference("kernel_version").setSummary(getFormattedKernelVersion());
|
||||
setStringSummary(KEY_FIRMWARE_VERSION, Build.VERSION.RELEASE);
|
||||
findPreference(KEY_FIRMWARE_VERSION).setEnabled(true);
|
||||
setValueSummary(KEY_BASEBAND_VERSION, "gsm.version.baseband");
|
||||
setStringSummary(KEY_DEVICE_MODEL, Build.MODEL);
|
||||
setStringSummary(KEY_BUILD_NUMBER, Build.DISPLAY);
|
||||
findPreference(KEY_KERNEL_VERSION).setSummary(getFormattedKernelVersion());
|
||||
|
||||
// Remove Safety information preference if PROPERTY_URL_SAFETYLEGAL is not set
|
||||
removePreferenceIfPropertyMissing(getPreferenceScreen(), "safetylegal",
|
||||
PROPERTY_URL_SAFETYLEGAL);
|
||||
|
||||
// Remove Baseband version if wifi-only device
|
||||
if (Utils.isWifiOnly()) {
|
||||
getPreferenceScreen().removePreference(findPreference(KEY_BASEBAND_VERSION));
|
||||
}
|
||||
|
||||
/*
|
||||
* Settings is a generic app and should not contain any device-specific
|
||||
* info.
|
||||
@@ -107,7 +118,7 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment {
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||
if (preference.getKey().equals("firmware_version")) {
|
||||
if (preference.getKey().equals(KEY_FIRMWARE_VERSION)) {
|
||||
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
|
||||
mHits[mHits.length-1] = SystemClock.uptimeMillis();
|
||||
if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {
|
||||
|
@@ -25,6 +25,8 @@ import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.Resources.NotFoundException;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.LinkProperties;
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemProperties;
|
||||
import android.preference.Preference;
|
||||
@@ -33,6 +35,8 @@ import android.preference.PreferenceActivity.Header;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
public class Utils {
|
||||
@@ -282,4 +286,26 @@ public class Utils {
|
||||
public static boolean isWifiOnly() {
|
||||
return "wifi-only".equals(SystemProperties.get("ro.carrier"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the WIFI IP Addresses, if any, taking into account IPv4 and IPv6 style addresses.
|
||||
* @param context the application context
|
||||
* @return the formatted and comma-separated IP addresses, or null if none.
|
||||
*/
|
||||
public static String getWifiIpAddresses(Context context) {
|
||||
ConnectivityManager cm = (ConnectivityManager)
|
||||
context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
LinkProperties prop = cm.getLinkProperties(ConnectivityManager.TYPE_WIFI);
|
||||
if (prop == null) return null;
|
||||
Iterator<InetAddress> iter = prop.getAddresses().iterator();
|
||||
// If there are no entries, return null
|
||||
if (!iter.hasNext()) return null;
|
||||
// Concatenate all available addresses, comma separated
|
||||
String addresses = "";
|
||||
while (iter.hasNext()) {
|
||||
addresses += iter.next().getHostAddress();
|
||||
if (iter.hasNext()) addresses += ", ";
|
||||
}
|
||||
return addresses;
|
||||
}
|
||||
}
|
||||
|
@@ -64,6 +64,7 @@ import java.lang.ref.WeakReference;
|
||||
*/
|
||||
public class Status extends PreferenceActivity {
|
||||
|
||||
private static final String KEY_DATA_STATE = "data_state";
|
||||
private static final String KEY_SERVICE_STATE = "service_state";
|
||||
private static final String KEY_OPERATOR_NAME = "operator_name";
|
||||
private static final String KEY_ROAMING_STATE = "roaming_state";
|
||||
@@ -77,10 +78,26 @@ public class Status extends PreferenceActivity {
|
||||
private static final String KEY_SIGNAL_STRENGTH = "signal_strength";
|
||||
private static final String KEY_BATTERY_STATUS = "battery_status";
|
||||
private static final String KEY_BATTERY_LEVEL = "battery_level";
|
||||
private static final String KEY_WIFI_IP_ADDRESS = "wifi_ip_address";
|
||||
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_SERIAL_NUMBER = "serial_number";
|
||||
|
||||
private static final String[] PHONE_RELATED_ENTRIES = {
|
||||
KEY_DATA_STATE,
|
||||
KEY_SERVICE_STATE,
|
||||
KEY_OPERATOR_NAME,
|
||||
KEY_ROAMING_STATE,
|
||||
KEY_NETWORK_TYPE,
|
||||
KEY_PHONE_NUMBER,
|
||||
KEY_IMEI,
|
||||
KEY_IMEI_SV,
|
||||
KEY_PRL_VERSION,
|
||||
KEY_MIN_NUMBER,
|
||||
KEY_MEID_NUMBER,
|
||||
KEY_SIGNAL_STRENGTH
|
||||
};
|
||||
|
||||
private static final int EVENT_SIGNAL_STRENGTH_CHANGED = 200;
|
||||
private static final int EVENT_SERVICE_STATE_CHANGED = 300;
|
||||
|
||||
@@ -200,7 +217,13 @@ public class Status extends PreferenceActivity {
|
||||
mSignalStrength = findPreference(KEY_SIGNAL_STRENGTH);
|
||||
mUptime = findPreference("up_time");
|
||||
|
||||
//NOTE "imei" is the "Device ID" since it represents the IMEI in GSM and the MEID in CDMA
|
||||
if (Utils.isWifiOnly()) {
|
||||
for (String key : PHONE_RELATED_ENTRIES) {
|
||||
removePreferenceFromScreen(key);
|
||||
}
|
||||
} else {
|
||||
// NOTE "imei" is the "Device ID" since it represents
|
||||
// the IMEI in GSM and the MEID in CDMA
|
||||
if (mPhone.getPhoneName().equals("CDMA")) {
|
||||
setSummaryText(KEY_MEID_NUMBER, mPhone.getMeid());
|
||||
setSummaryText(KEY_MIN_NUMBER, mPhone.getCdmaMin());
|
||||
@@ -235,6 +258,7 @@ public class Status extends PreferenceActivity {
|
||||
mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler);
|
||||
mPhoneStateReceiver.notifySignalStrength(EVENT_SIGNAL_STRENGTH_CHANGED);
|
||||
mPhoneStateReceiver.notifyServiceState(EVENT_SERVICE_STATE_CHANGED);
|
||||
}
|
||||
|
||||
setWifiStatus();
|
||||
setBtStatus();
|
||||
@@ -251,8 +275,8 @@ public class Status extends PreferenceActivity {
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
if (!Utils.isWifiOnly()) {
|
||||
mPhoneStateReceiver.registerIntent();
|
||||
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
|
||||
updateSignalStrength();
|
||||
updateServiceState(mPhone.getServiceState());
|
||||
@@ -260,7 +284,8 @@ public class Status extends PreferenceActivity {
|
||||
|
||||
mTelephonyManager.listen(mPhoneStateListener,
|
||||
PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
|
||||
|
||||
}
|
||||
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
mHandler.sendEmptyMessage(EVENT_UPDATE_STATS);
|
||||
}
|
||||
|
||||
@@ -268,8 +293,10 @@ public class Status extends PreferenceActivity {
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
|
||||
if (!Utils.isWifiOnly()) {
|
||||
mPhoneStateReceiver.unregisterIntent();
|
||||
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
|
||||
}
|
||||
unregisterReceiver(mBatteryInfoReceiver);
|
||||
mHandler.removeMessages(EVENT_UPDATE_STATS);
|
||||
}
|
||||
@@ -333,7 +360,7 @@ public class Status extends PreferenceActivity {
|
||||
break;
|
||||
}
|
||||
|
||||
setSummaryText("data_state", display);
|
||||
setSummaryText(KEY_DATA_STATE, display);
|
||||
}
|
||||
|
||||
private void updateServiceState(ServiceState serviceState) {
|
||||
@@ -401,6 +428,14 @@ public class Status extends PreferenceActivity {
|
||||
String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
|
||||
wifiMacAddressPref.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress
|
||||
: getString(R.string.status_unavailable));
|
||||
|
||||
Preference wifiIpAddressPref = findPreference(KEY_WIFI_IP_ADDRESS);
|
||||
String ipAddress = Utils.getWifiIpAddresses(this);
|
||||
if (ipAddress != null) {
|
||||
wifiIpAddressPref.setSummary(ipAddress);
|
||||
} else {
|
||||
wifiIpAddressPref.setSummary(getString(R.string.status_unavailable));
|
||||
}
|
||||
}
|
||||
|
||||
private void setBtStatus() {
|
||||
|
@@ -173,6 +173,7 @@ public class BatteryHistoryChart extends View {
|
||||
int mBatHigh;
|
||||
boolean mHaveWifi;
|
||||
boolean mHaveGps;
|
||||
boolean mHavePhoneSignal;
|
||||
|
||||
public BatteryHistoryChart(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
@@ -377,7 +378,9 @@ public class BatteryHistoryChart extends View {
|
||||
mNumHist = lastInteresting;
|
||||
mHaveGps = (aggrStates&HistoryItem.STATE_GPS_ON_FLAG) != 0;
|
||||
mHaveWifi = (aggrStates&HistoryItem.STATE_WIFI_RUNNING_FLAG) != 0;
|
||||
|
||||
if (!com.android.settings.Utils.isWifiOnly()) {
|
||||
mHavePhoneSignal = true;
|
||||
}
|
||||
if (mHistEnd <= mHistStart) mHistEnd = mHistStart+1;
|
||||
mTotalDurationString = Utils.formatElapsedTime(getContext(), mHistEnd - mHistStart);
|
||||
}
|
||||
@@ -421,8 +424,10 @@ public class BatteryHistoryChart extends View {
|
||||
if (lastWakeLock) {
|
||||
mWakeLockPath.lineTo(w, h-mWakeLockOffset);
|
||||
}
|
||||
if (mHavePhoneSignal) {
|
||||
mPhoneSignalChart.finish(w);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
|
||||
@@ -467,16 +472,20 @@ public class BatteryHistoryChart extends View {
|
||||
mWifiRunningOffset = mWakeLockOffset + barOffset;
|
||||
mGpsOnOffset = mWifiRunningOffset + (mHaveWifi ? barOffset : 0);
|
||||
mPhoneSignalOffset = mGpsOnOffset + (mHaveGps ? barOffset : 0);
|
||||
mLevelOffset = mPhoneSignalOffset + barOffset + mLineWidth;
|
||||
mLevelOffset = mPhoneSignalOffset + (mHavePhoneSignal ? barOffset : 0) + mLineWidth;
|
||||
if (mHavePhoneSignal) {
|
||||
mPhoneSignalChart.init(w);
|
||||
}
|
||||
} else {
|
||||
mScreenOnOffset = mGpsOnOffset = mWifiRunningOffset
|
||||
= mWakeLockOffset = mLineWidth;
|
||||
mChargingOffset = mLineWidth*2;
|
||||
mPhoneSignalOffset = 0;
|
||||
mLevelOffset = mLineWidth*3;
|
||||
if (mHavePhoneSignal) {
|
||||
mPhoneSignalChart.init(0);
|
||||
}
|
||||
}
|
||||
|
||||
mBatLevelPath.reset();
|
||||
mBatGoodPath.reset();
|
||||
@@ -597,7 +606,7 @@ public class BatteryHistoryChart extends View {
|
||||
lastWakeLock = wakeLock;
|
||||
}
|
||||
|
||||
if (mLargeMode) {
|
||||
if (mLargeMode && mHavePhoneSignal) {
|
||||
int bin;
|
||||
if (((rec.states&HistoryItem.STATE_PHONE_STATE_MASK)
|
||||
>> HistoryItem.STATE_PHONE_STATE_SHIFT)
|
||||
@@ -661,8 +670,10 @@ public class BatteryHistoryChart extends View {
|
||||
if (!mBatCriticalPath.isEmpty()) {
|
||||
canvas.drawPath(mBatCriticalPath, mBatteryCriticalPaint);
|
||||
}
|
||||
int top = height-mPhoneSignalOffset - (mLineWidth/2);
|
||||
int top = height - (mHavePhoneSignal ? mPhoneSignalOffset - (mLineWidth/2) : 0);
|
||||
if (mHavePhoneSignal) {
|
||||
mPhoneSignalChart.draw(canvas, top, mLineWidth);
|
||||
}
|
||||
if (!mScreenOnPath.isEmpty()) {
|
||||
canvas.drawPath(mScreenOnPath, mScreenOnPaint);
|
||||
}
|
||||
@@ -684,8 +695,10 @@ public class BatteryHistoryChart extends View {
|
||||
}
|
||||
|
||||
if (mLargeMode) {
|
||||
if (mHavePhoneSignal) {
|
||||
canvas.drawText(mPhoneSignalLabel, 0,
|
||||
height - mPhoneSignalOffset - mTextDescent, mTextPaint);
|
||||
}
|
||||
if (mHaveGps) {
|
||||
canvas.drawText(mGpsOnLabel, 0,
|
||||
height - mGpsOnOffset - mTextDescent, mTextPaint);
|
||||
|
@@ -683,8 +683,11 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable {
|
||||
addWiFiUsage(uSecNow);
|
||||
addBluetoothUsage(uSecNow);
|
||||
addIdleUsage(uSecNow); // Not including cellular idle power
|
||||
// Don't compute radio usage if it's a wifi-only device
|
||||
if (!com.android.settings.Utils.isWifiOnly()) {
|
||||
addRadioUsage(uSecNow);
|
||||
}
|
||||
}
|
||||
|
||||
private BatterySipper addEntry(String label, DrainType drainType, long time, int iconId,
|
||||
double power) {
|
||||
|
@@ -18,6 +18,7 @@ package com.android.settings.wifi;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.Utils;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
@@ -103,16 +104,7 @@ public class AdvancedSettings extends SettingsPreferenceFragment
|
||||
: getActivity().getString(R.string.status_unavailable));
|
||||
|
||||
Preference wifiIpAddressPref = findPreference(KEY_CURRENT_IP_ADDRESS);
|
||||
String ipAddress = null;
|
||||
if (wifiInfo != null) {
|
||||
long addr = wifiInfo.getIpAddress();
|
||||
if (addr != 0) {
|
||||
// handle negative values whe first octet > 127
|
||||
if (addr < 0) addr += 0x100000000L;
|
||||
ipAddress = String.format("%d.%d.%d.%d",
|
||||
addr & 0xFF, (addr >> 8) & 0xFF, (addr >> 16) & 0xFF, (addr >> 24) & 0xFF);
|
||||
}
|
||||
}
|
||||
String ipAddress = Utils.getWifiIpAddresses(getActivity());
|
||||
wifiIpAddressPref.setSummary(ipAddress == null ?
|
||||
getActivity().getString(R.string.status_unavailable) : ipAddress);
|
||||
}
|
||||
|
Reference in New Issue
Block a user