When user types some text and then long presses on end of empty area
to open context menu, if user opens Gboard and selects text from the
reverse direction, SelectionEnd will be less than SelectionStart. The
IllegalArgumentException occurred because TextClassification does not
allow SelectionEnd is less than SelectionStart. We swap the start and
end index if end index is less than start index.
Bug: 150916165
Bug: 157452302
Test: Manual. No crash occurs.
Test: atest FrameworksCoreTests:android.widget.TextViewActivityTest
(cherry picked from commit cb3c97db0c)
Merged-In: I8dbc92f0f31e64b7e3a45ae91762e1b741629a8e
Change-Id: Ie0e2b5840e147f98174cae4521eb777e1a080706
Magnifier#mDestroyLock was introduced by below change:
Idf0373ab0d5033d56da0f6f45d7d953f7e796813
Then related code was removed by below change:
Ia4c75b5b997e0ed94d5a3814dd4507a8fffa124d
With this change, Magnifier#mDestroyLock becomes redundant,
useless lock.
This change intends to remove this redundant lock.
Change-Id: Ifa3f83f8953a3d992e26a952d9ac2f3343b0dc9e
Signed-off-by: jiajia tang <tangjiajia@xiaomi.com>
Symptom:
Media volume bar shows non-zero value even during the mute state.
Root cause:
A request for updating progress of ProgressBar has 2 kind of updating
ways, animated and non-animated. If a non-animated request is invoked
before completing an animated request, the visual progress can be
overwritten by the old animated request. As a result, the visual
progress value becomes different from the actual value.
Solution:
A running animation on the primary progress should be canceled
before handling a new non-animated request.
Bug: 148759348
Test: atest CtsWidgetTestCases:ProgressBarTest
Change-Id: I569dbea4c6346ecfff8141d8378b4952fb1fa530
Merged-In: I569dbea4c6346ecfff8141d8378b4952fb1fa530
Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library.
Bug: 145132366
Test: m && diff unsupportedappusage_index.csv
Change-Id: I41e12e425284e74561c6b61663241df364ae54a1
Merged-In: I41e12e425284e74561c6b61663241df364ae54a1
Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library.
Bug: 145132366
Test: m && diff unsupportedappusage_index.csv
Change-Id: I5be7335b23a92b8ac80d2fd890198273b66ad644
Merged-In: I5be7335b23a92b8ac80d2fd890198273b66ad644
go/cleanup-greylist-txt
These have already been greylisted, however due to bugs/omissions in the tooling have been kept in go/greylist-txt instead of being annotated in the code.
Bug: 137350495
Test: m
Change-Id: Id6c1f5e403a0e66edb1102ee45f3bf19f244fb09
Merged-In: Id6c1f5e403a0e66edb1102ee45f3bf19f244fb09
Issue:
TextClassifierService failed to invoke the callback to send the result back to client
occasionally because the callback object may be GCed.
And thus smart selection failed occasionally, as the client doesn't get a response
back when it hits this issue. It won't fallback to local textclassifier due to the
timeout specified in TextView.
Cause:
We thought that ITextClassifierCallback is a "cross process" reference, and
so we only store a weak reference of it to avoid leak.
And it turns out that it is wrong. As soon as the weak ref gets GCed in
the service, that counts as dropping the callback. The service doesn't
know about any strong references the client has.
Bug: 138865849
Test: Try smart selection over 30 times, make sure smart action is shown
for every single time.
Merged-In: Ia9218cf67e8d67697a0fdff22c7918a55efc39ca
Change-Id: I4d89518dfff777ba5d999d9ba89d7f4cf7598e75