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

Commit 5e70b5ef authored by Kevin Chyn's avatar Kevin Chyn
Browse files

Do not handle requests on system_server thread

1) Do not block system_server for sysui stuff
2) Access sysui variables from correct thread

Bug: 187460696
Test: Manual
Change-Id: I81f1dfc1122728dff37e8c7eccbf987bf1741435
parent b485b356
Loading
Loading
Loading
Loading
+38 −25
Original line number Diff line number Diff line
@@ -225,6 +225,7 @@ public class UdfpsController implements DozeReceiver {
        @Override
        public void showUdfpsOverlay(int sensorId, int reason,
                @NonNull IUdfpsOverlayControllerCallback callback) {
            mFgExecutor.execute(() -> {
                final UdfpsEnrollHelper enrollHelper;
                if (reason == IUdfpsOverlayController.REASON_ENROLL_FIND_SENSOR
                        || reason == IUdfpsOverlayController.REASON_ENROLL_ENROLLING) {
@@ -235,38 +236,50 @@ public class UdfpsController implements DozeReceiver {

                mServerRequest = new ServerRequest(reason, callback, enrollHelper);
                updateOverlay();
            });
        }

        @Override
        public void hideUdfpsOverlay(int sensorId) {
            mFgExecutor.execute(() -> {
                mServerRequest = null;
                updateOverlay();
            });
        }

        @Override
        public void onEnrollmentProgress(int sensorId, int remaining) {
            mFgExecutor.execute(() -> {
                if (mServerRequest == null) {
                    Log.e(TAG, "onEnrollProgress received but serverRequest is null");
                    return;
                }

                mServerRequest.onEnrollmentProgress(remaining);
            });
        }

        @Override
        public void onEnrollmentHelp(int sensorId) {
            mFgExecutor.execute(() -> {
                if (mServerRequest == null) {
                    Log.e(TAG, "onEnrollmentHelp received but serverRequest is null");
                    return;
                }

                mServerRequest.onEnrollmentHelp();
            });
        }

        @Override
        public void setDebugMessage(int sensorId, String message) {
            mFgExecutor.execute(() -> {
                if (mView == null) {
                    return;
                }

                mView.setDebugMessage(message);
            });
        }
    }