Merge "Add a test API for testing NetworkStack.getService"
This commit is contained in:
@@ -1519,6 +1519,7 @@ package android.net {
|
|||||||
|
|
||||||
public class NetworkStack {
|
public class NetworkStack {
|
||||||
method @Nullable public static android.os.IBinder getService();
|
method @Nullable public static android.os.IBinder getService();
|
||||||
|
method public static void setServiceForTest(@Nullable android.os.IBinder);
|
||||||
field public static final String PERMISSION_MAINLINE_NETWORK_STACK = "android.permission.MAINLINE_NETWORK_STACK";
|
field public static final String PERMISSION_MAINLINE_NETWORK_STACK = "android.permission.MAINLINE_NETWORK_STACK";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,9 @@ public class NetworkStack {
|
|||||||
public static final String PERMISSION_MAINLINE_NETWORK_STACK =
|
public static final String PERMISSION_MAINLINE_NETWORK_STACK =
|
||||||
"android.permission.MAINLINE_NETWORK_STACK";
|
"android.permission.MAINLINE_NETWORK_STACK";
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private static volatile IBinder sMockService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get an {@link IBinder} representing the NetworkStack stable AIDL Interface, if registered.
|
* Get an {@link IBinder} representing the NetworkStack stable AIDL Interface, if registered.
|
||||||
* @hide
|
* @hide
|
||||||
@@ -53,9 +56,23 @@ public class NetworkStack {
|
|||||||
@SystemApi
|
@SystemApi
|
||||||
@TestApi
|
@TestApi
|
||||||
public static IBinder getService() {
|
public static IBinder getService() {
|
||||||
|
final IBinder mockService = sMockService;
|
||||||
|
if (mockService != null) return mockService;
|
||||||
return ServiceManager.getService(Context.NETWORK_STACK_SERVICE);
|
return ServiceManager.getService(Context.NETWORK_STACK_SERVICE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set a mock service for testing, to be returned by future calls to {@link #getService()}.
|
||||||
|
*
|
||||||
|
* <p>Passing a {@code null} {@code mockService} resets {@link #getService()} to normal
|
||||||
|
* behavior.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@TestApi
|
||||||
|
public static void setServiceForTest(@Nullable IBinder mockService) {
|
||||||
|
sMockService = mockService;
|
||||||
|
}
|
||||||
|
|
||||||
private NetworkStack() {}
|
private NetworkStack() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user