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

Commit 5b8c2944 authored by Ling Ma's avatar Ling Ma Committed by Android (Google) Code Review
Browse files

Merge "Extend canoical linger time" into main

parents 39d84b0c 6777240d
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
package: "com.android.internal.telephony.flags"
container: "system"

# OWNER=linggm TARGET=25Q2
flag {
  name: "keep_ping_request"
  namespace: "telephony"
  description: "If ping test is not required to pass, keep the ping request to avoid deactivate followed by reactivate"
  bug: "366318732"
  metadata {
    purpose: PURPOSE_BUGFIX
  }
}

# OWNER=linggm TARGET=25Q2
flag {
  name: "auto_data_switch_enhanced"
+2 −3
Original line number Diff line number Diff line
@@ -342,11 +342,10 @@ public class CellularNetworkValidator {
        if (mState == STATE_VALIDATING) {
            mValidationCallback.onValidationDone(passed, mSubId);
            mState = STATE_VALIDATED;
            boolean keepRequest = mFlags.keepPingRequest()
                    ? (passed || !mRequireTestPass) : (!mRequireTestPass && passed);
            boolean keepRequest = passed || !mRequireTestPass;
            // If validation passed and per request to NOT release after validation, delay cleanup.
            if (keepRequest) {
                mHandler.postDelayed(this::stopValidation, 500);
                mHandler.postDelayed(this::stopValidation, 5000);
            } else {
                stopValidation();
            }
+1 −1
Original line number Diff line number Diff line
@@ -1618,7 +1618,7 @@ public class PhoneSwitcher extends Handler {
        mSetOpptSubCallback = callback;
        long validationTimeout = getValidationTimeout(subIdToValidate, needValidation);
        mValidator.validate(subIdToValidate, validationTimeout,
                mFlags.keepPingRequest() && mPendingSwitchNeedValidation, mValidationCallback);
                mPendingSwitchNeedValidation, mValidationCallback);
    }

    private long getValidationTimeout(int subId, boolean needValidation) {
+10 −3
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.internal.telephony.data;

import static com.android.internal.telephony.TelephonyTestUtils.waitForMs;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -64,6 +62,7 @@ public class CellularNetworkValidatorTest extends TelephonyTest {
            new PhoneCapability(1, 1, null, true, new int[0]);
    private static final PhoneCapability CAPABILITY_WITHOUT_VALIDATION_SUPPORTED =
            new PhoneCapability(1, 1, null, false, new int[0]);
    private static final int CLEANUP_VALIDATION_TIMEOUT = 5010;
    private final CellIdentityLte mCellIdentityLte1 = new CellIdentityLte(123, 456, 0, 0, 111);
    private final CellIdentityLte mCellIdentityLte2 = new CellIdentityLte(321, 654, 0, 0, 222);

@@ -226,7 +225,7 @@ public class CellularNetworkValidatorTest extends TelephonyTest {

        // Mark mValidationCacheTtl to only 1 second.
        setCacheTtlInCarrierConfig(1000);
        waitForMs(1100);
        moveTimeForward(1100);

        resetStates();
        mValidatorUT.validate(subId, timeout, true, mCallback);
@@ -309,6 +308,8 @@ public class CellularNetworkValidatorTest extends TelephonyTest {
        mValidatorUT.validate(1, timeout, true, mCallback);
        mValidatorUT.mNetworkCallback.onCapabilitiesChanged(null, new NetworkCapabilities()
                .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED));
        moveTimeForward(CLEANUP_VALIDATION_TIMEOUT);
        processAllMessages();
        assertNetworkRecentlyValidated(1, true);

        // Change reg state to a different network.
@@ -340,6 +341,9 @@ public class CellularNetworkValidatorTest extends TelephonyTest {
            mValidatorUT.validate(subId, timeout, true, mCallback);
            mValidatorUT.mNetworkCallback.onCapabilitiesChanged(null, new NetworkCapabilities()
                    .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED));
            // release the request
            moveTimeForward(CLEANUP_VALIDATION_TIMEOUT);
            processAllMessages();
            assertNetworkRecentlyValidated(subId, true);
        }

@@ -457,6 +461,9 @@ public class CellularNetworkValidatorTest extends TelephonyTest {
    }

    private void assertValidationResult(int subId, boolean shouldPass) {
        // release the request
        moveTimeForward(CLEANUP_VALIDATION_TIMEOUT);
        processAllMessages();
        // Verify that validation is over.
        verify(mConnectivityManager).unregisterNetworkCallback(eq(mValidatorUT.mNetworkCallback));
        assertFalse(mValidatorUT.mHandler.hasMessagesOrCallbacks());
+7 −6
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ public class PhoneSwitcherTest extends TelephonyTest {
        processAllFutureMessages();

        // Mock validation failed, expect retry attempt
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(false),
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(true),
                eq(mPhoneSwitcherUT.mValidationCallback));
        mPhoneSwitcherUT.mValidationCallback.onValidationDone(false, 2/*Phone2*/);
        processAllMessages();
@@ -227,6 +227,7 @@ public class PhoneSwitcherTest extends TelephonyTest {

        // Test clear failed count upon switch succeeded.
        mAutoDataSwitchCallback.onRequireValidation(1/*Phone2*/, true);
        moveTimeForward(5100);
        processAllFutureMessages();
        mPhoneSwitcherUT.mValidationCallback.onValidationDone(true, 2/*Phone2*/);
        processAllMessages();
@@ -623,7 +624,7 @@ public class PhoneSwitcherTest extends TelephonyTest {
        // Set sub 2 as preferred sub should make phone 1 activated and phone 0 deactivated.
        mPhoneSwitcherUT.trySetOpportunisticDataSubscription(2, true, null);
        processAllMessages();
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(false),
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(true),
                eq(mPhoneSwitcherUT.mValidationCallback));
        // Validation failed. Preferred data sub should remain 1, data phone should remain 0.
        mPhoneSwitcherUT.mValidationCallback.onValidationDone(false, 2);
@@ -644,7 +645,7 @@ public class PhoneSwitcherTest extends TelephonyTest {
        mPhoneSwitcherUT.trySetOpportunisticDataSubscription(
                SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, true, null);
        processAllMessages();
        verify(mCellularNetworkValidator).validate(eq(1), eq(timeout), eq(false),
        verify(mCellularNetworkValidator).validate(eq(1), eq(timeout), eq(true),
                eq(mPhoneSwitcherUT.mValidationCallback));
        mPhoneSwitcherUT.mValidationCallback.onValidationDone(true, 1);
        processAllMessages();
@@ -874,7 +875,7 @@ public class PhoneSwitcherTest extends TelephonyTest {

        // verify the attempt to do auto data switch to Phone2(nDDS)
        processAllFutureMessages();
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(false),
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(true),
                eq(mPhoneSwitcherUT.mValidationCallback));

        // Phone2 has holding call on VoWifi, no need to switch data
@@ -1258,7 +1259,7 @@ public class PhoneSwitcherTest extends TelephonyTest {
        clearInvocations(mCellularNetworkValidator);
        mPhoneSwitcherUT.trySetOpportunisticDataSubscription(2, true, mSetOpptDataCallback1);
        processAllMessages();
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(false),
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(true),
                eq(mPhoneSwitcherUT.mValidationCallback));
        doReturn(true).when(mCellularNetworkValidator).isValidating();
        mPhoneSwitcherUT.trySetOpportunisticDataSubscription(2, true, mSetOpptDataCallback2);
@@ -1282,7 +1283,7 @@ public class PhoneSwitcherTest extends TelephonyTest {
        // Back to back call, call 1 to switch to subId 2, call 2 to switch back.
        mPhoneSwitcherUT.trySetOpportunisticDataSubscription(2, true, mSetOpptDataCallback1);
        processAllMessages();
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(false),
        verify(mCellularNetworkValidator).validate(eq(2), anyLong(), eq(true),
                eq(mPhoneSwitcherUT.mValidationCallback));
        doReturn(true).when(mCellularNetworkValidator).isValidating();
        mPhoneSwitcherUT.trySetOpportunisticDataSubscription(