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

Commit 8a294d8e authored by Jack Yu's avatar Jack Yu
Browse files

Optimized transport manager

Optimized transport manager so it always checks
the latest preference update from QNS. If there are
back-and-forth preference switch while the handover is ongoing,
when handover is completed, those updates will be ignored except
the last one.

Fix: 192912296
Test: Manual
Change-Id: I37249021757c729401265b9e53c6bd33acb47155
parent aadf244e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2259,7 +2259,7 @@ public class ServiceStateTracker extends Handler {
                NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);

        // Check if any APN is preferred on IWLAN.
        boolean isIwlanPreferred = mTransportManager.isAnyApnPreferredOnIwlan();
        boolean isIwlanPreferred = mTransportManager.isAnyApnOnIwlan();
        serviceState.setIwlanPreferred(isIwlanPreferred);
        if (wlanPsRegState != null
                && wlanPsRegState.getAccessNetworkTechnology()
+1 −27
Original line number Diff line number Diff line
@@ -41,13 +41,11 @@ import android.telephony.data.IQualifiedNetworksServiceCallback;
import android.telephony.data.QualifiedNetworksService;
import android.telephony.data.ThrottleStatus;
import android.text.TextUtils;
import android.util.IndentingPrintWriter;
import android.util.SparseArray;

import com.android.internal.telephony.Phone;
import com.android.telephony.Rlog;

import java.io.FileDescriptor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
@@ -67,7 +65,7 @@ public class AccessNetworksManager extends Handler {
    private final UUID mAnomalyUUID = UUID.fromString("c2d1a639-00e2-4561-9619-6acf37d90590");
    private String mLastBoundPackageName;

    private static final int[] SUPPORTED_APN_TYPES = {
    static final int[] SUPPORTED_APN_TYPES = {
            ApnSetting.TYPE_DEFAULT,
            ApnSetting.TYPE_MMS,
            ApnSetting.TYPE_FOTA,
@@ -459,30 +457,6 @@ public class AccessNetworksManager extends Handler {
        }
    }

    /**
     * Dump the state of transport manager
     *
     * @param fd File descriptor
     * @param pw Print writer
     * @param args Arguments
     */
    public void dump(FileDescriptor fd, IndentingPrintWriter pw, String[] args) {
        pw.println("AccessNetworksManager:");
        pw.increaseIndent();
        pw.println("Available networks:");
        pw.increaseIndent();

        for (int i = 0; i < mAvailableNetworks.size(); i++) {
            pw.println("APN type "
                    + ApnSetting.getApnTypeString(mAvailableNetworks.keyAt(i))
                    + ": [" + Arrays.stream(mAvailableNetworks.valueAt(i))
                    .mapToObj(AccessNetworkType::toString)
                    .collect(Collectors.joining(",")) + "]");
        }
        pw.decreaseIndent();
        pw.decreaseIndent();
    }

    private void log(String s) {
        Rlog.d(mLogTag, s);
    }
+117 −217

File changed.

Preview size limit exceeded, changes collapsed.

+2 −2
Original line number Diff line number Diff line
@@ -2379,7 +2379,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
    @SmallTest
    @Test
    public void testRilDataTechnologyChangeTransportPreference() {
        when(mTransportManager.isAnyApnPreferredOnIwlan()).thenReturn(false);
        when(mTransportManager.isAnyApnOnIwlan()).thenReturn(false);

        // Start state: Cell data only LTE + IWLAN
        CellIdentityLte cellIdentity =
@@ -2398,7 +2398,7 @@ public class ServiceStateTrackerTest extends TelephonyTest {
                mTestHandler, EVENT_DATA_RAT_CHANGED, null);
        // transport preference change for a PDN for IWLAN occurred, no registration change, but
        // trigger unrelated poll to pick up transport preference.
        when(mTransportManager.isAnyApnPreferredOnIwlan()).thenReturn(true);
        when(mTransportManager.isAnyApnOnIwlan()).thenReturn(true);
        changeRegStateWithIwlan(
                // WWAN
                NetworkRegistrationInfo.REGISTRATION_STATE_HOME, cellIdentity,
+15 −18

File changed.

Preview size limit exceeded, changes collapsed.