Loading core/java/android/view/HandwritingInitiator.java +6 −1 Original line number Diff line number Diff line Loading @@ -496,9 +496,10 @@ public class HandwritingInitiator { if (delegatorPackageName == null) { delegatorPackageName = view.getContext().getOpPackageName(); } WeakReference<View> viewRef = new WeakReference<>(view); Consumer<Boolean> consumer = delegationAccepted -> { if (delegationAccepted) { onDelegationAccepted(view); onDelegationAccepted(viewRef.get()); } }; mImm.acceptStylusHandwritingDelegation(view, delegatorPackageName, view::post, consumer); Loading @@ -509,6 +510,10 @@ public class HandwritingInitiator { mState.mHandled = true; mState.mShouldInitHandwriting = false; } if (view == null) { // can be null if view was detached and was GCed. return; } if (view instanceof TextView) { ((TextView) view).hideHint(); } Loading core/java/android/view/inputmethod/InputMethodManager.java +8 −3 Original line number Diff line number Diff line Loading @@ -129,6 +129,7 @@ import java.io.FileDescriptor; import java.io.PrintWriter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; import java.lang.reflect.Proxy; import java.util.Arrays; import java.util.Collections; Loading Loading @@ -2630,13 +2631,17 @@ public final class InputMethodManager { return false; } if (useDelegation) { WeakReference<Executor> executorRef = new WeakReference<>(executor); WeakReference<Consumer<Boolean>> callbackRef = new WeakReference<>(callback); if (useCallback) { IBooleanListener listener = new IBooleanListener.Stub() { @Override public void onResult(boolean value) { executor.execute(() -> { callback.accept(value); }); Executor executor = executorRef.get(); Consumer<Boolean> callback = callbackRef.get(); if (executor != null && callback != null) { executor.execute(() -> callback.accept(value)); } } }; if (!IInputMethodManagerGlobalInvoker.acceptStylusHandwritingDelegationAsync( Loading Loading
core/java/android/view/HandwritingInitiator.java +6 −1 Original line number Diff line number Diff line Loading @@ -496,9 +496,10 @@ public class HandwritingInitiator { if (delegatorPackageName == null) { delegatorPackageName = view.getContext().getOpPackageName(); } WeakReference<View> viewRef = new WeakReference<>(view); Consumer<Boolean> consumer = delegationAccepted -> { if (delegationAccepted) { onDelegationAccepted(view); onDelegationAccepted(viewRef.get()); } }; mImm.acceptStylusHandwritingDelegation(view, delegatorPackageName, view::post, consumer); Loading @@ -509,6 +510,10 @@ public class HandwritingInitiator { mState.mHandled = true; mState.mShouldInitHandwriting = false; } if (view == null) { // can be null if view was detached and was GCed. return; } if (view instanceof TextView) { ((TextView) view).hideHint(); } Loading
core/java/android/view/inputmethod/InputMethodManager.java +8 −3 Original line number Diff line number Diff line Loading @@ -129,6 +129,7 @@ import java.io.FileDescriptor; import java.io.PrintWriter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; import java.lang.reflect.Proxy; import java.util.Arrays; import java.util.Collections; Loading Loading @@ -2630,13 +2631,17 @@ public final class InputMethodManager { return false; } if (useDelegation) { WeakReference<Executor> executorRef = new WeakReference<>(executor); WeakReference<Consumer<Boolean>> callbackRef = new WeakReference<>(callback); if (useCallback) { IBooleanListener listener = new IBooleanListener.Stub() { @Override public void onResult(boolean value) { executor.execute(() -> { callback.accept(value); }); Executor executor = executorRef.get(); Consumer<Boolean> callback = callbackRef.get(); if (executor != null && callback != null) { executor.execute(() -> callback.accept(value)); } } }; if (!IInputMethodManagerGlobalInvoker.acceptStylusHandwritingDelegationAsync( Loading