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

Commit 3601d3f5 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...

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

Change-Id: I214dfe3b72e37f6ff2200a7d8a2cf5d94345290e
parents 44600d7e 6ff3e3b2
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.