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

Commit f3b64fae authored by Wink Saville's avatar Wink Saville Committed by The Android Automerger
Browse files

DataConnection should not retry permanent errors.

Update DcFailCause with the "no retry" info from ril.h

Bug: 9040015
Change-Id: Ib94af9996c79800322251a45349b117e1f913269
parent 9c430a4d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1215,7 +1215,7 @@ public final class DataConnection extends StateMachine {
                                        + " delay=" + delay
                                        + " isRetryNeeded=" + mRetryManager.isRetryNeeded());
                            }
                            if (delay >= 0) {
                            if ((delay >= 0) && (result.mFailCause.isPermanentFail() == false)) {
                                mDcRetryAlarmController.startRetryAlarm(EVENT_RETRY_CONNECTION,
                                                            mTag, delay);
                                transitionTo(mRetryingState);
@@ -1259,7 +1259,7 @@ public final class DataConnection extends StateMachine {
                                    + " isRetryNeeded=" + mRetryManager.isRetryNeeded()
                                    + " dc=" + DataConnection.this);
                        }
                        if (mRetryManager.isRetryNeeded()) {
                        if (mRetryManager.isRetryNeeded() && (cause.isPermanentFail() == false)) {
                            mDcRetryAlarmController.startRetryAlarm(EVENT_RETRY_CONNECTION, mTag,
                                                            retryDelay);
                            transitionTo(mRetryingState);
+19 −18
Original line number Diff line number Diff line
@@ -26,37 +26,37 @@ public enum DcFailCause {

    // This series of errors as specified by the standards
    // specified in ril.h
    OPERATOR_BARRED(0x08),
    OPERATOR_BARRED(0x08),                  /* no retry */
    INSUFFICIENT_RESOURCES(0x1A),
    MISSING_UNKNOWN_APN(0x1B),
    UNKNOWN_PDP_ADDRESS_TYPE(0x1C),
    USER_AUTHENTICATION(0x1D),
    ACTIVATION_REJECT_GGSN(0x1E),
    MISSING_UNKNOWN_APN(0x1B),              /* no retry */
    UNKNOWN_PDP_ADDRESS_TYPE(0x1C),         /* no retry */
    USER_AUTHENTICATION(0x1D),              /* no retry */
    ACTIVATION_REJECT_GGSN(0x1E),           /* no retry */
    ACTIVATION_REJECT_UNSPECIFIED(0x1F),
    SERVICE_OPTION_NOT_SUPPORTED(0x20),
    SERVICE_OPTION_NOT_SUBSCRIBED(0x21),
    SERVICE_OPTION_NOT_SUPPORTED(0x20),     /* no retry */
    SERVICE_OPTION_NOT_SUBSCRIBED(0x21),    /* no retry */
    SERVICE_OPTION_OUT_OF_ORDER(0x22),
    NSAPI_IN_USE(0x23),
    ONLY_IPV4_ALLOWED(0x32),
    ONLY_IPV6_ALLOWED(0x33),
    NSAPI_IN_USE(0x23),                     /* no retry */
    ONLY_IPV4_ALLOWED(0x32),                /* no retry */
    ONLY_IPV6_ALLOWED(0x33),                /* no retry */
    ONLY_SINGLE_BEARER_ALLOWED(0x34),
    PROTOCOL_ERRORS(0x6F),
    PROTOCOL_ERRORS(0x6F),                  /* no retry */

    // Local errors generated by Vendor RIL
    // specified in ril.h
    REGISTRATION_FAIL(-1),
    GPRS_REGISTRATION_FAIL(-2),
    SIGNAL_LOST(-3),
    PREF_RADIO_TECH_CHANGED(-4),
    RADIO_POWER_OFF(-5),
    TETHERED_CALL_ACTIVE(-6),
    SIGNAL_LOST(-3),                        /* no retry */
    PREF_RADIO_TECH_CHANGED(-4),            /* no retry */
    RADIO_POWER_OFF(-5),                    /* no retry */
    TETHERED_CALL_ACTIVE(-6),               /* no retry */
    ERROR_UNSPECIFIED(0xFFFF),

    // Errors generated by the Framework
    // specified here
    UNKNOWN(0x10000),
    RADIO_NOT_AVAILABLE(0x10001),
    UNACCEPTABLE_NETWORK_PARAMETER(0x10002),
    RADIO_NOT_AVAILABLE(0x10001),                   /* no retry */
    UNACCEPTABLE_NETWORK_PARAMETER(0x10002),        /* no retry */
    CONNECTION_TO_DATACONNECTIONAC_BROKEN(0x10003),
    LOST_CONNECTION(0x10004),
    RESET_BY_FRAMEWORK(0x10005);
@@ -85,7 +85,8 @@ public enum DcFailCause {
               (this == SERVICE_OPTION_NOT_SUBSCRIBED) || (this == NSAPI_IN_USE) ||
               (this == ONLY_IPV4_ALLOWED) || (this == ONLY_IPV6_ALLOWED) ||
               (this == PROTOCOL_ERRORS) || (this == SIGNAL_LOST) ||
               (this == RADIO_POWER_OFF) || (this == TETHERED_CALL_ACTIVE);
               (this == RADIO_POWER_OFF) || (this == TETHERED_CALL_ACTIVE) ||
               (this == RADIO_NOT_AVAILABLE) || (this == UNACCEPTABLE_NETWORK_PARAMETER);
    }

    public boolean isEventLoggable() {