Merge "Notifies correct device state callback on cancellation" into sc-v2-dev
This commit is contained in:
@@ -96,7 +96,7 @@ public final class DeviceStateManager {
|
|||||||
public void requestState(@NonNull DeviceStateRequest request,
|
public void requestState(@NonNull DeviceStateRequest request,
|
||||||
@Nullable @CallbackExecutor Executor executor,
|
@Nullable @CallbackExecutor Executor executor,
|
||||||
@Nullable DeviceStateRequest.Callback callback) {
|
@Nullable DeviceStateRequest.Callback callback) {
|
||||||
mGlobal.requestState(request, callback, executor);
|
mGlobal.requestState(request, executor, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ public final class DeviceStateManagerGlobal {
|
|||||||
* @see DeviceStateRequest
|
* @see DeviceStateRequest
|
||||||
*/
|
*/
|
||||||
public void requestState(@NonNull DeviceStateRequest request,
|
public void requestState(@NonNull DeviceStateRequest request,
|
||||||
@Nullable DeviceStateRequest.Callback callback, @Nullable Executor executor) {
|
@Nullable Executor executor, @Nullable DeviceStateRequest.Callback callback) {
|
||||||
if (callback == null && executor != null) {
|
if (callback == null && executor != null) {
|
||||||
throw new IllegalArgumentException("Callback must be supplied with executor.");
|
throw new IllegalArgumentException("Callback must be supplied with executor.");
|
||||||
} else if (executor == null && callback != null) {
|
} else if (executor == null && callback != null) {
|
||||||
@@ -149,7 +149,7 @@ public final class DeviceStateManagerGlobal {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Cancels a {@link DeviceStateRequest request} previously submitted with a call to
|
* Cancels a {@link DeviceStateRequest request} previously submitted with a call to
|
||||||
* {@link #requestState(DeviceStateRequest, DeviceStateRequest.Callback, Executor)}.
|
* {@link #requestState(DeviceStateRequest, Executor, DeviceStateRequest.Callback)}.
|
||||||
*
|
*
|
||||||
* @see DeviceStateManager#cancelRequest(DeviceStateRequest)
|
* @see DeviceStateManager#cancelRequest(DeviceStateRequest)
|
||||||
*/
|
*/
|
||||||
@@ -408,7 +408,7 @@ public final class DeviceStateManagerGlobal {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mExecutor.execute(() -> mCallback.onRequestSuspended(mRequest));
|
mExecutor.execute(() -> mCallback.onRequestCanceled(mRequest));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -160,6 +160,34 @@ public final class DeviceStateManagerGlobalTest {
|
|||||||
verify(callback).onStateChanged(eq(mService.getBaseState()));
|
verify(callback).onStateChanged(eq(mService.getBaseState()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void verifyDeviceStateRequestCallbacksCalled() {
|
||||||
|
DeviceStateRequest.Callback callback = mock(TestDeviceStateRequestCallback.class);
|
||||||
|
|
||||||
|
DeviceStateRequest request = DeviceStateRequest.newBuilder(OTHER_DEVICE_STATE).build();
|
||||||
|
mDeviceStateManagerGlobal.requestState(request,
|
||||||
|
ConcurrentUtils.DIRECT_EXECUTOR /* executor */,
|
||||||
|
callback /* callback */);
|
||||||
|
|
||||||
|
verify(callback).onRequestActivated(eq(request));
|
||||||
|
Mockito.reset(callback);
|
||||||
|
|
||||||
|
mDeviceStateManagerGlobal.cancelRequest(request);
|
||||||
|
|
||||||
|
verify(callback).onRequestCanceled(eq(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class TestDeviceStateRequestCallback implements DeviceStateRequest.Callback {
|
||||||
|
@Override
|
||||||
|
public void onRequestActivated(DeviceStateRequest request) { }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRequestCanceled(DeviceStateRequest request) { }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRequestSuspended(DeviceStateRequest request) { }
|
||||||
|
}
|
||||||
|
|
||||||
private static final class TestDeviceStateManagerService extends IDeviceStateManager.Stub {
|
private static final class TestDeviceStateManagerService extends IDeviceStateManager.Stub {
|
||||||
public static final class Request {
|
public static final class Request {
|
||||||
public final IBinder token;
|
public final IBinder token;
|
||||||
|
|||||||
Reference in New Issue
Block a user