1. We save Translator WeakReference in ServiceBinderReceiver.
It has a chance the reference is gone even the session is still
alive. Save Translator instead of WeakReference.
2. Fix not access TranslationManager mTranslators, mTranslatorIds in
the lock.
3. Fix protential NPE of resultData access in ServiceBinderReceiver.
Bug: 192205945
Test: manual. The function works.
Test: atest CtsTranslationTestCases
Change-Id: I158901db4bbcd76203c705ab2a34f1e0b37c7565
This flag indicates that the event was modified or generated by an
accessibility service.
It allows apps to tell apart real hardware events, events that are
injected (device id == -1), and events coming from accessibility (has
flag is_accessibility_event).
Events that have gone into accessibility, and got reinjected without
being modified will not be distinguishable from real hardware events.
In the next release, we will make FLAG_IS_ACCESSIBILITY_EVENT public
api. Until then, applications will have to hard-code its value (0x800)
to use it. The value is the same for both KeyEvents and MotionEvents for
convenience.
Bug: 175069843
Bug: 152399927
Test: atest VerifiedMotionEventTest VerifiedKeyEventTest
Test: atest AccessibilityGestureDispatchTest
Test: atest inputflinger_tests libinput_tests GamepadWithAccessibilityTest
Change-Id: I38ac2ab8e19e32cad927742c623f14f43ea0c588
The boolean system property is named as "debug.hwui.webview_overlays_enabled"
Bug: 192267127
Test: change the property value, check presence of Webview Surface
Control
Change-Id: I01e3e26282a5fa79aa504a6e49c5abe1a1c3ea02
Add a new private window attribute for allowing apps to specify the min
display refresh rate in addition to the existing
preferredMaxDisplayRefreshRate. This is useful for use cases such as
keyguard where the refresh rate should be limited to a single value,
and using preferredDisplayModeId would not lock the display
refresh rate, as frame rate override might be enabled.
Test: atest RefreshRatePolicyTest FrameRateSelectionPriorityTests DisplayModeDirectorTest
Bug: 183226498
Bug: 184176119
Change-Id: I343569b3cbccd73001703dca78f0f99e196a4d52
We enable the logs dump in debug rom, we should only dump logs when
the debug flag is on.
Bug: 182433547
Test: Make sure the flag is disable after test and enable during test.
Change-Id: I0a719ee9c545b4e66f3414d7f57f3d959004071e
A native transaction passed from webview is sent back to native side, so java side does not manage the life cycle of the transaction.
Bug: 191414767
Test: Play a video, switch to another app, wait for 10 seconds
Change-Id: I013052c202b445438d6cb6497f5f9a2fc22a2b85
Since setLocusContext() usually manually set/reset by developer to update
the app state, it makes sense to trigger a flushing to deliver the
update events immediately.
Bug: 191169236
Test: manual, check the events flush immediately
Test: atest CtsContentCaptureServiceTestCases
Change-Id: I0c367ec083b96d60600ca375c2d70c53224e9b62
Previously, leashes would be only released by GC in some cases, but the
timing could be late. This CL proactively release them as long as they
are not needed. The cases were:
1. The leashes in DisplayImeController. It didn't release leashes while
receiving a new one.
2. The leashes returned from addWindow/relayoutWindow. The leashes would
be copied to prevent others from releasing them before writeToParcel.
The copied leashes could be redundant after writeToParcel.
3. The leashes held by the client whose window is removed. If a window
is removed, the server won't invoke mClient.insetsControlChanged, so
the client would never get notified about losing control to release
the leashes. This could happen if the window doesn't have an exiting
animation.
Fix: 175851610
Test: Steps in the bug.
Test: Show and dismiss a dialog which doesn't have FLAG_ALT_FOCUSABLE_IM
or any window animation. Repeat this thousands of times. And see
if there are many insets leashes as offscreen layers in `dumpsys
SurfaceFlinger`
Change-Id: I5eb774ac071154a8d7205dbd1ab4a5f8eca215c3
Previously, we only dispatched onEnd if onStart was already dispatched. However,
some animations might get cancelled after onPrepare but before onStart. In that
case, it is rather tricky for apps to actually cancel the animation.
Now we always dispatch onEnd if onPrepare has been dispatched already.
Fixes: 177983907
Test: atest WindowInsetsAnimationControllerTests
Change-Id: I3fa142110bd5593679f87561c138ed3318034fca
Currently, if the view has a TEXT_CHANGED event in the buffer with the
same text, the new event is ignored, even if the Composing or Selection
span is changed.
Bug: 184311217
Test: manual - move cursor quickly and check flushed event
Test: atest android.contentcaptureservice.cts.LoginActivityTest
Change-Id: I4de28576b138225f4e64ed93bcb0b9dd3ed0095c
* This is follow up from previous patch to fix an unresolved
comment.
* We're still changing the clearEvents mechanic to not null the list but
actually clear the list of events. We also change when the
flush->clearEvents call happen during the destroy process so it occurs
on the handlerThread when each session does its own cleanup.
Bug: 185162720
Test: atest CtsContentCaptureServiceTestCases
Change-Id: Ide5490903deec8c4bc8aae5dc76b1fadca29dbd0
Got the wrong number when the window isn't at 0,0.
Bug: 183045126
Test: Examined logs to observe the window's insets didn't affect
position in window.
Change-Id: Id3190a7422a56cbefc64d30a9961674b4822fcc3
Set the root surface control transparent, and set the z order of the newly created child surface control to -1.
A new callback is needed to update root surface control in sync from Java side.
Bug: 186750329
Test: use latest APKs from Webview team, play a video, mini toolbar should be visible
Change-Id: I0b37ee8f83fd2b41ff4f2856dbadd31ff6170baf
Keep onTranslationResponse() only to save TranslationResponse. We can
move set TransformationMethod logic to TextViewTranslationCallback.
With the current implementation, if the developers overrides
onTranslationResponse(), they don't have a chance to use the TextView
default ViewTranslationCallback implementation because they don't set
the TranslationTransformation, they must implement their solution. If
we move logic to TextViewViewTranslationCallback and the developers
only overrides onTranslationResponse(), they still have a chance to
use the default TextViewViewTranslationCallback if the developers set
the TranslationResponse for View.
Bug: 178353965
Test: manual to make sure translation still works.
Test: atest CtsTranslationTestCases
Change-Id: Iada7f3efbbc7705ecf962c78e275ed942816707f
The transform hint is used to prevent allocating a buffer of a different
size when a window is rotated. We return the fixed rotation transform
and pass it to BLASTBufferQueue so the producer can choose to consume
the hint and allocate the buffer with the same size.
Bug: 188893403
Bug: 177029197
Test: atest WmTests
Test: gfxbenchmark
Test: atest libsurfaceflinger_unittest SurfaceFlinger_test
Change-Id: If631984cf6b4b74ccdf19547fd6a63e759ed5732
Sending the notification from the InputConnection layer reduces the
number of events that are handled (merged) by ContentCapture. We are
also able to handle composing span being removed; at the TextView layer,
we cannot do that as we don't know if the composing span will be added
back, which happens on typing).
Bug: 184311217
Test: manual - append chars, delete chars, replace text, move cursor to
composing text, move cursor to remove composing span, drag cursor
Test: atest android.contentcaptureservice.cts.LoginActivityTest
Change-Id: I0e9d153cf7ba2734f38cb1b6044eb7b670fb34ad
The selection and composing spans are not parcelable. This patch makes
Content Capture can pass those metadata to the service.
Bug: 184311217
Test: atest CtsContentCaptureServiceTestCases
Test: atest FrameworksCoreTests:ContentCaptureEventTest
Change-Id: I455ee61998bfb19476f84c69b1a671113b6b6a98