am 90f2a71e: am 7ecf08fa: am 815b8e4a: Merge "Add emergencyOnly indicator in ServiceState." into froyo
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user