Rename destroyAndAwaitReplacement to unregisterAfterReplacement.

Rename requested by API council.

Fix: 224764301
Test: existing CTS tests updated
Change-Id: Ibab9c9cd64bf0dde1e22705e81cff11d356fc719
This commit is contained in:
Lorenzo Colitti
2022-03-23 23:17:16 +09:00
parent cc49988549
commit a63e2341d6
7 changed files with 18 additions and 18 deletions

View File

@@ -236,7 +236,6 @@ package android.net {
public abstract class NetworkAgent {
ctor public NetworkAgent(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, int, @NonNull android.net.NetworkAgentConfig, @Nullable android.net.NetworkProvider);
ctor public NetworkAgent(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, @NonNull android.net.NetworkScore, @NonNull android.net.NetworkAgentConfig, @Nullable android.net.NetworkProvider);
method public void destroyAndAwaitReplacement(@IntRange(from=0, to=0x1388) int);
method @Nullable public android.net.Network getNetwork();
method public void markConnected();
method public void onAddKeepalivePacketFilter(int, @NonNull android.net.KeepalivePacketData);
@@ -271,6 +270,7 @@ package android.net {
method public void setTeardownDelayMillis(@IntRange(from=0, to=0x1388) int);
method public final void setUnderlyingNetworks(@Nullable java.util.List<android.net.Network>);
method public void unregister();
method public void unregisterAfterReplacement(@IntRange(from=0, to=0x1388) int);
field public static final int VALIDATION_STATUS_NOT_VALID = 2; // 0x2
field public static final int VALIDATION_STATUS_VALID = 1; // 0x1
}

View File

@@ -47,5 +47,5 @@ oneway interface INetworkAgentRegistry {
void sendAddDscpPolicy(in DscpPolicy policy);
void sendRemoveDscpPolicy(int policyId);
void sendRemoveAllDscpPolicies();
void sendDestroyAndAwaitReplacement(int timeoutMillis);
void sendUnregisterAfterReplacement(int timeoutMillis);
}

View File

@@ -440,7 +440,7 @@ public abstract class NetworkAgent {
* arg1 = timeout in milliseconds
* @hide
*/
public static final int EVENT_DESTROY_AND_AWAIT_REPLACEMENT = BASE + 29;
public static final int EVENT_UNREGISTER_AFTER_REPLACEMENT = BASE + 29;
private static NetworkInfo getLegacyNetworkInfo(final NetworkAgentConfig config) {
final NetworkInfo ni = new NetworkInfo(config.legacyType, config.legacySubType,
@@ -984,9 +984,9 @@ public abstract class NetworkAgent {
* @param timeoutMillis the timeout after which this network will be unregistered even if
* {@link #unregister} was not called.
*/
public void destroyAndAwaitReplacement(
public void unregisterAfterReplacement(
@IntRange(from = 0, to = MAX_TEARDOWN_DELAY_MS) int timeoutMillis) {
queueOrSendMessage(reg -> reg.sendDestroyAndAwaitReplacement(timeoutMillis));
queueOrSendMessage(reg -> reg.sendUnregisterAfterReplacement(timeoutMillis));
}
/**

View File

@@ -176,7 +176,7 @@
NetworkMonitor will continue to attempt validation, and if it fails after this time has passed,
the network will be marked unvalidated.
Only supported up to S. On T+, the Wi-Fi code should use destroyAndAwaitReplacement in order
Only supported up to S. On T+, the Wi-Fi code should use unregisterAfterReplacement in order
to ensure that apps see the network disconnect and reconnect. -->
<integer translatable="false" name="config_validationFailureAfterRoamIgnoreTimeMillis">-1</integer>
</resources>

View File

@@ -3648,7 +3648,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
break;
}
case NetworkAgent.EVENT_DESTROY_AND_AWAIT_REPLACEMENT: {
case NetworkAgent.EVENT_UNREGISTER_AFTER_REPLACEMENT: {
// If nai is not yet created, or is already destroyed, ignore.
if (!shouldDestroyNativeNetwork(nai)) break;
@@ -4213,7 +4213,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
private boolean shouldIgnoreValidationFailureAfterRoam(NetworkAgentInfo nai) {
// T+ devices should use destroyAndAwaitReplacement.
// T+ devices should use unregisterAfterReplacement.
if (SdkLevel.isAtLeastT()) return false;
final long blockTimeOut = Long.valueOf(mResources.get().getInteger(
R.integer.config_validationFailureAfterRoamIgnoreTimeMillis));

View File

@@ -736,8 +736,8 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo>, NetworkRa
}
@Override
public void sendDestroyAndAwaitReplacement(final int timeoutMillis) {
mHandler.obtainMessage(NetworkAgent.EVENT_DESTROY_AND_AWAIT_REPLACEMENT,
public void sendUnregisterAfterReplacement(final int timeoutMillis) {
mHandler.obtainMessage(NetworkAgent.EVENT_UNREGISTER_AFTER_REPLACEMENT,
new Pair<>(NetworkAgentInfo.this, timeoutMillis)).sendToTarget();
}
}

View File

@@ -1152,7 +1152,7 @@ class NetworkAgentTest {
}
@Test
fun testDestroyAndAwaitReplacement() {
fun testUnregisterAfterReplacement() {
// Keeps an eye on all test networks.
val matchAllCallback = TestableNetworkCallback(timeoutMs = DEFAULT_TIMEOUT_MS)
registerNetworkCallback(makeTestNetworkRequest(), matchAllCallback)
@@ -1180,15 +1180,15 @@ class NetworkAgentTest {
// Mark the first network as awaiting replacement. This should destroy the underlying
// native network and send onNetworkDestroyed, but will not send any NetworkCallbacks,
// because for callback and scoring purposes network1 is still connected.
agent1.destroyAndAwaitReplacement(5_000 /* timeoutMillis */)
agent1.unregisterAfterReplacement(5_000 /* timeoutMillis */)
agent1.expectCallback<OnNetworkDestroyed>()
assertThrows(IOException::class.java) { network1.bindSocket(DatagramSocket()) }
assertNotNull(mCM.getLinkProperties(network1))
// Calling destroyAndAwaitReplacement more than once has no effect.
// Calling unregisterAfterReplacement more than once has no effect.
// If it did, this test would fail because the 1ms timeout means that the network would be
// torn down before the replacement arrives.
agent1.destroyAndAwaitReplacement(1 /* timeoutMillis */)
agent1.unregisterAfterReplacement(1 /* timeoutMillis */)
// Connect a third network. Because network1 is awaiting replacement, network3 is preferred
// as soon as it validates (until then, it is outscored by network1).
@@ -1216,14 +1216,14 @@ class NetworkAgentTest {
matchAllCallback.expectCallback<Losing>(network3)
testCallback.expectAvailableCallbacks(network4, validated = true)
mCM.unregisterNetworkCallback(agent4callback)
agent3.destroyAndAwaitReplacement(5_000)
agent3.unregisterAfterReplacement(5_000)
agent3.expectCallback<OnNetworkUnwanted>()
matchAllCallback.expectCallback<Lost>(network3, 1000L)
agent3.expectCallback<OnNetworkDestroyed>()
// Now mark network4 awaiting replacement with a low timeout, and check that if no
// replacement arrives, it is torn down.
agent4.destroyAndAwaitReplacement(100 /* timeoutMillis */)
agent4.unregisterAfterReplacement(100 /* timeoutMillis */)
matchAllCallback.expectCallback<Lost>(network4, 1000L /* timeoutMs */)
testCallback.expectCallback<Lost>(network4, 1000L /* timeoutMs */)
agent4.expectCallback<OnNetworkDestroyed>()
@@ -1234,7 +1234,7 @@ class NetworkAgentTest {
val (agent5, network5) = connectNetwork()
matchAllCallback.expectAvailableThenValidatedCallbacks(network5)
testCallback.expectAvailableThenValidatedCallbacks(network5)
agent5.destroyAndAwaitReplacement(5_000 /* timeoutMillis */)
agent5.unregisterAfterReplacement(5_000 /* timeoutMillis */)
agent5.unregister()
matchAllCallback.expectCallback<Lost>(network5, 1000L /* timeoutMs */)
testCallback.expectCallback<Lost>(network5, 1000L /* timeoutMs */)
@@ -1257,7 +1257,7 @@ class NetworkAgentTest {
it.hasCapability(NET_CAPABILITY_VALIDATED)
}
wifiAgent.destroyAndAwaitReplacement(5_000 /* timeoutMillis */)
wifiAgent.unregisterAfterReplacement(5_000 /* timeoutMillis */)
wifiAgent.expectCallback<OnNetworkDestroyed>()
// Once the network is awaiting replacement, changing LinkProperties, NetworkCapabilities or