summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flags/data.aconfig11
-rw-r--r--src/java/com/android/internal/telephony/data/CellularNetworkValidator.java5
-rw-r--r--src/java/com/android/internal/telephony/data/PhoneSwitcher.java2
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/data/CellularNetworkValidatorTest.java13
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/data/PhoneSwitcherTest.java13
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(