am 90f2a71e: am 7ecf08fa: am 815b8e4a: Merge "Add emergencyOnly indicator in ServiceState." into froyo

This commit is contained in:
John Wang
2010-04-07 18:02:56 -07:00
committed by Android Git Automerger
3 changed files with 40 additions and 18 deletions

View File

@@ -818,7 +818,7 @@ public class StatusBarPolicy {
final ContentResolver cr = mContext.getContentResolver(); final ContentResolver cr = mContext.getContentResolver();
if (Settings.System.getInt(cr, if (Settings.System.getInt(cr,
Settings.System.POWER_SOUNDS_ENABLED, 1) == 1) Settings.System.POWER_SOUNDS_ENABLED, 1) == 1)
{ {
final String soundPath = Settings.System.getString(cr, final String soundPath = Settings.System.getString(cr,
Settings.System.LOW_BATTERY_SOUND); Settings.System.LOW_BATTERY_SOUND);
@@ -972,7 +972,8 @@ public class StatusBarPolicy {
int iconLevel = -1; int iconLevel = -1;
int[] iconList; int[] iconList;
if (!hasService()) { // Display signal strength while in "emergency calls only" mode
if (!hasService() && !mServiceState.isEmergencyOnly()) {
//Slog.d(TAG, "updateSignalStrength: no service"); //Slog.d(TAG, "updateSignalStrength: no service");
if (Settings.System.getInt(mContext.getContentResolver(), if (Settings.System.getInt(mContext.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0) == 1) { Settings.System.AIRPLANE_MODE_ON, 0) == 1) {

View File

@@ -113,6 +113,8 @@ public class ServiceState implements Parcelable {
private String mOperatorNumeric; private String mOperatorNumeric;
private boolean mIsManualNetworkSelection; private boolean mIsManualNetworkSelection;
private boolean mIsEmergencyOnly;
//***** CDMA //***** CDMA
private int mRadioTechnology; private int mRadioTechnology;
private boolean mCssIndicator; private boolean mCssIndicator;
@@ -170,6 +172,7 @@ public class ServiceState implements Parcelable {
mCdmaDefaultRoamingIndicator = s.mCdmaDefaultRoamingIndicator; mCdmaDefaultRoamingIndicator = s.mCdmaDefaultRoamingIndicator;
mCdmaEriIconIndex = s.mCdmaEriIconIndex; mCdmaEriIconIndex = s.mCdmaEriIconIndex;
mCdmaEriIconMode = s.mCdmaEriIconMode; mCdmaEriIconMode = s.mCdmaEriIconMode;
mIsEmergencyOnly = s.mIsEmergencyOnly;
} }
/** /**
@@ -190,6 +193,7 @@ public class ServiceState implements Parcelable {
mCdmaDefaultRoamingIndicator = in.readInt(); mCdmaDefaultRoamingIndicator = in.readInt();
mCdmaEriIconIndex = in.readInt(); mCdmaEriIconIndex = in.readInt();
mCdmaEriIconMode = in.readInt(); mCdmaEriIconMode = in.readInt();
mIsEmergencyOnly = in.readInt() != 0;
} }
public void writeToParcel(Parcel out, int flags) { public void writeToParcel(Parcel out, int flags) {
@@ -207,6 +211,7 @@ public class ServiceState implements Parcelable {
out.writeInt(mCdmaDefaultRoamingIndicator); out.writeInt(mCdmaDefaultRoamingIndicator);
out.writeInt(mCdmaEriIconIndex); out.writeInt(mCdmaEriIconIndex);
out.writeInt(mCdmaEriIconMode); out.writeInt(mCdmaEriIconMode);
out.writeInt(mIsEmergencyOnly ? 1 : 0);
} }
public int describeContents() { public int describeContents() {
@@ -247,6 +252,13 @@ public class ServiceState implements Parcelable {
return mRoaming; return mRoaming;
} }
/**
* @hide
*/
public boolean isEmergencyOnly() {
return mIsEmergencyOnly;
}
/** /**
* @hide * @hide
*/ */
@@ -330,7 +342,8 @@ public class ServiceState implements Parcelable {
+ ((null == mOperatorAlphaShort) ? 0 : mOperatorAlphaShort.hashCode()) + ((null == mOperatorAlphaShort) ? 0 : mOperatorAlphaShort.hashCode())
+ ((null == mOperatorNumeric) ? 0 : mOperatorNumeric.hashCode()) + ((null == mOperatorNumeric) ? 0 : mOperatorNumeric.hashCode())
+ mCdmaRoamingIndicator + mCdmaRoamingIndicator
+ mCdmaDefaultRoamingIndicator); + mCdmaDefaultRoamingIndicator
+ (mIsEmergencyOnly ? 1 : 0));
} }
@Override @Override
@@ -359,7 +372,8 @@ public class ServiceState implements Parcelable {
&& equalsHandlesNulls(mSystemId, s.mSystemId) && equalsHandlesNulls(mSystemId, s.mSystemId)
&& equalsHandlesNulls(mCdmaRoamingIndicator, s.mCdmaRoamingIndicator) && equalsHandlesNulls(mCdmaRoamingIndicator, s.mCdmaRoamingIndicator)
&& equalsHandlesNulls(mCdmaDefaultRoamingIndicator, && equalsHandlesNulls(mCdmaDefaultRoamingIndicator,
s.mCdmaDefaultRoamingIndicator)); s.mCdmaDefaultRoamingIndicator)
&& mIsEmergencyOnly == s.mIsEmergencyOnly);
} }
@Override @Override
@@ -418,7 +432,8 @@ public class ServiceState implements Parcelable {
+ " " + mNetworkId + " " + mNetworkId
+ " " + mSystemId + " " + mSystemId
+ "RoamInd: " + mCdmaRoamingIndicator + "RoamInd: " + mCdmaRoamingIndicator
+ "DefRoamInd: " + mCdmaDefaultRoamingIndicator); + "DefRoamInd: " + mCdmaDefaultRoamingIndicator
+ "EmergOnly: " + mIsEmergencyOnly);
} }
public void setStateOutOfService() { public void setStateOutOfService() {
@@ -436,6 +451,7 @@ public class ServiceState implements Parcelable {
mCdmaDefaultRoamingIndicator = -1; mCdmaDefaultRoamingIndicator = -1;
mCdmaEriIconIndex = -1; mCdmaEriIconIndex = -1;
mCdmaEriIconMode = -1; mCdmaEriIconMode = -1;
mIsEmergencyOnly = false;
} }
// TODO - can't this be combined with the above func.. // TODO - can't this be combined with the above func..
@@ -454,6 +470,7 @@ public class ServiceState implements Parcelable {
mCdmaDefaultRoamingIndicator = -1; mCdmaDefaultRoamingIndicator = -1;
mCdmaEriIconIndex = -1; mCdmaEriIconIndex = -1;
mCdmaEriIconMode = -1; mCdmaEriIconMode = -1;
mIsEmergencyOnly = false;
} }
public void setState(int state) { public void setState(int state) {
@@ -464,6 +481,14 @@ public class ServiceState implements Parcelable {
mRoaming = roaming; mRoaming = roaming;
} }
/**
* @hide
*/
public void setEmergencyOnly(boolean emergencyOnly) {
mIsEmergencyOnly = emergencyOnly;
}
/** /**
* @hide * @hide
*/ */
@@ -542,6 +567,7 @@ public class ServiceState implements Parcelable {
mSystemId = m.getInt("systemId"); mSystemId = m.getInt("systemId");
mCdmaRoamingIndicator = m.getInt("cdmaRoamingIndicator"); mCdmaRoamingIndicator = m.getInt("cdmaRoamingIndicator");
mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator"); mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator");
mIsEmergencyOnly = m.getBoolean("emergencyOnly");
} }
/** /**
@@ -563,6 +589,7 @@ public class ServiceState implements Parcelable {
m.putInt("systemId", mSystemId); m.putInt("systemId", mSystemId);
m.putInt("cdmaRoamingIndicator", mCdmaRoamingIndicator); m.putInt("cdmaRoamingIndicator", mCdmaRoamingIndicator);
m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator); m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator);
m.putBoolean("emergencyOnly", Boolean.valueOf(mIsEmergencyOnly));
} }
//***** CDMA //***** CDMA

View File

@@ -102,7 +102,6 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
* Mark when service state is in emergency call only mode * Mark when service state is in emergency call only mode
*/ */
private boolean mEmergencyOnly = false; private boolean mEmergencyOnly = false;
private boolean mNewEmergencyOnly = false;
private RegistrantList gprsAttachedRegistrants = new RegistrantList(); private RegistrantList gprsAttachedRegistrants = new RegistrantList();
private RegistrantList gprsDetachedRegistrants = new RegistrantList(); private RegistrantList gprsDetachedRegistrants = new RegistrantList();
@@ -591,8 +590,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
if (rule != curSpnRule if (rule != curSpnRule
|| !TextUtils.equals(spn, curSpn) || !TextUtils.equals(spn, curSpn)
|| !TextUtils.equals(plmn, curPlmn)) { || !TextUtils.equals(plmn, curPlmn)) {
boolean showSpn = mEmergencyOnly boolean showSpn = !mEmergencyOnly
|| (rule & SIMRecords.SPN_RULE_SHOW_SPN) == SIMRecords.SPN_RULE_SHOW_SPN; && (rule & SIMRecords.SPN_RULE_SHOW_SPN) == SIMRecords.SPN_RULE_SHOW_SPN;
boolean showPlmn = boolean showPlmn =
(rule & SIMRecords.SPN_RULE_SHOW_PLMN) == SIMRecords.SPN_RULE_SHOW_PLMN; (rule & SIMRecords.SPN_RULE_SHOW_PLMN) == SIMRecords.SPN_RULE_SHOW_PLMN;
@@ -672,9 +671,9 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
newSS.setState (regCodeToServiceState(regState)); newSS.setState (regCodeToServiceState(regState));
if (regState == 10 || regState == 12 || regState == 13 || regState == 14) { if (regState == 10 || regState == 12 || regState == 13 || regState == 14) {
mNewEmergencyOnly = true; mEmergencyOnly = true;
} else { } else {
mNewEmergencyOnly = false; mEmergencyOnly = false;
} }
// LAC and CID are -1 if not avail // LAC and CID are -1 if not avail
@@ -741,6 +740,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
roaming = false; roaming = false;
} }
newSS.setRoaming(roaming); newSS.setRoaming(roaming);
newSS.setEmergencyOnly(mEmergencyOnly);
pollStateDone(); pollStateDone();
} }
} }
@@ -886,8 +886,6 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
boolean hasLocationChanged = !newCellLoc.equals(cellLoc); boolean hasLocationChanged = !newCellLoc.equals(cellLoc);
boolean hasEmergencyOnlyChanged = mNewEmergencyOnly != mEmergencyOnly;
// Add an event log when connection state changes // Add an event log when connection state changes
if (ss.getState() != newSS.getState() || gprsState != newGPRSState) { if (ss.getState() != newSS.getState() || gprsState != newGPRSState) {
EventLog.writeEvent(EventLogTags.GSM_SERVICE_STATE_CHANGE, EventLog.writeEvent(EventLogTags.GSM_SERVICE_STATE_CHANGE,
@@ -905,8 +903,6 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
cellLoc = newCellLoc; cellLoc = newCellLoc;
newCellLoc = tcl; newCellLoc = tcl;
mEmergencyOnly = mNewEmergencyOnly;
// Add an event log when network type switched // Add an event log when network type switched
// TODO: we may add filtering to reduce the event logged, // TODO: we may add filtering to reduce the event logged,
// i.e. check preferred network setting, only switch to 2G, etc // i.e. check preferred network setting, only switch to 2G, etc
@@ -937,6 +933,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
if (hasChanged) { if (hasChanged) {
String operatorNumeric; String operatorNumeric;
updateSpnDisplay();
phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ALPHA, phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ALPHA,
ss.getOperatorAlphaLong()); ss.getOperatorAlphaLong());
@@ -1005,10 +1003,6 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
phone.notifyServiceStateChanged(ss); phone.notifyServiceStateChanged(ss);
} }
if (hasChanged || hasEmergencyOnlyChanged) {
updateSpnDisplay();
}
if (hasGprsAttached) { if (hasGprsAttached) {
gprsAttachedRegistrants.notifyRegistrants(); gprsAttachedRegistrants.notifyRegistrants();
} }