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

Commit 9ddcdd98 authored by Wink Saville's avatar Wink Saville Committed by Android Git Automerger
Browse files

am 0ba62525: am 2b534e77: Merge "Fix broken data retry" into honeycomb-LTE

* commit '0ba62525':
  Fix broken data retry
parents 7d372b49 0ba62525
Loading
Loading
Loading
Loading
+36 −29
Original line number Original line Diff line number Diff line
@@ -927,6 +927,11 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
            return false;
            return false;
        }
        }


        // First, check to see if ApnContext already has DC.
        // This could happen if the retries are currently  engaged.
        dc = (GsmDataConnection)apnContext.getDataConnection();

        if (dc == null) {
            dc = findReadyDataConnection(apn);
            dc = findReadyDataConnection(apn);


            if (dc == null) {
            if (dc == null) {
@@ -958,6 +963,7 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
            apnContext.setDataConnectionAc(mDataConnectionAsyncChannels.get(dc.getDataConnectionId()));
            apnContext.setDataConnectionAc(mDataConnectionAsyncChannels.get(dc.getDataConnectionId()));
            apnContext.setApnSetting(apn);
            apnContext.setApnSetting(apn);
            apnContext.setDataConnection(dc);
            apnContext.setDataConnection(dc);
        }


        Message msg = obtainMessage();
        Message msg = obtainMessage();
        msg.what = EVENT_DATA_SETUP_COMPLETE;
        msg.what = EVENT_DATA_SETUP_COMPLETE;
@@ -1655,6 +1661,12 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
                    }
                    }
                    apnContext.setState(State.FAILED);
                    apnContext.setState(State.FAILED);
                    mPhone.notifyDataConnection(Phone.REASON_APN_FAILED, apnContext.getApnType());
                    mPhone.notifyDataConnection(Phone.REASON_APN_FAILED, apnContext.getApnType());

                    int refCount = releaseApnContext(apnContext, false);
                    if (DBG) {
                        log("onDataSetupComplete: permanent error apn=%s" + apnString +
                                                                            " refCount=" + refCount);
                    }
                } else {
                } else {
                    if (DBG) log("onDataSetupComplete: Not all permanent failures, retry");
                    if (DBG) log("onDataSetupComplete: Not all permanent failures, retry");
                    startDelayedRetry(cause, apnContext);
                    startDelayedRetry(cause, apnContext);
@@ -1667,11 +1679,6 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
                sendMessageDelayed(obtainMessage(EVENT_TRY_SETUP_DATA, apnContext),
                sendMessageDelayed(obtainMessage(EVENT_TRY_SETUP_DATA, apnContext),
                        APN_DELAY_MILLIS);
                        APN_DELAY_MILLIS);
            }
            }

            int refCount = releaseApnContext(apnContext, false);
            if (DBG) {
                log("onDataSetupComplete: error apn=%s" + apnString + " refCount=" + refCount);
            }
        }
        }
    }
    }