Loading src/java/com/android/internal/telephony/dataconnection/DataConnection.java +19 −20 Original line number Diff line number Diff line Loading @@ -40,8 +40,8 @@ import android.net.RouteInfo; import android.net.SocketKeepalive; import android.net.TelephonyNetworkSpecifier; import android.net.vcn.VcnManager; import android.net.vcn.VcnManager.VcnUnderlyingNetworkPolicyListener; import android.net.vcn.VcnUnderlyingNetworkPolicy; import android.net.vcn.VcnManager.VcnNetworkPolicyListener; import android.net.vcn.VcnNetworkPolicyResult; import android.os.AsyncResult; import android.os.HandlerExecutor; import android.os.Message; Loading Loading @@ -332,8 +332,8 @@ public class DataConnection extends StateMachine { PendingIntent mReconnectIntent = null; /** Class used to track VCN-defined Network policies for this DcNetworkAgent. */ private final VcnUnderlyingNetworkPolicyListener mVcnPolicyListener = new DataConnectionVcnUnderlyingNetworkPolicyListener(); private final VcnNetworkPolicyListener mVcnPolicyListener = new DataConnectionVcnNetworkPolicyListener(); // ***** Event codes for driving the state machine, package visible for Dcc static final int BASE = Protocol.BASE_DATA_CONNECTION; Loading Loading @@ -1769,13 +1769,13 @@ public class DataConnection extends StateMachine { * <p>Determining if the Network is VCN-managed requires polling VcnManager. */ private boolean isVcnManaged(NetworkCapabilities networkCapabilities) { VcnUnderlyingNetworkPolicy networkPolicy = mVcnManager.getUnderlyingNetworkPolicy(networkCapabilities, getLinkProperties()); VcnNetworkPolicyResult policyResult = mVcnManager.applyVcnNetworkPolicy(networkCapabilities, getLinkProperties()); // if the Network does have capability NOT_VCN_MANAGED, return false to indicate it's not // VCN-managed return !networkPolicy .getMergedNetworkCapabilities() return !policyResult .getNetworkCapabilities() .hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VCN_MANAGED); } Loading Loading @@ -2588,9 +2588,9 @@ public class DataConnection extends StateMachine { + ", mUnmeteredUseOnly = " + mUnmeteredUseOnly); } // Always register a VcnUnderlyingNetworkPolicyListener, regardless of whether this is a // handover or new Network. mVcnManager.addVcnUnderlyingNetworkPolicyListener( // Always register a VcnNetworkPolicyListener, regardless of whether this is a handover // or new Network. mVcnManager.addVcnNetworkPolicyListener( new HandlerExecutor(getHandler()), mVcnPolicyListener); if (mConnectionParams != null Loading Loading @@ -2644,10 +2644,10 @@ public class DataConnection extends StateMachine { mNetworkAgent = new DcNetworkAgent(DataConnection.this, mPhone, mScore, configBuilder.build(), provider, mTransportType); VcnUnderlyingNetworkPolicy policy = mVcnManager.getUnderlyingNetworkPolicy( VcnNetworkPolicyResult policyResult = mVcnManager.applyVcnNetworkPolicy( getNetworkCapabilities(), getLinkProperties()); if (policy.isTeardownRequested()) { if (policyResult.isTeardownRequested()) { tearDownAll( Phone.REASON_VCN_REQUESTED_TEARDOWN, DcTracker.RELEASE_TYPE_DETACH, Loading Loading @@ -2706,7 +2706,7 @@ public class DataConnection extends StateMachine { mCid, mApnSetting.getApnTypeBitmask(), RilDataCall.State.DISCONNECTED); mDataCallSessionStats.onDataCallDisconnected(); mVcnManager.removeVcnUnderlyingNetworkPolicyListener(mVcnPolicyListener); mVcnManager.removeVcnNetworkPolicyListener(mVcnPolicyListener); mPhone.getCarrierPrivilegesTracker().unregisterCarrierPrivilegesListener(getHandler()); } Loading Loading @@ -3716,16 +3716,15 @@ public class DataConnection extends StateMachine { * * <p>MUST be registered with the associated DataConnection's Handler. */ private class DataConnectionVcnUnderlyingNetworkPolicyListener implements VcnUnderlyingNetworkPolicyListener { private class DataConnectionVcnNetworkPolicyListener implements VcnNetworkPolicyListener { @Override public void onPolicyChanged() { // Poll the current underlying Network policy from VcnManager and send to NetworkAgent. final NetworkCapabilities networkCapabilities = getNetworkCapabilities(); VcnUnderlyingNetworkPolicy policy = mVcnManager.getUnderlyingNetworkPolicy( VcnNetworkPolicyResult policyResult = mVcnManager.applyVcnNetworkPolicy( networkCapabilities, getLinkProperties()); if (policy.isTeardownRequested()) { if (policyResult.isTeardownRequested()) { tearDownAll( Phone.REASON_VCN_REQUESTED_TEARDOWN, DcTracker.RELEASE_TYPE_DETACH, Loading tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java +3 −3 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ import android.content.pm.PackageManager; import android.net.ConnectivityManager; import android.net.NetworkCapabilities; import android.net.vcn.VcnManager; import android.net.vcn.VcnUnderlyingNetworkPolicy; import android.net.vcn.VcnNetworkPolicyResult; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Build; Loading Loading @@ -649,9 +649,9 @@ public abstract class TelephonyTest { doAnswer(invocation -> { NetworkCapabilities nc = invocation.getArgument(0); return new VcnUnderlyingNetworkPolicy( return new VcnNetworkPolicyResult( false /* isTearDownRequested */, nc); }).when(mVcnManager).getUnderlyingNetworkPolicy(any(), any()); }).when(mVcnManager).applyVcnNetworkPolicy(any(), any()); //SIM doReturn(1).when(mTelephonyManager).getSimCount(); Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataConnectionTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -389,7 +389,7 @@ public class DataConnectionTest extends TelephonyTest { .registerForLceInfo(any(Handler.class), eq(DataConnection.EVENT_LINK_CAPACITY_CHANGED), eq(null)); verify(mVcnManager, atLeastOnce()) .getUnderlyingNetworkPolicy( .applyVcnNetworkPolicy( argThat(caps -> caps.hasCapability( NetworkCapabilities.NET_CAPABILITY_NOT_VCN_MANAGED)), Loading Loading
src/java/com/android/internal/telephony/dataconnection/DataConnection.java +19 −20 Original line number Diff line number Diff line Loading @@ -40,8 +40,8 @@ import android.net.RouteInfo; import android.net.SocketKeepalive; import android.net.TelephonyNetworkSpecifier; import android.net.vcn.VcnManager; import android.net.vcn.VcnManager.VcnUnderlyingNetworkPolicyListener; import android.net.vcn.VcnUnderlyingNetworkPolicy; import android.net.vcn.VcnManager.VcnNetworkPolicyListener; import android.net.vcn.VcnNetworkPolicyResult; import android.os.AsyncResult; import android.os.HandlerExecutor; import android.os.Message; Loading Loading @@ -332,8 +332,8 @@ public class DataConnection extends StateMachine { PendingIntent mReconnectIntent = null; /** Class used to track VCN-defined Network policies for this DcNetworkAgent. */ private final VcnUnderlyingNetworkPolicyListener mVcnPolicyListener = new DataConnectionVcnUnderlyingNetworkPolicyListener(); private final VcnNetworkPolicyListener mVcnPolicyListener = new DataConnectionVcnNetworkPolicyListener(); // ***** Event codes for driving the state machine, package visible for Dcc static final int BASE = Protocol.BASE_DATA_CONNECTION; Loading Loading @@ -1769,13 +1769,13 @@ public class DataConnection extends StateMachine { * <p>Determining if the Network is VCN-managed requires polling VcnManager. */ private boolean isVcnManaged(NetworkCapabilities networkCapabilities) { VcnUnderlyingNetworkPolicy networkPolicy = mVcnManager.getUnderlyingNetworkPolicy(networkCapabilities, getLinkProperties()); VcnNetworkPolicyResult policyResult = mVcnManager.applyVcnNetworkPolicy(networkCapabilities, getLinkProperties()); // if the Network does have capability NOT_VCN_MANAGED, return false to indicate it's not // VCN-managed return !networkPolicy .getMergedNetworkCapabilities() return !policyResult .getNetworkCapabilities() .hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VCN_MANAGED); } Loading Loading @@ -2588,9 +2588,9 @@ public class DataConnection extends StateMachine { + ", mUnmeteredUseOnly = " + mUnmeteredUseOnly); } // Always register a VcnUnderlyingNetworkPolicyListener, regardless of whether this is a // handover or new Network. mVcnManager.addVcnUnderlyingNetworkPolicyListener( // Always register a VcnNetworkPolicyListener, regardless of whether this is a handover // or new Network. mVcnManager.addVcnNetworkPolicyListener( new HandlerExecutor(getHandler()), mVcnPolicyListener); if (mConnectionParams != null Loading Loading @@ -2644,10 +2644,10 @@ public class DataConnection extends StateMachine { mNetworkAgent = new DcNetworkAgent(DataConnection.this, mPhone, mScore, configBuilder.build(), provider, mTransportType); VcnUnderlyingNetworkPolicy policy = mVcnManager.getUnderlyingNetworkPolicy( VcnNetworkPolicyResult policyResult = mVcnManager.applyVcnNetworkPolicy( getNetworkCapabilities(), getLinkProperties()); if (policy.isTeardownRequested()) { if (policyResult.isTeardownRequested()) { tearDownAll( Phone.REASON_VCN_REQUESTED_TEARDOWN, DcTracker.RELEASE_TYPE_DETACH, Loading Loading @@ -2706,7 +2706,7 @@ public class DataConnection extends StateMachine { mCid, mApnSetting.getApnTypeBitmask(), RilDataCall.State.DISCONNECTED); mDataCallSessionStats.onDataCallDisconnected(); mVcnManager.removeVcnUnderlyingNetworkPolicyListener(mVcnPolicyListener); mVcnManager.removeVcnNetworkPolicyListener(mVcnPolicyListener); mPhone.getCarrierPrivilegesTracker().unregisterCarrierPrivilegesListener(getHandler()); } Loading Loading @@ -3716,16 +3716,15 @@ public class DataConnection extends StateMachine { * * <p>MUST be registered with the associated DataConnection's Handler. */ private class DataConnectionVcnUnderlyingNetworkPolicyListener implements VcnUnderlyingNetworkPolicyListener { private class DataConnectionVcnNetworkPolicyListener implements VcnNetworkPolicyListener { @Override public void onPolicyChanged() { // Poll the current underlying Network policy from VcnManager and send to NetworkAgent. final NetworkCapabilities networkCapabilities = getNetworkCapabilities(); VcnUnderlyingNetworkPolicy policy = mVcnManager.getUnderlyingNetworkPolicy( VcnNetworkPolicyResult policyResult = mVcnManager.applyVcnNetworkPolicy( networkCapabilities, getLinkProperties()); if (policy.isTeardownRequested()) { if (policyResult.isTeardownRequested()) { tearDownAll( Phone.REASON_VCN_REQUESTED_TEARDOWN, DcTracker.RELEASE_TYPE_DETACH, Loading
tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java +3 −3 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ import android.content.pm.PackageManager; import android.net.ConnectivityManager; import android.net.NetworkCapabilities; import android.net.vcn.VcnManager; import android.net.vcn.VcnUnderlyingNetworkPolicy; import android.net.vcn.VcnNetworkPolicyResult; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Build; Loading Loading @@ -649,9 +649,9 @@ public abstract class TelephonyTest { doAnswer(invocation -> { NetworkCapabilities nc = invocation.getArgument(0); return new VcnUnderlyingNetworkPolicy( return new VcnNetworkPolicyResult( false /* isTearDownRequested */, nc); }).when(mVcnManager).getUnderlyingNetworkPolicy(any(), any()); }).when(mVcnManager).applyVcnNetworkPolicy(any(), any()); //SIM doReturn(1).when(mTelephonyManager).getSimCount(); Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataConnectionTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -389,7 +389,7 @@ public class DataConnectionTest extends TelephonyTest { .registerForLceInfo(any(Handler.class), eq(DataConnection.EVENT_LINK_CAPACITY_CHANGED), eq(null)); verify(mVcnManager, atLeastOnce()) .getUnderlyingNetworkPolicy( .applyVcnNetworkPolicy( argThat(caps -> caps.hasCapability( NetworkCapabilities.NET_CAPABILITY_NOT_VCN_MANAGED)), Loading