diff options
5 files changed, 20 insertions, 24 deletions
diff --git a/flags/data.aconfig b/flags/data.aconfig index 1541999364..cdd73ac21c 100644 --- a/flags/data.aconfig +++ b/flags/data.aconfig @@ -3,17 +3,6 @@ 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" namespace: "telephony" description: "Ramp up RAT signal strength based auto data switch" diff --git a/src/java/com/android/internal/telephony/data/CellularNetworkValidator.java b/src/java/com/android/internal/telephony/data/CellularNetworkValidator.java index d57059a5dc..cf3e7d7a67 100644 --- a/src/java/com/android/internal/telephony/data/CellularNetworkValidator.java +++ b/src/java/com/android/internal/telephony/data/CellularNetworkValidator.java @@ -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(); } diff --git a/src/java/com/android/internal/telephony/data/PhoneSwitcher.java b/src/java/com/android/internal/telephony/data/PhoneSwitcher.java index 66c2572952..f76db08be5 100644 --- a/src/java/com/android/internal/telephony/data/PhoneSwitcher.java +++ b/src/java/com/android/internal/telephony/data/PhoneSwitcher.java @@ -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) { diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/CellularNetworkValidatorTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/CellularNetworkValidatorTest.java index 7ae55b7883..cef59d66ea 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/data/CellularNetworkValidatorTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/data/CellularNetworkValidatorTest.java @@ -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()); 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 cd2e88a33a..e9b1cdfd7d 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java @@ -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( |