Loading core/java/android/inputmethodservice/IInputMethodWrapper.java +28 −8 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ class IInputMethodWrapper extends IInputMethod.Stub private static final int DO_SET_INPUT_CONTEXT = 20; private static final int DO_UNSET_INPUT_CONTEXT = 30; private static final int DO_START_INPUT = 32; private static final int DO_ON_SHOULD_SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN_CHANGED = 35; private static final int DO_CREATE_SESSION = 40; private static final int DO_SET_SESSION_ENABLED = 45; private static final int DO_SHOW_SOFT_INPUT = 60; Loading Loading @@ -175,7 +176,7 @@ class IInputMethodWrapper extends IInputMethod.Stub try { inputMethod.initializeInternal((IBinder) args.arg1, (IInputMethodPrivilegedOperations) args.arg2, msg.arg1, (boolean) args.arg3); (boolean) args.arg3, msg.arg2 != 0); } finally { args.recycle(); } Loading @@ -195,14 +196,22 @@ class IInputMethodWrapper extends IInputMethod.Stub final EditorInfo info = (EditorInfo) args.arg3; final CancellationGroup cancellationGroup = (CancellationGroup) args.arg4; final boolean restarting = args.argi5 == 1; final boolean shouldShowImeSwitcherWhenImeIsShown = args.argi6 != 0; final InputConnection ic = inputContext != null ? new RemoteInputConnection(mTarget, inputContext, cancellationGroup) : null; info.makeCompatible(mTargetSdkVersion); inputMethod.dispatchStartInputWithToken(ic, info, restarting, startInputToken); inputMethod.dispatchStartInputWithToken(ic, info, restarting, startInputToken, shouldShowImeSwitcherWhenImeIsShown); args.recycle(); return; } case DO_ON_SHOULD_SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN_CHANGED: { final boolean shouldShowImeSwitcherWhenImeIsShown = msg.arg1 != 0; inputMethod.onShouldShowImeSwitcherWhenImeIsShownChanged( shouldShowImeSwitcherWhenImeIsShown); return; } case DO_CREATE_SESSION: { SomeArgs args = (SomeArgs)msg.obj; inputMethod.createSession(new InputMethodSessionCallbackWrapper( Loading Loading @@ -291,10 +300,11 @@ class IInputMethodWrapper extends IInputMethod.Stub @BinderThread @Override public void initializeInternal(IBinder token, IInputMethodPrivilegedOperations privOps, int configChanges, boolean stylusHwSupported) { mCaller.executeOrSendMessage( mCaller.obtainMessageIOOO( DO_INITIALIZE_INTERNAL, configChanges, token, privOps, stylusHwSupported)); int configChanges, boolean stylusHwSupported, boolean shouldShowImeSwitcherWhenImeIsShown) { mCaller.executeOrSendMessage(mCaller.obtainMessageIIOOO(DO_INITIALIZE_INTERNAL, configChanges, shouldShowImeSwitcherWhenImeIsShown ? 1 : 0, token, privOps, stylusHwSupported)); } @BinderThread Loading Loading @@ -334,13 +344,23 @@ class IInputMethodWrapper extends IInputMethod.Stub @BinderThread @Override public void startInput(IBinder startInputToken, IInputContext inputContext, EditorInfo attribute, boolean restarting) { EditorInfo attribute, boolean restarting, boolean shouldShowImeSwitcherWhenImeIsShown) { if (mCancellationGroup == null) { Log.e(TAG, "startInput must be called after bindInput."); mCancellationGroup = new CancellationGroup(); } mCaller.executeOrSendMessage(mCaller.obtainMessageOOOOII(DO_START_INPUT, startInputToken, inputContext, attribute, mCancellationGroup, restarting ? 1 : 0, 0 /* unused */)); inputContext, attribute, mCancellationGroup, restarting ? 1 : 0, shouldShowImeSwitcherWhenImeIsShown ? 1 : 0)); } @BinderThread @Override public void onShouldShowImeSwitcherWhenImeIsShownChanged( boolean shouldShowImeSwitcherWhenImeIsShown) { mCaller.executeOrSendMessage(mCaller.obtainMessageI( DO_ON_SHOULD_SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN_CHANGED, shouldShowImeSwitcherWhenImeIsShown ? 1 : 0)); } @BinderThread Loading core/java/android/inputmethodservice/InputMethodService.java +18 −3 Original line number Diff line number Diff line Loading @@ -658,7 +658,7 @@ public class InputMethodService extends AbstractInputMethodService { @Override public final void initializeInternal(@NonNull IBinder token, IInputMethodPrivilegedOperations privilegedOperations, int configChanges, boolean stylusHwSupported) { boolean stylusHwSupported, boolean shouldShowImeSwitcherWhenImeIsShown) { if (mDestroyed) { Log.i(TAG, "The InputMethodService has already onDestroyed()." + "Ignore the initialization."); Loading @@ -671,6 +671,8 @@ public class InputMethodService extends AbstractInputMethodService { if (stylusHwSupported) { mInkWindow = new InkWindow(mWindow.getContext()); } mNavigationBarController.setShouldShowImeSwitcherWhenImeIsShown( shouldShowImeSwitcherWhenImeIsShown); attachToken(token); Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); } Loading Loading @@ -780,9 +782,10 @@ public class InputMethodService extends AbstractInputMethodService { @Override public final void dispatchStartInputWithToken(@Nullable InputConnection inputConnection, @NonNull EditorInfo editorInfo, boolean restarting, @NonNull IBinder startInputToken) { @NonNull IBinder startInputToken, boolean shouldShowImeSwitcherWhenImeIsShown) { mPrivOps.reportStartInputAsync(startInputToken); mNavigationBarController.setShouldShowImeSwitcherWhenImeIsShown( shouldShowImeSwitcherWhenImeIsShown); if (restarting) { restartInput(inputConnection, editorInfo); } else { Loading @@ -790,6 +793,18 @@ public class InputMethodService extends AbstractInputMethodService { } } /** * {@inheritDoc} * @hide */ @MainThread @Override public void onShouldShowImeSwitcherWhenImeIsShownChanged( boolean shouldShowImeSwitcherWhenImeIsShown) { mNavigationBarController.setShouldShowImeSwitcherWhenImeIsShown( shouldShowImeSwitcherWhenImeIsShown); } /** * {@inheritDoc} * @hide Loading core/java/android/inputmethodservice/NavigationBarController.java +39 −1 Original line number Diff line number Diff line Loading @@ -74,6 +74,10 @@ final class NavigationBarController { default void onDestroy() { } default void setShouldShowImeSwitcherWhenImeIsShown( boolean shouldShowImeSwitcherWhenImeIsShown) { } default void onSystemBarAppearanceChanged(@Appearance int appearance) { } Loading Loading @@ -109,6 +113,10 @@ final class NavigationBarController { mImpl.onDestroy(); } void setShouldShowImeSwitcherWhenImeIsShown(boolean shouldShowImeSwitcherWhenImeIsShown) { mImpl.setShouldShowImeSwitcherWhenImeIsShown(shouldShowImeSwitcherWhenImeIsShown); } void onSystemBarAppearanceChanged(@Appearance int appearance) { mImpl.onSystemBarAppearanceChanged(appearance); } Loading Loading @@ -139,6 +147,8 @@ final class NavigationBarController { @Nullable private BroadcastReceiver mSystemOverlayChangedReceiver; private boolean mShouldShowImeSwitcherWhenImeIsShown; @Appearance private int mAppearance; Loading Loading @@ -205,7 +215,9 @@ final class NavigationBarController { // TODO(b/213337792): Support InputMethodService#setBackDisposition(). // TODO(b/213337792): Set NAVIGATION_HINT_IME_SHOWN only when necessary. final int hints = StatusBarManager.NAVIGATION_HINT_BACK_ALT | StatusBarManager.NAVIGATION_HINT_IME_SHOWN; | (mShouldShowImeSwitcherWhenImeIsShown ? StatusBarManager.NAVIGATION_HINT_IME_SHOWN : 0); navigationBarView.setNavigationIconHints(hints); } } else { Loading Loading @@ -422,6 +434,31 @@ final class NavigationBarController { } } @Override public void setShouldShowImeSwitcherWhenImeIsShown( boolean shouldShowImeSwitcherWhenImeIsShown) { if (mDestroyed) { return; } if (mShouldShowImeSwitcherWhenImeIsShown == shouldShowImeSwitcherWhenImeIsShown) { return; } mShouldShowImeSwitcherWhenImeIsShown = shouldShowImeSwitcherWhenImeIsShown; if (mNavigationBarFrame == null) { return; } final NavigationBarView navigationBarView = mNavigationBarFrame.findViewByPredicate(NavigationBarView.class::isInstance); if (navigationBarView == null) { return; } final int hints = StatusBarManager.NAVIGATION_HINT_BACK_ALT | (shouldShowImeSwitcherWhenImeIsShown ? StatusBarManager.NAVIGATION_HINT_IME_SHOWN : 0); navigationBarView.setNavigationIconHints(hints); } @Override public void onSystemBarAppearanceChanged(@Appearance int appearance) { if (mDestroyed) { Loading Loading @@ -471,6 +508,7 @@ final class NavigationBarController { public String toDebugString() { return "{mRenderGesturalNavButtons=" + mRenderGesturalNavButtons + " mNavigationBarFrame=" + mNavigationBarFrame + " mShouldShowImeSwitcherWhenImeIsShown" + mShouldShowImeSwitcherWhenImeIsShown + " mAppearance=0x" + Integer.toHexString(mAppearance) + " mDarkIntensity=" + mDarkIntensity + "}"; Loading core/java/android/view/inputmethod/InputMethod.java +18 −2 Original line number Diff line number Diff line Loading @@ -105,12 +105,14 @@ public interface InputMethod { * current IME. * @param configChanges {@link InputMethodInfo#getConfigChanges()} declared by IME. * @param stylusHwSupported {@link InputMethodInfo#supportsStylusHandwriting()} declared by IME. * @param shouldShowImeSwitcherWhenImeIsShown {@code true} If the IME switcher is expected to be * shown while the IME is shown. * @hide */ @MainThread default void initializeInternal(IBinder token, IInputMethodPrivilegedOperations privilegedOperations, int configChanges, boolean stylusHwSupported) { boolean stylusHwSupported, boolean shouldShowImeSwitcherWhenImeIsShown) { attachToken(token); } Loading Loading @@ -229,6 +231,8 @@ public interface InputMethod { * the next {@link #startInput(InputConnection, EditorInfo, IBinder)} as * long as your implementation of {@link InputMethod} relies on such * IPCs * @param shouldShowImeSwitcherWhenImeIsShown {@code true} If the IME switcher is expected to be * shown while the IME is shown. * @see #startInput(InputConnection, EditorInfo) * @see #restartInput(InputConnection, EditorInfo) * @see EditorInfo Loading @@ -237,7 +241,7 @@ public interface InputMethod { @MainThread default void dispatchStartInputWithToken(@Nullable InputConnection inputConnection, @NonNull EditorInfo editorInfo, boolean restarting, @NonNull IBinder startInputToken) { @NonNull IBinder startInputToken, boolean shouldShowImeSwitcherWhenImeIsShown) { if (restarting) { restartInput(inputConnection, editorInfo); } else { Loading @@ -245,6 +249,18 @@ public interface InputMethod { } } /** * Notifies that whether the IME should show the IME switcher or not is being changed. * * @param shouldShowImeSwitcherWhenImeIsShown {@code true} If the IME switcher is expected to be * shown while the IME is shown. * @hide */ @MainThread default void onShouldShowImeSwitcherWhenImeIsShownChanged( boolean shouldShowImeSwitcherWhenImeIsShown) { } /** * Create a new {@link InputMethodSession} that can be handed to client * applications for interacting with the input method. You can later Loading core/java/com/android/internal/view/IInputMethod.aidl +6 −2 Original line number Diff line number Diff line Loading @@ -37,7 +37,8 @@ import com.android.internal.view.InlineSuggestionsRequestInfo; */ oneway interface IInputMethod { void initializeInternal(IBinder token, IInputMethodPrivilegedOperations privOps, int configChanges, boolean stylusHwSupported); int configChanges, boolean stylusHwSupported, boolean shouldShowImeSwitcherWhenImeIsShown); void onCreateInlineSuggestionsRequest(in InlineSuggestionsRequestInfo requestInfo, in IInlineSuggestionsRequestCallback cb); Loading @@ -47,7 +48,10 @@ oneway interface IInputMethod { void unbindInput(); void startInput(in IBinder startInputToken, in IInputContext inputContext, in EditorInfo attribute, boolean restarting); in EditorInfo attribute, boolean restarting, boolean shouldShowImeSwitcherWhenImeIsShown); void onShouldShowImeSwitcherWhenImeIsShownChanged(boolean shouldShowImeSwitcherWhenImeIsShown); void createSession(in InputChannel channel, IInputSessionCallback callback); Loading Loading
core/java/android/inputmethodservice/IInputMethodWrapper.java +28 −8 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ class IInputMethodWrapper extends IInputMethod.Stub private static final int DO_SET_INPUT_CONTEXT = 20; private static final int DO_UNSET_INPUT_CONTEXT = 30; private static final int DO_START_INPUT = 32; private static final int DO_ON_SHOULD_SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN_CHANGED = 35; private static final int DO_CREATE_SESSION = 40; private static final int DO_SET_SESSION_ENABLED = 45; private static final int DO_SHOW_SOFT_INPUT = 60; Loading Loading @@ -175,7 +176,7 @@ class IInputMethodWrapper extends IInputMethod.Stub try { inputMethod.initializeInternal((IBinder) args.arg1, (IInputMethodPrivilegedOperations) args.arg2, msg.arg1, (boolean) args.arg3); (boolean) args.arg3, msg.arg2 != 0); } finally { args.recycle(); } Loading @@ -195,14 +196,22 @@ class IInputMethodWrapper extends IInputMethod.Stub final EditorInfo info = (EditorInfo) args.arg3; final CancellationGroup cancellationGroup = (CancellationGroup) args.arg4; final boolean restarting = args.argi5 == 1; final boolean shouldShowImeSwitcherWhenImeIsShown = args.argi6 != 0; final InputConnection ic = inputContext != null ? new RemoteInputConnection(mTarget, inputContext, cancellationGroup) : null; info.makeCompatible(mTargetSdkVersion); inputMethod.dispatchStartInputWithToken(ic, info, restarting, startInputToken); inputMethod.dispatchStartInputWithToken(ic, info, restarting, startInputToken, shouldShowImeSwitcherWhenImeIsShown); args.recycle(); return; } case DO_ON_SHOULD_SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN_CHANGED: { final boolean shouldShowImeSwitcherWhenImeIsShown = msg.arg1 != 0; inputMethod.onShouldShowImeSwitcherWhenImeIsShownChanged( shouldShowImeSwitcherWhenImeIsShown); return; } case DO_CREATE_SESSION: { SomeArgs args = (SomeArgs)msg.obj; inputMethod.createSession(new InputMethodSessionCallbackWrapper( Loading Loading @@ -291,10 +300,11 @@ class IInputMethodWrapper extends IInputMethod.Stub @BinderThread @Override public void initializeInternal(IBinder token, IInputMethodPrivilegedOperations privOps, int configChanges, boolean stylusHwSupported) { mCaller.executeOrSendMessage( mCaller.obtainMessageIOOO( DO_INITIALIZE_INTERNAL, configChanges, token, privOps, stylusHwSupported)); int configChanges, boolean stylusHwSupported, boolean shouldShowImeSwitcherWhenImeIsShown) { mCaller.executeOrSendMessage(mCaller.obtainMessageIIOOO(DO_INITIALIZE_INTERNAL, configChanges, shouldShowImeSwitcherWhenImeIsShown ? 1 : 0, token, privOps, stylusHwSupported)); } @BinderThread Loading Loading @@ -334,13 +344,23 @@ class IInputMethodWrapper extends IInputMethod.Stub @BinderThread @Override public void startInput(IBinder startInputToken, IInputContext inputContext, EditorInfo attribute, boolean restarting) { EditorInfo attribute, boolean restarting, boolean shouldShowImeSwitcherWhenImeIsShown) { if (mCancellationGroup == null) { Log.e(TAG, "startInput must be called after bindInput."); mCancellationGroup = new CancellationGroup(); } mCaller.executeOrSendMessage(mCaller.obtainMessageOOOOII(DO_START_INPUT, startInputToken, inputContext, attribute, mCancellationGroup, restarting ? 1 : 0, 0 /* unused */)); inputContext, attribute, mCancellationGroup, restarting ? 1 : 0, shouldShowImeSwitcherWhenImeIsShown ? 1 : 0)); } @BinderThread @Override public void onShouldShowImeSwitcherWhenImeIsShownChanged( boolean shouldShowImeSwitcherWhenImeIsShown) { mCaller.executeOrSendMessage(mCaller.obtainMessageI( DO_ON_SHOULD_SHOW_IME_SWITCHER_WHEN_IME_IS_SHOWN_CHANGED, shouldShowImeSwitcherWhenImeIsShown ? 1 : 0)); } @BinderThread Loading
core/java/android/inputmethodservice/InputMethodService.java +18 −3 Original line number Diff line number Diff line Loading @@ -658,7 +658,7 @@ public class InputMethodService extends AbstractInputMethodService { @Override public final void initializeInternal(@NonNull IBinder token, IInputMethodPrivilegedOperations privilegedOperations, int configChanges, boolean stylusHwSupported) { boolean stylusHwSupported, boolean shouldShowImeSwitcherWhenImeIsShown) { if (mDestroyed) { Log.i(TAG, "The InputMethodService has already onDestroyed()." + "Ignore the initialization."); Loading @@ -671,6 +671,8 @@ public class InputMethodService extends AbstractInputMethodService { if (stylusHwSupported) { mInkWindow = new InkWindow(mWindow.getContext()); } mNavigationBarController.setShouldShowImeSwitcherWhenImeIsShown( shouldShowImeSwitcherWhenImeIsShown); attachToken(token); Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); } Loading Loading @@ -780,9 +782,10 @@ public class InputMethodService extends AbstractInputMethodService { @Override public final void dispatchStartInputWithToken(@Nullable InputConnection inputConnection, @NonNull EditorInfo editorInfo, boolean restarting, @NonNull IBinder startInputToken) { @NonNull IBinder startInputToken, boolean shouldShowImeSwitcherWhenImeIsShown) { mPrivOps.reportStartInputAsync(startInputToken); mNavigationBarController.setShouldShowImeSwitcherWhenImeIsShown( shouldShowImeSwitcherWhenImeIsShown); if (restarting) { restartInput(inputConnection, editorInfo); } else { Loading @@ -790,6 +793,18 @@ public class InputMethodService extends AbstractInputMethodService { } } /** * {@inheritDoc} * @hide */ @MainThread @Override public void onShouldShowImeSwitcherWhenImeIsShownChanged( boolean shouldShowImeSwitcherWhenImeIsShown) { mNavigationBarController.setShouldShowImeSwitcherWhenImeIsShown( shouldShowImeSwitcherWhenImeIsShown); } /** * {@inheritDoc} * @hide Loading
core/java/android/inputmethodservice/NavigationBarController.java +39 −1 Original line number Diff line number Diff line Loading @@ -74,6 +74,10 @@ final class NavigationBarController { default void onDestroy() { } default void setShouldShowImeSwitcherWhenImeIsShown( boolean shouldShowImeSwitcherWhenImeIsShown) { } default void onSystemBarAppearanceChanged(@Appearance int appearance) { } Loading Loading @@ -109,6 +113,10 @@ final class NavigationBarController { mImpl.onDestroy(); } void setShouldShowImeSwitcherWhenImeIsShown(boolean shouldShowImeSwitcherWhenImeIsShown) { mImpl.setShouldShowImeSwitcherWhenImeIsShown(shouldShowImeSwitcherWhenImeIsShown); } void onSystemBarAppearanceChanged(@Appearance int appearance) { mImpl.onSystemBarAppearanceChanged(appearance); } Loading Loading @@ -139,6 +147,8 @@ final class NavigationBarController { @Nullable private BroadcastReceiver mSystemOverlayChangedReceiver; private boolean mShouldShowImeSwitcherWhenImeIsShown; @Appearance private int mAppearance; Loading Loading @@ -205,7 +215,9 @@ final class NavigationBarController { // TODO(b/213337792): Support InputMethodService#setBackDisposition(). // TODO(b/213337792): Set NAVIGATION_HINT_IME_SHOWN only when necessary. final int hints = StatusBarManager.NAVIGATION_HINT_BACK_ALT | StatusBarManager.NAVIGATION_HINT_IME_SHOWN; | (mShouldShowImeSwitcherWhenImeIsShown ? StatusBarManager.NAVIGATION_HINT_IME_SHOWN : 0); navigationBarView.setNavigationIconHints(hints); } } else { Loading Loading @@ -422,6 +434,31 @@ final class NavigationBarController { } } @Override public void setShouldShowImeSwitcherWhenImeIsShown( boolean shouldShowImeSwitcherWhenImeIsShown) { if (mDestroyed) { return; } if (mShouldShowImeSwitcherWhenImeIsShown == shouldShowImeSwitcherWhenImeIsShown) { return; } mShouldShowImeSwitcherWhenImeIsShown = shouldShowImeSwitcherWhenImeIsShown; if (mNavigationBarFrame == null) { return; } final NavigationBarView navigationBarView = mNavigationBarFrame.findViewByPredicate(NavigationBarView.class::isInstance); if (navigationBarView == null) { return; } final int hints = StatusBarManager.NAVIGATION_HINT_BACK_ALT | (shouldShowImeSwitcherWhenImeIsShown ? StatusBarManager.NAVIGATION_HINT_IME_SHOWN : 0); navigationBarView.setNavigationIconHints(hints); } @Override public void onSystemBarAppearanceChanged(@Appearance int appearance) { if (mDestroyed) { Loading Loading @@ -471,6 +508,7 @@ final class NavigationBarController { public String toDebugString() { return "{mRenderGesturalNavButtons=" + mRenderGesturalNavButtons + " mNavigationBarFrame=" + mNavigationBarFrame + " mShouldShowImeSwitcherWhenImeIsShown" + mShouldShowImeSwitcherWhenImeIsShown + " mAppearance=0x" + Integer.toHexString(mAppearance) + " mDarkIntensity=" + mDarkIntensity + "}"; Loading
core/java/android/view/inputmethod/InputMethod.java +18 −2 Original line number Diff line number Diff line Loading @@ -105,12 +105,14 @@ public interface InputMethod { * current IME. * @param configChanges {@link InputMethodInfo#getConfigChanges()} declared by IME. * @param stylusHwSupported {@link InputMethodInfo#supportsStylusHandwriting()} declared by IME. * @param shouldShowImeSwitcherWhenImeIsShown {@code true} If the IME switcher is expected to be * shown while the IME is shown. * @hide */ @MainThread default void initializeInternal(IBinder token, IInputMethodPrivilegedOperations privilegedOperations, int configChanges, boolean stylusHwSupported) { boolean stylusHwSupported, boolean shouldShowImeSwitcherWhenImeIsShown) { attachToken(token); } Loading Loading @@ -229,6 +231,8 @@ public interface InputMethod { * the next {@link #startInput(InputConnection, EditorInfo, IBinder)} as * long as your implementation of {@link InputMethod} relies on such * IPCs * @param shouldShowImeSwitcherWhenImeIsShown {@code true} If the IME switcher is expected to be * shown while the IME is shown. * @see #startInput(InputConnection, EditorInfo) * @see #restartInput(InputConnection, EditorInfo) * @see EditorInfo Loading @@ -237,7 +241,7 @@ public interface InputMethod { @MainThread default void dispatchStartInputWithToken(@Nullable InputConnection inputConnection, @NonNull EditorInfo editorInfo, boolean restarting, @NonNull IBinder startInputToken) { @NonNull IBinder startInputToken, boolean shouldShowImeSwitcherWhenImeIsShown) { if (restarting) { restartInput(inputConnection, editorInfo); } else { Loading @@ -245,6 +249,18 @@ public interface InputMethod { } } /** * Notifies that whether the IME should show the IME switcher or not is being changed. * * @param shouldShowImeSwitcherWhenImeIsShown {@code true} If the IME switcher is expected to be * shown while the IME is shown. * @hide */ @MainThread default void onShouldShowImeSwitcherWhenImeIsShownChanged( boolean shouldShowImeSwitcherWhenImeIsShown) { } /** * Create a new {@link InputMethodSession} that can be handed to client * applications for interacting with the input method. You can later Loading
core/java/com/android/internal/view/IInputMethod.aidl +6 −2 Original line number Diff line number Diff line Loading @@ -37,7 +37,8 @@ import com.android.internal.view.InlineSuggestionsRequestInfo; */ oneway interface IInputMethod { void initializeInternal(IBinder token, IInputMethodPrivilegedOperations privOps, int configChanges, boolean stylusHwSupported); int configChanges, boolean stylusHwSupported, boolean shouldShowImeSwitcherWhenImeIsShown); void onCreateInlineSuggestionsRequest(in InlineSuggestionsRequestInfo requestInfo, in IInlineSuggestionsRequestCallback cb); Loading @@ -47,7 +48,10 @@ oneway interface IInputMethod { void unbindInput(); void startInput(in IBinder startInputToken, in IInputContext inputContext, in EditorInfo attribute, boolean restarting); in EditorInfo attribute, boolean restarting, boolean shouldShowImeSwitcherWhenImeIsShown); void onShouldShowImeSwitcherWhenImeIsShownChanged(boolean shouldShowImeSwitcherWhenImeIsShown); void createSession(in InputChannel channel, IInputSessionCallback callback); Loading