diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index f5c6cc9748..bc703a90c5 100755 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java @@ -11138,7 +11138,9 @@ public class ConnectivityService extends IConnectivityManager.Stub new RemoteCallbackList<>(); // Indicate the current system default network activity is active or not. // This needs to be volatile to allow non handler threads to read this value without lock. - private volatile boolean mIsDefaultNetworkActive; + // If there is no default network, default network is considered active to keep the existing + // behavior. Initial value is used until first connect to the default network. + private volatile boolean mIsDefaultNetworkActive = true; private final ArrayMap mActiveIdleTimers = new ArrayMap<>(); private static class IdleTimerParams { @@ -11321,8 +11323,9 @@ public class ConnectivityService extends IConnectivityManager.Stub reportNetworkActive(); } } else { - // If there is no default network, default network is considered inactive. - mIsDefaultNetworkActive = false; + // If there is no default network, default network is considered active to keep the + // existing behavior. + mIsDefaultNetworkActive = true; } } diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java index da5c1755b6..4c2cd5933f 100755 --- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java @@ -11330,7 +11330,8 @@ public class ConnectivityServiceTest { @Test public void testIsDefaultNetworkActiveNoDefaultNetwork() throws Exception { - assertFalse(mCm.isDefaultNetworkActive()); + // isDefaultNetworkActive returns true if there is no default network, which is known issue. + assertTrue(mCm.isDefaultNetworkActive()); final LinkProperties cellLp = new LinkProperties(); cellLp.setInterfaceName(MOBILE_IFNAME); @@ -11342,7 +11343,7 @@ public class ConnectivityServiceTest { mCellAgent.disconnect(); waitForIdle(); - assertFalse(mCm.isDefaultNetworkActive()); + assertTrue(mCm.isDefaultNetworkActive()); } @Test