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:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user