Loading core/java/android/inputmethodservice/RemoteInputConnection.java +6 −6 Original line number Diff line number Diff line Loading @@ -361,9 +361,9 @@ final class RemoteInputConnection implements InputConnection { // This method is not implemented. return false; } final Completable.Int value = mInvoker.requestCursorUpdates(cursorUpdateMode); return Completable.getResultOrZero(value, TAG, "requestCursorUpdates()", mCancellationGroup, MAX_WAIT_TIME_MILLIS) != 0; final Completable.Boolean value = mInvoker.requestCursorUpdates(cursorUpdateMode); return Completable.getResultOrFalse(value, TAG, "requestCursorUpdates()", mCancellationGroup, MAX_WAIT_TIME_MILLIS); } @AnyThread Loading Loading @@ -397,9 +397,9 @@ final class RemoteInputConnection implements InputConnection { inputMethodService.exposeContent(inputContentInfo, this); } final Completable.Int value = mInvoker.commitContent(inputContentInfo, flags, opts); return Completable.getResultOrZero( value, TAG, "commitContent()", mCancellationGroup, MAX_WAIT_TIME_MILLIS) != 0; final Completable.Boolean value = mInvoker.commitContent(inputContentInfo, flags, opts); return Completable.getResultOrFalse( value, TAG, "commitContent()", mCancellationGroup, MAX_WAIT_TIME_MILLIS); } /** Loading core/java/com/android/internal/inputmethod/Completable.java +18 −0 Original line number Diff line number Diff line Loading @@ -543,6 +543,24 @@ public final class Completable { value.getValue(); } /** * Await the result by the {@link Completable.Boolean}, and log it if there is no result after * given timeout. * * @return the result once {@link ValueBase#onComplete()} */ @AnyThread public static boolean getResultOrFalse(@NonNull Completable.Boolean value, String tag, @NonNull String methodName, @Nullable CancellationGroup cancellationGroup, int maxWaitTime) { final boolean timedOut = value.await(maxWaitTime, TimeUnit.MILLISECONDS, cancellationGroup); if (value.hasValue()) { return value.getValue(); } logInternal(tag, methodName, timedOut, maxWaitTime, 0); return false; } /** * Await the result by the {@link Completable.Int}, and log it if there is no result after * given timeout. Loading core/java/com/android/internal/inputmethod/IInputContextInvoker.java +6 −6 Original line number Diff line number Diff line Loading @@ -474,13 +474,13 @@ public final class IInputContextInvoker { * Invokes {@link IInputContext#requestCursorUpdates(int, IIntResultCallback)}. * * @param cursorUpdateMode {@code cursorUpdateMode} parameter to be passed. * @return {@link Completable.Int} that can be used to retrieve the invocation result. * @return {@link Completable.Boolean} that can be used to retrieve the invocation result. * {@link RemoteException} will be treated as an error. */ @AnyThread @NonNull public Completable.Int requestCursorUpdates(int cursorUpdateMode) { final Completable.Int value = Completable.createInt(); public Completable.Boolean requestCursorUpdates(int cursorUpdateMode) { final Completable.Boolean value = Completable.createBoolean(); try { mIInputContext.requestCursorUpdates(cursorUpdateMode, ResultCallbacks.of(value)); } catch (RemoteException e) { Loading @@ -496,14 +496,14 @@ public final class IInputContextInvoker { * @param inputContentInfo {@code inputContentInfo} parameter to be passed. * @param flags {@code flags} parameter to be passed. * @param opts {@code opts} parameter to be passed. * @return {@link Completable.Int} that can be used to retrieve the invocation result. * @return {@link Completable.Boolean} that can be used to retrieve the invocation result. * {@link RemoteException} will be treated as an error. */ @AnyThread @NonNull public Completable.Int commitContent(InputContentInfo inputContentInfo, int flags, public Completable.Boolean commitContent(InputContentInfo inputContentInfo, int flags, Bundle opts) { final Completable.Int value = Completable.createInt(); final Completable.Boolean value = Completable.createBoolean(); try { mIInputContext.commitContent(inputContentInfo, flags, opts, ResultCallbacks.of(value)); } catch (RemoteException e) { Loading core/java/com/android/internal/view/IInputConnectionWrapper.java +7 −6 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.SurroundingText; import com.android.internal.annotations.GuardedBy; import com.android.internal.inputmethod.IBooleanResultCallback; import com.android.internal.inputmethod.ICharSequenceResultCallback; import com.android.internal.inputmethod.IExtractedTextResultCallback; import com.android.internal.inputmethod.IIntResultCallback; Loading Loading @@ -309,7 +310,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { dispatchMessage(obtainMessageOO(DO_PERFORM_PRIVATE_COMMAND, action, data)); } public void requestCursorUpdates(int cursorUpdateMode, IIntResultCallback callback) { public void requestCursorUpdates(int cursorUpdateMode, IBooleanResultCallback callback) { dispatchMessage(mH.obtainMessage(DO_REQUEST_CURSOR_UPDATES, cursorUpdateMode, 0 /* unused */, callback)); } Loading @@ -319,7 +320,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { } public void commitContent(InputContentInfo inputContentInfo, int flags, Bundle opts, IIntResultCallback callback) { IBooleanResultCallback callback) { final SomeArgs args = SomeArgs.obtain(); args.arg1 = inputContentInfo; args.arg2 = opts; Loading Loading @@ -797,7 +798,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { case DO_REQUEST_CURSOR_UPDATES: { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#requestCursorUpdates"); try { final IIntResultCallback callback = (IIntResultCallback) msg.obj; final IBooleanResultCallback callback = (IBooleanResultCallback) msg.obj; final InputConnection ic = getInputConnection(); final boolean result; if (ic == null || !isActive()) { Loading @@ -807,7 +808,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { result = ic.requestCursorUpdates(msg.arg1); } try { callback.onResult(result ? 1 : 0); callback.onResult(result); } catch (RemoteException e) { Log.w(TAG, "Failed to return the result to requestCursorUpdates()." + " result=" + result, e); Loading Loading @@ -854,7 +855,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { SomeArgs args = (SomeArgs) msg.obj; Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#commitContent"); try { final IIntResultCallback callback = (IIntResultCallback) args.arg3; final IBooleanResultCallback callback = (IBooleanResultCallback) args.arg3; final InputConnection ic = getInputConnection(); final boolean result; if (ic == null || !isActive()) { Loading @@ -871,7 +872,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { } } try { callback.onResult(result ? 1 : 0); callback.onResult(result); } catch (RemoteException e) { Log.w(TAG, "Failed to return the result to commitContent()." + " result=" + result, e); Loading core/java/com/android/internal/view/IInputContext.aidl +3 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.view.inputmethod.CorrectionInfo; import android.view.inputmethod.ExtractedTextRequest; import android.view.inputmethod.InputContentInfo; import com.android.internal.inputmethod.IBooleanResultCallback; import com.android.internal.inputmethod.ICharSequenceResultCallback; import com.android.internal.inputmethod.IExtractedTextResultCallback; import com.android.internal.inputmethod.IIntResultCallback; Loading Loading @@ -78,10 +79,10 @@ import com.android.internal.inputmethod.ISurroundingTextResultCallback; void getSelectedText(int flags, ICharSequenceResultCallback callback); void requestCursorUpdates(int cursorUpdateMode, IIntResultCallback callback); void requestCursorUpdates(int cursorUpdateMode, IBooleanResultCallback callback); void commitContent(in InputContentInfo inputContentInfo, int flags, in Bundle opts, IIntResultCallback callback); IBooleanResultCallback callback); void getSurroundingText(int beforeLength, int afterLength, int flags, ISurroundingTextResultCallback callback); Loading Loading
core/java/android/inputmethodservice/RemoteInputConnection.java +6 −6 Original line number Diff line number Diff line Loading @@ -361,9 +361,9 @@ final class RemoteInputConnection implements InputConnection { // This method is not implemented. return false; } final Completable.Int value = mInvoker.requestCursorUpdates(cursorUpdateMode); return Completable.getResultOrZero(value, TAG, "requestCursorUpdates()", mCancellationGroup, MAX_WAIT_TIME_MILLIS) != 0; final Completable.Boolean value = mInvoker.requestCursorUpdates(cursorUpdateMode); return Completable.getResultOrFalse(value, TAG, "requestCursorUpdates()", mCancellationGroup, MAX_WAIT_TIME_MILLIS); } @AnyThread Loading Loading @@ -397,9 +397,9 @@ final class RemoteInputConnection implements InputConnection { inputMethodService.exposeContent(inputContentInfo, this); } final Completable.Int value = mInvoker.commitContent(inputContentInfo, flags, opts); return Completable.getResultOrZero( value, TAG, "commitContent()", mCancellationGroup, MAX_WAIT_TIME_MILLIS) != 0; final Completable.Boolean value = mInvoker.commitContent(inputContentInfo, flags, opts); return Completable.getResultOrFalse( value, TAG, "commitContent()", mCancellationGroup, MAX_WAIT_TIME_MILLIS); } /** Loading
core/java/com/android/internal/inputmethod/Completable.java +18 −0 Original line number Diff line number Diff line Loading @@ -543,6 +543,24 @@ public final class Completable { value.getValue(); } /** * Await the result by the {@link Completable.Boolean}, and log it if there is no result after * given timeout. * * @return the result once {@link ValueBase#onComplete()} */ @AnyThread public static boolean getResultOrFalse(@NonNull Completable.Boolean value, String tag, @NonNull String methodName, @Nullable CancellationGroup cancellationGroup, int maxWaitTime) { final boolean timedOut = value.await(maxWaitTime, TimeUnit.MILLISECONDS, cancellationGroup); if (value.hasValue()) { return value.getValue(); } logInternal(tag, methodName, timedOut, maxWaitTime, 0); return false; } /** * Await the result by the {@link Completable.Int}, and log it if there is no result after * given timeout. Loading
core/java/com/android/internal/inputmethod/IInputContextInvoker.java +6 −6 Original line number Diff line number Diff line Loading @@ -474,13 +474,13 @@ public final class IInputContextInvoker { * Invokes {@link IInputContext#requestCursorUpdates(int, IIntResultCallback)}. * * @param cursorUpdateMode {@code cursorUpdateMode} parameter to be passed. * @return {@link Completable.Int} that can be used to retrieve the invocation result. * @return {@link Completable.Boolean} that can be used to retrieve the invocation result. * {@link RemoteException} will be treated as an error. */ @AnyThread @NonNull public Completable.Int requestCursorUpdates(int cursorUpdateMode) { final Completable.Int value = Completable.createInt(); public Completable.Boolean requestCursorUpdates(int cursorUpdateMode) { final Completable.Boolean value = Completable.createBoolean(); try { mIInputContext.requestCursorUpdates(cursorUpdateMode, ResultCallbacks.of(value)); } catch (RemoteException e) { Loading @@ -496,14 +496,14 @@ public final class IInputContextInvoker { * @param inputContentInfo {@code inputContentInfo} parameter to be passed. * @param flags {@code flags} parameter to be passed. * @param opts {@code opts} parameter to be passed. * @return {@link Completable.Int} that can be used to retrieve the invocation result. * @return {@link Completable.Boolean} that can be used to retrieve the invocation result. * {@link RemoteException} will be treated as an error. */ @AnyThread @NonNull public Completable.Int commitContent(InputContentInfo inputContentInfo, int flags, public Completable.Boolean commitContent(InputContentInfo inputContentInfo, int flags, Bundle opts) { final Completable.Int value = Completable.createInt(); final Completable.Boolean value = Completable.createBoolean(); try { mIInputContext.commitContent(inputContentInfo, flags, opts, ResultCallbacks.of(value)); } catch (RemoteException e) { Loading
core/java/com/android/internal/view/IInputConnectionWrapper.java +7 −6 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.SurroundingText; import com.android.internal.annotations.GuardedBy; import com.android.internal.inputmethod.IBooleanResultCallback; import com.android.internal.inputmethod.ICharSequenceResultCallback; import com.android.internal.inputmethod.IExtractedTextResultCallback; import com.android.internal.inputmethod.IIntResultCallback; Loading Loading @@ -309,7 +310,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { dispatchMessage(obtainMessageOO(DO_PERFORM_PRIVATE_COMMAND, action, data)); } public void requestCursorUpdates(int cursorUpdateMode, IIntResultCallback callback) { public void requestCursorUpdates(int cursorUpdateMode, IBooleanResultCallback callback) { dispatchMessage(mH.obtainMessage(DO_REQUEST_CURSOR_UPDATES, cursorUpdateMode, 0 /* unused */, callback)); } Loading @@ -319,7 +320,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { } public void commitContent(InputContentInfo inputContentInfo, int flags, Bundle opts, IIntResultCallback callback) { IBooleanResultCallback callback) { final SomeArgs args = SomeArgs.obtain(); args.arg1 = inputContentInfo; args.arg2 = opts; Loading Loading @@ -797,7 +798,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { case DO_REQUEST_CURSOR_UPDATES: { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#requestCursorUpdates"); try { final IIntResultCallback callback = (IIntResultCallback) msg.obj; final IBooleanResultCallback callback = (IBooleanResultCallback) msg.obj; final InputConnection ic = getInputConnection(); final boolean result; if (ic == null || !isActive()) { Loading @@ -807,7 +808,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { result = ic.requestCursorUpdates(msg.arg1); } try { callback.onResult(result ? 1 : 0); callback.onResult(result); } catch (RemoteException e) { Log.w(TAG, "Failed to return the result to requestCursorUpdates()." + " result=" + result, e); Loading Loading @@ -854,7 +855,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { SomeArgs args = (SomeArgs) msg.obj; Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#commitContent"); try { final IIntResultCallback callback = (IIntResultCallback) args.arg3; final IBooleanResultCallback callback = (IBooleanResultCallback) args.arg3; final InputConnection ic = getInputConnection(); final boolean result; if (ic == null || !isActive()) { Loading @@ -871,7 +872,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { } } try { callback.onResult(result ? 1 : 0); callback.onResult(result); } catch (RemoteException e) { Log.w(TAG, "Failed to return the result to commitContent()." + " result=" + result, e); Loading
core/java/com/android/internal/view/IInputContext.aidl +3 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.view.inputmethod.CorrectionInfo; import android.view.inputmethod.ExtractedTextRequest; import android.view.inputmethod.InputContentInfo; import com.android.internal.inputmethod.IBooleanResultCallback; import com.android.internal.inputmethod.ICharSequenceResultCallback; import com.android.internal.inputmethod.IExtractedTextResultCallback; import com.android.internal.inputmethod.IIntResultCallback; Loading Loading @@ -78,10 +79,10 @@ import com.android.internal.inputmethod.ISurroundingTextResultCallback; void getSelectedText(int flags, ICharSequenceResultCallback callback); void requestCursorUpdates(int cursorUpdateMode, IIntResultCallback callback); void requestCursorUpdates(int cursorUpdateMode, IBooleanResultCallback callback); void commitContent(in InputContentInfo inputContentInfo, int flags, in Bundle opts, IIntResultCallback callback); IBooleanResultCallback callback); void getSurroundingText(int beforeLength, int afterLength, int flags, ISurroundingTextResultCallback callback); Loading