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

Commit 5ef6bafb authored by Jack Yu's avatar Jack Yu Committed by Automerger Merge Worker
Browse files

Replaced DcRequest with TelephonyNetworkRequest am: 653552e7 am: f8f2d120

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/2020878

Change-Id: I0de414437412bd8c8c4cf7543bf6486ca59cb390
parents 283115e0 f8f2d120
Loading
Loading
Loading
Loading
+58 −12
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ import com.android.internal.telephony.RadioConfig;
import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.SubscriptionController.WatchedInt;
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.data.DataNetworkController.NetworkRequestList;
import com.android.internal.telephony.data.DataSettingsManager.DataSettingsManagerCallback;
import com.android.internal.telephony.dataconnection.ApnConfigTypeRepository;
import com.android.internal.telephony.dataconnection.DcRequest;
@@ -183,6 +184,7 @@ public class PhoneSwitcher extends Handler {
    }

    protected final List<DcRequest> mPrioritizedDcRequests = new ArrayList<>();
    private final @NonNull NetworkRequestList mNetworkRequestList = new NetworkRequestList();
    protected final RegistrantList mActivePhoneRegistrants;
    protected final SubscriptionController mSubscriptionController;
    protected final Context mContext;
@@ -930,6 +932,15 @@ public class PhoneSwitcher extends Handler {
    }

    private void onRequestNetwork(NetworkRequest networkRequest) {
        if (PhoneFactory.getDefaultPhone().isUsingNewDataStack()) {
            TelephonyNetworkRequest telephonyNetworkRequest = new TelephonyNetworkRequest(
                    networkRequest, PhoneFactory.getDefaultPhone());
            if (!mNetworkRequestList.contains(telephonyNetworkRequest)) {
                mNetworkRequestList.add(telephonyNetworkRequest);
                onEvaluate(REQUESTS_CHANGED, "netRequest");
            }
            return;
        }
        final DcRequest dcRequest =
                DcRequest.create(networkRequest, createApnRepository(networkRequest));
        if (dcRequest != null) {
@@ -944,6 +955,15 @@ public class PhoneSwitcher extends Handler {
    }

    private void onReleaseNetwork(NetworkRequest networkRequest) {
        if (PhoneFactory.getDefaultPhone().isUsingNewDataStack()) {
            TelephonyNetworkRequest telephonyNetworkRequest = new TelephonyNetworkRequest(
                    networkRequest, PhoneFactory.getDefaultPhone());
            if (mNetworkRequestList.remove(telephonyNetworkRequest)) {
                onEvaluate(REQUESTS_CHANGED, "netReleased");
                collectReleaseNetworkMetrics(networkRequest);
            }
            return;
        }
        final DcRequest dcRequest =
                DcRequest.create(networkRequest, createApnRepository(networkRequest));
        if (dcRequest != null) {
@@ -1118,6 +1138,15 @@ public class PhoneSwitcher extends Handler {
                    }

                    if (newActivePhones.size() < mMaxDataAttachModemCount) {
                        if (PhoneFactory.getDefaultPhone().isUsingNewDataStack()) {
                            for (TelephonyNetworkRequest networkRequest : mNetworkRequestList) {
                                int phoneIdForRequest = phoneIdForRequest(networkRequest);
                                if (phoneIdForRequest == INVALID_PHONE_INDEX) continue;
                                if (newActivePhones.contains(phoneIdForRequest)) continue;
                                newActivePhones.add(phoneIdForRequest);
                                if (newActivePhones.size() >= mMaxDataAttachModemCount) break;
                            }
                        } else {
                            for (DcRequest dcRequest : mPrioritizedDcRequests) {
                                int phoneIdForRequest = phoneIdForRequest(dcRequest.networkRequest);
                                if (phoneIdForRequest == INVALID_PHONE_INDEX) continue;
@@ -1126,6 +1155,7 @@ public class PhoneSwitcher extends Handler {
                                if (newActivePhones.size() >= mMaxDataAttachModemCount) break;
                            }
                        }
                    }

                    if (newActivePhones.size() < mMaxDataAttachModemCount
                            && newActivePhones.contains(mPreferredDataPhoneId)
@@ -1252,6 +1282,12 @@ public class PhoneSwitcher extends Handler {
        }
    }

    // Merge phoneIdForRequest(NetworkRequest netRequest) after Phone.isUsingNewDataStack() is
    // cleaned up.
    private int phoneIdForRequest(TelephonyNetworkRequest networkRequest) {
        return phoneIdForRequest(networkRequest.getNativeNetworkRequest());
    }

    private int phoneIdForRequest(NetworkRequest netRequest) {
        int subId = getSubIdFromNetworkSpecifier(netRequest.getNetworkSpecifier());

@@ -1721,6 +1757,15 @@ public class PhoneSwitcher extends Handler {
                mSubscriptionController.getDefaultDataSubId());
        if (ddsPhoneId != INVALID_PHONE_INDEX && ddsPhoneId == phoneId) {
            return true;
        } else {
            if (PhoneFactory.getDefaultPhone().isUsingNewDataStack()) {
                if (mNetworkRequestList.isEmpty()) return false;
                for (TelephonyNetworkRequest networkRequest : mNetworkRequestList) {
                    phoneIdForRequest = phoneIdForRequest(networkRequest);
                    if (phoneIdForRequest == phoneId) {
                        return true;
                    }
                }
            } else {
                if (mPrioritizedDcRequests.size() == 0) {
                    return false;
@@ -1734,6 +1779,7 @@ public class PhoneSwitcher extends Handler {
                    }
                }
            }
        }
        return false;
    }
}