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

Commit d8ea4353 authored by Xin Li's avatar Xin Li
Browse files

Merge 2024-06 Release (ab/AP2A.240605.024) to aosp-main-future

Bug: 343100748
Merged-In: Ic3d490422ea7973a21a59b5363232f8b8c06f872
Change-Id: I684660ce44e8a71706c915543c69c21481829699
parents 04160909 0ce5603d
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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 {
+2 −2
Original line number Diff line number Diff line
@@ -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(() -> {
@@ -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;

+0 −15
Original line number Diff line number Diff line
@@ -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
@@ -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();
    }
}
+1 −3
Original line number Diff line number Diff line
@@ -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;

+3 −36
Original line number Diff line number Diff line
@@ -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 {}

@@ -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 //
    //********************************************************************************************//
@@ -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;

@@ -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);
@@ -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()
@@ -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.
@@ -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
@@ -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