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

Commit 01ae8636 authored by johnwang's avatar johnwang
Browse files

resolved conflicts for merge of 696b912e to eclair

	modified:   telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
	modified:   telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java

	modified:   telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
	modified:   telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
parents 51782509 696b912e
Loading
Loading
Loading
Loading
+35 −9
Original line number Diff line number Diff line
@@ -331,7 +331,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
     * @return false while no data connection if all above requirements are met.
     */
    public boolean isDataConnectionAsDesired() {
        boolean roaming = phone.getServiceState().getRoaming();
        boolean roaming = getDataRoaming();

        if (mGsmPhone.mSIMRecords.getRecordsLoaded() &&
                mGsmPhone.mSST.getCurrentGprsState() == ServiceState.STATE_IN_SERVICE &&
@@ -343,6 +343,10 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
        return true;
    }

    private boolean getDataRoaming() {
        return mGsmPhone.mSST.getDataRoaming();
    }

    @Override
    protected boolean isApnTypeActive(String type) {
        // TODO: support simultaneous with List instead
@@ -370,7 +374,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
    }

    private boolean isDataAllowed() {
        boolean roaming = phone.getServiceState().getRoaming();
        boolean roaming = getDataRoaming();
        return getAnyDataEnabled() && (!roaming || getDataOnRoamingEnabled());
    }

@@ -417,7 +421,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
        }

        int gprsState = mGsmPhone.mSST.getCurrentGprsState();
        boolean roaming = phone.getServiceState().getRoaming();
        boolean roaming = getDataRoaming();
        boolean desiredPowerState = mGsmPhone.mSST.getDesiredPowerState();

        if ((state == State.IDLE || state == State.SCANNING)
@@ -1074,17 +1078,39 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
        trySetupData(reason);
    }

    /**
     * Check the data roaming consistency since this can be triggered by
     * voice roaming flag of ServiceState in setDataOnRoamingEnabled()
     *
     * TODO make this triggered by data roaming state only
     */
    @Override
    protected void onRoamingOff() {
        if (!getDataRoaming()) { //data roaming is off
            trySetupData(Phone.REASON_ROAMING_OFF);
        } else { // Inconsistent! data roaming is on
            sendMessage(obtainMessage(EVENT_ROAMING_ON));
        }
    }

    /**
     * Check the data roaming consistency since this can be triggered by
     * voice roaming flag of ServiceState in setDataOnRoamingEnabled()
     *
     * TODO make this triggered by data roaming state only
     */
    @Override
    protected void onRoamingOn() {
        if (getDataRoaming()) { // data roaming is on
            if (getDataOnRoamingEnabled()) {
                trySetupData(Phone.REASON_ROAMING_ON);
            } else {
                if (DBG) log("Tear down data connection on roaming.");
                cleanUpConnection(true, Phone.REASON_ROAMING_ON);
            }
        } else { // Inconsistent! data roaming is off
            sendMessage(obtainMessage(EVENT_ROAMING_OFF));
        }
    }

    protected void onRadioAvailable() {
+20 −2
Original line number Diff line number Diff line
@@ -88,6 +88,9 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
    private int newNetworkType = 0;
    /* gsm roaming status solely based on TS 27.007 7.2 CREG */
    private boolean mGsmRoaming = false;
    /* data roaming status solely based on TS 27.007 10.1.19 CGREG */
    private boolean mDataRoaming = false;
    private boolean newDataRoaming = false;

    private RegistrantList gprsAttachedRegistrants = new RegistrantList();
    private RegistrantList gprsDetachedRegistrants = new RegistrantList();
@@ -311,6 +314,10 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
        psRestrictDisabledRegistrants.remove(h);
    }

    /*protected*/ boolean getDataRoaming() {
        return mDataRoaming;
    }

    //***** Called from GSMPhone
    public void
    getLacAndCid(Message onComplete) {
@@ -668,6 +675,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
                        }
                    }
                    newGPRSState = regCodeToServiceState(regState);
                    newDataRoaming = regCodeIsRoaming(regState);
                    newNetworkType = type;
                break;

@@ -695,6 +703,11 @@ final class GsmServiceStateTracker extends ServiceStateTracker {

        if (pollingContext[0] == 0) {
            newSS.setRoaming(isRoamingBetweenOperators(mGsmRoaming, newSS));
            // when both roaming indicators are true but not roaming between
            // operators, roaming should set to false.
            if (newDataRoaming && mGsmRoaming && !newSS.getRoaming()) {
                newDataRoaming = false;
            }
            pollStateDone();
        }

@@ -724,6 +737,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
                newCellLoc.setStateInvalid();
                setSignalStrengthDefaultValues();
                mGotCountryCode = false;
                newDataRoaming = false;

                pollStateDone();
            break;
@@ -733,6 +747,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
                newCellLoc.setStateInvalid();
                setSignalStrengthDefaultValues();
                mGotCountryCode = false;
                newDataRoaming = false;

                pollStateDone();
            break;
@@ -747,6 +762,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
                newCellLoc.setStateInvalid();
                setSignalStrengthDefaultValues();
                mGotCountryCode = false;
                newDataRoaming = false;
                mDataRoaming = false;

                //NOTE: pollStateDone() is not needed in this case
                break;
@@ -831,9 +848,9 @@ final class GsmServiceStateTracker extends ServiceStateTracker {

        boolean hasChanged = !newSS.equals(ss);

        boolean hasRoamingOn = !ss.getRoaming() && newSS.getRoaming();
        boolean hasRoamingOn = !mDataRoaming && newDataRoaming;

        boolean hasRoamingOff = ss.getRoaming() && !newSS.getRoaming();
        boolean hasRoamingOff = mDataRoaming && !newDataRoaming;

        boolean hasLocationChanged = !newCellLoc.equals(cellLoc);

@@ -850,6 +867,7 @@ final class GsmServiceStateTracker extends ServiceStateTracker {

        gprsState = newGPRSState;
        networkType = newNetworkType;
        mDataRoaming = newDataRoaming;

        newSS.setStateOutOfService(); // clean slate for next time