diff --git a/core/java/android/hardware/devicestate/DeviceStateManager.java b/core/java/android/hardware/devicestate/DeviceStateManager.java index 95892aa7af813..b06d076fe08eb 100644 --- a/core/java/android/hardware/devicestate/DeviceStateManager.java +++ b/core/java/android/hardware/devicestate/DeviceStateManager.java @@ -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); } /** diff --git a/core/java/android/hardware/devicestate/DeviceStateManagerGlobal.java b/core/java/android/hardware/devicestate/DeviceStateManagerGlobal.java index 904a54b00fa33..85e70b0fb3e95 100644 --- a/core/java/android/hardware/devicestate/DeviceStateManagerGlobal.java +++ b/core/java/android/hardware/devicestate/DeviceStateManagerGlobal.java @@ -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)); } } } diff --git a/core/tests/devicestatetests/src/android/hardware/devicestate/DeviceStateManagerGlobalTest.java b/core/tests/devicestatetests/src/android/hardware/devicestate/DeviceStateManagerGlobalTest.java index 055fc7171fa00..db63e6e0b1875 100644 --- a/core/tests/devicestatetests/src/android/hardware/devicestate/DeviceStateManagerGlobalTest.java +++ b/core/tests/devicestatetests/src/android/hardware/devicestate/DeviceStateManagerGlobalTest.java @@ -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;