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

Commit 96a98d61 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 402 into donut

* changes:
  remove seemingly now unnecessary workaround path
parents dcac00d4 3de6da1f
Loading
Loading
Loading
Loading
+27 −48
Original line number Diff line number Diff line
@@ -836,16 +836,16 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
            return;
        }


        // This is how things are supposed to work:
        // The PDP list is supposed to be empty of the CID
        // when it disconnects

        if (state == State.CONNECTED
                && !pdpStatesHasCID(pdpStates, cidActive)) {

            // It looks like the PDP context has deactivated
            // Tear everything down and try to reconnect
        if (state == State.CONNECTED) {
            // The way things are supposed to work, the PDP list
            // should not contain the CID after it disconnects.
            // However, the way things really work, sometimes the PDP
            // context is still listed with active = false, which
            // makes it hard to distinguish an activating context from
            // an activated-and-then deactivated one.
            if (!pdpStatesHasCID(pdpStates, cidActive)) {
                // It looks like the PDP context has deactivated.
                // Tear everything down and try to reconnect.

                Log.i(LOG_TAG, "PDP connection has dropped. Reconnecting");

@@ -853,35 +853,16 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
                int cid = -1;
                GsmCellLocation loc = ((GsmCellLocation)phone.getCellLocation());
                if (loc != null) cid = loc.getCid();

                EventLog.List val = new EventLog.List(cid,
                        TelephonyManager.getDefault().getNetworkType());

                EventLog.writeEvent(TelephonyEventLog.EVENT_LOG_PDP_NETWORK_DROP, val);

                cleanUpConnection(true, null);

                return;
        }

        if (true) {
            //
            // Workaround for issue #655426
            //

            // --------------------------

            // This is how some things work now: the PDP context is still
            // listed with active = false, which makes it hard to
            // distinguish an activating context from an activated-and-then
            // deactivated one.
            //
            } else if (!pdpStatesHasActiveCID(pdpStates, cidActive)) {
                // Here, we only consider this authoritative if we asked for the
                // PDP list. If it was an unsolicited response, we poll again
            // to make sure everyone agrees on the initial state

            if (state == State.CONNECTED
                    && !pdpStatesHasActiveCID(pdpStates, cidActive)) {
                // to make sure everyone agrees on the initial state.

                if (!explicitPoll) {
                    // We think it disconnected but aren't sure...poll from our side
@@ -895,10 +876,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
                    int cid = -1;
                    GsmCellLocation loc = ((GsmCellLocation)phone.getCellLocation());
                    if (loc != null) cid = loc.getCid();

                    EventLog.List val = new EventLog.List(cid,
                            TelephonyManager.getDefault().getNetworkType());

                    EventLog.writeEvent(TelephonyEventLog.EVENT_LOG_PDP_NETWORK_DROP, val);

                    cleanUpConnection(true, null);