Loading flags/network.aconfig +6 −2 Original line number Diff line number Diff line Loading @@ -2,10 +2,14 @@ package: "com.android.internal.telephony.flags" container: "system" flag { name: "enable_carrier_config_n1_control" name: "enable_carrier_config_n1_control_attempt2" namespace: "telephony" description: "enabling this flag allows KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY to control N1 mode enablement" bug:"302033535" bug:"328848947" metadata { purpose: PURPOSE_BUGFIX } } flag { Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +2 −2 Original line number Diff line number Diff line Loading @@ -2443,7 +2443,7 @@ public class GsmCdmaPhone extends Phone { */ @Override public void setN1ModeEnabled(boolean enable, @Nullable Message result) { if (mFeatureFlags.enableCarrierConfigN1Control()) { if (mFeatureFlags.enableCarrierConfigN1ControlAttempt2()) { // This might be called by IMS on another thread, so to avoid the requirement to // lock, post it through the handler. post(() -> { Loading Loading @@ -2484,7 +2484,7 @@ public class GsmCdmaPhone extends Phone { /** Only called on the handler thread. */ private void updateCarrierN1ModeSupported(@NonNull PersistableBundle b) { if (!mFeatureFlags.enableCarrierConfigN1Control()) return; if (!mFeatureFlags.enableCarrierConfigN1ControlAttempt2()) return; if (!CarrierConfigManager.isConfigForIdentifiedCarrier(b)) return; Loading src/java/com/android/internal/telephony/data/DataConfigManager.java +0 −15 Original line number Diff line number Diff line Loading @@ -1435,18 +1435,6 @@ public class DataConfigManager extends Handler { com.android.internal.R.bool.config_honor_data_retry_timer_for_emergency_network); } /** * @return The capabilities that network will be forced to mark as cellular transport. */ public @NetCapability Set<Integer> getForcedCellularTransportCapabilities() { String[] forcedCellularTransportCapabilities = mResources.getStringArray( com.android.internal.R.array.config_force_cellular_transport_capabilities); return Arrays.stream(forcedCellularTransportCapabilities) .map(DataUtils::getNetworkCapabilityFromString) .collect(Collectors.toSet()); } /** * Log debug messages. * @param s debug messages Loading Loading @@ -1555,9 +1543,6 @@ public class DataConfigManager extends Handler { pw.println("isTetheringProfileDisabledForRoaming=" + isTetheringProfileDisabledForRoaming()); pw.println("allowClearInitialAttachDataProfile=" + allowClearInitialAttachDataProfile()); pw.println("forcedCellularTransportCapabilities=" + getForcedCellularTransportCapabilities() .stream().map(DataUtils::networkCapabilityToString) .collect(Collectors.joining(","))); pw.decreaseIndent(); } } src/java/com/android/internal/telephony/data/DataEvaluation.java +1 −3 Original line number Diff line number Diff line Loading @@ -346,9 +346,7 @@ public class DataEvaluation { /** Handover max retry stopped but network is not on the preferred transport. */ HANDOVER_RETRY_STOPPED(true), /** BootStrap sim data limit reached. */ DATA_LIMIT_REACHED(true), /** Data network connectivity transport not allowed. */ DATA_NETWORK_TRANSPORT_NOT_ALLOWED(true); DATA_LIMIT_REACHED(true); private final boolean mIsHardReason; Loading src/java/com/android/internal/telephony/data/DataNetwork.java +3 −36 Original line number Diff line number Diff line Loading @@ -314,7 +314,6 @@ public class DataNetwork extends StateMachine { TEAR_DOWN_REASON_ONLY_ALLOWED_SINGLE_NETWORK, TEAR_DOWN_REASON_PREFERRED_DATA_SWITCHED, TEAR_DOWN_REASON_DATA_LIMIT_REACHED, TEAR_DOWN_REASON_DATA_NETWORK_TRANSPORT_NOT_ALLOWED, }) public @interface TearDownReason {} Loading Loading @@ -414,9 +413,6 @@ public class DataNetwork extends StateMachine { /** Data network tear down due to bootstrap sim data limit reached. */ public static final int TEAR_DOWN_REASON_DATA_LIMIT_REACHED = 31; /** Data network tear down due to current data network transport mismatch. */ public static final int TEAR_DOWN_REASON_DATA_NETWORK_TRANSPORT_NOT_ALLOWED = 32; //********************************************************************************************// // WHENEVER ADD A NEW TEAR DOWN REASON, PLEASE UPDATE DataDeactivateReasonEnum in enums.proto // //********************************************************************************************// Loading Loading @@ -702,11 +698,6 @@ public class DataNetwork extends StateMachine { */ private boolean mLastKnownRoamingState; /** * The non-terrestrial status */ private final boolean mIsSatellite; /** The reason that why setting up this data network is allowed. */ private @NonNull DataAllowedReason mDataAllowedReason; Loading Loading @@ -997,8 +988,6 @@ public class DataNetwork extends StateMachine { mTransport = transport; mLastKnownDataNetworkType = getDataNetworkType(); mLastKnownRoamingState = mPhone.getServiceState().getDataRoamingFromRegistration(); mIsSatellite = mPhone.getServiceState().isUsingNonTerrestrialNetwork() && transport == AccessNetworkConstants.TRANSPORT_TYPE_WWAN; mDataAllowedReason = dataAllowedReason; dataProfile.setLastSetupTimestamp(SystemClock.elapsedRealtime()); mAttachedNetworkRequestList.addAll(networkRequestList); Loading Loading @@ -2224,27 +2213,12 @@ public class DataNetwork extends StateMachine { } } /** * @return {@code true} if this is a satellite data network. */ public boolean isSatellite() { return mIsSatellite; } /** * Update the network capabilities. */ private void updateNetworkCapabilities() { final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder(); if (mFlags.carrierEnabledSatelliteFlag() && mIsSatellite && mDataConfigManager.getForcedCellularTransportCapabilities().stream() .noneMatch(this::hasNetworkCapabilityInNetworkRequests)) { builder.addTransportType(NetworkCapabilities.TRANSPORT_SATELLITE); } else { builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); } final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); boolean roaming = mPhone.getServiceState().getDataRoaming(); builder.setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder() Loading Loading @@ -2411,11 +2385,6 @@ public class DataNetwork extends StateMachine { builder.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED); } // mark the network as restricted when service state is non-terrestrial(satellite network) if (mFlags.carrierEnabledSatelliteFlag() && mIsSatellite) { builder.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED); } // Check if the feature force MMS on IWLAN is enabled. When the feature is enabled, MMS // will be attempted on IWLAN if possible, even if existing cellular networks already // supports IWLAN. Loading @@ -2432,7 +2401,7 @@ public class DataNetwork extends StateMachine { DataProfile dataProfile = mDataNetworkController.getDataProfileManager() .getDataProfileForNetworkRequest(new TelephonyNetworkRequest( new NetworkRequest.Builder().addCapability( NetworkCapabilities.NET_CAPABILITY_MMS).build(), mPhone, mFlags), NetworkCapabilities.NET_CAPABILITY_MMS).build(), mPhone), TelephonyManager.NETWORK_TYPE_IWLAN, false, false, false); // If we find another data data profile that can support MMS on IWLAN, then remove // the MMS capability from this cellular network. This will allow IWLAN to be Loading Loading @@ -3821,8 +3790,6 @@ public class DataNetwork extends StateMachine { return "TEAR_DOWN_REASON_PREFERRED_DATA_SWITCHED"; case TEAR_DOWN_REASON_DATA_LIMIT_REACHED: return "TEAR_DOWN_REASON_DATA_LIMIT_REACHED"; case TEAR_DOWN_REASON_DATA_NETWORK_TRANSPORT_NOT_ALLOWED: return "TEAR_DOWN_REASON_DATA_NETWORK_TRANSPORT_NOT_ALLOWED"; default: return "UNKNOWN(" + reason + ")"; } Loading Loading
flags/network.aconfig +6 −2 Original line number Diff line number Diff line Loading @@ -2,10 +2,14 @@ package: "com.android.internal.telephony.flags" container: "system" flag { name: "enable_carrier_config_n1_control" name: "enable_carrier_config_n1_control_attempt2" namespace: "telephony" description: "enabling this flag allows KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY to control N1 mode enablement" bug:"302033535" bug:"328848947" metadata { purpose: PURPOSE_BUGFIX } } flag { Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +2 −2 Original line number Diff line number Diff line Loading @@ -2443,7 +2443,7 @@ public class GsmCdmaPhone extends Phone { */ @Override public void setN1ModeEnabled(boolean enable, @Nullable Message result) { if (mFeatureFlags.enableCarrierConfigN1Control()) { if (mFeatureFlags.enableCarrierConfigN1ControlAttempt2()) { // This might be called by IMS on another thread, so to avoid the requirement to // lock, post it through the handler. post(() -> { Loading Loading @@ -2484,7 +2484,7 @@ public class GsmCdmaPhone extends Phone { /** Only called on the handler thread. */ private void updateCarrierN1ModeSupported(@NonNull PersistableBundle b) { if (!mFeatureFlags.enableCarrierConfigN1Control()) return; if (!mFeatureFlags.enableCarrierConfigN1ControlAttempt2()) return; if (!CarrierConfigManager.isConfigForIdentifiedCarrier(b)) return; Loading
src/java/com/android/internal/telephony/data/DataConfigManager.java +0 −15 Original line number Diff line number Diff line Loading @@ -1435,18 +1435,6 @@ public class DataConfigManager extends Handler { com.android.internal.R.bool.config_honor_data_retry_timer_for_emergency_network); } /** * @return The capabilities that network will be forced to mark as cellular transport. */ public @NetCapability Set<Integer> getForcedCellularTransportCapabilities() { String[] forcedCellularTransportCapabilities = mResources.getStringArray( com.android.internal.R.array.config_force_cellular_transport_capabilities); return Arrays.stream(forcedCellularTransportCapabilities) .map(DataUtils::getNetworkCapabilityFromString) .collect(Collectors.toSet()); } /** * Log debug messages. * @param s debug messages Loading Loading @@ -1555,9 +1543,6 @@ public class DataConfigManager extends Handler { pw.println("isTetheringProfileDisabledForRoaming=" + isTetheringProfileDisabledForRoaming()); pw.println("allowClearInitialAttachDataProfile=" + allowClearInitialAttachDataProfile()); pw.println("forcedCellularTransportCapabilities=" + getForcedCellularTransportCapabilities() .stream().map(DataUtils::networkCapabilityToString) .collect(Collectors.joining(","))); pw.decreaseIndent(); } }
src/java/com/android/internal/telephony/data/DataEvaluation.java +1 −3 Original line number Diff line number Diff line Loading @@ -346,9 +346,7 @@ public class DataEvaluation { /** Handover max retry stopped but network is not on the preferred transport. */ HANDOVER_RETRY_STOPPED(true), /** BootStrap sim data limit reached. */ DATA_LIMIT_REACHED(true), /** Data network connectivity transport not allowed. */ DATA_NETWORK_TRANSPORT_NOT_ALLOWED(true); DATA_LIMIT_REACHED(true); private final boolean mIsHardReason; Loading
src/java/com/android/internal/telephony/data/DataNetwork.java +3 −36 Original line number Diff line number Diff line Loading @@ -314,7 +314,6 @@ public class DataNetwork extends StateMachine { TEAR_DOWN_REASON_ONLY_ALLOWED_SINGLE_NETWORK, TEAR_DOWN_REASON_PREFERRED_DATA_SWITCHED, TEAR_DOWN_REASON_DATA_LIMIT_REACHED, TEAR_DOWN_REASON_DATA_NETWORK_TRANSPORT_NOT_ALLOWED, }) public @interface TearDownReason {} Loading Loading @@ -414,9 +413,6 @@ public class DataNetwork extends StateMachine { /** Data network tear down due to bootstrap sim data limit reached. */ public static final int TEAR_DOWN_REASON_DATA_LIMIT_REACHED = 31; /** Data network tear down due to current data network transport mismatch. */ public static final int TEAR_DOWN_REASON_DATA_NETWORK_TRANSPORT_NOT_ALLOWED = 32; //********************************************************************************************// // WHENEVER ADD A NEW TEAR DOWN REASON, PLEASE UPDATE DataDeactivateReasonEnum in enums.proto // //********************************************************************************************// Loading Loading @@ -702,11 +698,6 @@ public class DataNetwork extends StateMachine { */ private boolean mLastKnownRoamingState; /** * The non-terrestrial status */ private final boolean mIsSatellite; /** The reason that why setting up this data network is allowed. */ private @NonNull DataAllowedReason mDataAllowedReason; Loading Loading @@ -997,8 +988,6 @@ public class DataNetwork extends StateMachine { mTransport = transport; mLastKnownDataNetworkType = getDataNetworkType(); mLastKnownRoamingState = mPhone.getServiceState().getDataRoamingFromRegistration(); mIsSatellite = mPhone.getServiceState().isUsingNonTerrestrialNetwork() && transport == AccessNetworkConstants.TRANSPORT_TYPE_WWAN; mDataAllowedReason = dataAllowedReason; dataProfile.setLastSetupTimestamp(SystemClock.elapsedRealtime()); mAttachedNetworkRequestList.addAll(networkRequestList); Loading Loading @@ -2224,27 +2213,12 @@ public class DataNetwork extends StateMachine { } } /** * @return {@code true} if this is a satellite data network. */ public boolean isSatellite() { return mIsSatellite; } /** * Update the network capabilities. */ private void updateNetworkCapabilities() { final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder(); if (mFlags.carrierEnabledSatelliteFlag() && mIsSatellite && mDataConfigManager.getForcedCellularTransportCapabilities().stream() .noneMatch(this::hasNetworkCapabilityInNetworkRequests)) { builder.addTransportType(NetworkCapabilities.TRANSPORT_SATELLITE); } else { builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); } final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); boolean roaming = mPhone.getServiceState().getDataRoaming(); builder.setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder() Loading Loading @@ -2411,11 +2385,6 @@ public class DataNetwork extends StateMachine { builder.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED); } // mark the network as restricted when service state is non-terrestrial(satellite network) if (mFlags.carrierEnabledSatelliteFlag() && mIsSatellite) { builder.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED); } // Check if the feature force MMS on IWLAN is enabled. When the feature is enabled, MMS // will be attempted on IWLAN if possible, even if existing cellular networks already // supports IWLAN. Loading @@ -2432,7 +2401,7 @@ public class DataNetwork extends StateMachine { DataProfile dataProfile = mDataNetworkController.getDataProfileManager() .getDataProfileForNetworkRequest(new TelephonyNetworkRequest( new NetworkRequest.Builder().addCapability( NetworkCapabilities.NET_CAPABILITY_MMS).build(), mPhone, mFlags), NetworkCapabilities.NET_CAPABILITY_MMS).build(), mPhone), TelephonyManager.NETWORK_TYPE_IWLAN, false, false, false); // If we find another data data profile that can support MMS on IWLAN, then remove // the MMS capability from this cellular network. This will allow IWLAN to be Loading Loading @@ -3821,8 +3790,6 @@ public class DataNetwork extends StateMachine { return "TEAR_DOWN_REASON_PREFERRED_DATA_SWITCHED"; case TEAR_DOWN_REASON_DATA_LIMIT_REACHED: return "TEAR_DOWN_REASON_DATA_LIMIT_REACHED"; case TEAR_DOWN_REASON_DATA_NETWORK_TRANSPORT_NOT_ALLOWED: return "TEAR_DOWN_REASON_DATA_NETWORK_TRANSPORT_NOT_ALLOWED"; default: return "UNKNOWN(" + reason + ")"; } Loading