Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 815b8e4a authored by John Wang's avatar John Wang Committed by Android (Google) Code Review
Browse files

Merge "Add emergencyOnly indicator in ServiceState." into froyo

parents fd998a0c 56c2d2ff
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -972,7 +972,8 @@ public class StatusBarPolicy {
        int iconLevel = -1;
        int[] iconList;

        if (!hasService()) {
        // Display signal strength while in "emergency calls only" mode
        if (!hasService() && !mServiceState.isEmergencyOnly()) {
            //Slog.d(TAG, "updateSignalStrength: no service");
            if (Settings.System.getInt(mContext.getContentResolver(),
                    Settings.System.AIRPLANE_MODE_ON, 0) == 1) {
+30 −3
Original line number Diff line number Diff line
@@ -113,6 +113,8 @@ public class ServiceState implements Parcelable {
    private String mOperatorNumeric;
    private boolean mIsManualNetworkSelection;

    private boolean mIsEmergencyOnly;

    //***** CDMA
    private int mRadioTechnology;
    private boolean mCssIndicator;
@@ -170,6 +172,7 @@ public class ServiceState implements Parcelable {
        mCdmaDefaultRoamingIndicator = s.mCdmaDefaultRoamingIndicator;
        mCdmaEriIconIndex = s.mCdmaEriIconIndex;
        mCdmaEriIconMode = s.mCdmaEriIconMode;
        mIsEmergencyOnly = s.mIsEmergencyOnly;
    }

    /**
@@ -190,6 +193,7 @@ public class ServiceState implements Parcelable {
        mCdmaDefaultRoamingIndicator = in.readInt();
        mCdmaEriIconIndex = in.readInt();
        mCdmaEriIconMode = in.readInt();
        mIsEmergencyOnly = in.readInt() != 0;
    }

    public void writeToParcel(Parcel out, int flags) {
@@ -207,6 +211,7 @@ public class ServiceState implements Parcelable {
        out.writeInt(mCdmaDefaultRoamingIndicator);
        out.writeInt(mCdmaEriIconIndex);
        out.writeInt(mCdmaEriIconMode);
        out.writeInt(mIsEmergencyOnly ? 1 : 0);
    }

    public int describeContents() {
@@ -247,6 +252,13 @@ public class ServiceState implements Parcelable {
        return mRoaming;
    }

    /**
     * @hide
     */
    public boolean isEmergencyOnly() {
        return mIsEmergencyOnly;
    }

    /**
     * @hide
     */
@@ -330,7 +342,8 @@ public class ServiceState implements Parcelable {
                + ((null == mOperatorAlphaShort) ? 0 : mOperatorAlphaShort.hashCode())
                + ((null == mOperatorNumeric) ? 0 : mOperatorNumeric.hashCode())
                + mCdmaRoamingIndicator
                + mCdmaDefaultRoamingIndicator);
                + mCdmaDefaultRoamingIndicator
                + (mIsEmergencyOnly ? 1 : 0));
    }

    @Override
@@ -359,7 +372,8 @@ public class ServiceState implements Parcelable {
                && equalsHandlesNulls(mSystemId, s.mSystemId)
                && equalsHandlesNulls(mCdmaRoamingIndicator, s.mCdmaRoamingIndicator)
                && equalsHandlesNulls(mCdmaDefaultRoamingIndicator,
                        s.mCdmaDefaultRoamingIndicator));
                        s.mCdmaDefaultRoamingIndicator)
                && mIsEmergencyOnly == s.mIsEmergencyOnly);
    }

    @Override
@@ -418,7 +432,8 @@ public class ServiceState implements Parcelable {
                + " " + mNetworkId
                + " " + mSystemId
                + "RoamInd: " + mCdmaRoamingIndicator
                + "DefRoamInd: " + mCdmaDefaultRoamingIndicator);
                + "DefRoamInd: " + mCdmaDefaultRoamingIndicator
                + "EmergOnly: " + mIsEmergencyOnly);
    }

    public void setStateOutOfService() {
@@ -436,6 +451,7 @@ public class ServiceState implements Parcelable {
        mCdmaDefaultRoamingIndicator = -1;
        mCdmaEriIconIndex = -1;
        mCdmaEriIconMode = -1;
        mIsEmergencyOnly = false;
    }

    // TODO - can't this be combined with the above func..
@@ -454,6 +470,7 @@ public class ServiceState implements Parcelable {
        mCdmaDefaultRoamingIndicator = -1;
        mCdmaEriIconIndex = -1;
        mCdmaEriIconMode = -1;
        mIsEmergencyOnly = false;
    }

    public void setState(int state) {
@@ -464,6 +481,14 @@ public class ServiceState implements Parcelable {
        mRoaming = roaming;
    }


    /**
     * @hide
     */
    public void setEmergencyOnly(boolean emergencyOnly) {
        mIsEmergencyOnly = emergencyOnly;
    }

    /**
     * @hide
     */
@@ -542,6 +567,7 @@ public class ServiceState implements Parcelable {
        mSystemId = m.getInt("systemId");
        mCdmaRoamingIndicator = m.getInt("cdmaRoamingIndicator");
        mCdmaDefaultRoamingIndicator = m.getInt("cdmaDefaultRoamingIndicator");
        mIsEmergencyOnly = m.getBoolean("emergencyOnly");
    }

    /**
@@ -563,6 +589,7 @@ public class ServiceState implements Parcelable {
        m.putInt("systemId", mSystemId);
        m.putInt("cdmaRoamingIndicator", mCdmaRoamingIndicator);
        m.putInt("cdmaDefaultRoamingIndicator", mCdmaDefaultRoamingIndicator);
        m.putBoolean("emergencyOnly", Boolean.valueOf(mIsEmergencyOnly));
    }

    //***** CDMA
+7 −13
Original line number Diff line number Diff line
@@ -102,7 +102,6 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
     * Mark when service state is in emergency call only mode
     */
    private boolean mEmergencyOnly = false;
    private boolean mNewEmergencyOnly = false;

    private RegistrantList gprsAttachedRegistrants = new RegistrantList();
    private RegistrantList gprsDetachedRegistrants = new RegistrantList();
@@ -591,8 +590,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
        if (rule != curSpnRule
                || !TextUtils.equals(spn, curSpn)
                || !TextUtils.equals(plmn, curPlmn)) {
            boolean showSpn = mEmergencyOnly
                || (rule & SIMRecords.SPN_RULE_SHOW_SPN) == SIMRecords.SPN_RULE_SHOW_SPN;
            boolean showSpn = !mEmergencyOnly
                && (rule & SIMRecords.SPN_RULE_SHOW_SPN) == SIMRecords.SPN_RULE_SHOW_SPN;
            boolean showPlmn =
                (rule & SIMRecords.SPN_RULE_SHOW_PLMN) == SIMRecords.SPN_RULE_SHOW_PLMN;

@@ -672,9 +671,9 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
                    newSS.setState (regCodeToServiceState(regState));

                    if (regState == 10 || regState == 12 || regState == 13 || regState == 14) {
                        mNewEmergencyOnly = true;
                        mEmergencyOnly = true;
                    } else {
                        mNewEmergencyOnly = false;
                        mEmergencyOnly = false;
                    }

                    // LAC and CID are -1 if not avail
@@ -741,6 +740,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
                roaming = false;
            }
            newSS.setRoaming(roaming);
            newSS.setEmergencyOnly(mEmergencyOnly);
            pollStateDone();
        }
    }
@@ -886,8 +886,6 @@ final class GsmServiceStateTracker extends ServiceStateTracker {

        boolean hasLocationChanged = !newCellLoc.equals(cellLoc);

        boolean hasEmergencyOnlyChanged = mNewEmergencyOnly != mEmergencyOnly;

        // Add an event log when connection state changes
        if (ss.getState() != newSS.getState() || gprsState != newGPRSState) {
            EventLog.writeEvent(EventLogTags.GSM_SERVICE_STATE_CHANGE,
@@ -905,8 +903,6 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
        cellLoc = newCellLoc;
        newCellLoc = tcl;

        mEmergencyOnly = mNewEmergencyOnly;

        // Add an event log when network type switched
        // TODO: we may add filtering to reduce the event logged,
        // i.e. check preferred network setting, only switch to 2G, etc
@@ -937,6 +933,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
        if (hasChanged) {
            String operatorNumeric;

            updateSpnDisplay();

            phone.setSystemProperty(TelephonyProperties.PROPERTY_OPERATOR_ALPHA,
                ss.getOperatorAlphaLong());

@@ -1005,10 +1003,6 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
            phone.notifyServiceStateChanged(ss);
        }

        if (hasChanged || hasEmergencyOnlyChanged) {
            updateSpnDisplay();
        }

        if (hasGprsAttached) {
            gprsAttachedRegistrants.notifyRegistrants();
        }