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

Commit 80797594 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Telephony: Check for network specifier"

parents dd64e58f a9fbf3db
Loading
Loading
Loading
Loading
+10 −18
Original line number Diff line number Diff line
@@ -463,21 +463,6 @@ public final class DcTracker extends DcTrackerBase {
            log("Ready to handle network requests");
        }

        private long getSubIdFromNetworkRequest(NetworkRequest networkRequest) {
            String requestedSpecifierStr = networkRequest.networkCapabilities
                .getNetworkSpecifier();
            long requestedSpecifier = SubscriptionManager.INVALID_SUB_ID;

            try {
                requestedSpecifier = (requestedSpecifierStr != null)? Long.parseLong(
                        requestedSpecifierStr) : SubscriptionManager.INVALID_SUB_ID;
            } catch (NumberFormatException e){
                //nop
            }

            return requestedSpecifier;
        }

        @Override
        protected void needNetworkFor(NetworkRequest networkRequest, int score) {
            // figure out the apn type and enable it
@@ -487,7 +472,7 @@ public final class DcTracker extends DcTrackerBase {

            long currentDds = subController.getDefaultDataSubId();
            long subId = mPhone.getSubId();
            long requestedSpecifier = getSubIdFromNetworkRequest(networkRequest);
            long requestedSpecifier = subController.getSubIdFromNetworkRequest(networkRequest);

            log("CurrentDds = " + currentDds);
            log("mySubId = " + subId);
@@ -499,8 +484,15 @@ public final class DcTracker extends DcTrackerBase {
                return;
            }

            if ((requestedSpecifier != SubscriptionManager.INVALID_SUB_ID)
                    && (currentDds != requestedSpecifier)) {
            // For clients that do not send subId in NetworkCapabilities,
            // Connectivity will send to all network factories. Accept only
            // when requestedSpecifier is same as current factory's subId
            if (requestedSpecifier != subId) {
                log("requestedSpecifier is not same as mysubId. Bail out.");
                return;
            }

            if (currentDds != requestedSpecifier) {
                log("This request would result in DDS switch");
                log("Requested DDS switch to subId = " + requestedSpecifier);