diff options
| author | 2020-12-03 03:47:02 +0000 | |
|---|---|---|
| committer | 2020-12-03 03:47:02 +0000 | |
| commit | 09564bbbd8b8c15c13b66bcd7d0ac193412ecf8b (patch) | |
| tree | 5b1db1ca4a22a30b1e07f4a2094b0a604773a77e | |
| parent | 386bec73e4184820b421f03ce56929a3322cd8fc (diff) | |
| parent | 8c09b9d7e51493d2c24987969b03eaee58b35c36 (diff) | |
Merge "Do not query CS in NetworkProvider constructor" am: 692a8748a5 am: 46c03b4179 am: 8c09b9d7e5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1512873
Change-Id: I194f6fed28011702dd86676e5aa422129a903d9c
| -rw-r--r-- | core/java/android/net/NetworkProvider.java | 7 | ||||
| -rw-r--r-- | tests/net/common/java/android/net/NetworkProviderTest.kt | 14 |
2 files changed, 14 insertions, 7 deletions
diff --git a/core/java/android/net/NetworkProvider.java b/core/java/android/net/NetworkProvider.java index a17a49897d39..14cb51c85d06 100644 --- a/core/java/android/net/NetworkProvider.java +++ b/core/java/android/net/NetworkProvider.java @@ -63,7 +63,7 @@ public class NetworkProvider { private final Messenger mMessenger; private final String mName; - private final ConnectivityManager mCm; + private final Context mContext; private int mProviderId = ID_NONE; @@ -78,8 +78,6 @@ public class NetworkProvider { */ @SystemApi public NetworkProvider(@NonNull Context context, @NonNull Looper looper, @NonNull String name) { - mCm = ConnectivityManager.from(context); - Handler handler = new Handler(looper) { @Override public void handleMessage(Message m) { @@ -95,6 +93,7 @@ public class NetworkProvider { } } }; + mContext = context; mMessenger = new Messenger(handler); mName = name; } @@ -158,6 +157,6 @@ public class NetworkProvider { @SystemApi @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void declareNetworkRequestUnfulfillable(@NonNull NetworkRequest request) { - mCm.declareNetworkRequestUnfulfillable(request); + ConnectivityManager.from(mContext).declareNetworkRequestUnfulfillable(request); } } diff --git a/tests/net/common/java/android/net/NetworkProviderTest.kt b/tests/net/common/java/android/net/NetworkProviderTest.kt index dd3f5bebdb8e..77e9f12c7152 100644 --- a/tests/net/common/java/android/net/NetworkProviderTest.kt +++ b/tests/net/common/java/android/net/NetworkProviderTest.kt @@ -33,6 +33,9 @@ import org.junit.After import org.junit.Before import org.junit.Test import org.junit.runner.RunWith +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.mock +import org.mockito.Mockito.verifyNoMoreInteractions import java.util.UUID import kotlin.test.assertEquals import kotlin.test.assertNotEquals @@ -87,8 +90,8 @@ class NetworkProviderTest { ) = seenEvents.poll(DEFAULT_TIMEOUT_MS) { it is T && predicate(it) } } - private fun createNetworkProvider(): TestNetworkProvider { - return TestNetworkProvider(context, mHandlerThread.looper) + private fun createNetworkProvider(ctx: Context = context): TestNetworkProvider { + return TestNetworkProvider(ctx, mHandlerThread.looper) } @Test @@ -169,7 +172,12 @@ class NetworkProviderTest { @Test fun testDeclareNetworkRequestUnfulfillable() { - val provider = createNetworkProvider() + val mockContext = mock(Context::class.java) + val provider = createNetworkProvider(mockContext) + // ConnectivityManager not required at creation time + verifyNoMoreInteractions(mockContext) + doReturn(mCm).`when`(mockContext).getSystemService(Context.CONNECTIVITY_SERVICE) + mCm.registerNetworkProvider(provider) val specifier = StringNetworkSpecifier(UUID.randomUUID().toString()) |