Apply ResultCallback to isImeTraceEnabled

With CL[1], the isImeTraceEnabled in InputMethodManager
require to use ResultCallback mechanism. Change this API
usage in DevelopmentTiles.

[1] : I1547b98b2aacf764e33aadc9ab784f2013f58f2f

Bug: 163453493
Test: make RunSettingsRoboTests ROBOTEST_FILTER="WinscopeTraceTest"
Change-Id: I767069892c713023b064525105ef2b55946b7bb8
This commit is contained in:
Wilson Wu
2020-12-11 17:42:38 +08:00
parent 7a418b240e
commit 8279b8ee5a
2 changed files with 15 additions and 9 deletions

View File

@@ -48,6 +48,8 @@ import android.widget.Toast;
import androidx.annotation.VisibleForTesting;
import com.android.internal.app.LocalePicker;
import com.android.internal.inputmethod.Completable;
import com.android.internal.inputmethod.ResultCallbacks;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.view.IInputMethodManager;
import com.android.settings.R;
@@ -260,9 +262,12 @@ public abstract class DevelopmentTiles extends TileService {
return false;
}
private boolean isImeTraceEnabled() {
@VisibleForTesting
boolean isImeTraceEnabled() {
try {
return mInputMethodManager.isImeTraceEnabled();
final Completable.Boolean value = Completable.createBoolean();
mInputMethodManager.isImeTraceEnabled(ResultCallbacks.of(value));
return Completable.getResult(value);
} catch (RemoteException e) {
Log.e(TAG, "Could not get ime trace status, defaulting to false.", e);
}