Make IInputMethodPrivilegedOperations to async (4/N)

-. Remove VoidResultCallback of updateStatusIcon
   and let it be truly asynchronous.
-. Rename this method to updateStatusIconAsync.

Bug: 183587528
Test: atest CtsInputMethodTestCases
Change-Id: Ic7759354ec06a3293ea370ab7afe7422eb2d9356
This commit is contained in:
Wilson Wu
2021-04-28 12:55:10 +08:00
parent f98e690f9e
commit 78a23141be
5 changed files with 11 additions and 15 deletions

View File

@@ -1941,12 +1941,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);
}
/**

View File

@@ -1383,7 +1383,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);
}
/**
@@ -1393,7 +1394,7 @@ public final class InputMethodManager {
*/
@Deprecated
public void hideStatusIcon(IBinder imeToken) {
InputMethodPrivilegedOperationsRegistry.get(imeToken).updateStatusIcon(null, 0);
InputMethodPrivilegedOperationsRegistry.get(imeToken).updateStatusIconAsync(null, 0);
}
/**

View File

@@ -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);

View File

@@ -190,22 +190,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();
}

View File

@@ -6039,10 +6039,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