Merge "Do not query CS in NetworkProvider constructor" am: bfc3c02f34

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1512873

Change-Id: I227076074a2d58a4b9e5e8aaa972c6338887f568
This commit is contained in:
Remi NGUYEN VAN
2020-12-03 02:17:16 +00:00
committed by Automerger Merge Worker
2 changed files with 14 additions and 7 deletions

View File

@@ -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);
}
}

View File

@@ -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())