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

Commit d38e45cb authored by Taran Singh's avatar Taran Singh Committed by Android (Google) Code Review
Browse files

Merge "Adaptive scribe bounds: Connect the dots 4/n" into main

parents fc83498d aa4573bb
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1199,6 +1199,11 @@ public class InputMethodService extends AbstractInputMethodService {
                    // when the stylus is not down.
                    mPrivOps.setHandwritingSurfaceNotTouchable(true);
                    break;
                case MotionEvent.ACTION_OUTSIDE:
                    // TODO(b/350047836): determine if there is use-case for simultaneous touch
                    //  and stylus handwriting and we shouldn't finish for that.
                    finishStylusHandwriting();
                    break;
            }
        }

@@ -3207,6 +3212,7 @@ public class InputMethodService extends AbstractInputMethodService {
            Log.d(TAG, "Setting new handwriting region for stylus handwriting "
                    + handwritingRegion + " from last " + mLastHandwritingRegion);
        }
        mPrivOps.setHandwritingTouchableRegion(handwritingRegion);
        mLastHandwritingRegion = handwritingRegion;
    }

+2 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.internal.inputmethod;

import android.graphics.Region;
import android.net.Uri;
import android.view.inputmethod.ImeTracker;
import android.view.inputmethod.InputMethodSubtype;
@@ -51,4 +52,5 @@ oneway interface IInputMethodPrivilegedOperations {
    void resetStylusHandwriting(int requestId);
    void switchKeyboardLayoutAsync(int direction);
    void setHandwritingSurfaceNotTouchable(boolean notTouchable);
    void setHandwritingTouchableRegion(in Region region);
}
+20 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.annotation.AnyThread;
import android.annotation.DrawableRes;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.graphics.Region;
import android.inputmethodservice.InputMethodService.BackDispositionMode;
import android.inputmethodservice.InputMethodService.ImeWindowVisibility;
import android.net.Uri;
@@ -159,6 +160,25 @@ public final class InputMethodPrivilegedOperations {
        }
    }


    /**
     * Calls {@link IInputMethodPrivilegedOperations#setHandwritingTouchableRegion(Region)}.
     *
     * @param region {@link Region} to set handwritable.
     */
    @AnyThread
    public void setHandwritingTouchableRegion(Region region) {
        final IInputMethodPrivilegedOperations ops = mOps.getAndWarnIfNull();
        if (ops == null) {
            return;
        }
        try {
            ops.setHandwritingTouchableRegion(region);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    /**
     * Calls {@link IInputMethodPrivilegedOperations#createInputContentUriToken(Uri, String,
     * AndroidFuture)}.
+9 −0
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.graphics.Region;
import android.hardware.display.DisplayManagerInternal;
import android.hardware.input.InputManager;
import android.inputmethodservice.InputMethodService;
@@ -6886,6 +6887,14 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
            }
        }

        @BinderThread
        @Override
        public void setHandwritingTouchableRegion(Region region) {
            synchronized (ImfLock.class) {
                mImms.mHwController.setHandwritingTouchableRegion(region);
            }
        }

        @BinderThread
        @Override
        public void createInputContentUriToken(Uri contentUri, String packageName,