Loading core/java/android/os/BatteryStats.java +7 −18 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import java.util.List; import java.util.Map; import android.content.pm.ApplicationInfo; import android.telephony.SignalStrength; import android.util.Log; import android.util.Printer; import android.util.SparseArray; Loading Loading @@ -609,18 +610,6 @@ public abstract class BatteryStats implements Parcelable { */ public abstract long getPhoneOnTime(long batteryRealtime, int which); public static final int SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0; public static final int SIGNAL_STRENGTH_POOR = 1; public static final int SIGNAL_STRENGTH_MODERATE = 2; public static final int SIGNAL_STRENGTH_GOOD = 3; public static final int SIGNAL_STRENGTH_GREAT = 4; static final String[] SIGNAL_STRENGTH_NAMES = { "none", "poor", "moderate", "good", "great" }; public static final int NUM_SIGNAL_STRENGTH_BINS = 5; /** * Returns the time in microseconds that the phone has been running with * the given signal strength. Loading Loading @@ -710,7 +699,7 @@ public abstract class BatteryStats implements Parcelable { SCREEN_BRIGHTNESS_NAMES), new BitDescription(HistoryItem.STATE_SIGNAL_STRENGTH_MASK, HistoryItem.STATE_SIGNAL_STRENGTH_SHIFT, "signal_strength", SIGNAL_STRENGTH_NAMES), SignalStrength.SIGNAL_STRENGTH_NAMES), new BitDescription(HistoryItem.STATE_PHONE_STATE_MASK, HistoryItem.STATE_PHONE_STATE_SHIFT, "phone_state", new String[] {"in", "out", "emergency", "off"}), Loading Loading @@ -1095,14 +1084,14 @@ public abstract class BatteryStats implements Parcelable { dumpLine(pw, 0 /* uid */, category, SCREEN_BRIGHTNESS_DATA, args); // Dump signal strength stats args = new Object[NUM_SIGNAL_STRENGTH_BINS]; for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { args = new Object[SignalStrength.NUM_SIGNAL_STRENGTH_BINS]; for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { args[i] = getPhoneSignalStrengthTime(i, batteryRealtime, which) / 1000; } dumpLine(pw, 0 /* uid */, category, SIGNAL_STRENGTH_TIME_DATA, args); dumpLine(pw, 0 /* uid */, category, SIGNAL_SCANNING_TIME_DATA, getPhoneSignalScanningTime(batteryRealtime, which) / 1000); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { args[i] = getPhoneSignalStrengthCount(i, which); } dumpLine(pw, 0 /* uid */, category, SIGNAL_STRENGTH_COUNT_DATA, args); Loading Loading @@ -1408,14 +1397,14 @@ public abstract class BatteryStats implements Parcelable { sb.append(prefix); sb.append(" Signal levels: "); didOne = false; for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { final long time = getPhoneSignalStrengthTime(i, batteryRealtime, which); if (time == 0) { continue; } if (didOne) sb.append(", "); didOne = true; sb.append(SIGNAL_STRENGTH_NAMES[i]); sb.append(SignalStrength.SIGNAL_STRENGTH_NAMES[i]); sb.append(" "); formatTimeMs(sb, time/1000); sb.append("("); Loading core/java/com/android/internal/os/BatteryStatsImpl.java +13 −30 Original line number Diff line number Diff line Loading @@ -194,7 +194,7 @@ public final class BatteryStatsImpl extends BatteryStats { int mPhoneSignalStrengthBin = -1; int mPhoneSignalStrengthBinRaw = -1; final StopwatchTimer[] mPhoneSignalStrengthsTimer = new StopwatchTimer[NUM_SIGNAL_STRENGTH_BINS]; new StopwatchTimer[SignalStrength.NUM_SIGNAL_STRENGTH_BINS]; StopwatchTimer mPhoneSignalScanningTimer; Loading Loading @@ -1659,7 +1659,7 @@ public final class BatteryStatsImpl extends BatteryStats { } void stopAllSignalStrengthTimersLocked(int except) { for (int i = 0; i < NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i = 0; i < SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { if (i == except) { continue; } Loading @@ -1674,7 +1674,7 @@ public final class BatteryStatsImpl extends BatteryStats { // In this case we will always be STATE_OUT_OF_SERVICE, so need // to infer that we are scanning from other data. if (state == ServiceState.STATE_OUT_OF_SERVICE && signalBin > SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { && signalBin > SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { state = ServiceState.STATE_IN_SERVICE; } } Loading @@ -1694,7 +1694,7 @@ public final class BatteryStatsImpl extends BatteryStats { // In this case we will always be STATE_OUT_OF_SERVICE, so need // to infer that we are scanning from other data. if (state == ServiceState.STATE_OUT_OF_SERVICE && bin > SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { && bin > SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { state = ServiceState.STATE_IN_SERVICE; } } Loading @@ -1711,7 +1711,7 @@ public final class BatteryStatsImpl extends BatteryStats { // bin and have the scanning bit set. } else if (state == ServiceState.STATE_OUT_OF_SERVICE) { scanning = true; bin = SIGNAL_STRENGTH_NONE_OR_UNKNOWN; bin = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN; if (!mPhoneSignalScanningTimer.isRunningLocked()) { mHistoryCur.states |= HistoryItem.STATE_PHONE_SCANNING_FLAG; newHistory = true; Loading Loading @@ -1775,24 +1775,7 @@ public final class BatteryStatsImpl extends BatteryStats { public void notePhoneSignalStrengthLocked(SignalStrength signalStrength) { // Bin the strength. int bin; if (!signalStrength.isGsm()) { int dBm = signalStrength.getCdmaDbm(); if (dBm >= -75) bin = SIGNAL_STRENGTH_GREAT; else if (dBm >= -85) bin = SIGNAL_STRENGTH_GOOD; else if (dBm >= -95) bin = SIGNAL_STRENGTH_MODERATE; else if (dBm >= -100) bin = SIGNAL_STRENGTH_POOR; else bin = SIGNAL_STRENGTH_NONE_OR_UNKNOWN; } else { int asu = signalStrength.getGsmSignalStrength(); if (asu < 0 || asu >= 99) bin = SIGNAL_STRENGTH_NONE_OR_UNKNOWN; else if (asu >= 16) bin = SIGNAL_STRENGTH_GREAT; else if (asu >= 8) bin = SIGNAL_STRENGTH_GOOD; else if (asu >= 4) bin = SIGNAL_STRENGTH_MODERATE; else bin = SIGNAL_STRENGTH_POOR; } int bin = signalStrength.getLevel(); updateAllPhoneStateLocked(mPhoneServiceStateRaw, mPhoneSimStateRaw, bin); } Loading Loading @@ -3903,7 +3886,7 @@ public final class BatteryStatsImpl extends BatteryStats { } mInputEventCounter = new Counter(mUnpluggables); mPhoneOnTimer = new StopwatchTimer(null, -2, null, mUnpluggables); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i] = new StopwatchTimer(null, -200-i, null, mUnpluggables); } mPhoneSignalScanningTimer = new StopwatchTimer(null, -200+1, null, mUnpluggables); Loading Loading @@ -4017,7 +4000,7 @@ public final class BatteryStatsImpl extends BatteryStats { mPhoneOnTimer.reset(this, false); mAudioOnTimer.reset(this, false); mVideoOnTimer.reset(this, false); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i].reset(this, false); } mPhoneSignalScanningTimer.reset(this, false); Loading Loading @@ -4780,7 +4763,7 @@ public final class BatteryStatsImpl extends BatteryStats { mInputEventCounter.readSummaryFromParcelLocked(in); mPhoneOn = false; mPhoneOnTimer.readSummaryFromParcelLocked(in); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i].readSummaryFromParcelLocked(in); } mPhoneSignalScanningTimer.readSummaryFromParcelLocked(in); Loading Loading @@ -4973,7 +4956,7 @@ public final class BatteryStatsImpl extends BatteryStats { } mInputEventCounter.writeSummaryFromParcelLocked(out); mPhoneOnTimer.writeSummaryFromParcelLocked(out, NOWREAL); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i].writeSummaryFromParcelLocked(out, NOWREAL); } mPhoneSignalScanningTimer.writeSummaryFromParcelLocked(out, NOWREAL); Loading Loading @@ -5172,7 +5155,7 @@ public final class BatteryStatsImpl extends BatteryStats { mInputEventCounter = new Counter(mUnpluggables, in); mPhoneOn = false; mPhoneOnTimer = new StopwatchTimer(null, -2, null, mUnpluggables, in); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i] = new StopwatchTimer(null, -200-i, null, mUnpluggables, in); } Loading Loading @@ -5285,7 +5268,7 @@ public final class BatteryStatsImpl extends BatteryStats { } mInputEventCounter.writeToParcel(out); mPhoneOnTimer.writeToParcel(out, batteryRealtime); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i].writeToParcel(out, batteryRealtime); } mPhoneSignalScanningTimer.writeToParcel(out, batteryRealtime); Loading Loading @@ -5382,7 +5365,7 @@ public final class BatteryStatsImpl extends BatteryStats { mInputEventCounter.logState(pr, " "); pr.println("*** Phone timer:"); mPhoneOnTimer.logState(pr, " "); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { pr.println("*** Signal strength #" + i + ":"); mPhoneSignalStrengthsTimer[i].logState(pr, " "); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +1 −80 Original line number Diff line number Diff line Loading @@ -599,16 +599,6 @@ public class PhoneStatusBarPolicy { return (mSignalStrength != null) && !mSignalStrength.isGsm(); } private boolean isEvdo() { return ( (mServiceState != null) && ((mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_0) || (mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_A) || (mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_B))); } private boolean hasService() { if (mServiceState != null) { switch (mServiceState.getState()) { Loading @@ -624,7 +614,6 @@ public class PhoneStatusBarPolicy { } private final void updateSignalStrength() { int iconLevel = -1; int[] iconList; // Display signal strength while in "emergency calls only" mode Loading @@ -641,18 +630,6 @@ public class PhoneStatusBarPolicy { } if (!isCdma()) { int asu = mSignalStrength.getGsmSignalStrength(); // ASU ranges from 0 to 31 - TS 27.007 Sec 8.5 // asu = 0 (-113dB or less) is very weak // signal, its better to show 0 bars to the user in such cases. // asu = 99 is a special case, where the signal strength is unknown. if (asu <= 2 || asu == 99) iconLevel = 0; else if (asu >= 12) iconLevel = 4; else if (asu >= 8) iconLevel = 3; else if (asu >= 5) iconLevel = 2; else iconLevel = 1; // Though mPhone is a Manager, this call is not an IPC if (mPhone.isNetworkRoaming()) { iconList = sSignalImages_r[mInetCondition]; Loading @@ -661,67 +638,11 @@ public class PhoneStatusBarPolicy { } } else { iconList = sSignalImages[mInetCondition]; // If 3G(EV) and 1x network are available than 3G should be // displayed, displayed RSSI should be from the EV side. // If a voice call is made then RSSI should switch to 1x. if ((mPhoneState == TelephonyManager.CALL_STATE_IDLE) && isEvdo()){ iconLevel = getEvdoLevel(); if (false) { Slog.d(TAG, "use Evdo level=" + iconLevel + " to replace Cdma Level=" + getCdmaLevel()); } } else { iconLevel = getCdmaLevel(); } } mPhoneSignalIconId = iconList[iconLevel]; mPhoneSignalIconId = iconList[mSignalStrength.getLevel()]; mService.setIcon("phone_signal", mPhoneSignalIconId, 0); } private int getCdmaLevel() { final int cdmaDbm = mSignalStrength.getCdmaDbm(); final int cdmaEcio = mSignalStrength.getCdmaEcio(); int levelDbm = 0; int levelEcio = 0; if (cdmaDbm >= -75) levelDbm = 4; else if (cdmaDbm >= -85) levelDbm = 3; else if (cdmaDbm >= -95) levelDbm = 2; else if (cdmaDbm >= -100) levelDbm = 1; else levelDbm = 0; // Ec/Io are in dB*10 if (cdmaEcio >= -90) levelEcio = 4; else if (cdmaEcio >= -110) levelEcio = 3; else if (cdmaEcio >= -130) levelEcio = 2; else if (cdmaEcio >= -150) levelEcio = 1; else levelEcio = 0; return (levelDbm < levelEcio) ? levelDbm : levelEcio; } private int getEvdoLevel() { int evdoDbm = mSignalStrength.getEvdoDbm(); int evdoSnr = mSignalStrength.getEvdoSnr(); int levelEvdoDbm = 0; int levelEvdoSnr = 0; if (evdoDbm >= -65) levelEvdoDbm = 4; else if (evdoDbm >= -75) levelEvdoDbm = 3; else if (evdoDbm >= -90) levelEvdoDbm = 2; else if (evdoDbm >= -105) levelEvdoDbm = 1; else levelEvdoDbm = 0; if (evdoSnr >= 7) levelEvdoSnr = 4; else if (evdoSnr >= 5) levelEvdoSnr = 3; else if (evdoSnr >= 3) levelEvdoSnr = 2; else if (evdoSnr >= 1) levelEvdoSnr = 1; else levelEvdoSnr = 0; return (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr; } private final void updateDataNetType(int net) { switch (net) { case TelephonyManager.NETWORK_TYPE_EDGE: Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +14 −86 Original line number Diff line number Diff line Loading @@ -200,6 +200,7 @@ public class NetworkController extends BroadcastReceiver { mLabelViews.add(v); } @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (action.equals(WifiManager.RSSI_CHANGED_ACTION) Loading Loading @@ -315,13 +316,6 @@ public class NetworkController extends BroadcastReceiver { return (mSignalStrength != null) && !mSignalStrength.isGsm(); } private boolean isEvdo() { return ((mServiceState != null) && ((mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_0) || (mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_A) || (mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_B))); } private boolean hasService() { if (mServiceState != null) { switch (mServiceState.getState()) { Loading @@ -336,51 +330,6 @@ public class NetworkController extends BroadcastReceiver { } } private int getCdmaLevel() { if (mSignalStrength == null) return 0; final int cdmaDbm = mSignalStrength.getCdmaDbm(); final int cdmaEcio = mSignalStrength.getCdmaEcio(); int levelDbm = 0; int levelEcio = 0; if (cdmaDbm >= -75) levelDbm = 4; else if (cdmaDbm >= -85) levelDbm = 3; else if (cdmaDbm >= -95) levelDbm = 2; else if (cdmaDbm >= -100) levelDbm = 1; else levelDbm = 0; // Ec/Io are in dB*10 if (cdmaEcio >= -90) levelEcio = 4; else if (cdmaEcio >= -110) levelEcio = 3; else if (cdmaEcio >= -130) levelEcio = 2; else if (cdmaEcio >= -150) levelEcio = 1; else levelEcio = 0; return (levelDbm < levelEcio) ? levelDbm : levelEcio; } private int getEvdoLevel() { if (mSignalStrength == null) return 0; int evdoDbm = mSignalStrength.getEvdoDbm(); int evdoSnr = mSignalStrength.getEvdoSnr(); int levelEvdoDbm = 0; int levelEvdoSnr = 0; if (evdoDbm >= -65) levelEvdoDbm = 4; else if (evdoDbm >= -75) levelEvdoDbm = 3; else if (evdoDbm >= -90) levelEvdoDbm = 2; else if (evdoDbm >= -105) levelEvdoDbm = 1; else levelEvdoDbm = 0; if (evdoSnr >= 7) levelEvdoSnr = 4; else if (evdoSnr >= 5) levelEvdoSnr = 3; else if (evdoSnr >= 3) levelEvdoSnr = 2; else if (evdoSnr >= 1) levelEvdoSnr = 1; else levelEvdoSnr = 0; return (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr; } private final void updateTelephonySignalStrength() { // Display signal strength while in "emergency calls only" mode if (mServiceState == null || (!hasService() && !mServiceState.isEmergencyOnly())) { Loading @@ -397,45 +346,24 @@ public class NetworkController extends BroadcastReceiver { if (mSignalStrength == null) { mPhoneSignalIconId = R.drawable.stat_sys_signal_null; mDataSignalIconId = R.drawable.stat_sys_signal_0; // note we use 0 instead of null } else if (isCdma()) { // If 3G(EV) and 1x network are available than 3G should be // displayed, displayed RSSI should be from the EV side. // If a voice call is made then RSSI should switch to 1x. int iconLevel; if ((mPhoneState == TelephonyManager.CALL_STATE_IDLE) && isEvdo()){ iconLevel = getEvdoLevel(); } else { iconLevel = getCdmaLevel(); } int iconLevel; int[] iconList; iconLevel = mSignalStrength.getLevel(); if (isCdma()) { if (isCdmaEri()) { iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition]; } else { iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition]; } mPhoneSignalIconId = iconList[iconLevel]; mDataSignalIconId = TelephonyIcons.DATA_SIGNAL_STRENGTH[mInetCondition][iconLevel]; } else { int asu = mSignalStrength.getGsmSignalStrength(); // ASU ranges from 0 to 31 - TS 27.007 Sec 8.5 // asu = 0 (-113dB or less) is very weak // signal, its better to show 0 bars to the user in such cases. // asu = 99 is a special case, where the signal strength is unknown. int iconLevel; if (asu <= 2 || asu == 99) iconLevel = 0; else if (asu >= 12) iconLevel = 4; else if (asu >= 8) iconLevel = 3; else if (asu >= 5) iconLevel = 2; else iconLevel = 1; // Though mPhone is a Manager, this call is not an IPC int[] iconList; if (mPhone.isNetworkRoaming()) { iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition]; } else { iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition]; } } mPhoneSignalIconId = iconList[iconLevel]; mDataSignalIconId = TelephonyIcons.DATA_SIGNAL_STRENGTH[mInetCondition][iconLevel]; } Loading telephony/java/android/telephony/SignalStrength.java +406 −19 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/java/android/os/BatteryStats.java +7 −18 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import java.util.List; import java.util.Map; import android.content.pm.ApplicationInfo; import android.telephony.SignalStrength; import android.util.Log; import android.util.Printer; import android.util.SparseArray; Loading Loading @@ -609,18 +610,6 @@ public abstract class BatteryStats implements Parcelable { */ public abstract long getPhoneOnTime(long batteryRealtime, int which); public static final int SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0; public static final int SIGNAL_STRENGTH_POOR = 1; public static final int SIGNAL_STRENGTH_MODERATE = 2; public static final int SIGNAL_STRENGTH_GOOD = 3; public static final int SIGNAL_STRENGTH_GREAT = 4; static final String[] SIGNAL_STRENGTH_NAMES = { "none", "poor", "moderate", "good", "great" }; public static final int NUM_SIGNAL_STRENGTH_BINS = 5; /** * Returns the time in microseconds that the phone has been running with * the given signal strength. Loading Loading @@ -710,7 +699,7 @@ public abstract class BatteryStats implements Parcelable { SCREEN_BRIGHTNESS_NAMES), new BitDescription(HistoryItem.STATE_SIGNAL_STRENGTH_MASK, HistoryItem.STATE_SIGNAL_STRENGTH_SHIFT, "signal_strength", SIGNAL_STRENGTH_NAMES), SignalStrength.SIGNAL_STRENGTH_NAMES), new BitDescription(HistoryItem.STATE_PHONE_STATE_MASK, HistoryItem.STATE_PHONE_STATE_SHIFT, "phone_state", new String[] {"in", "out", "emergency", "off"}), Loading Loading @@ -1095,14 +1084,14 @@ public abstract class BatteryStats implements Parcelable { dumpLine(pw, 0 /* uid */, category, SCREEN_BRIGHTNESS_DATA, args); // Dump signal strength stats args = new Object[NUM_SIGNAL_STRENGTH_BINS]; for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { args = new Object[SignalStrength.NUM_SIGNAL_STRENGTH_BINS]; for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { args[i] = getPhoneSignalStrengthTime(i, batteryRealtime, which) / 1000; } dumpLine(pw, 0 /* uid */, category, SIGNAL_STRENGTH_TIME_DATA, args); dumpLine(pw, 0 /* uid */, category, SIGNAL_SCANNING_TIME_DATA, getPhoneSignalScanningTime(batteryRealtime, which) / 1000); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { args[i] = getPhoneSignalStrengthCount(i, which); } dumpLine(pw, 0 /* uid */, category, SIGNAL_STRENGTH_COUNT_DATA, args); Loading Loading @@ -1408,14 +1397,14 @@ public abstract class BatteryStats implements Parcelable { sb.append(prefix); sb.append(" Signal levels: "); didOne = false; for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { final long time = getPhoneSignalStrengthTime(i, batteryRealtime, which); if (time == 0) { continue; } if (didOne) sb.append(", "); didOne = true; sb.append(SIGNAL_STRENGTH_NAMES[i]); sb.append(SignalStrength.SIGNAL_STRENGTH_NAMES[i]); sb.append(" "); formatTimeMs(sb, time/1000); sb.append("("); Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +13 −30 Original line number Diff line number Diff line Loading @@ -194,7 +194,7 @@ public final class BatteryStatsImpl extends BatteryStats { int mPhoneSignalStrengthBin = -1; int mPhoneSignalStrengthBinRaw = -1; final StopwatchTimer[] mPhoneSignalStrengthsTimer = new StopwatchTimer[NUM_SIGNAL_STRENGTH_BINS]; new StopwatchTimer[SignalStrength.NUM_SIGNAL_STRENGTH_BINS]; StopwatchTimer mPhoneSignalScanningTimer; Loading Loading @@ -1659,7 +1659,7 @@ public final class BatteryStatsImpl extends BatteryStats { } void stopAllSignalStrengthTimersLocked(int except) { for (int i = 0; i < NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i = 0; i < SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { if (i == except) { continue; } Loading @@ -1674,7 +1674,7 @@ public final class BatteryStatsImpl extends BatteryStats { // In this case we will always be STATE_OUT_OF_SERVICE, so need // to infer that we are scanning from other data. if (state == ServiceState.STATE_OUT_OF_SERVICE && signalBin > SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { && signalBin > SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { state = ServiceState.STATE_IN_SERVICE; } } Loading @@ -1694,7 +1694,7 @@ public final class BatteryStatsImpl extends BatteryStats { // In this case we will always be STATE_OUT_OF_SERVICE, so need // to infer that we are scanning from other data. if (state == ServiceState.STATE_OUT_OF_SERVICE && bin > SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { && bin > SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { state = ServiceState.STATE_IN_SERVICE; } } Loading @@ -1711,7 +1711,7 @@ public final class BatteryStatsImpl extends BatteryStats { // bin and have the scanning bit set. } else if (state == ServiceState.STATE_OUT_OF_SERVICE) { scanning = true; bin = SIGNAL_STRENGTH_NONE_OR_UNKNOWN; bin = SignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN; if (!mPhoneSignalScanningTimer.isRunningLocked()) { mHistoryCur.states |= HistoryItem.STATE_PHONE_SCANNING_FLAG; newHistory = true; Loading Loading @@ -1775,24 +1775,7 @@ public final class BatteryStatsImpl extends BatteryStats { public void notePhoneSignalStrengthLocked(SignalStrength signalStrength) { // Bin the strength. int bin; if (!signalStrength.isGsm()) { int dBm = signalStrength.getCdmaDbm(); if (dBm >= -75) bin = SIGNAL_STRENGTH_GREAT; else if (dBm >= -85) bin = SIGNAL_STRENGTH_GOOD; else if (dBm >= -95) bin = SIGNAL_STRENGTH_MODERATE; else if (dBm >= -100) bin = SIGNAL_STRENGTH_POOR; else bin = SIGNAL_STRENGTH_NONE_OR_UNKNOWN; } else { int asu = signalStrength.getGsmSignalStrength(); if (asu < 0 || asu >= 99) bin = SIGNAL_STRENGTH_NONE_OR_UNKNOWN; else if (asu >= 16) bin = SIGNAL_STRENGTH_GREAT; else if (asu >= 8) bin = SIGNAL_STRENGTH_GOOD; else if (asu >= 4) bin = SIGNAL_STRENGTH_MODERATE; else bin = SIGNAL_STRENGTH_POOR; } int bin = signalStrength.getLevel(); updateAllPhoneStateLocked(mPhoneServiceStateRaw, mPhoneSimStateRaw, bin); } Loading Loading @@ -3903,7 +3886,7 @@ public final class BatteryStatsImpl extends BatteryStats { } mInputEventCounter = new Counter(mUnpluggables); mPhoneOnTimer = new StopwatchTimer(null, -2, null, mUnpluggables); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i] = new StopwatchTimer(null, -200-i, null, mUnpluggables); } mPhoneSignalScanningTimer = new StopwatchTimer(null, -200+1, null, mUnpluggables); Loading Loading @@ -4017,7 +4000,7 @@ public final class BatteryStatsImpl extends BatteryStats { mPhoneOnTimer.reset(this, false); mAudioOnTimer.reset(this, false); mVideoOnTimer.reset(this, false); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i].reset(this, false); } mPhoneSignalScanningTimer.reset(this, false); Loading Loading @@ -4780,7 +4763,7 @@ public final class BatteryStatsImpl extends BatteryStats { mInputEventCounter.readSummaryFromParcelLocked(in); mPhoneOn = false; mPhoneOnTimer.readSummaryFromParcelLocked(in); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i].readSummaryFromParcelLocked(in); } mPhoneSignalScanningTimer.readSummaryFromParcelLocked(in); Loading Loading @@ -4973,7 +4956,7 @@ public final class BatteryStatsImpl extends BatteryStats { } mInputEventCounter.writeSummaryFromParcelLocked(out); mPhoneOnTimer.writeSummaryFromParcelLocked(out, NOWREAL); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i].writeSummaryFromParcelLocked(out, NOWREAL); } mPhoneSignalScanningTimer.writeSummaryFromParcelLocked(out, NOWREAL); Loading Loading @@ -5172,7 +5155,7 @@ public final class BatteryStatsImpl extends BatteryStats { mInputEventCounter = new Counter(mUnpluggables, in); mPhoneOn = false; mPhoneOnTimer = new StopwatchTimer(null, -2, null, mUnpluggables, in); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i] = new StopwatchTimer(null, -200-i, null, mUnpluggables, in); } Loading Loading @@ -5285,7 +5268,7 @@ public final class BatteryStatsImpl extends BatteryStats { } mInputEventCounter.writeToParcel(out); mPhoneOnTimer.writeToParcel(out, batteryRealtime); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { mPhoneSignalStrengthsTimer[i].writeToParcel(out, batteryRealtime); } mPhoneSignalScanningTimer.writeToParcel(out, batteryRealtime); Loading Loading @@ -5382,7 +5365,7 @@ public final class BatteryStatsImpl extends BatteryStats { mInputEventCounter.logState(pr, " "); pr.println("*** Phone timer:"); mPhoneOnTimer.logState(pr, " "); for (int i=0; i<NUM_SIGNAL_STRENGTH_BINS; i++) { for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) { pr.println("*** Signal strength #" + i + ":"); mPhoneSignalStrengthsTimer[i].logState(pr, " "); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +1 −80 Original line number Diff line number Diff line Loading @@ -599,16 +599,6 @@ public class PhoneStatusBarPolicy { return (mSignalStrength != null) && !mSignalStrength.isGsm(); } private boolean isEvdo() { return ( (mServiceState != null) && ((mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_0) || (mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_A) || (mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_B))); } private boolean hasService() { if (mServiceState != null) { switch (mServiceState.getState()) { Loading @@ -624,7 +614,6 @@ public class PhoneStatusBarPolicy { } private final void updateSignalStrength() { int iconLevel = -1; int[] iconList; // Display signal strength while in "emergency calls only" mode Loading @@ -641,18 +630,6 @@ public class PhoneStatusBarPolicy { } if (!isCdma()) { int asu = mSignalStrength.getGsmSignalStrength(); // ASU ranges from 0 to 31 - TS 27.007 Sec 8.5 // asu = 0 (-113dB or less) is very weak // signal, its better to show 0 bars to the user in such cases. // asu = 99 is a special case, where the signal strength is unknown. if (asu <= 2 || asu == 99) iconLevel = 0; else if (asu >= 12) iconLevel = 4; else if (asu >= 8) iconLevel = 3; else if (asu >= 5) iconLevel = 2; else iconLevel = 1; // Though mPhone is a Manager, this call is not an IPC if (mPhone.isNetworkRoaming()) { iconList = sSignalImages_r[mInetCondition]; Loading @@ -661,67 +638,11 @@ public class PhoneStatusBarPolicy { } } else { iconList = sSignalImages[mInetCondition]; // If 3G(EV) and 1x network are available than 3G should be // displayed, displayed RSSI should be from the EV side. // If a voice call is made then RSSI should switch to 1x. if ((mPhoneState == TelephonyManager.CALL_STATE_IDLE) && isEvdo()){ iconLevel = getEvdoLevel(); if (false) { Slog.d(TAG, "use Evdo level=" + iconLevel + " to replace Cdma Level=" + getCdmaLevel()); } } else { iconLevel = getCdmaLevel(); } } mPhoneSignalIconId = iconList[iconLevel]; mPhoneSignalIconId = iconList[mSignalStrength.getLevel()]; mService.setIcon("phone_signal", mPhoneSignalIconId, 0); } private int getCdmaLevel() { final int cdmaDbm = mSignalStrength.getCdmaDbm(); final int cdmaEcio = mSignalStrength.getCdmaEcio(); int levelDbm = 0; int levelEcio = 0; if (cdmaDbm >= -75) levelDbm = 4; else if (cdmaDbm >= -85) levelDbm = 3; else if (cdmaDbm >= -95) levelDbm = 2; else if (cdmaDbm >= -100) levelDbm = 1; else levelDbm = 0; // Ec/Io are in dB*10 if (cdmaEcio >= -90) levelEcio = 4; else if (cdmaEcio >= -110) levelEcio = 3; else if (cdmaEcio >= -130) levelEcio = 2; else if (cdmaEcio >= -150) levelEcio = 1; else levelEcio = 0; return (levelDbm < levelEcio) ? levelDbm : levelEcio; } private int getEvdoLevel() { int evdoDbm = mSignalStrength.getEvdoDbm(); int evdoSnr = mSignalStrength.getEvdoSnr(); int levelEvdoDbm = 0; int levelEvdoSnr = 0; if (evdoDbm >= -65) levelEvdoDbm = 4; else if (evdoDbm >= -75) levelEvdoDbm = 3; else if (evdoDbm >= -90) levelEvdoDbm = 2; else if (evdoDbm >= -105) levelEvdoDbm = 1; else levelEvdoDbm = 0; if (evdoSnr >= 7) levelEvdoSnr = 4; else if (evdoSnr >= 5) levelEvdoSnr = 3; else if (evdoSnr >= 3) levelEvdoSnr = 2; else if (evdoSnr >= 1) levelEvdoSnr = 1; else levelEvdoSnr = 0; return (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr; } private final void updateDataNetType(int net) { switch (net) { case TelephonyManager.NETWORK_TYPE_EDGE: Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +14 −86 Original line number Diff line number Diff line Loading @@ -200,6 +200,7 @@ public class NetworkController extends BroadcastReceiver { mLabelViews.add(v); } @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (action.equals(WifiManager.RSSI_CHANGED_ACTION) Loading Loading @@ -315,13 +316,6 @@ public class NetworkController extends BroadcastReceiver { return (mSignalStrength != null) && !mSignalStrength.isGsm(); } private boolean isEvdo() { return ((mServiceState != null) && ((mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_0) || (mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_A) || (mServiceState.getRadioTechnology() == ServiceState.RADIO_TECHNOLOGY_EVDO_B))); } private boolean hasService() { if (mServiceState != null) { switch (mServiceState.getState()) { Loading @@ -336,51 +330,6 @@ public class NetworkController extends BroadcastReceiver { } } private int getCdmaLevel() { if (mSignalStrength == null) return 0; final int cdmaDbm = mSignalStrength.getCdmaDbm(); final int cdmaEcio = mSignalStrength.getCdmaEcio(); int levelDbm = 0; int levelEcio = 0; if (cdmaDbm >= -75) levelDbm = 4; else if (cdmaDbm >= -85) levelDbm = 3; else if (cdmaDbm >= -95) levelDbm = 2; else if (cdmaDbm >= -100) levelDbm = 1; else levelDbm = 0; // Ec/Io are in dB*10 if (cdmaEcio >= -90) levelEcio = 4; else if (cdmaEcio >= -110) levelEcio = 3; else if (cdmaEcio >= -130) levelEcio = 2; else if (cdmaEcio >= -150) levelEcio = 1; else levelEcio = 0; return (levelDbm < levelEcio) ? levelDbm : levelEcio; } private int getEvdoLevel() { if (mSignalStrength == null) return 0; int evdoDbm = mSignalStrength.getEvdoDbm(); int evdoSnr = mSignalStrength.getEvdoSnr(); int levelEvdoDbm = 0; int levelEvdoSnr = 0; if (evdoDbm >= -65) levelEvdoDbm = 4; else if (evdoDbm >= -75) levelEvdoDbm = 3; else if (evdoDbm >= -90) levelEvdoDbm = 2; else if (evdoDbm >= -105) levelEvdoDbm = 1; else levelEvdoDbm = 0; if (evdoSnr >= 7) levelEvdoSnr = 4; else if (evdoSnr >= 5) levelEvdoSnr = 3; else if (evdoSnr >= 3) levelEvdoSnr = 2; else if (evdoSnr >= 1) levelEvdoSnr = 1; else levelEvdoSnr = 0; return (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr; } private final void updateTelephonySignalStrength() { // Display signal strength while in "emergency calls only" mode if (mServiceState == null || (!hasService() && !mServiceState.isEmergencyOnly())) { Loading @@ -397,45 +346,24 @@ public class NetworkController extends BroadcastReceiver { if (mSignalStrength == null) { mPhoneSignalIconId = R.drawable.stat_sys_signal_null; mDataSignalIconId = R.drawable.stat_sys_signal_0; // note we use 0 instead of null } else if (isCdma()) { // If 3G(EV) and 1x network are available than 3G should be // displayed, displayed RSSI should be from the EV side. // If a voice call is made then RSSI should switch to 1x. int iconLevel; if ((mPhoneState == TelephonyManager.CALL_STATE_IDLE) && isEvdo()){ iconLevel = getEvdoLevel(); } else { iconLevel = getCdmaLevel(); } int iconLevel; int[] iconList; iconLevel = mSignalStrength.getLevel(); if (isCdma()) { if (isCdmaEri()) { iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition]; } else { iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition]; } mPhoneSignalIconId = iconList[iconLevel]; mDataSignalIconId = TelephonyIcons.DATA_SIGNAL_STRENGTH[mInetCondition][iconLevel]; } else { int asu = mSignalStrength.getGsmSignalStrength(); // ASU ranges from 0 to 31 - TS 27.007 Sec 8.5 // asu = 0 (-113dB or less) is very weak // signal, its better to show 0 bars to the user in such cases. // asu = 99 is a special case, where the signal strength is unknown. int iconLevel; if (asu <= 2 || asu == 99) iconLevel = 0; else if (asu >= 12) iconLevel = 4; else if (asu >= 8) iconLevel = 3; else if (asu >= 5) iconLevel = 2; else iconLevel = 1; // Though mPhone is a Manager, this call is not an IPC int[] iconList; if (mPhone.isNetworkRoaming()) { iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH_ROAMING[mInetCondition]; } else { iconList = TelephonyIcons.TELEPHONY_SIGNAL_STRENGTH[mInetCondition]; } } mPhoneSignalIconId = iconList[iconLevel]; mDataSignalIconId = TelephonyIcons.DATA_SIGNAL_STRENGTH[mInetCondition][iconLevel]; } Loading
telephony/java/android/telephony/SignalStrength.java +406 −19 File changed.Preview size limit exceeded, changes collapsed. Show changes