Commit Graph

12860 Commits

Author SHA1 Message Date
Adrian Roos
094ea03f14 Restrict getInputMethodWindowVisibleHeight
Make sure only the app currently interacting with the IME can
query this, and restrict the API to apps targeting SDKs before T

Fixes: 204906124
Test: atest 'InputMethodManagerTest#getInputMethodWindowVisibleHeight_returnsZeroIfNotFocused'
Change-Id: If1da19a3dd8c29542afc970b4b201d87547c27a9
Merged-In: If1da19a3dd8c29542afc970b4b201d87547c27a9
2022-05-20 18:11:19 +02:00
Robert Carr
514b329776 DO NOT MERGE: WM: Only allow system to use NO_INPUT_CHANNEL.
NO_INPUT_CHANNEL is a hidden WM flag that allows creation of a window
without an input channel. Unfortunately in releases prior to Android R
this would allow creation of a Window which will not be known to the
InputDispatcher at all. This means that the logic generating
FLAG_OBSCURED will work and a window will be able to overlay another
window without the overlayed window being notified. In Android R and
later this isn't a problem as the InputDispatcher is informed of all
windows, input channel or not. For past Android releases, this patch
disables NO_INPUT_CHANNEL for use outside of the WM.

Bug: 152064592
Test: Existing tests pass
Change-Id: I7e1f45cba139eab92e7df88d1e052baba0ae2cc6
2020-12-14 18:32:46 +00:00
Adam He
be7f868e7a Merge "DO NOT MERGE - Temporary fix to disable augmented autofill requests coming from password fields." into qt-dev 2020-01-08 01:16:40 +00:00
Andrew Solovay
3e4f4f9933 Merge "docs: Fixed typo" into qt-dev 2019-12-17 23:20:29 +00:00
Adam He
483da5385f DO NOT MERGE - Temporary fix to disable augmented autofill requests coming from
password fields.

Bug: 141703197
Test: atest android.autofillservice.cts.augmented
Change-Id: I09a75ad5674a0cfdb169b49461bfec2a129e781f
2019-12-16 16:39:28 -08:00
Andrew Solovay
b0c09e4ba6 docs: Fixed typo
Fixed a clear copy/paste error, docs had said "call getHeight() to
get the width" when it should have been "...to get the height".

Skipping staging since it's a simple text change.

Change-Id: Ic06557ac38517f409943585054835d774240ccf3
Test: make ds-docs
Exempt-from-owner-approval: Docs-only change
Bug: 144537947
2019-12-16 14:54:09 -08:00
Tony Mak
642c22b223 Put userId at the end of parcel
userId is a new field added in ag/8350816, and it is written in between
some old fields when we parcelize it.

That breaks AiAi because some of its code rely on the implementation
details of SelectionEvent.writeToParcel.

In the long run, we may want to update AiAi such that it works
without this assumption, but before that, let's fix that in platform
for now.

Bug: 145962464
Bug: 123232892

Test: atest FrameworksCoreTests:android.view.textclassifier.SelectionEventTest

Merged-In: I98137a095cddf0fb4c600e1e09eef507bb750528
Change-Id: I66f65ac4c81ca964f710404fd081496355276435
2019-12-13 02:47:21 +00:00
TreeHugger Robot
aced288d66 Merge "RESTRICT AUTOMERGE TextClassifier cross-user vulnerability in direct-reply" into qt-dev 2019-12-11 20:55:34 +00:00
Joshua Baxter
5411869170 docs: remove incorrect (default) identifiers
Change-Id: I4ce6bc8a7b0e2f18055416a21f465cd2cfe4ec66
test: make ds-docs
bug: 112679894
2019-11-06 22:14:11 +00:00
Joshua Baxter
d732cbb7bd Merge "docs: fix typos" into qt-dev 2019-11-06 21:01:14 +00:00
Joshua Baxter
914bda7659 docs: fix typos
test: make ds-docs
bug: 36974889
2019-11-06 21:01:00 +00:00
Joshua Baxter
ec27701c78 docs: fix typos
Change-Id: Ie238360300cac54bd4717b4ff75d5534f82e0307
test: make ds-docs
bug: 36948876
2019-11-06 20:53:55 +00:00
Kevin Hufnagle
36ef69743c docs: Added link to multi-window drag how-to guide
Test: make ds-docs -j32

Bug: 71008103
Change-Id: Ifcc50920cf3828697add018d1d3a6a827c7c9f98
2019-09-27 23:56:09 +00:00
Kevin Hufnagle
e0d4d96cc8 docs: Modernized AccessibilityNodeProvider example
Uses a delegate and more realistic method contents. Also added
language switcher for Kotlin-based and Java-based code.

Test: make ds-docs -j32

Bug: 138849874
Change-Id: Id31cf944f4adab2f09cf5004d68434b445da6eeb
2019-09-16 19:23:33 +00:00
Abodunrinwa Toki
34e380cdd6 RESTRICT AUTOMERGE TextClassifier cross-user vulnerability in direct-reply
Sys UI runs on user 0. This can lead to the TextClassifier (TC)
running for the wrong user. Consequencies are user A can launch apps
in user B via the TC's predicted actions and selected text being
unintentionally shared from user A to an app running in user B.

This fix ensures that the correct user id is passed and verified for
every TC request going across process boundaries (i.e. via SystemTC).
- Sys UI sets the appropriate user id in the TextView
- TextClassificationManager (TCM) system service is constructed using
  a context generated from this user id
- SystemTC sets this user id before querying the TCMService
- TCMService validates the user id before forwarding the request to
  the TCService belonging to that user id.

Bug: 136483597
Bug: 123232892
Test: atest android.view.textclassifier
      atest android.widget.TextViewActivityTest
      (manual) See I2fdffd8eb4221782cb1f34d2ddbe41dd3d36595c

Change-Id: Ibe68bc9e257521de97cbb014176b2b8ba23547d1
2019-08-12 18:53:21 +00:00
Adrian Roos
c9f4bcae57 Merge "GestureNav: Clarify javadoc in regards to exclusion limits" into qt-dev 2019-08-02 12:17:11 +00:00
Adrian Roos
e6feb7d198 GestureNav: Clarify javadoc in regards to exclusion limits
Bug: 124518180
Test: m checkapi
Change-Id: I43b0b890a763e339deb246cabf9adbf011eae088
2019-07-26 14:50:03 +02:00
Vadim Caen
843f9dee8b DO NOT MERGE Do not call drawableChanged pre Q
Some apps rely on not updating the window format when changing the
background of the DecorView. To keep the compatibilty with these app we
add only call DecoreView.drawableChanged() when the window background is
changed on app targetting Q and above.

Test: Manually test by lunching Instagram TV and pressing return twice.
The window should aninate with no flickering.
Bug: 136987724

Change-Id: I3593d30dc6f10519008151974e475f0dad86fc64
2019-07-24 21:29:12 +00:00
Adrian Roos
e6911497de GestureNav: make reportSystemGestureExclusionChanged oneway
When the WindowManager lock is contended, reportSystemGestureExclusionChanged can cause
jank. Making it oneway avoids this.

Fixes: 137650591
Test: make droid
Change-Id: I5d96b7e2225745b146014ad11cafaf0ad9a1b734
Merged-In: I5d96b7e2225745b146014ad11cafaf0ad9a1b734
2019-07-16 20:29:03 +00:00
Mathew Inwood
a5531fa161 Restore some greylist entries.
In Q, these APIs were either:
- removed from the greylist entirely without good reason
- Moved to the restricted greylist without any public alternative
  information added

So they are being moved back to the greylist for Q.

Test: Treehugger
Bug: 136102585
Change-Id: Ie3dd15c8e17d530d853473a013717e6175383080
2019-06-28 09:23:06 +00:00
Winson Chung
cff24b878d Merge "Catch all exceptions in onFrameDraw" into qt-dev 2019-06-25 22:07:44 +00:00
Jorim Jaggi
b0bb2f778f Catch all exceptions in onFrameDraw
... as throwing an exception in there somehow will mess up the
hwui task queue.

Test: Have a crashy app, swipe up while the app is crashing
Fixes: 134583193
Change-Id: Ie3ba5f991759f807b154f55f9fc816e7efe2fdfe
2019-06-25 15:37:53 +02:00
Robert Carr
437c0e4c15 ViewRootImpl: Ensure layout when configuration changes.
When the configuration changes between landscape and reverse
landscape, the app will not receive onConfigurationChanged as
orientation is not part of the public portion of the configuration.
However, when the ViewRootImpl receives such a configuration back from
relayout, it will force a layout of the client views
(see updatedConfiguration in performTraversals), this is because
Configuration#equals compares the non public part of the configuration
as well. This CL changes MSG_REPORT_RESIZED to handle the configuration
changing the same way performTraversals does, so that the app consistently
receives a configuration change.

Bug: 134643273
Test: Manual
Change-Id: If016bcd9a5b8d2a7efc5e1ab3c82a88a608caf8b
2019-06-18 16:12:29 -07:00
TreeHugger Robot
b7abebde5b Merge "Make InputMethodSystemProperty#MULTI_CLIENT_IME_ENABLED testable." into qt-dev 2019-06-18 12:27:15 +00:00
lumark
ca442d5d9f Make InputMethodSystemProperty#MULTI_CLIENT_IME_ENABLED testable.
Annotates InputMethodSystemProperty#MULTI_CLIENT_IME_ENABLED as @TestApi
to let cts can verify if multi-client IME enabled.

Bug: 135217809
Test: build and passes
Change-Id: Id7b4dceb2dbfaf3d7ed1084957dd14b04cad0cdf
2019-06-17 16:09:42 +08:00
Tim Murray
2ea2a58d97 Merge "Revert "RootViewImpl: Fix measure size hint for WRAP_CONTENT windows"" into qt-dev 2019-06-14 19:50:20 +00:00
Tim Murray
4f6b8ec056 Revert "RootViewImpl: Fix measure size hint for WRAP_CONTENT windows"
This reverts commit c18c6da441.

Reason for revert: major memory increase

Change-Id: Iffb9cd14343cd678849e487bfa163b5f23608ffd
Test: presubmit
Bug: 134695730
2019-06-14 17:16:17 +00:00
Qasid Ahmad Sadiq
2e6efdefa6 AccessibilityNodeIdManager should hold onto weak references of Views.
... as opposed to strong references.
In case the calls between register and unregister aren't matched, we don't want to be leaking views.
I haven't seen any real eveidence of there being leaks, just a report. But this is preventative.

Created a "WeakSparseArray", which wraps SparseArray, and passes in a kind of WeakReference that has an id.
The references become unreachable, we use the id to remove the the entry from the SparseArray.

Test: Used the device for a bit with talkback on. CTSAccessibility*
Change-Id: I8d11727428f56fc06007232ae341d1409a11991f
Fix: 134506015
2019-06-10 19:47:34 -07:00
Tony Mak
82e60027f4 Fix an issue that clicking on a smart action chip on keyguard ...
failed to launch app resolver when there are more than one app handlers.

What happened:
1. TextClassifier constructs an implicit intent to fulfill a task
like opening a link, making a phone call, etc.
2. TextClassifier calls resolveActivity against the implicit intent to
resolve the intent. The resolve component name will be used to create
an explicit intent. In this case, the intent is resolved to the
app resolver activity.
3. wouldLaunchResolverActivity in SysUI returns false for an explicit
intent with component name android/ResolverActivity.
4. SysUI does not trigger the "start the activity after the keyguard
is gone" logic because wouldLaunchResolverActivity returns false.
5. When user clicks on the action on keyguard, ResolveActivity.onStop
is triggered because it is shown (and thus moved to the background)
under the keyguard. So, finish() is called in onStop, and thus the bug.

IMHO, wouldLaunchResolverActivity should not return false
for an explicit intent with component name android/ResolverActivity.
But since we are late at this point, the safest option is to not setting
component name when the intent is resolved to package "android". Note that
this is what we are doing for P, so it should be pretty safe.

Test: 1. Install two browsers. Send myself a link. Tap on the Open Link
chip on keyguard. App resolver is shown.
2. atest frameworks/base/core/tests/coretests/src/android/view/textclassifier/

BUG: 129220155

Change-Id: I6d4d67c2233a2fec950887ea274825bf1cbc1ae2
2019-06-05 12:52:22 +01:00
TreeHugger Robot
952bcb8ffe Merge "RootViewImpl: Fix measure size hint for WRAP_CONTENT windows" into qt-dev 2019-06-03 22:52:59 +00:00
Chavi Weingarten
fd979ca3d2 Merge "Only updateBoundsSurface when surface size has changed." into qt-dev 2019-06-03 16:08:42 +00:00
TreeHugger Robot
3bc96f9113 Merge "Invoke setWindowStopped on the thread that created the view" into qt-dev 2019-06-03 10:13:18 +00:00
chaviw
c0a8c4edbd Only updateBoundsSurface when surface size has changed.
Currently, updateBoundsSurface was getting called when the surface
changed, not just when the size changed. This meant it could be calling
setWindowCrop and deferTransaction when no size had changed. If size
hadn't changed, there was a high possibility that no new frames would be
submitted by the client, causing the deferTransaction to wait forever.

Since the deferTransaction was still waiting, SurfaceFlinger would wake
up every vsync to check if it should call doTransaction for the deferred
transaction. This caused 60Hz composition even when frames were rendered
slower.

Fixes: 132110524
Test: SF doesn't compose 30fps app at 60Hz
Change-Id: Icf3a99b34c288575438bfcd05e9077ea7919b4ca
2019-06-01 00:12:09 +00:00
Adrian Roos
c18c6da441 RootViewImpl: Fix measure size hint for WRAP_CONTENT windows
Fixes an issue where we would measure WRAP_CONTENT windows inconsistently
in the measure passes before and after relayoutWindow.

Fixes: 119839070
Bug: 73813813
Change-Id: I376e416d648f31a0dedecd6a70b476c3bf82b8b0
Test: Install test case app from 119839070, verify dialog is correctly laid out.
2019-05-31 14:26:35 +02:00
TreeHugger Robot
89ebf3f674 Merge "Close windows on ACTION_UP when touched outside" into qt-dev 2019-05-29 21:51:22 +00:00
Abodunrinwa Toki
a578ecce46 Merge "Convert TextClassifierEvent to SelectionEvent for logging in the default TC." into qt-dev 2019-05-23 19:35:24 +00:00
Abodunrinwa Toki
5258633e2d Convert TextClassifierEvent to SelectionEvent
for logging in the default TC.

TCEvents for selection and links are not currently being written to
default TC logs. This changelist writes these events as SelEvents.

Bug: 131228248
Test: atest android.view.textclassifier.TextClassifierEventTest
Change-Id: I191f2f9281eab1b8a427ef21717fff283a304a22
2019-05-23 13:37:59 +01:00
TreeHugger Robot
9fdd35e9aa Merge "Fix fading edge effect from impacting neighboring pixels" into qt-dev 2019-05-22 21:32:59 +00:00
TreeHugger Robot
64f0871ef7 Merge "Make sure view.setAutofilled() is called when autofilled by augmented-autofill only." into qt-dev 2019-05-22 16:22:22 +00:00
Qasid Sadiq
37f6ad6529 Merge "Send subtree changed AccessibilityEvent for all alpha changes." into qt-dev 2019-05-21 20:03:15 +00:00
TreeHugger Robot
a4630da2c1 Merge "Fixed javadoc for View.setContentCaptureSession()." into qt-dev 2019-05-21 17:38:41 +00:00
TreeHugger Robot
b46293f8f6 Merge "Adds setCornerRadius to ActivityView & SurfaceView" into qt-dev 2019-05-20 16:30:20 +00:00
Abodunrinwa Toki
2cb08912a7 Merge "Report AUTO_SELECTION as a smart selection event." into qt-dev 2019-05-20 16:09:43 +00:00
TreeHugger Robot
050d6df74c Merge "[wm]: Fixed TaskPositioner leak" into qt-dev 2019-05-19 23:12:25 +00:00
Qasid Ahmad Sadiq
6205820579 Send subtree changed AccessibilityEvent for all alpha changes.
Changes to view.mtransformationInfo.mAlpha outside of View.java weren't triggering subtree AccessibilityEvents.
This is a problem, because that property helps determine a views visibility in accessibility, and AccessibilityServices wouldn't be informed of this change in visibility.
This results in UIs with certain animations not being accessible at all.

This seems like an oversight to begin with, so it's a pretty low risk change.

Test: Tested the reported instance of this bug in Permission Manager, CTSAccessibility*
Change-Id: I02526e5659cf95f1373811008e74954a73addd21
Fix: 127589394
2019-05-17 21:13:17 +00:00
Derek Sollenberger
9d25cc242f Fix fading edge effect from impacting neighboring pixels
Bug: 132354626
Bug: 129117085
Test: skia unit tests and test cases described in the bug
Change-Id: Ieaa7c831dd6298ac0565e6f1837b1c1dbd4545da
(cherry picked from commit ac33a48751)
2019-05-17 17:59:57 +00:00
yj81.kwon
19585ffabf [wm]: Fixed TaskPositioner leak
If application process handles motion events late, it requests to start
moving task after MotionEvent.ACTION_UP is already fired. In that case,
system will wait for event that is not comming and cannot end drag state.
It's expected that the system finishes moving task when system receives
ACTION_UP by transfering touch focus. In a problem case, ACTION_UP event
is already sent to the application process before transfering touch focus.

If application receives ACTION_UP event after requesting moving task,
notify the system of finishing previous request.

Test: Quickly try to resize freeform windowing app repeatedly.
Test: atest WmTests:TaskPositioningControllerTests
Bug: 129507487

Change-Id: Ifa457ddc55524cae6da455e770472781a7805282
(cherry picked from commit 9a1cd7b5063229da536a1281916ae15ec9246d1a)
2019-05-16 16:42:10 -07:00
Adam He
815979d5df Merge "Metrics for content capture." into qt-dev 2019-05-16 19:53:04 +00:00
Felipe Leme
f24af767fe Fixed javadoc for View.setContentCaptureSession().
Test: m -j ds-docs
Fixes: 132724201

Merged-In: I1bb2fbd7a085ab9816f71f8433feafa1f63a28ae
Change-Id: I1bb2fbd7a085ab9816f71f8433feafa1f63a28ae
2019-05-16 15:59:03 +00:00
Mark Renouf
34d04f36c3 Adds setCornerRadius to ActivityView & SurfaceView
Applies corner radius to Bubbles when expanded, based on
dialogCornerRadius theme attribute.

Test: manual -- Enable Bubbles, add one and expand, observe corners
Bug: 123545569
Change-Id: I88162a974534786b4ac8bed4e0fa1302bded9096
2019-05-16 11:22:25 -04:00