Merge "Notifies correct device state callback on cancellation" into sc-v2-dev

This commit is contained in:
Kenneth Ford
2021-11-16 22:33:29 +00:00
committed by Android (Google) Code Review
3 changed files with 32 additions and 4 deletions

View File

@@ -96,7 +96,7 @@ public final class DeviceStateManager {
public void requestState(@NonNull DeviceStateRequest request,
@Nullable @CallbackExecutor Executor executor,
@Nullable DeviceStateRequest.Callback callback) {
mGlobal.requestState(request, callback, executor);
mGlobal.requestState(request, executor, callback);
}
/**

View File

@@ -117,7 +117,7 @@ public final class DeviceStateManagerGlobal {
* @see DeviceStateRequest
*/
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) {
throw new IllegalArgumentException("Callback must be supplied with executor.");
} 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
* {@link #requestState(DeviceStateRequest, DeviceStateRequest.Callback, Executor)}.
* {@link #requestState(DeviceStateRequest, Executor, DeviceStateRequest.Callback)}.
*
* @see DeviceStateManager#cancelRequest(DeviceStateRequest)
*/
@@ -408,7 +408,7 @@ public final class DeviceStateManagerGlobal {
return;
}
mExecutor.execute(() -> mCallback.onRequestSuspended(mRequest));
mExecutor.execute(() -> mCallback.onRequestCanceled(mRequest));
}
}
}

View File

@@ -160,6 +160,34 @@ public final class DeviceStateManagerGlobalTest {
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 {
public static final class Request {
public final IBinder token;