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

Commit 6ff3e3b2 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

Change-Id: I0574c2704f2a086f59173db067172ec9230a2ce0
parents 7b92fb7f 7783a9a8
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.