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

Commit 7783a9a8 authored by Feng Cao's avatar Feng Cao Committed by Automerger Merge Worker
Browse files

Merge "Support receiving touch event in the inline suggestion view" into rvc-dev am: 4e20f2b9

Change-Id: Ie6a8e6bc395f5d709d7191d6616eab069f7a352c
parents d97931fd 4e20f2b9
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -144,22 +144,24 @@ public abstract class InlineSuggestionRenderService extends Service {
            final SurfaceControlViewHost host = new SurfaceControlViewHost(this, getDisplay(),
                    hostInputToken);
            host.setView(suggestionRoot, lp);
            suggestionRoot.setOnClickListener((v) -> {

            // Set the suggestion view to be non-focusable so that if its background is set to a
            // ripple drawable, the ripple won't be shown initially.
            suggestionView.setFocusable(false);
            suggestionView.setOnClickListener((v) -> {
                try {
                    if (suggestionView.hasOnClickListeners()) {
                        suggestionView.callOnClick();
                    }
                    callback.onClick();
                } catch (RemoteException e) {
                    Log.w(TAG, "RemoteException calling onClick()");
                }
            });

            suggestionRoot.setOnLongClickListener((v) -> {
                try {
                    if (suggestionView.hasOnLongClickListeners()) {
                        suggestionView.performLongClick();
            final View.OnLongClickListener onLongClickListener =
                    suggestionView.getOnLongClickListener();
            suggestionView.setOnLongClickListener((v) -> {
                if (onLongClickListener != null) {
                    onLongClickListener.onLongClick(v);
                }
                try {
                    callback.onLongClick();
                } catch (RemoteException e) {
                    Log.w(TAG, "RemoteException calling onLongClick()");
+2 −7
Original line number Diff line number Diff line
@@ -51,14 +51,9 @@ public class InlineSuggestionRoot extends FrameLayout {
        setFocusable(false);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return true;
    }

    @Override
    @SuppressLint("ClickableViewAccessibility")
    public boolean onTouchEvent(@NonNull MotionEvent event) {
    public boolean dispatchTouchEvent(@NonNull MotionEvent event) {
        switch (event.getActionMasked()) {
            case MotionEvent.ACTION_DOWN: {
                mDownX = event.getX();
@@ -80,6 +75,6 @@ public class InlineSuggestionRoot extends FrameLayout {
                }
            } break;
        }
        return super.onTouchEvent(event);
        return super.dispatchTouchEvent(event);
    }
}
+10 −0
Original line number Diff line number Diff line
@@ -7262,6 +7262,16 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        return (li != null && li.mOnLongClickListener != null);
    }
    /**
     * @return the registered {@link OnLongClickListener} if there is one, {@code null} otherwise.
     * @hide
     */
    @Nullable
    public OnLongClickListener getOnLongClickListener() {
        ListenerInfo li = mListenerInfo;
        return (li != null) ? li.mOnLongClickListener : null;
    }
    /**
     * Register a callback to be invoked when this view is context clicked. If the view is not
     * context clickable, it becomes context clickable.