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

Commit d6c5d527 authored by Wink Saville's avatar Wink Saville Committed by The Android Open Source Project
Browse files

AI 144705: Teleca patch from 03/27/2009, fixes some CDMA issues.

Automated import of CL 144705
parent 60a51818
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -167,6 +167,11 @@
    <!-- Displayed when the call forwarding query was set but forwarding is not enabled. -->
    <string name="cfTemplateRegisteredTime"><xliff:g id="bearer_service_code">{0}</xliff:g>: Not forwarded</string>

    <!-- android.net.http Error strings --> <skip />
    <!-- Displayed when a feature code (non-phone number) is dialed and completes successfully. -->
    <string name="fcComplete">Feature code complete.</string>
    <!-- Displayed when a feature code (non-phone number) is dialed and completes unsuccessfully. -->
    <string name="fcError">Connection problem or invalid feature code.</string>
    <!-- android.net.http Error strings --> <skip />
    <!-- Displayed when a web request was successful. -->
    <string name="httpErrorOk">OK</string>
+16 −26
Original line number Diff line number Diff line
@@ -68,7 +68,6 @@ public class CDMAPhone extends PhoneBase {
    RuimRecords mRuimRecords;
    RuimCard mRuimCard;
    MyHandler h;
    ArrayList <FeatureCode> mPendingMMIs = new ArrayList<FeatureCode>();
    RuimPhoneBookInterfaceManager mRuimPhoneBookInterfaceManager;
    RuimSmsInterfaceManager mRuimSmsInterfaceManager;
    PhoneSubInfo mSubInfo;
@@ -245,41 +244,31 @@ public class CDMAPhone extends PhoneBase {
        // Need to make sure dialString gets parsed properly
        String newDialString = PhoneNumberUtils.stripSeparators(dialString);

        FeatureCode fc = FeatureCode.newFromDialString(newDialString, this);
        if (LOCAL_DEBUG) Log.d(LOG_TAG,
                "dialing w/ fc '" + fc + "'...");
        // check for feature code
        if (fc == null) {
            // check if call in progress
        if (!mCT.foregroundCall.isIdle()) {
            FeatureCode fc = FeatureCode.newFromDialString(newDialString, this);
            if (fc != null) {
                //mMmiRegistrants.notifyRegistrants(new AsyncResult(null, fc, null));
                fc.processCode();
            } else {
                FeatureCode digits = new FeatureCode(this);
                // use dial number as poundString
                digits.poundString = newDialString;
                mPendingMMIs.add(fc);
                mMmiRegistrants.notifyRegistrants(new AsyncResult(null, fc, null));
                digits.processCode();
            }
            return null;
        } else {
            return mCT.dial(newDialString);
        }
        } else {
            mPendingMMIs.add(fc);
            mMmiRegistrants.notifyRegistrants(new AsyncResult(null, fc, null));
            fc.processCode();

            // FIXME should this return null or something else?
            return null;
        }
    }


    public int getSignalStrengthASU() {
        return mSST.rssi == 99 ? -1 : mSST.rssi;
    }

    public boolean
    getMessageWaitingIndicator() {
        Log.e(LOG_TAG, "method getMessageWaitingIndicator is NOT supported in CDMA!");
        return false;
        return mRuimRecords.getVoiceMessageWaiting();
    }

    public List<? extends MmiCode>
@@ -709,22 +698,23 @@ public class CDMAPhone extends PhoneBase {
        mRuimRecords.setVoiceMessageWaiting(1, mwi ? -1 : 0);
    }

    public void
    notifyMessageWaitingIndicator() {
        mNotifier.notifyMessageWaitingChanged(this);
    }

    /**
     * Removes the given FC from the pending list and notifies
     * registrants that it is complete.
     * @param fc FC that is done
     */
    /*package*/ void onMMIDone(FeatureCode fc) {
    /*package*/ void onFeatureCodeDone(FeatureCode fc) {
        /* Only notify complete if it's on the pending list.
         * Otherwise, it's already been handled (eg, previously canceled).
         * The exception is cancellation of an incoming USSD-REQUEST, which is
         * not on the list.
         */
        if (mPendingMMIs.remove(fc)) {
            mMmiCompleteRegistrants.notifyRegistrants(
                    new AsyncResult(null, fc, null));
        }
         mMmiCompleteRegistrants.notifyRegistrants(new AsyncResult(null, fc, null));
    }

    //***** Inner Classes
+2 −1
Original line number Diff line number Diff line
@@ -304,7 +304,8 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker {
            return trySetupData(Phone.REASON_DATA_ENABLED);
        } else if (!enable) {
            setEnabled(EXTERNAL_NETWORK_DEFAULT_ID, false);
            return false;
            cleanUpConnection(true, Phone.REASON_DATA_DISABLED);
            return true;
        } else // isEnabled && enable

        return true;
+4 −4
Original line number Diff line number Diff line
@@ -257,12 +257,12 @@ public final class FeatureCode extends Handler implements MmiCode {

            if (ar.exception != null) {
                state = State.FAILED;
                message = context.getText(com.android.internal.R.string.mmiError);
                message = context.getText(com.android.internal.R.string.fcError);
            } else {
                state = State.COMPLETE;
                message = context.getText(com.android.internal.R.string.mmiComplete);
                message = context.getText(com.android.internal.R.string.fcComplete);
            }
            phone.onMMIDone(this);
            phone.onFeatureCodeDone(this);
            break;
        }
    }
@@ -307,6 +307,6 @@ public final class FeatureCode extends Handler implements MmiCode {
        }

        message = sb;
        phone.onMMIDone(this);
        phone.onFeatureCodeDone(this);
    }
}
+17 −2
Original line number Diff line number Diff line
@@ -334,7 +334,22 @@ public final class RuimRecords extends IccRecords {

    @Override
    public void setVoiceMessageWaiting(int line, int countWaiting) {
        Log.i(LOG_TAG, "RuimRecords: setVoiceMessageWaiting not supported.");
        if (line != 1) {
            // only profile 1 is supported
            return;
        }

        // range check
        if (countWaiting < 0) {
            countWaiting = -1;
        } else if (countWaiting > 0xff) {
            // C.S0015-B v2, 4.5.12
            // range: 0-99
            countWaiting = 0xff;
        }
        countVoiceMessages = countWaiting;

        ((CDMAPhone) phone).notifyMessageWaitingIndicator();
    }

    private void handleRuimRefresh(int[] result) {