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

Commit 1d14a338 authored by Yohei Yukawa's avatar Yohei Yukawa Committed by Android (Google) Code Review
Browse files

Merge "Make IInputMethodPrivilegedOperations to async (4/N)" into sc-dev

parents 121f71d4 78a23141
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1947,12 +1947,12 @@ public class InputMethodService extends AbstractInputMethodService {

    public void showStatusIcon(@DrawableRes int iconResId) {
        mStatusIcon = iconResId;
        mPrivOps.updateStatusIcon(getPackageName(), iconResId);
        mPrivOps.updateStatusIconAsync(getPackageName(), iconResId);
    }

    public void hideStatusIcon() {
        mStatusIcon = 0;
        mPrivOps.updateStatusIcon(null, 0);
        mPrivOps.updateStatusIconAsync(null, 0);
    }

    /**
+3 −2
Original line number Diff line number Diff line
@@ -1406,7 +1406,8 @@ public final class InputMethodManager {
     */
    @Deprecated
    public void showStatusIcon(IBinder imeToken, String packageName, @DrawableRes int iconId) {
        InputMethodPrivilegedOperationsRegistry.get(imeToken).updateStatusIcon(packageName, iconId);
        InputMethodPrivilegedOperationsRegistry.get(
                imeToken).updateStatusIconAsync(packageName, iconId);
    }

    /**
@@ -1416,7 +1417,7 @@ public final class InputMethodManager {
     */
    @Deprecated
    public void hideStatusIcon(IBinder imeToken) {
        InputMethodPrivilegedOperationsRegistry.get(imeToken).updateStatusIcon(null, 0);
        InputMethodPrivilegedOperationsRegistry.get(imeToken).updateStatusIconAsync(null, 0);
    }

    /**
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ oneway interface IInputMethodPrivilegedOperations {
            in IVoidResultCallback resultCallback);
    void hideMySoftInput(int flags, in IVoidResultCallback resultCallback);
    void showMySoftInput(int flags, in IVoidResultCallback resultCallback);
    void updateStatusIcon(String packageName, int iconId, in IVoidResultCallback resultCallback);
    void updateStatusIconAsync(String packageName, int iconId);
    void switchToPreviousInputMethod(in IBooleanResultCallback resultCallback);
    void switchToNextInputMethod(boolean onlyCurrentIme, in IBooleanResultCallback resultCallback);
    void shouldOfferSwitchingToNextInputMethod(in IBooleanResultCallback resultCallback);
+3 −6
Original line number Diff line number Diff line
@@ -187,22 +187,19 @@ public final class InputMethodPrivilegedOperations {
    }

    /**
     * Calls {@link IInputMethodPrivilegedOperations#updateStatusIcon(String, int,
     * IVoidResultCallback)}.
     * Calls {@link IInputMethodPrivilegedOperations#updateStatusIconAsync(String, int)}.
     *
     * @param packageName package name from which the status icon should be loaded
     * @param iconResId resource ID of the icon to be loaded
     */
    @AnyThread
    public void updateStatusIcon(String packageName, @DrawableRes int iconResId) {
    public void updateStatusIconAsync(String packageName, @DrawableRes int iconResId) {
        final IInputMethodPrivilegedOperations ops = mOps.getAndWarnIfNull();
        if (ops == null) {
            return;
        }
        try {
            final Completable.Void value = Completable.createVoid();
            ops.updateStatusIcon(packageName, iconResId, ResultCallbacks.of(value));
            Completable.getResult(value);
            ops.updateStatusIconAsync(packageName, iconResId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+2 −4
Original line number Diff line number Diff line
@@ -6089,10 +6089,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub

        @BinderThread
        @Override
        public void updateStatusIcon(String packageName, @DrawableRes int iconId,
                IVoidResultCallback resultCallback) {
            CallbackUtils.onResult(resultCallback,
                    () -> mImms.updateStatusIcon(mToken, packageName, iconId));
        public void updateStatusIconAsync(String packageName, @DrawableRes int iconId) {
            mImms.updateStatusIcon(mToken, packageName, iconId);
        }

        @BinderThread