DO NOT MERGE Ignore DUN in describeImmutableDifferences
This patch changes describeImmutableDifferences in NetworkCapabilities to ignore differences in NET_CAPABILITY_DUN, so that updateCapabilities in ConnectivityService to not report wtf errors when a NetworkAgent degrades its NetworkCapabilities object by removing NET_CAPABILITY_DUN. Bug: 65257223 Test: runtest frameworks-net Change-Id: I115ed1b366da01a3f8c3c6e97e0db8ce995fd377
This commit is contained in:
@@ -772,7 +772,9 @@ public final class NetworkCapabilities implements Parcelable {
|
|||||||
|
|
||||||
// Ignore NOT_METERED being added or removed as it is effectively dynamic. http://b/63326103
|
// Ignore NOT_METERED being added or removed as it is effectively dynamic. http://b/63326103
|
||||||
// TODO: properly support NOT_METERED as a mutable and requestable capability.
|
// TODO: properly support NOT_METERED as a mutable and requestable capability.
|
||||||
final long mask = ~MUTABLE_CAPABILITIES & ~(1 << NET_CAPABILITY_NOT_METERED);
|
// Ignore DUN being added or removed. http://b/65257223.
|
||||||
|
final long mask = ~MUTABLE_CAPABILITIES
|
||||||
|
& ~(1 << NET_CAPABILITY_NOT_METERED) & ~(1 << NET_CAPABILITY_DUN);
|
||||||
long oldImmutableCapabilities = this.mNetworkCapabilities & mask;
|
long oldImmutableCapabilities = this.mNetworkCapabilities & mask;
|
||||||
long newImmutableCapabilities = that.mNetworkCapabilities & mask;
|
long newImmutableCapabilities = that.mNetworkCapabilities & mask;
|
||||||
if (oldImmutableCapabilities != newImmutableCapabilities) {
|
if (oldImmutableCapabilities != newImmutableCapabilities) {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package android.net;
|
package android.net;
|
||||||
|
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_CBS;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_CBS;
|
||||||
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_DUN;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_EIMS;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_EIMS;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED;
|
||||||
@@ -143,6 +144,14 @@ public class NetworkCapabilitiesTest {
|
|||||||
assertEquals("", nc1.describeImmutableDifferences(nc2));
|
assertEquals("", nc1.describeImmutableDifferences(nc2));
|
||||||
assertEquals("", nc1.describeImmutableDifferences(nc1));
|
assertEquals("", nc1.describeImmutableDifferences(nc1));
|
||||||
|
|
||||||
|
// DUN changing (http://b/65257223)
|
||||||
|
nc1 = new NetworkCapabilities()
|
||||||
|
.addCapability(NET_CAPABILITY_DUN)
|
||||||
|
.addCapability(NET_CAPABILITY_INTERNET);
|
||||||
|
nc2 = new NetworkCapabilities().addCapability(NET_CAPABILITY_INTERNET);
|
||||||
|
assertEquals("", nc1.describeImmutableDifferences(nc2));
|
||||||
|
assertEquals("", nc1.describeImmutableDifferences(nc1));
|
||||||
|
|
||||||
// Immutable capability changing
|
// Immutable capability changing
|
||||||
nc1 = new NetworkCapabilities()
|
nc1 = new NetworkCapabilities()
|
||||||
.addCapability(NET_CAPABILITY_INTERNET)
|
.addCapability(NET_CAPABILITY_INTERNET)
|
||||||
|
|||||||
Reference in New Issue
Block a user