From 7741b31c9643df7fdbf6ee398b74dbe742d0ee8a Mon Sep 17 00:00:00 2001 From: Taran Singh Date: Sat, 7 Dec 2024 01:34:37 +0000 Subject: Make setStylusHandwritingRegion param immutable Copy the Region to set so that its unmodifiable after the fact. Fix: 379894953 Bug: 350047836 Test: atest StylusHandwritingTest Flag: android.view.inputmethod.adaptive_handwriting_bounds Change-Id: I249d9d6db09048feab8da2a12721e829c9a09a5d --- core/java/android/inputmethodservice/InputMethodService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 5f3c15d1842e..4c9e73c8b21f 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -3202,7 +3202,8 @@ public class InputMethodService extends AbstractInputMethodService { */ @FlaggedApi(Flags.FLAG_ADAPTIVE_HANDWRITING_BOUNDS) public final void setStylusHandwritingRegion(@NonNull Region handwritingRegion) { - if (handwritingRegion.equals(mLastHandwritingRegion)) { + final Region immutableHandwritingRegion = new Region(handwritingRegion); + if (immutableHandwritingRegion.equals(mLastHandwritingRegion)) { Log.v(TAG, "Failed to set setStylusHandwritingRegion():" + " same region set twice."); return; @@ -3210,10 +3211,10 @@ public class InputMethodService extends AbstractInputMethodService { if (DEBUG) { Log.d(TAG, "Setting new handwriting region for stylus handwriting " - + handwritingRegion + " from last " + mLastHandwritingRegion); + + immutableHandwritingRegion + " from last " + mLastHandwritingRegion); } - mPrivOps.setHandwritingTouchableRegion(handwritingRegion); - mLastHandwritingRegion = handwritingRegion; + mPrivOps.setHandwritingTouchableRegion(immutableHandwritingRegion); + mLastHandwritingRegion = immutableHandwritingRegion; } /** -- cgit v1.2.3-59-g8ed1b