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

Commit 7a21a312 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Support IME Window to show in secondary display."

parents 85105e56 90120a8b
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -24288,7 +24288,6 @@ HSPLandroid/inputmethodservice/AbstractInputMethodService;->onCreateInputMethodS
HSPLandroid/inputmethodservice/IInputMethodSessionWrapper;->getInternalInputMethodSession()Landroid/view/inputmethod/InputMethodSession;
HSPLandroid/inputmethodservice/IInputMethodWrapper$InputMethodSessionCallbackWrapper;->sessionCreated(Landroid/view/inputmethod/InputMethodSession;)V
HSPLandroid/inputmethodservice/IInputMethodWrapper;-><init>(Landroid/inputmethodservice/AbstractInputMethodService;Landroid/view/inputmethod/InputMethod;)V
HSPLandroid/inputmethodservice/IInputMethodWrapper;->attachToken(Landroid/os/IBinder;)V
HSPLandroid/inputmethodservice/IInputMethodWrapper;->bindInput(Landroid/view/inputmethod/InputBinding;)V
HSPLandroid/inputmethodservice/IInputMethodWrapper;->createSession(Landroid/view/InputChannel;Lcom/android/internal/view/IInputSessionCallback;)V
HSPLandroid/inputmethodservice/IInputMethodWrapper;->executeMessage(Landroid/os/Message;)V
@@ -42280,11 +42279,9 @@ HSPLcom/android/internal/view/IInputContextCallback;->setSelectedText(Ljava/lang
HSPLcom/android/internal/view/IInputContextCallback;->setTextAfterCursor(Ljava/lang/CharSequence;I)V
HSPLcom/android/internal/view/IInputContextCallback;->setTextBeforeCursor(Ljava/lang/CharSequence;I)V
HSPLcom/android/internal/view/IInputMethod$Stub$Proxy;->asBinder()Landroid/os/IBinder;
HSPLcom/android/internal/view/IInputMethod$Stub$Proxy;->attachToken(Landroid/os/IBinder;)V
HSPLcom/android/internal/view/IInputMethod$Stub;-><init>()V
HSPLcom/android/internal/view/IInputMethod$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethod;
HSPLcom/android/internal/view/IInputMethod$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLcom/android/internal/view/IInputMethod;->attachToken(Landroid/os/IBinder;)V
HSPLcom/android/internal/view/IInputMethod;->bindInput(Landroid/view/inputmethod/InputBinding;)V
HSPLcom/android/internal/view/IInputMethod;->changeInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)V
HSPLcom/android/internal/view/IInputMethod;->createSession(Landroid/view/InputChannel;Lcom/android/internal/view/IInputSessionCallback;)V
+4 −4
Original line number Diff line number Diff line
@@ -160,11 +160,10 @@ class IInputMethodWrapper extends IInputMethod.Stub
                args.recycle();
                return;
            }

            case DO_INITIALIZE_INTERNAL: {
                SomeArgs args = (SomeArgs) msg.obj;
                try {
                    inputMethod.initializeInternal((IBinder) args.arg1,
                    inputMethod.initializeInternal((IBinder) args.arg1, msg.arg1,
                            (IInputMethodPrivilegedOperations) args.arg2);
                } finally {
                    args.recycle();
@@ -253,9 +252,10 @@ class IInputMethodWrapper extends IInputMethod.Stub

    @BinderThread
    @Override
    public void initializeInternal(IBinder token, IInputMethodPrivilegedOperations privOps) {
    public void initializeInternal(IBinder token, int displayId,
            IInputMethodPrivilegedOperations privOps) {
        mCaller.executeOrSendMessage(
                mCaller.obtainMessageOO(DO_INITIALIZE_INTERNAL, token, privOps));
                mCaller.obtainMessageIOO(DO_INITIALIZE_INTERNAL, displayId, token, privOps));
    }

    @BinderThread
+22 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.inputmethodservice;

import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
@@ -461,10 +462,11 @@ public class InputMethodService extends AbstractInputMethodService {
         */
        @MainThread
        @Override
        public final void initializeInternal(IBinder token,
        public final void initializeInternal(IBinder token, int displayId,
                IInputMethodPrivilegedOperations privilegedOperations) {
            mPrivOps.set(privilegedOperations);
            mImm.registerInputMethodPrivOps(token, mPrivOps);
            updateInputMethodDisplay(displayId);
            attachToken(token);
        }

@@ -482,6 +484,22 @@ public class InputMethodService extends AbstractInputMethodService {
            mWindow.setToken(token);
        }

        /**
         * {@inheritDoc}
         * @hide
         */
        @MainThread
        @Override
        public void updateInputMethodDisplay(int displayId) {
            // Update display for adding IME window to the right display.
            if (displayId != DEFAULT_DISPLAY) {
                // TODO(b/111364446) Need to address context lifecycle issue if need to re-create
                // for update resources & configuration correctly when show soft input
                // in non-default display.
                updateDisplay(displayId);
            }
        }

        /**
         * {@inheritDoc}
         *
@@ -930,6 +948,9 @@ public class InputMethodService extends AbstractInputMethodService {
        // If the previous IME has occupied non-empty inset in the screen, we need to decide whether
        // we continue to use the same size of the inset or update it
        mShouldClearInsetOfPreviousIme = (mImm.getInputMethodWindowVisibleHeight() > 0);
        // TODO(b/111364446) Need to address context lifecycle issue if need to re-create
        // for update resources & configuration correctly when show soft input
        // in non-default display.
        mInflater = (LayoutInflater)getSystemService(
                Context.LAYOUT_INFLATER_SERVICE);
        mWindow = new SoftInputWindow(this, "InputMethod", mTheme, null, null, mDispatcherState,
+13 −1
Original line number Diff line number Diff line
@@ -89,14 +89,17 @@ public interface InputMethod {
     *
     * @param token special token for the system to identify
     *              {@link InputMethodService}
     * @param displayId The id of the display that current IME shown.
     *                  Used for {{@link #updateInputMethodDisplay(int)}}
     * @param privilegedOperations IPC endpoint to do some privileged
     *                             operations that are allowed only to the
     *                             current IME.
     * @hide
     */
    @MainThread
    default void initializeInternal(IBinder token,
    default void initializeInternal(IBinder token, int displayId,
            IInputMethodPrivilegedOperations privilegedOperations) {
        updateInputMethodDisplay(displayId);
        attachToken(token);
    }

@@ -114,6 +117,15 @@ public interface InputMethod {
    @MainThread
    public void attachToken(IBinder token);

    /**
     * Update context display according to given displayId.
     *
     * @param displayId The id of the display that need to update for context.
     * @hide
     */
    @MainThread
    public void updateInputMethodDisplay(int displayId);

    /**
     * Bind a new application environment in to the input method, so that it
     * can later start and stop input processing.
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ import com.android.internal.view.IInputSessionCallback;
 * {@hide}
 */
oneway interface IInputMethod {
    void initializeInternal(IBinder token, IInputMethodPrivilegedOperations privOps);
    void initializeInternal(IBinder token, int displayId, IInputMethodPrivilegedOperations privOps);

    void bindInput(in InputBinding binding);

Loading