Removed TelephonyNetworkFactory

TelephonyNetworkFactory has been replaced by TelephonyNetworkProvider
since 25Q1. Removed the dead code and clean up the corresponding flag.

Test: atedst FrameworksTelephonyTests
Flag: EXEMPT removing flag
Bug: 343370895
Change-Id: I6d55b1ca5db91eb036f8b6b436cfc79762c45893
diff --git a/flags/data.aconfig b/flags/data.aconfig
index 4a90c10..90fce4a 100644
--- a/flags/data.aconfig
+++ b/flags/data.aconfig
@@ -110,17 +110,6 @@
   bug:"353723350"
 }
 
-# OWNER=jackyu TARGET=25Q1
-flag {
-  name: "support_network_provider"
-  namespace: "telephony"
-  description: "Deprecate network factory and adapt the new network provider model from connectivity service"
-  bug: "343370895"
-  metadata {
-    purpose: PURPOSE_BUGFIX
-  }
-}
-
 # OWNER=jackyu TARGET=25Q2
 flag {
   name: "oem_paid_private"
diff --git a/src/java/com/android/internal/telephony/PhoneFactory.java b/src/java/com/android/internal/telephony/PhoneFactory.java
index c077ca9..136ac25 100644
--- a/src/java/com/android/internal/telephony/PhoneFactory.java
+++ b/src/java/com/android/internal/telephony/PhoneFactory.java
@@ -45,7 +45,6 @@
 import com.android.internal.telephony.cdma.CdmaSubscriptionSourceManager;
 import com.android.internal.telephony.data.CellularNetworkValidator;
 import com.android.internal.telephony.data.PhoneSwitcher;
-import com.android.internal.telephony.data.TelephonyNetworkFactory;
 import com.android.internal.telephony.data.TelephonyNetworkProvider;
 import com.android.internal.telephony.euicc.EuiccCardController;
 import com.android.internal.telephony.euicc.EuiccController;
@@ -78,7 +77,7 @@
 
     //***** Class Variables
 
-    // lock sLockProxyPhones protects sPhones, sPhone and sTelephonyNetworkFactories
+    // lock sLockProxyPhones protects sPhones, sPhone
     final static Object sLockProxyPhones = new Object();
     static private Phone[] sPhones = null;
     static private Phone sPhone = null;
@@ -101,7 +100,6 @@
     static private PhoneConfigurationManager sPhoneConfigurationManager;
     static private SimultaneousCallingTracker sSimultaneousCallingTracker;
     static private PhoneSwitcher sPhoneSwitcher;
-    static private TelephonyNetworkFactory[] sTelephonyNetworkFactories;
     private static TelephonyNetworkProvider sTelephonyNetworkProvider;
     static private NotificationChannelController sNotificationChannelController;
     static private CellularNetworkValidator sCellularNetworkValidator;
@@ -179,7 +177,6 @@
                 int[] networkModes = new int[numPhones];
                 sPhones = new Phone[numPhones];
                 sCommandsInterfaces = new RIL[numPhones];
-                sTelephonyNetworkFactories = new TelephonyNetworkFactory[numPhones];
 
                 for (int i = 0; i < numPhones; i++) {
                     // reads the system properties and makes commandsinterface
@@ -287,16 +284,9 @@
 
                 sNotificationChannelController = new NotificationChannelController(context);
 
-                if (featureFlags.supportNetworkProvider()) {
-                    // Create the TelephonyNetworkProvider instance, which is a singleton.
-                    sTelephonyNetworkProvider = new TelephonyNetworkProvider(Looper.myLooper(),
-                            context, featureFlags);
-                } else {
-                    for (int i = 0; i < numPhones; i++) {
-                        sTelephonyNetworkFactories[i] = new TelephonyNetworkFactory(
-                                Looper.myLooper(), sPhones[i], featureFlags);
-                    }
-                }
+                // Create the TelephonyNetworkProvider instance, which is a singleton.
+                sTelephonyNetworkProvider = new TelephonyNetworkProvider(Looper.myLooper(),
+                        context, featureFlags);
             }
         }
     }
@@ -313,7 +303,6 @@
             int prevActiveModemCount = sPhones.length;
             if (prevActiveModemCount == activeModemCount) return;
 
-            // TODO: clean up sPhones, sCommandsInterfaces and sTelephonyNetworkFactories objects.
             // Currently we will not clean up the 2nd Phone object, so that it can be re-used if
             // user switches back.
             if (prevActiveModemCount > activeModemCount) return;
@@ -321,10 +310,6 @@
             sPhones = copyOf(sPhones, activeModemCount);
             sCommandsInterfaces = copyOf(sCommandsInterfaces, activeModemCount);
 
-            if (!sFeatureFlags.supportNetworkProvider()) {
-                sTelephonyNetworkFactories = copyOf(sTelephonyNetworkFactories, activeModemCount);
-            }
-
             int cdmaSubscription = CdmaSubscriptionSourceManager.getDefault(context);
             for (int i = prevActiveModemCount; i < activeModemCount; i++) {
                 sCommandsInterfaces[i] = new RIL(context, RadioAccessFamily.getRafFromNetworkType(
@@ -335,11 +320,6 @@
                         PackageManager.FEATURE_TELEPHONY_IMS)) {
                     sPhones[i].createImsPhone();
                 }
-
-                if (!sFeatureFlags.supportNetworkProvider()) {
-                    sTelephonyNetworkFactories[i] = new TelephonyNetworkFactory(
-                            Looper.myLooper(), sPhones[i], sFeatureFlags);
-                }
             }
         }
     }
@@ -412,36 +392,6 @@
     }
 
     /**
-     * Get the network factory associated with a given phone ID.
-     * @param phoneId the phone id
-     * @return a factory for this phone ID, or null if none.
-     */
-    public static TelephonyNetworkFactory getNetworkFactory(int phoneId) {
-        synchronized (sLockProxyPhones) {
-            if (!sMadeDefaults) {
-                throw new IllegalStateException("Default phones haven't been made yet!");
-            }
-            final String dbgInfo;
-            if (phoneId == SubscriptionManager.DEFAULT_PHONE_INDEX) {
-                dbgInfo = "getNetworkFactory with DEFAULT_PHONE_ID => factory for sPhone";
-                phoneId = sPhone.getSubId();
-            } else {
-                dbgInfo = "getNetworkFactory with non-default, return factory for passed id";
-            }
-            // sTelephonyNetworkFactories is null in tests because in tests makeDefaultPhones()
-            // is not called.
-            final TelephonyNetworkFactory factory = (sTelephonyNetworkFactories != null
-                            && (phoneId >= 0 && phoneId < sTelephonyNetworkFactories.length))
-                            ? sTelephonyNetworkFactories[phoneId] : null;
-            if (DBG) {
-                Rlog.d(LOG_TAG, "getNetworkFactory:-" + dbgInfo + " phoneId=" + phoneId
-                        + " factory=" + factory);
-            }
-            return factory;
-        }
-    }
-
-    /**
      * Returns the preferred network type bitmask that should be set in the modem.
      *
      * @param phoneId The phone's id.
@@ -596,20 +546,10 @@
 
             pw.flush();
             pw.println("++++++++++++++++++++++++++++++++");
-
-            if (!sFeatureFlags.supportNetworkProvider()) {
-                sTelephonyNetworkFactories[i].dump(fd, pw, args);
-            }
-
-            pw.flush();
-            pw.decreaseIndent();
-            pw.println("++++++++++++++++++++++++++++++++");
         }
 
         pw.increaseIndent();
-        if (sFeatureFlags.supportNetworkProvider()) {
-            sTelephonyNetworkProvider.dump(fd, pw, args);
-        }
+        sTelephonyNetworkProvider.dump(fd, pw, args);
         pw.decreaseIndent();
         pw.println("++++++++++++++++++++++++++++++++");
 
diff --git a/src/java/com/android/internal/telephony/data/DataNetwork.java b/src/java/com/android/internal/telephony/data/DataNetwork.java
index 738c60f..21a8f12 100644
--- a/src/java/com/android/internal/telephony/data/DataNetwork.java
+++ b/src/java/com/android/internal/telephony/data/DataNetwork.java
@@ -29,7 +29,6 @@
 import android.net.NetworkAgent;
 import android.net.NetworkAgentConfig;
 import android.net.NetworkCapabilities;
-import android.net.NetworkFactory;
 import android.net.NetworkProvider;
 import android.net.NetworkRequest;
 import android.net.NetworkScore;
@@ -1180,21 +1179,13 @@
         }
 
         NetworkProvider provider;
-        if (mFlags.supportNetworkProvider()) {
-            provider = PhoneFactory.getNetworkProvider();
-        } else {
-            final NetworkFactory factory = PhoneFactory.getNetworkFactory(
-                    mPhone.getPhoneId());
-            provider = (null == factory) ? null : factory.getProvider();
-        }
+        provider = PhoneFactory.getNetworkProvider();
 
         NetworkScore.Builder builder = new NetworkScore.Builder()
                 .setKeepConnectedReason(isHandoverInProgress()
                         ? NetworkScore.KEEP_CONNECTED_FOR_HANDOVER
                         : NetworkScore.KEEP_CONNECTED_NONE);
-        if (mFlags.supportNetworkProvider()) {
-            builder.setTransportPrimary(mOnPreferredDataPhone);
-        }
+        builder.setTransportPrimary(mOnPreferredDataPhone);
         mNetworkScore = builder.build();
         logl("mNetworkScore: isPrimary=" + mNetworkScore.isTransportPrimary()
                 + ", keepConnectedReason=" + mNetworkScore.getKeepConnectedReason());
@@ -1259,15 +1250,13 @@
             mDataNetworkController.getDataSettingsManager()
                     .registerCallback(mDataSettingsManagerCallback);
 
-            if (mFlags.supportNetworkProvider()) {
-                mPhoneSwitcherCallback = new PhoneSwitcherCallback(Runnable::run) {
-                    @Override
-                    public void onPreferredDataPhoneIdChanged(int phoneId) {
-                        sendMessage(EVENT_PREFERRED_DATA_SUBSCRIPTION_CHANGED, phoneId, 0);
-                    }
-                };
-                mPhoneSwitcher.registerCallback(mPhoneSwitcherCallback);
-            }
+            mPhoneSwitcherCallback = new PhoneSwitcherCallback(Runnable::run) {
+                @Override
+                public void onPreferredDataPhoneIdChanged(int phoneId) {
+                    sendMessage(EVENT_PREFERRED_DATA_SUBSCRIPTION_CHANGED, phoneId, 0);
+                }
+            };
+            mPhoneSwitcher.registerCallback(mPhoneSwitcherCallback);
 
             mPhone.getDisplayInfoController().registerForTelephonyDisplayInfoChanged(
                     getHandler(), EVENT_DISPLAY_INFO_CHANGED, null);
@@ -1360,9 +1349,7 @@
             mPhone.getServiceStateTracker().unregisterForServiceStateChanged(getHandler());
             mPhone.getDisplayInfoController().unregisterForTelephonyDisplayInfoChanged(
                     getHandler());
-            if (mFlags.supportNetworkProvider()) {
-                mPhoneSwitcher.unregisterCallback(mPhoneSwitcherCallback);
-            }
+            mPhoneSwitcher.unregisterCallback(mPhoneSwitcherCallback);
             mDataNetworkController.getDataSettingsManager()
                     .unregisterCallback(mDataSettingsManagerCallback);
             mRil.unregisterForPcoData(getHandler());
@@ -3373,13 +3360,10 @@
         int connectedReason = keepConnectedForHandover
                 ? NetworkScore.KEEP_CONNECTED_FOR_HANDOVER : NetworkScore.KEEP_CONNECTED_NONE;
         if (mNetworkScore.getKeepConnectedReason() != connectedReason
-                || (mFlags.supportNetworkProvider()
-                && mNetworkScore.isTransportPrimary() != mOnPreferredDataPhone)) {
+                || mNetworkScore.isTransportPrimary() != mOnPreferredDataPhone) {
             NetworkScore.Builder builder = new NetworkScore.Builder()
                     .setKeepConnectedReason(connectedReason);
-            if (mFlags.supportNetworkProvider()) {
-                builder.setTransportPrimary(mOnPreferredDataPhone);
-            }
+            builder.setTransportPrimary(mOnPreferredDataPhone);
             mNetworkScore = builder.build();
             mNetworkAgent.sendNetworkScore(mNetworkScore);
             logl("updateNetworkScore: isPrimary=" + mNetworkScore.isTransportPrimary()
diff --git a/src/java/com/android/internal/telephony/data/DataNetworkController.java b/src/java/com/android/internal/telephony/data/DataNetworkController.java
index 9899405..27514bf 100644
--- a/src/java/com/android/internal/telephony/data/DataNetworkController.java
+++ b/src/java/com/android/internal/telephony/data/DataNetworkController.java
@@ -2530,53 +2530,27 @@
     }
 
     private void onRemoveNetworkRequest(@NonNull TelephonyNetworkRequest request) {
-        if (mFeatureFlags.supportNetworkProvider()) {
-            if (!mAllNetworkRequestList.remove(request)) {
-                loge("onRemoveNetworkRequest: Network request does not exist. " + request);
-                return;
-            }
-
-            if (request.hasCapability(NetworkCapabilities.NET_CAPABILITY_IMS)) {
-                mImsThrottleCounter.addOccurrence();
-                mLastReleasedImsRequestCapabilities = request.getCapabilities();
-                mLastImsOperationIsRelease = true;
-            }
-
-            if (request.getAttachedNetwork() != null) {
-                request.getAttachedNetwork().detachNetworkRequest(
-                        request, false /* shouldRetry */);
-            }
-
-            request.setState(TelephonyNetworkRequest.REQUEST_STATE_UNSATISFIED);
-            request.setEvaluation(null);
-
-            log("onRemoveNetworkRequest: Removed " + request);
+        if (!mAllNetworkRequestList.remove(request)) {
+            loge("onRemoveNetworkRequest: Network request does not exist. " + request);
             return;
         }
 
-        // The request generated from telephony network factory does not contain the information
-        // the original request has, for example, attached data network. We need to find the
-        // original one.
-        TelephonyNetworkRequest networkRequest = mAllNetworkRequestList.stream()
-                .filter(r -> r.equals(request))
-                .findFirst()
-                .orElse(null);
-        if (networkRequest == null || !mAllNetworkRequestList.remove(networkRequest)) {
-            loge("onRemoveNetworkRequest: Network request does not exist. " + networkRequest);
-            return;
-        }
-
-        if (networkRequest.hasCapability(NetworkCapabilities.NET_CAPABILITY_IMS)) {
+        if (request.hasCapability(NetworkCapabilities.NET_CAPABILITY_IMS)) {
             mImsThrottleCounter.addOccurrence();
-            mLastReleasedImsRequestCapabilities = networkRequest.getCapabilities();
+            mLastReleasedImsRequestCapabilities = request.getCapabilities();
             mLastImsOperationIsRelease = true;
         }
 
-        if (networkRequest.getAttachedNetwork() != null) {
-            networkRequest.getAttachedNetwork().detachNetworkRequest(
-                    networkRequest, false /* shouldRetry */);
+        if (request.getAttachedNetwork() != null) {
+            request.getAttachedNetwork().detachNetworkRequest(
+                    request, false /* shouldRetry */);
         }
-        log("onRemoveNetworkRequest: Removed " + networkRequest);
+
+        request.setState(TelephonyNetworkRequest.REQUEST_STATE_UNSATISFIED);
+        request.setEvaluation(null);
+
+        log("onRemoveNetworkRequest: Removed " + request);
+        return;
     }
 
     /**
diff --git a/src/java/com/android/internal/telephony/data/PhoneSwitcher.java b/src/java/com/android/internal/telephony/data/PhoneSwitcher.java
index 079e705..3d42d35 100644
--- a/src/java/com/android/internal/telephony/data/PhoneSwitcher.java
+++ b/src/java/com/android/internal/telephony/data/PhoneSwitcher.java
@@ -38,10 +38,8 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.net.ConnectivityManager;
-import android.net.MatchAllNetworkSpecifier;
 import android.net.Network;
 import android.net.NetworkCapabilities;
-import android.net.NetworkFactory;
 import android.net.NetworkRequest;
 import android.net.NetworkSpecifier;
 import android.net.TelephonyNetworkSpecifier;
@@ -50,7 +48,6 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.PersistableBundle;
-import android.os.Registrant;
 import android.os.RegistrantList;
 import android.os.RemoteException;
 import android.telephony.CarrierConfigManager;
@@ -88,7 +85,6 @@
 import com.android.internal.telephony.metrics.TelephonyMetrics;
 import com.android.internal.telephony.nano.TelephonyProto.TelephonyEvent;
 import com.android.internal.telephony.nano.TelephonyProto.TelephonyEvent.DataSwitch;
-import com.android.internal.telephony.nano.TelephonyProto.TelephonyEvent.OnDemandDataSwitch;
 import com.android.internal.telephony.subscription.SubscriptionInfoInternal;
 import com.android.internal.telephony.subscription.SubscriptionManagerService;
 import com.android.internal.telephony.subscription.SubscriptionManagerService.SubscriptionManagerServiceCallback;
@@ -267,7 +263,7 @@
     @VisibleForTesting
     // It decides:
     // 1. In modem layer, which modem is DDS (preferred to have data traffic on)
-    // 2. In TelephonyNetworkFactory, which subscription will apply default network requests, which
+    // 2. In TelephonyNetworkProvider, which subscription will apply default network requests, which
     //    are requests without specifying a subId.
     // Corresponding phoneId after considering mOpptDataSubId, mPrimaryDataSubId and
     // mPhoneIdInVoiceCall above.
@@ -290,8 +286,6 @@
 
     private static final int EVENT_PRIMARY_DATA_SUB_CHANGED       = 101;
     protected static final int EVENT_SUBSCRIPTION_CHANGED         = 102;
-    private static final int EVENT_REQUEST_NETWORK                = 103;
-    private static final int EVENT_RELEASE_NETWORK                = 104;
     // ECBM has started/ended. If we just ended an emergency call and mEmergencyOverride is not
     // null, we will wait for EVENT_EMERGENCY_TOGGLE again with ECBM ending to send the message
     // EVENT_REMOVE_DDS_EMERGENCY_OVERRIDE to remove the override after the mEmergencyOverride
@@ -651,37 +645,6 @@
                 this, EVENT_MULTI_SIM_CONFIG_CHANGED, null);
 
         mConnectivityManager.registerDefaultNetworkCallback(mDefaultNetworkCallback, this);
-
-        if (!mFlags.supportNetworkProvider()) {
-            final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder()
-                    .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
-                    .addCapability(NetworkCapabilities.NET_CAPABILITY_IA)
-                    .addCapability(NetworkCapabilities.NET_CAPABILITY_MMTEL)
-                    .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
-                    .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_1)
-                    .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_2)
-                    .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_3)
-                    .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_4)
-                    .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_5)
-                    .setNetworkSpecifier(new MatchAllNetworkSpecifier());
-            TelephonyNetworkRequest.getAllSupportedNetworkCapabilities()
-                    .forEach(builder::addCapability);
-
-            if (mFlags.satelliteInternet()) {
-                // TODO: b/328622096 remove the try/catch
-                try {
-                    builder.addTransportType(NetworkCapabilities.TRANSPORT_SATELLITE);
-                } catch (IllegalArgumentException exception) {
-                    loge("TRANSPORT_SATELLITE is not supported.");
-                }
-            }
-
-            NetworkFactory networkFactory = new PhoneSwitcherNetworkRequestListener(looper, context,
-                    builder.build(), this);
-            // we want to see all requests
-            networkFactory.registerIgnoringScore();
-        }
-
         updateHalCommandToUse();
 
         logl("PhoneSwitcher started");
@@ -750,14 +713,6 @@
                         DataSwitch.Reason.DATA_SWITCH_REASON_MANUAL);
                 break;
             }
-            case EVENT_REQUEST_NETWORK: {
-                onRequestNetwork((NetworkRequest)msg.obj);
-                break;
-            }
-            case EVENT_RELEASE_NETWORK: {
-                onReleaseNetwork((NetworkRequest)msg.obj);
-                break;
-            }
             case EVENT_EMERGENCY_TOGGLE: {
                 boolean isInEcm = isInEmergencyCallbackMode();
                 if (mEmergencyOverride != null) {
@@ -1100,43 +1055,15 @@
         return false;
     }
 
-    // TODO: Remove after removing TelephonyNetworkFactory
-    private static class PhoneSwitcherNetworkRequestListener extends NetworkFactory {
-        private final PhoneSwitcher mPhoneSwitcher;
-        public PhoneSwitcherNetworkRequestListener (Looper l, Context c,
-                NetworkCapabilities nc, PhoneSwitcher ps) {
-            super(l, c, "PhoneSwitcherNetworkRequestListener", nc);
-            mPhoneSwitcher = ps;
-        }
-
-        @Override
-        protected void needNetworkFor(@NonNull NetworkRequest networkRequest) {
-            if (VDBG) log("needNetworkFor " + networkRequest);
-            Message msg = mPhoneSwitcher.obtainMessage(EVENT_REQUEST_NETWORK);
-            msg.obj = networkRequest;
-            msg.sendToTarget();
-        }
-
-        @Override
-        protected void releaseNetworkFor(@NonNull NetworkRequest networkRequest) {
-            if (VDBG) log("releaseNetworkFor " + networkRequest);
-            Message msg = mPhoneSwitcher.obtainMessage(EVENT_RELEASE_NETWORK);
-            msg.obj = networkRequest;
-            msg.sendToTarget();
-        }
-    }
-
     /**
      * Called when receiving a network request.
      *
      * @param networkRequest The network request.
      */
     // TODO: Transform to TelephonyNetworkRequest after removing TelephonyNetworkFactory
-    public void onRequestNetwork(@NonNull NetworkRequest networkRequest) {
-        TelephonyNetworkRequest telephonyNetworkRequest = new TelephonyNetworkRequest(
-                networkRequest, PhoneFactory.getDefaultPhone(), mFlags);
-        if (!mNetworkRequestList.contains(telephonyNetworkRequest)) {
-            mNetworkRequestList.add(telephonyNetworkRequest);
+    public void onRequestNetwork(@NonNull TelephonyNetworkRequest networkRequest) {
+        if (!mNetworkRequestList.contains(networkRequest)) {
+            mNetworkRequestList.add(networkRequest);
             onEvaluate(REQUESTS_CHANGED, "netRequest");
         }
     }
@@ -1146,13 +1073,9 @@
      *
      * @param networkRequest The network request to release.
      */
-    // TODO: Transform to TelephonyNetworkRequest after removing TelephonyNetworkFactory
-    public void onReleaseNetwork(@NonNull NetworkRequest networkRequest) {
-        TelephonyNetworkRequest telephonyNetworkRequest = new TelephonyNetworkRequest(
-                networkRequest, PhoneFactory.getDefaultPhone(), mFlags);
-        if (mNetworkRequestList.remove(telephonyNetworkRequest)) {
+    public void onReleaseNetwork(@NonNull TelephonyNetworkRequest networkRequest) {
+        if (mNetworkRequestList.remove(networkRequest)) {
             onEvaluate(REQUESTS_CHANGED, "netReleased");
-            collectReleaseNetworkMetrics(networkRequest);
         }
     }
 
@@ -1161,18 +1084,6 @@
         mDefaultNetworkCallback.mSwitchReason = reason;
     }
 
-    private void collectReleaseNetworkMetrics(NetworkRequest networkRequest) {
-        // Release network for MMS will recover the network on default data subscription, this only
-        // happen on multi-sim device.
-        if (mActiveModemCount > 1 && networkRequest.hasCapability(
-                NetworkCapabilities.NET_CAPABILITY_MMS)) {
-            OnDemandDataSwitch onDemandDataSwitch = new OnDemandDataSwitch();
-            onDemandDataSwitch.apn = TelephonyEvent.ApnType.APN_TYPE_MMS;
-            onDemandDataSwitch.state = TelephonyEvent.EventState.EVENT_STATE_END;
-            TelephonyMetrics.getInstance().writeOnDemandDataSwitch(onDemandDataSwitch);
-        }
-    }
-
     /**
      * Cancel any auto switch attempts when the current environment is not suitable for auto switch.
      */
@@ -1610,17 +1521,6 @@
     }
 
     /**
-     * If preferred phone changes, or phone activation status changes, registrants
-     * will be notified.
-     */
-    // TODO: Remove after removing TelephonyNetworkFactory
-    public void registerForActivePhoneSwitch(Handler h, int what, Object o) {
-        Registrant r = new Registrant(h, what, o);
-        mActivePhoneRegistrants.add(r);
-        r.notifyRegistrant();
-    }
-
-    /**
      * Set opportunistic data subscription. It's an indication to switch Internet data to this
      * subscription. It has to be an active subscription, and PhoneSwitcher will try to validate
      * it first if needed. If subId is DEFAULT_SUBSCRIPTION_ID, it means we are un-setting
@@ -2037,10 +1937,8 @@
         // Notify all registrants
         mActivePhoneRegistrants.notifyRegistrants();
         notifyPreferredDataSubIdChanged();
-        if (mFlags.supportNetworkProvider()) {
-            mPhoneSwitcherCallbacks.forEach(callback -> callback.invokeFromExecutor(
-                    () -> callback.onPreferredDataPhoneIdChanged(phoneId)));
-        }
+        mPhoneSwitcherCallbacks.forEach(callback -> callback.invokeFromExecutor(
+                () -> callback.onPreferredDataPhoneIdChanged(phoneId)));
     }
 
     private boolean isPhoneIdValidForRetry(int phoneId) {
diff --git a/src/java/com/android/internal/telephony/data/TelephonyNetworkFactory.java b/src/java/com/android/internal/telephony/data/TelephonyNetworkFactory.java
deleted file mode 100644
index 7d1746c..0000000
--- a/src/java/com/android/internal/telephony/data/TelephonyNetworkFactory.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.data;
-
-import android.annotation.NonNull;
-import android.net.NetworkCapabilities;
-import android.net.NetworkFactory;
-import android.net.NetworkRequest;
-import android.net.TelephonyNetworkSpecifier;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.telephony.AccessNetworkConstants;
-import android.telephony.SubscriptionManager;
-import android.util.LocalLog;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.flags.FeatureFlags;
-import com.android.internal.telephony.metrics.NetworkRequestsStats;
-import com.android.internal.util.IndentingPrintWriter;
-import com.android.telephony.Rlog;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Telephony network factory is responsible for dispatching network requests from the connectivity
- * service to the data network controller.
- */
-public class TelephonyNetworkFactory extends NetworkFactory {
-    public final String LOG_TAG;
-    protected static final boolean DBG = true;
-
-    private static final int REQUEST_LOG_SIZE = 256;
-
-    private static final int ACTION_NO_OP   = 0;
-    private static final int ACTION_REQUEST = 1;
-    private static final int ACTION_RELEASE = 2;
-
-    private static final int TELEPHONY_NETWORK_SCORE = 50;
-
-    @VisibleForTesting
-    public static final int EVENT_ACTIVE_PHONE_SWITCH               = 1;
-    @VisibleForTesting
-    public static final int EVENT_SUBSCRIPTION_CHANGED              = 2;
-    private static final int EVENT_NETWORK_REQUEST                  = 3;
-    private static final int EVENT_NETWORK_RELEASE                  = 4;
-
-    private final PhoneSwitcher mPhoneSwitcher;
-    private final LocalLog mLocalLog = new LocalLog(REQUEST_LOG_SIZE);
-
-    // Key: network request. Value: the transport of the network request applies to,
-    // AccessNetworkConstants.TRANSPORT_TYPE_INVALID if not applied.
-    private final Map<TelephonyNetworkRequest, Integer> mNetworkRequests = new HashMap<>();
-
-    private final Phone mPhone;
-
-    private final AccessNetworksManager mAccessNetworksManager;
-
-    private int mSubscriptionId;
-
-    @VisibleForTesting
-    public final Handler mInternalHandler;
-
-    @NonNull
-    private final FeatureFlags mFlags;
-
-
-    /**
-     * Constructor
-     *
-     * @param looper The looper for the handler
-     * @param phone The phone instance
-     * @param featureFlags The feature flags
-     */
-    public TelephonyNetworkFactory(@NonNull Looper looper, @NonNull Phone phone,
-            @NonNull FeatureFlags featureFlags) {
-        super(looper, phone.getContext(), "TelephonyNetworkFactory[" + phone.getPhoneId()
-                + "]", null);
-        mPhone = phone;
-        mFlags = featureFlags;
-        mInternalHandler = new InternalHandler(looper);
-
-        mAccessNetworksManager = mPhone.getAccessNetworksManager();
-
-        setCapabilityFilter(makeNetworkFilterByPhoneId(mPhone.getPhoneId()));
-        setScoreFilter(TELEPHONY_NETWORK_SCORE);
-
-        mPhoneSwitcher = PhoneSwitcher.getInstance();
-        LOG_TAG = "TelephonyNetworkFactory[" + mPhone.getPhoneId() + "]";
-
-        mPhoneSwitcher.registerForActivePhoneSwitch(mInternalHandler, EVENT_ACTIVE_PHONE_SWITCH,
-                null);
-
-        mSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-        SubscriptionManager.OnSubscriptionsChangedListener subscriptionsChangedListener =
-                new SubscriptionManager.OnSubscriptionsChangedListener() {
-                    @Override
-                    public void onSubscriptionsChanged() {
-                        mInternalHandler.sendEmptyMessage(EVENT_SUBSCRIPTION_CHANGED);
-                    }};
-
-        mPhone.getContext().getSystemService(SubscriptionManager.class)
-                .addOnSubscriptionsChangedListener(subscriptionsChangedListener);
-
-        register();
-    }
-
-    private NetworkCapabilities makeNetworkFilterByPhoneId(int phoneId) {
-        return makeNetworkFilter(SubscriptionManager.getSubscriptionId(phoneId));
-    }
-
-    /**
-     * Build the network request filter used by this factory.
-     * @param subscriptionId the subscription ID to listen to
-     * @return the filter to send to the system server
-     */
-    // This is used by the test to simulate the behavior of the system server, which is to
-    // send requests that match the network filter.
-    @VisibleForTesting
-    public NetworkCapabilities makeNetworkFilter(int subscriptionId) {
-        final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder()
-                .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_IA)
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_MMTEL)
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VCN_MANAGED)
-                .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_1)
-                .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_2)
-                .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_3)
-                .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_4)
-                .addEnterpriseId(NetworkCapabilities.NET_ENTERPRISE_ID_5)
-                .setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder()
-                                .setSubscriptionId(subscriptionId).build());
-        TelephonyNetworkRequest.getAllSupportedNetworkCapabilities()
-                .forEach(builder::addCapability);
-
-        if (mFlags.satelliteInternet()) {
-            // TODO: b/328622096 remove the try/catch
-            try {
-                builder.addTransportType(NetworkCapabilities.TRANSPORT_SATELLITE);
-            } catch (IllegalArgumentException exception) {
-                log("TRANSPORT_SATELLITE is not supported.");
-            }
-        }
-
-        return builder.build();
-    }
-
-    private class InternalHandler extends Handler {
-        InternalHandler(Looper looper) {
-            super(looper);
-        }
-
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case EVENT_ACTIVE_PHONE_SWITCH: {
-                    onActivePhoneSwitch();
-                    break;
-                }
-                case EVENT_SUBSCRIPTION_CHANGED: {
-                    onSubIdChange();
-                    break;
-                }
-                case EVENT_NETWORK_REQUEST: {
-                    onNeedNetworkFor(msg);
-                    break;
-                }
-                case EVENT_NETWORK_RELEASE: {
-                    onReleaseNetworkFor(msg);
-                    break;
-                }
-            }
-        }
-    }
-
-    private int getTransportTypeFromNetworkRequest(TelephonyNetworkRequest networkRequest) {
-        int transport = AccessNetworkConstants.TRANSPORT_TYPE_WWAN;
-        int capability = networkRequest.getHighestPriorityApnTypeNetworkCapability();
-        if (capability >= 0) {
-            transport = mAccessNetworksManager
-                    .getPreferredTransportByNetworkCapability(capability);
-        }
-        return transport;
-    }
-
-    private static int getAction(boolean wasActive, boolean isActive) {
-        if (!wasActive && isActive) {
-            return ACTION_REQUEST;
-        } else if (wasActive && !isActive) {
-            return ACTION_RELEASE;
-        } else {
-            return ACTION_NO_OP;
-        }
-    }
-
-    // apply or revoke requests if our active-ness changes
-    private void onActivePhoneSwitch() {
-        logl("onActivePhoneSwitch");
-        for (Map.Entry<TelephonyNetworkRequest, Integer> entry : mNetworkRequests.entrySet()) {
-            TelephonyNetworkRequest networkRequest = entry.getKey();
-            boolean applied = entry.getValue() != AccessNetworkConstants.TRANSPORT_TYPE_INVALID;
-
-            boolean shouldApply = mPhoneSwitcher.shouldApplyNetworkRequest(
-                    networkRequest, mPhone.getPhoneId());
-
-            int action = getAction(applied, shouldApply);
-            if (action == ACTION_NO_OP) continue;
-
-            logl("onActivePhoneSwitch: " + ((action == ACTION_REQUEST)
-                    ? "Requesting" : "Releasing") + " network request " + networkRequest);
-            int transportType = getTransportTypeFromNetworkRequest(networkRequest);
-            if (action == ACTION_REQUEST) {
-                NetworkRequestsStats.addNetworkRequest(networkRequest.getNativeNetworkRequest(),
-                        mSubscriptionId);
-                mPhone.getDataNetworkController().addNetworkRequest(networkRequest);
-            } else if (action == ACTION_RELEASE) {
-                mPhone.getDataNetworkController().removeNetworkRequest(networkRequest);
-            }
-
-            mNetworkRequests.put(networkRequest,
-                    shouldApply ? transportType : AccessNetworkConstants.TRANSPORT_TYPE_INVALID);
-        }
-    }
-
-    // watch for phone->subId changes, reapply new filter and let
-    // that flow through to apply/revoke of requests
-    private void onSubIdChange() {
-        int newSubscriptionId = SubscriptionManager.getSubscriptionId(mPhone.getPhoneId());
-        if (mSubscriptionId != newSubscriptionId) {
-            if (DBG) logl("onSubIdChange " + mSubscriptionId + "->" + newSubscriptionId);
-            mSubscriptionId = newSubscriptionId;
-            setCapabilityFilter(makeNetworkFilter(mSubscriptionId));
-        }
-    }
-
-    @Override
-    public void needNetworkFor(@NonNull NetworkRequest networkRequest) {
-        Message msg = mInternalHandler.obtainMessage(EVENT_NETWORK_REQUEST);
-        msg.obj = networkRequest;
-        msg.sendToTarget();
-    }
-
-    private void onNeedNetworkFor(@NonNull Message msg) {
-        TelephonyNetworkRequest networkRequest =
-                new TelephonyNetworkRequest((NetworkRequest) msg.obj, mPhone, mFlags);
-        boolean shouldApply = mPhoneSwitcher.shouldApplyNetworkRequest(
-                networkRequest, mPhone.getPhoneId());
-
-        mNetworkRequests.put(networkRequest, shouldApply
-                ? getTransportTypeFromNetworkRequest(networkRequest)
-                : AccessNetworkConstants.TRANSPORT_TYPE_INVALID);
-
-        logl("onNeedNetworkFor " + networkRequest + " shouldApply " + shouldApply);
-
-        if (shouldApply) {
-            NetworkRequestsStats.addNetworkRequest(networkRequest.getNativeNetworkRequest(),
-                    mSubscriptionId);
-            mPhone.getDataNetworkController().addNetworkRequest(networkRequest);
-        }
-    }
-
-    @Override
-    public void releaseNetworkFor(@NonNull NetworkRequest networkRequest) {
-        Message msg = mInternalHandler.obtainMessage(EVENT_NETWORK_RELEASE);
-        msg.obj = networkRequest;
-        msg.sendToTarget();
-    }
-
-    private void onReleaseNetworkFor(@NonNull Message msg) {
-        TelephonyNetworkRequest networkRequest =
-                new TelephonyNetworkRequest((NetworkRequest) msg.obj, mPhone, mFlags);
-        boolean applied = mNetworkRequests.get(networkRequest)
-                != AccessNetworkConstants.TRANSPORT_TYPE_INVALID;
-
-        mNetworkRequests.remove(networkRequest);
-
-        logl("onReleaseNetworkFor " + networkRequest + " applied " + applied);
-
-        if (applied) {
-            mPhone.getDataNetworkController().removeNetworkRequest(networkRequest);
-        }
-    }
-
-    protected void log(String s) {
-        Rlog.d(LOG_TAG, s);
-    }
-
-    protected void logl(String s) {
-        log(s);
-        mLocalLog.log(s);
-    }
-
-    /**
-     * Dump the state of telephony network factory
-     *
-     * @param fd File descriptor
-     * @param writer Print writer
-     * @param args Arguments
-     */
-    public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
-        final IndentingPrintWriter pw = new IndentingPrintWriter(writer, "  ");
-        pw.println("TelephonyNetworkFactory-" + mPhone.getPhoneId());
-        pw.increaseIndent();
-        pw.println("Network Requests:");
-        pw.increaseIndent();
-        for (Map.Entry<TelephonyNetworkRequest, Integer> entry : mNetworkRequests.entrySet()) {
-            TelephonyNetworkRequest nr = entry.getKey();
-            int transport = entry.getValue();
-            pw.println(nr + (transport != AccessNetworkConstants.TRANSPORT_TYPE_INVALID
-                    ? (" applied on " + transport) : " not applied"));
-        }
-        pw.decreaseIndent();
-        pw.print("Local logs:");
-        pw.increaseIndent();
-        mLocalLog.dump(fd, pw, args);
-        pw.decreaseIndent();
-        pw.decreaseIndent();
-    }
-}
diff --git a/src/java/com/android/internal/telephony/data/TelephonyNetworkProvider.java b/src/java/com/android/internal/telephony/data/TelephonyNetworkProvider.java
index 63edefa..5de1e82 100644
--- a/src/java/com/android/internal/telephony/data/TelephonyNetworkProvider.java
+++ b/src/java/com/android/internal/telephony/data/TelephonyNetworkProvider.java
@@ -152,7 +152,7 @@
             return;
         }
 
-        mPhoneSwitcher.onRequestNetwork(request);
+        mPhoneSwitcher.onRequestNetwork(networkRequest);
 
         // Check with PhoneSwitcher to see where to route the request.
         int phoneId = getPhoneIdForNetworkRequest(networkRequest);
@@ -187,7 +187,7 @@
             return;
         }
 
-        mPhoneSwitcher.onReleaseNetwork(request);
+        mPhoneSwitcher.onReleaseNetwork(networkRequest);
         int phoneId = mNetworkRequests.remove(networkRequest);
         Phone phone = PhoneFactory.getPhone(phoneId);
         if (phone != null) {
diff --git a/tests/telephonytests/jarjar-rules-tests.txt b/tests/telephonytests/jarjar-rules-tests.txt
index dd69870..5a05b27 100644
--- a/tests/telephonytests/jarjar-rules-tests.txt
+++ b/tests/telephonytests/jarjar-rules-tests.txt
@@ -1,10 +1,3 @@
-# NetworkFactory is included in telephony-common and services.net
-# Rename the non-jarjared, services.net version to avoid conflicts.
-# This causes two NetworkFactory classes to appear in the test package (one used
-# by services-net and one by telephony-common), similarly to what happens on a
-# real device, except that in the test they have different package names.
-rule android.net.NetworkFactory* android.net.services.NetworkFactory@1
-
 # Telephony-common has already included net-utils-framework-common lib and jarjars
 # the package name. FrameworksTelephonyTests also includes net-utils-framework-common
 # via net-tests-utils and tries to jarjar it again. Rename the package names with
diff --git a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
index 0db881c..6517b15 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
@@ -580,7 +580,6 @@
         mNullCipherNotifier = Mockito.mock(NullCipherNotifier.class);
 
         doReturn(true).when(mFeatureFlags).minimalTelephonyCdmCheck();
-        doReturn(true).when(mFeatureFlags).supportNetworkProvider();
         doReturn(true).when(mFeatureFlags).hsumBroadcast();
         doReturn(true).when(mFeatureFlags).hsumPackageManager();
 
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java
index 6e41448..a9c2ece 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java
@@ -102,7 +102,6 @@
 @RunWith(AndroidTestingRunner.class)
 @TestableLooper.RunWithLooper
 public class PhoneSwitcherTest extends TelephonyTest {
-    private static final int ACTIVE_PHONE_SWITCH = 1;
     private static final int EVENT_RADIO_ON = 108;
     private static final int EVENT_MODEM_COMMAND_DONE = 112;
     private static final int EVENT_EVALUATE_AUTO_SWITCH = 111;
@@ -118,7 +117,6 @@
     private ServiceStateTracker mSST2;
     private Phone mImsPhone;
     private DataSettingsManager mDataSettingsManager2;
-    private Handler mActivePhoneSwitchHandler;
     private GsmCdmaCall mActiveCall;
     private GsmCdmaCall mHoldingCall;
     private GsmCdmaCall mInactiveCall;
@@ -158,7 +156,6 @@
         mSST2 = mock(ServiceStateTracker.class);
         mImsPhone = mock(Phone.class);
         mDataSettingsManager2 = mock(DataSettingsManager.class);
-        mActivePhoneSwitchHandler = mock(Handler.class);
         mActiveCall = mock(GsmCdmaCall.class);
         mHoldingCall = mock(GsmCdmaCall.class);
         mInactiveCall = mock(GsmCdmaCall.class);
@@ -207,192 +204,6 @@
         super.tearDown();
     }
 
-    /**
-     * Test that a single phone case results in our phone being active and the RIL called
-     */
-    @Test
-    public void testRegister() throws Exception {
-        initialize();
-
-        // verify nothing has been done while there are no inputs
-        assertTrue("data should be always allowed for emergency", mDataAllowed[0]);
-        assertFalse("data allowed initially", mDataAllowed[1]);
-
-        NetworkRequest internetNetworkRequest = addInternetNetworkRequest(null, 50);
-
-        assertFalse("phone active after request", mPhoneSwitcherUT
-                .shouldApplyNetworkRequest(new TelephonyNetworkRequest(
-                        internetNetworkRequest, mPhone, mFeatureFlags), 0));
-
-        // not registered yet - shouldn't inc
-        verify(mActivePhoneSwitchHandler, never()).sendMessageAtTime(any(), anyLong());
-
-        mPhoneSwitcherUT.registerForActivePhoneSwitch(mActivePhoneSwitchHandler,
-                ACTIVE_PHONE_SWITCH, null);
-
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-
-        setDefaultDataSubId(0);
-
-        verify(mActivePhoneSwitchHandler, never()).sendMessageAtTime(any(), anyLong());
-
-        setSlotIndexToSubId(0, 0);
-        mSubChangedListener.onSubscriptionsChanged();
-        processAllMessages();
-
-        AsyncResult res = new AsyncResult(1, null,  null);
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertTrue("data not allowed", mDataAllowed[0]);
-
-        // now try various things that should cause the active phone to switch:
-        // 1 lose default via default sub change
-        // 2 gain default via default sub change
-        // 3 lose default via sub->phone change
-        // 4 gain default via sub->phone change
-        // 5 lose default network request
-        // 6 gain subscription-specific request
-        // 7 lose via sub->phone change
-        // 8 gain via sub->phone change
-        // 9 lose subscription-specific request
-        // 10 don't switch phones when in emergency mode
-
-        // 1 lose default via default sub change
-        setDefaultDataSubId(1);
-
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertFalse("data allowed", mDataAllowed[0]);
-
-        setSlotIndexToSubId(1, 1);
-        clearInvocations(mAutoDataSwitchController);
-        mSubChangedListener.onSubscriptionsChanged();
-        processAllMessages();
-
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        verify(mAutoDataSwitchController).notifySubscriptionsMappingChanged();
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertFalse("data allowed", mDataAllowed[0]);
-        assertTrue("data not allowed", mDataAllowed[1]);
-
-        // 2 gain default via default sub change
-        setDefaultDataSubId(0);
-
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertFalse("data allowed", mDataAllowed[1]);
-        assertTrue("data not allowed", mDataAllowed[0]);
-
-        // 3 lose default via sub->phone change
-        setSlotIndexToSubId(0, 2);
-        clearInvocations(mAutoDataSwitchController);
-        mSubChangedListener.onSubscriptionsChanged();
-        processAllMessages();
-        verify(mAutoDataSwitchController).notifySubscriptionsMappingChanged();
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertFalse("data allowed", mDataAllowed[0]);
-        assertFalse("data allowed", mDataAllowed[1]);
-
-        // 4 gain default via sub->phone change
-        setSlotIndexToSubId(0, 0);
-        mSubChangedListener.onSubscriptionsChanged();
-        processAllMessages();
-
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertTrue("data not allowed", mDataAllowed[0]);
-        assertFalse("data allowed", mDataAllowed[1]);
-
-        // 5 lose default network request
-        releaseNetworkRequest(internetNetworkRequest);
-
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertTrue("data not allowed", mDataAllowed[0]);
-        assertFalse("data allowed", mDataAllowed[1]);
-
-        // 6 gain subscription-specific request
-        NetworkRequest specificInternetRequest = addInternetNetworkRequest(0, 50);
-
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertTrue("data not allowed", mDataAllowed[0]);
-        assertFalse("data allowed", mDataAllowed[1]);
-
-        // 7 lose via sub->phone change
-        setSlotIndexToSubId(0, 1);
-        mSubChangedListener.onSubscriptionsChanged();
-        processAllMessages();
-
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertFalse("data allowed", mDataAllowed[0]);
-        assertFalse("data allowed", mDataAllowed[1]);
-
-        // 8 gain via sub->phone change
-        setSlotIndexToSubId(0, 0);
-        mSubChangedListener.onSubscriptionsChanged();
-        processAllMessages();
-
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertTrue("data not allowed", mDataAllowed[0]);
-        assertFalse("data allowed", mDataAllowed[1]);
-
-        // 9 lose subscription-specific request
-        releaseNetworkRequest(specificInternetRequest);
-
-        Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
-        processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
-        clearInvocations(mActivePhoneSwitchHandler);
-        assertTrue("data not allowed", mDataAllowed[0]);
-        assertFalse("data allowed", mDataAllowed[1]);
-
-        // 10 don't switch phones when in emergency mode
-        // not ready yet - Phone turns out to be hard to stub out
-//        phones[0].setInEmergencyCall(true);
-//        connectivityServiceMock.addDefaultRequest();
-//        processAllMessages();
-//        if (testHandler.getActivePhoneSwitchCount() != 11) {
-//            fail("after release of request, ActivePhoneSwitchCount not 11!");
-//        }
-//        if (commandsInterfaces[0].isDataAllowed()) fail("data allowed");
-//        if (commandsInterfaces[1].isDataAllowed()) fail("data allowed");
-//
-//        phones[0].setInEmergencyCall(false);
-//        connectivityServiceMock.addDefaultRequest();
-//        processAllMessages();
-//        if (testHandler.getActivePhoneSwitchCount() != 12) {
-//            fail("after release of request, ActivePhoneSwitchCount not 11!");
-//        }
-//        if (commandsInterfaces[0].isDataAllowed()) fail("data allowed");
-//        if (commandsInterfaces[1].isDataAllowed()) fail("data allowed");
-    }
-
     /** Test Data Auto Switch **/
     @Test
     public void testAutoDataSwitch_retry() throws Exception {
@@ -501,11 +312,7 @@
         setSlotIndexToSubId(0, 0);
         setSlotIndexToSubId(1, 1);
         setDefaultDataSubId(0);
-        mPhoneSwitcherUT.registerForActivePhoneSwitch(mActivePhoneSwitchHandler,
-                ACTIVE_PHONE_SWITCH, null);
         processAllMessages();
-        // verify initial conditions
-        verify(mActivePhoneSwitchHandler, times(1)).sendMessageAtTime(any(), anyLong());
 
         assertTrue("data not allowed", mDataAllowed[0]);
         assertFalse("data allowed", mDataAllowed[1]);
@@ -517,8 +324,6 @@
         Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
         processAllMessages();
 
-        // After gain of network request, mActivePhoneSwitchHandler should be notified 2 times.
-        verify(mActivePhoneSwitchHandler, times(2)).sendMessageAtTime(any(), anyLong());
         assertFalse("data allowed", mDataAllowed[0]);
         assertTrue("data not allowed", mDataAllowed[1]);
     }
@@ -714,13 +519,7 @@
     public void testSetPreferredDataModemCommand() throws Exception {
         doReturn(true).when(mMockRadioConfig).isSetPreferredDataCommandSupported();
         initialize();
-        mPhoneSwitcherUT.registerForActivePhoneSwitch(mActivePhoneSwitchHandler,
-                ACTIVE_PHONE_SWITCH, null);
-        mPhoneSwitcherUT.registerForActivePhoneSwitch(mActivePhoneSwitchHandler,
-                ACTIVE_PHONE_SWITCH, null);
-        verify(mActivePhoneSwitchHandler, times(2)).sendMessageAtTime(any(), anyLong());
         clearInvocations(mMockRadioConfig);
-        clearInvocations(mActivePhoneSwitchHandler);
 
         // Phone 0 has sub 1, phone 1 has sub 2.
         // Sub 1 is default data sub.
@@ -733,16 +532,13 @@
         AsyncResult res = new AsyncResult(1, null,  null);
         Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
         processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(2)).sendMessageAtTime(any(), anyLong());
         clearInvocations(mMockRadioConfig);
-        clearInvocations(mActivePhoneSwitchHandler);
 
         // Notify phoneSwitcher about default data sub and default network request.
         // It shouldn't change anything.
         NetworkRequest internetRequest = addInternetNetworkRequest(null, 50);
         NetworkRequest mmsRequest = addMmsNetworkRequest(2);
         verify(mMockRadioConfig, never()).setPreferredDataModem(anyInt(), any());
-        verify(mActivePhoneSwitchHandler, never()).sendMessageAtTime(any(), anyLong());
         assertTrue(mPhoneSwitcherUT.shouldApplyNetworkRequest(
                 new TelephonyNetworkRequest(internetRequest, mPhone, mFeatureFlags), 0));
         assertFalse(mPhoneSwitcherUT.shouldApplyNetworkRequest(
@@ -764,7 +560,6 @@
         verify(mMockRadioConfig).setPreferredDataModem(eq(1), any());
         Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
         processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(2)).sendMessageAtTime(any(), anyLong());
         assertFalse(mPhoneSwitcherUT.shouldApplyNetworkRequest(
                 new TelephonyNetworkRequest(internetRequest, mPhone, mFeatureFlags), 0));
         assertFalse(mPhoneSwitcherUT.shouldApplyNetworkRequest(
@@ -775,7 +570,6 @@
                 new TelephonyNetworkRequest(mmsRequest, mPhone, mFeatureFlags), 1));
 
         clearInvocations(mMockRadioConfig);
-        clearInvocations(mActivePhoneSwitchHandler);
 
         // Unset preferred sub should make phone0 preferredDataModem again.
         mPhoneSwitcherUT.trySetOpportunisticDataSubscription(
@@ -787,7 +581,6 @@
         verify(mMockRadioConfig).setPreferredDataModem(eq(0), any());
         Message.obtain(mPhoneSwitcherUT, EVENT_MODEM_COMMAND_DONE, res).sendToTarget();
         processAllMessages();
-        verify(mActivePhoneSwitchHandler, times(2)).sendMessageAtTime(any(), anyLong());
         assertTrue(mPhoneSwitcherUT.shouldApplyNetworkRequest(
                 new TelephonyNetworkRequest(internetRequest, mPhone, mFeatureFlags), 0));
         assertFalse(mPhoneSwitcherUT.shouldApplyNetworkRequest(
@@ -2209,7 +2002,8 @@
         NetworkRequest networkRequest = new NetworkRequest(netCap, ConnectivityManager.TYPE_NONE,
                 0, NetworkRequest.Type.REQUEST);
 
-        mPhoneSwitcherUT.onRequestNetwork(networkRequest);
+        mPhoneSwitcherUT.onRequestNetwork(new TelephonyNetworkRequest(
+                networkRequest, mPhone, mFeatureFlags));
         return networkRequest;
     }
 
@@ -2227,7 +2021,8 @@
         }
         NetworkRequest networkRequest = new NetworkRequest(netCap, ConnectivityManager.TYPE_NONE,
                 1, NetworkRequest.Type.REQUEST);
-        mPhoneSwitcherUT.onRequestNetwork(networkRequest);
+        mPhoneSwitcherUT.onRequestNetwork(new TelephonyNetworkRequest(
+                networkRequest, mPhone, mFeatureFlags));
         return networkRequest;
     }
 
@@ -2235,6 +2030,7 @@
      * Tell PhoneSwitcher to release a network request.
      */
     private void releaseNetworkRequest(NetworkRequest networkRequest) throws Exception {
-        mPhoneSwitcherUT.onReleaseNetwork(networkRequest);
+        mPhoneSwitcherUT.onReleaseNetwork(new TelephonyNetworkRequest(
+                networkRequest, mPhone, mFeatureFlags));
     }
 }
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/TelephonyNetworkFactoryTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/TelephonyNetworkFactoryTest.java
deleted file mode 100644
index e1a0eac..0000000
--- a/tests/telephonytests/src/com/android/internal/telephony/data/TelephonyNetworkFactoryTest.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony.data;
-
-import static com.android.internal.telephony.NetworkFactory.CMD_CANCEL_REQUEST;
-import static com.android.internal.telephony.NetworkFactory.CMD_REQUEST_NETWORK;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-
-import android.net.NetworkCapabilities;
-import android.net.NetworkProvider;
-import android.net.NetworkRequest;
-import android.net.TelephonyNetworkSpecifier;
-import android.os.Looper;
-import android.os.Message;
-import android.testing.AndroidTestingRunner;
-import android.testing.TestableLooper;
-import android.util.ArraySet;
-
-import androidx.test.filters.FlakyTest;
-import androidx.test.filters.SmallTest;
-
-import com.android.internal.telephony.ISub;
-import com.android.internal.telephony.RadioConfig;
-import com.android.internal.telephony.TelephonyTest;
-import com.android.telephony.Rlog;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-@RunWith(AndroidTestingRunner.class)
-@TestableLooper.RunWithLooper
-public class TelephonyNetworkFactoryTest extends TelephonyTest {
-    private static final String LOG_TAG = "TelephonyNetworkFactoryTest";
-
-    // Mocked classes
-    PhoneSwitcher mPhoneSwitcher;
-    private RadioConfig mMockRadioConfig;
-    private ISub mMockedIsub;
-
-    private String mTestName = "";
-
-    // List of all requests filed by a test
-    private final ArraySet<TelephonyNetworkRequest> mAllNetworkRequestSet = new ArraySet<>();
-    // List of requests active
-    private final ArrayList<TelephonyNetworkRequest> mNetworkRequestList = new ArrayList<>();
-    // List of complete messages associated with the network requests
-    private final Map<TelephonyNetworkRequest, Message> mNetworkRequestMessageMap = new HashMap<>();
-
-    private TelephonyNetworkFactory mTelephonyNetworkFactoryUT;
-    private int mRequestId = 0;
-
-    private void log(String str) {
-        Rlog.d(LOG_TAG + " " + mTestName, str);
-    }
-
-    private NetworkRequest makeSubSpecificInternetRequest(int subId) {
-        NetworkCapabilities netCap = (new NetworkCapabilities())
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
-                .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
-        netCap.setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder()
-                .setSubscriptionId(subId).build());
-        NetworkRequest networkRequest = new NetworkRequest(netCap, -1,
-                mRequestId++, NetworkRequest.Type.REQUEST);
-        mTelephonyNetworkFactoryUT.obtainMessage(CMD_REQUEST_NETWORK, 0, 0, networkRequest)
-                .sendToTarget();
-        return networkRequest;
-    }
-
-    private NetworkRequest makeDefaultInternetRequest() {
-        NetworkCapabilities netCap = (new NetworkCapabilities())
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
-                .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
-        NetworkRequest networkRequest = new NetworkRequest(netCap, -1,
-                mRequestId++, NetworkRequest.Type.REQUEST);
-        mTelephonyNetworkFactoryUT.obtainMessage(CMD_REQUEST_NETWORK, 0, 0, networkRequest)
-                .sendToTarget();
-        return networkRequest;
-    }
-
-    private NetworkRequest makeSubSpecificMmsRequest(int subId) {
-        NetworkCapabilities netCap = (new NetworkCapabilities())
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_MMS)
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
-                .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
-        netCap.setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder()
-                .setSubscriptionId(subId).build());
-        NetworkRequest networkRequest = new NetworkRequest(netCap, -1,
-                mRequestId++, NetworkRequest.Type.REQUEST);
-        mTelephonyNetworkFactoryUT.obtainMessage(CMD_REQUEST_NETWORK, 0, 0, networkRequest)
-                .sendToTarget();
-        return networkRequest;
-    }
-
-    private void releaseNetworkRequest(NetworkRequest networkRequest) {
-        mTelephonyNetworkFactoryUT.obtainMessage(CMD_CANCEL_REQUEST, 0, 0, networkRequest)
-                .sendToTarget();
-    }
-
-    private void activatePhoneInPhoneSwitcher(int phoneId, boolean active) {
-        doReturn(active).when(mPhoneSwitcher).shouldApplyNetworkRequest(any(), eq(phoneId));
-        mTelephonyNetworkFactoryUT.mInternalHandler.sendEmptyMessage(
-                TelephonyNetworkFactory.EVENT_ACTIVE_PHONE_SWITCH);
-    }
-
-    private void activatePhoneInPhoneSwitcher(int phoneId, NetworkRequest nr, boolean active) {
-        TelephonyNetworkRequest networkRequest =
-                new TelephonyNetworkRequest(nr, mPhone, mFeatureFlags);
-        doReturn(active).when(mPhoneSwitcher).shouldApplyNetworkRequest(
-                eq(networkRequest), eq(phoneId));
-        mTelephonyNetworkFactoryUT.mInternalHandler.sendEmptyMessage(
-                TelephonyNetworkFactory.EVENT_ACTIVE_PHONE_SWITCH);
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        super.setUp(getClass().getSimpleName());
-        mPhoneSwitcher = mock(PhoneSwitcher.class);
-        mMockRadioConfig = mock(RadioConfig.class);
-        mMockedIsub = mock(ISub.class);
-        replaceInstance(RadioConfig.class, "sRadioConfig", null, mMockRadioConfig);
-
-        doReturn(mMockedIsub).when(mIBinder).queryLocalInterface(anyString());
-        doReturn(mPhone).when(mPhone).getImsPhone();
-        mServiceManagerMockedServices.put("isub", mIBinder);
-
-        mContextFixture.putStringArrayResource(com.android.internal.R.array.networkAttributes,
-                new String[]{"wifi,1,1,1,-1,true", "mobile,0,0,0,-1,true",
-                        "mobile_mms,2,0,2,60000,true", "mobile_supl,3,0,2,60000,true",
-                        "mobile_dun,4,0,2,60000,true", "mobile_hipri,5,0,3,60000,true",
-                        "mobile_fota,10,0,2,60000,true", "mobile_ims,11,0,2,60000,true",
-                        "mobile_cbs,12,0,2,60000,true", "wifi_p2p,13,1,0,-1,true",
-                        "mobile_ia,14,0,2,-1,true", "mobile_emergency,15,0,2,-1,true"});
-
-        doAnswer(invocation -> {
-            final TelephonyNetworkRequest req =
-                    (TelephonyNetworkRequest) invocation.getArguments()[0];
-            //final Message msg = (Message) invocation.getArguments()[2];
-            mNetworkRequestList.add(req);
-            mAllNetworkRequestSet.add(req);
-            //mNetworkRequestMessageMap.put(req, msg);
-            return null;
-        }).when(mDataNetworkController).addNetworkRequest(any());
-
-        doAnswer(invocation -> {
-            mNetworkRequestList.remove((TelephonyNetworkRequest) invocation.getArguments()[0]);
-            return null;
-        }).when(mDataNetworkController).removeNetworkRequest(any());
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        mAllNetworkRequestSet.clear();
-        mNetworkRequestList.clear();
-        mNetworkRequestMessageMap.clear();
-        mTelephonyNetworkFactoryUT = null;
-        super.tearDown();
-    }
-
-    private void createMockedTelephonyComponents() throws Exception {
-        replaceInstance(PhoneSwitcher.class, "sPhoneSwitcher", null, mPhoneSwitcher);
-
-        mTelephonyNetworkFactoryUT = new TelephonyNetworkFactory(Looper.myLooper(), mPhone,
-                mFeatureFlags);
-        final ArgumentCaptor<NetworkProvider> providerCaptor =
-                ArgumentCaptor.forClass(NetworkProvider.class);
-        verify(mConnectivityManager).registerNetworkProvider(providerCaptor.capture());
-        // For NetworkFactory to function as expected, the provider ID must be set to some
-        // number > 0.
-        providerCaptor.getValue().setProviderId(1);
-        verify(mPhoneSwitcher).registerForActivePhoneSwitch(any(), anyInt(), any());
-
-        // Simulate the behavior of the system server. When offerNetwork is called, it will
-        // update the factory about all requests that pass the registered filter, by calling
-        // NetworkProvider#onNetworkNeeded or onNetworkUnneeded.
-        // Note that this simulation is a little bit incomplete, as the system server will
-        // *update* only for those requests for which the status has changed, but this
-        // simulation will send REQUEST_NETWORK or CANCEL_REQUEST for all registered requests.
-        // At this time it makes no difference in this test.
-        // Also, this test reads from mAllNetworkRequestSet, which is not really the list of
-        // requests sent to the system server as the test doesn't instrument that. Instead, it's
-        // the list of requests ever sent to the factory. This also makes no difference in this
-        // test at this time.
-        doAnswer(invocation -> {
-            final NetworkCapabilities capabilitiesFilter =
-                    mTelephonyNetworkFactoryUT.makeNetworkFilter(mMockedIsub.getSubId(0));
-            for (final TelephonyNetworkRequest request : mAllNetworkRequestSet) {
-                final int message = request.canBeSatisfiedBy(capabilitiesFilter)
-                        ? CMD_REQUEST_NETWORK : CMD_CANCEL_REQUEST;
-                mTelephonyNetworkFactoryUT.obtainMessage(message, 0, 0,
-                        request.getNativeNetworkRequest()).sendToTarget();
-            }
-            return null;
-        }).when(mConnectivityManager).offerNetwork(anyInt(), any(), any(), any());
-    }
-
-    /**
-     * Test that phone active changes
-     */
-    @FlakyTest
-    @Test
-    @SmallTest
-    public void testActive() throws Exception {
-        mTestName = "testActive";
-        final int phoneId = 0;
-        final int subId = 0;
-
-        createMockedTelephonyComponents();
-
-        doReturn(false).when(mPhoneSwitcher).shouldApplyNetworkRequest(any(), anyInt());
-        doReturn(subId).when(mMockedIsub).getSubId(phoneId);
-        // fake onSubscriptionChangedListener being triggered.
-        mTelephonyNetworkFactoryUT.mInternalHandler.sendEmptyMessage(
-                TelephonyNetworkFactory.EVENT_SUBSCRIPTION_CHANGED);
-
-        log("addDefaultRequest");
-        makeDefaultInternetRequest();
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        log("setPhoneActive true: phoneId = " + phoneId);
-
-        activatePhoneInPhoneSwitcher(phoneId, true);
-        processAllMessages();
-        assertEquals(1, mNetworkRequestList.size());
-
-        log("makeSubSpecificInternetRequest: subId = " + subId);
-        NetworkRequest subSpecificDefault = makeSubSpecificInternetRequest(subId);
-        processAllMessages();
-        assertEquals(2, mNetworkRequestList.size());
-
-        log("setPhoneActive false: phoneId = " + phoneId);
-        activatePhoneInPhoneSwitcher(phoneId, false);
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        log("makeSubSpecificInternetRequest: subId = " + subId);
-        NetworkRequest subSpecificMms = makeSubSpecificMmsRequest(subId);
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        log("setPhoneActive true: phoneId = " + phoneId);
-        activatePhoneInPhoneSwitcher(phoneId, true);
-        processAllMessages();
-        assertEquals(3, mNetworkRequestList.size());
-
-        log("releaseNetworkRequest: subSpecificDefault = " + subSpecificDefault);
-        releaseNetworkRequest(subSpecificDefault);
-        processAllMessages();
-        assertEquals(2, mNetworkRequestList.size());
-
-        log("setPhoneActive false: phoneId = " + phoneId);
-        activatePhoneInPhoneSwitcher(phoneId, false);
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        log("releaseNetworkRequest: subSpecificMms = " + subSpecificMms);
-        releaseNetworkRequest(subSpecificMms);
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        log("setPhoneActive true: phoneId = " + phoneId);
-        activatePhoneInPhoneSwitcher(phoneId, true);
-        processAllMessages();
-        assertEquals(1, mNetworkRequestList.size());
-    }
-
-    /**
-     * Test that network request changes
-     */
-    @Test
-    @SmallTest
-    public void testRequests() throws Exception {
-        mTestName = "testActive";
-        final int numberOfPhones = 2;
-        final int phoneId = 0;
-        final int altPhoneId = 1;
-        final int subId = 0;
-        final int altSubId = 1;
-        final int unusedSubId = 2;
-
-        createMockedTelephonyComponents();
-
-        doReturn(subId).when(mMockedIsub).getSubId(phoneId);
-        mTelephonyNetworkFactoryUT.mInternalHandler.sendEmptyMessage(
-                TelephonyNetworkFactory.EVENT_SUBSCRIPTION_CHANGED);
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        activatePhoneInPhoneSwitcher(phoneId, true);
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        makeDefaultInternetRequest();
-        processAllMessages();
-        assertEquals(1, mNetworkRequestList.size());
-
-        doReturn(altSubId).when(mMockedIsub).getSubId(altPhoneId);
-        processAllMessages();
-        assertEquals(1, mNetworkRequestList.size());
-
-        activatePhoneInPhoneSwitcher(phoneId, false);
-        mTelephonyNetworkFactoryUT.mInternalHandler.sendEmptyMessage(
-                TelephonyNetworkFactory.EVENT_ACTIVE_PHONE_SWITCH);
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        NetworkRequest subSpecificMmsRequest = makeSubSpecificMmsRequest(subId);
-        activatePhoneInPhoneSwitcher(phoneId, subSpecificMmsRequest, true);
-        processAllMessages();
-        assertEquals(1, mNetworkRequestList.size());
-
-        doReturn(unusedSubId).when(mMockedIsub).getSubId(phoneId);
-        mTelephonyNetworkFactoryUT.mInternalHandler.sendEmptyMessage(
-                TelephonyNetworkFactory.EVENT_SUBSCRIPTION_CHANGED);
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        makeSubSpecificInternetRequest(subId);
-        processAllMessages();
-        assertEquals(0, mNetworkRequestList.size());
-
-        doReturn(subId).when(mMockedIsub).getSubId(phoneId);
-        mTelephonyNetworkFactoryUT.mInternalHandler.sendEmptyMessage(
-                TelephonyNetworkFactory.EVENT_SUBSCRIPTION_CHANGED);
-        processAllMessages();
-
-        activatePhoneInPhoneSwitcher(phoneId, true);
-        processAllMessages();
-        assertEquals(3, mNetworkRequestList.size());
-    }
-}