Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91d314e4 authored by Kenneth Ford's avatar Kenneth Ford Committed by Automerger Merge Worker
Browse files

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

Merge "Notifies correct device state callback on cancellation" into sc-v2-dev am: 34873949 am: bbf1f135

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

Change-Id: Ie52f5b5595007e4d5a22424a269db215e98838ea
parents fbeb7661 bbf1f135
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
    }

    /**
+3 −3
Original line number Diff line number Diff line
@@ -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));
        }
    }
}
+28 −0
Original line number Diff line number Diff line
@@ -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;