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

Commit 0e11c3fa authored by Johannes Gallmann's avatar Johannes Gallmann
Browse files

Call blocking assistant invocation binder call on background thread

Bug: 411507730
Test: Manual, i.e. verified that Assistant is launched as expected
Test: presubmit
Flag: com.android.systemui.shared.enable_lpp_assist_invocation_effect
Change-Id: I83bc8074dfe2ac8697d623b3b652dd23e1a773e0
parent c43f791d
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -36,11 +36,13 @@ import com.android.systemui.LauncherProxyService;
import com.android.systemui.assist.domain.interactor.AssistInteractor;
import com.android.systemui.assist.ui.DefaultUiController;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.model.SysUiState;
import com.android.systemui.res.R;
import com.android.systemui.settings.DisplayTracker;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shared.Flags;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.user.domain.interactor.SelectedUserInteractor;
@@ -154,6 +156,7 @@ public class AssistManager {
    private final SelectedUserInteractor mSelectedUserInteractor;
    private final ActivityManager mActivityManager;
    private final AssistInteractor mInteractor;
    private final Handler mBgHandler;

    private final DeviceProvisionedController mDeviceProvisionedController;

@@ -193,6 +196,7 @@ public class AssistManager {
            DefaultUiController defaultUiController,
            AssistLogger assistLogger,
            @Main Handler uiHandler,
            @Background Handler bgHandler,
            UserTracker userTracker,
            DisplayTracker displayTracker,
            SecureSettings secureSettings,
@@ -214,6 +218,7 @@ public class AssistManager {
        mSelectedUserInteractor = selectedUserInteractor;
        mActivityManager = activityManager;
        mInteractor = interactor;
        mBgHandler = bgHandler;

        registerVoiceInteractionSessionListener();
        registerVisualQueryRecognitionStatusListener();
@@ -442,9 +447,16 @@ public class AssistManager {
    }

    private void startVoiceInteractor(Bundle args) {
        if (Flags.enableLppAssistInvocationEffect()) {
            // Use background thread to prevent the binder call from blocking the UI thread
            mBgHandler.post(() -> mAssistUtils.showSessionForActiveService(args,
                    VoiceInteractionSession.SHOW_SOURCE_ASSIST_GESTURE,
                    mContext.getAttributionTag(), null, null));
        } else {
            mAssistUtils.showSessionForActiveService(args,
                VoiceInteractionSession.SHOW_SOURCE_ASSIST_GESTURE, mContext.getAttributionTag(),
                null, null);
                    VoiceInteractionSession.SHOW_SOURCE_ASSIST_GESTURE,
                    mContext.getAttributionTag(), null, null);
        }
    }

    private void registerVisualQueryRecognitionStatusListener() {