Commit Graph

9780 Commits

Author SHA1 Message Date
Jeff Sharkey
f383c24749 Unbreak even more APK 26 apps running on "O" preview/beta builds.
Bug: 38391358
Test: builds
Change-Id: Ic48f9cb53da3ed8241e5d40d3096304ee4dfebd2
2017-05-17 17:53:38 -06:00
TreeHugger Robot
4bc839e267 Merge "ViewRootImpl: Guard against null in performMeasure" into oc-dev 2017-05-16 22:25:09 +00:00
TreeHugger Robot
97bcf59fce Merge "SurfaceView: Reset window stopped state when attaching to window." into oc-dev 2017-05-16 21:51:28 +00:00
TreeHugger Robot
83478acb87 Merge "Check for mAttachInfo nullness when getting the autofillable drawable." into oc-dev 2017-05-16 19:38:36 +00:00
Felipe Leme
354587a972 Check for mAttachInfo nullness when getting the autofillable drawable.
Test: manual verification on Caviar (automated test will be added later)
Test: CtsAutoFillServiceTestCases pass

Bug: 38341498
Fixes:  38323841

Change-Id: I15cc792de87987cc19a229c2ab2dfc317877f7ec
2017-05-16 10:38:41 -07:00
Robert Carr
001e55a17a ViewRootImpl: Guard against null in performMeasure
In particular we are seeing this in the call sites from performTraversals
in monkey crashes. I don't have exact repro but it seems like a feasible
state to get in to...for example...WindowManagerGlobal#addView can trigger
removal of a dying view immediately without respect for the mIsInTraversal
flag when it calls doDie(). This means we can dispatch detached from window
setting mView == null while performing a traversal. There's some question
about why this doDie is even required but...seems a little nerve wrecking
to change at the moment and it seems best to just guard against null for now.

Test: Monkeys will test.
Bug: 37343098
Change-Id: I94f2569c1ef70819c083f2b2b34b59622e6c6260
2017-05-15 17:29:20 -07:00
Rob Carr
f5b6818009 Merge "Preserve non-floating state when entering pinned stack." into oc-dev 2017-05-15 23:17:33 +00:00
Robert Carr
00177cc447 SurfaceView: Reset window stopped state when attaching to window.
We may be stopped, removed from the view hierarchy, and then only
attached again after the activity has been restarted, missing
our WindowStopped callback to set mWindowStopped=false. At this point
we are being added to a visible view, or in ViewRoot#performTraversals
so we can assume we are not stopped.

Test: Manual from bug.
Bug: 37682805
Change-Id: Idf8e061fb7f83b00992a274c7dd704f9e0fcff5f
2017-05-15 15:49:17 -07:00
Phil Weaver
9289faa163 Merge "Add null check to a11y call." into oc-dev 2017-05-15 16:56:29 +00:00
Felipe Leme
7f33cd350b Start a new session on manual request after session is "gone".
When the autofill service returns a null FillResponse, the session is marked
"gone" because the service cannot autofill it. But there might be cases where
the view structure change and it's now autofillable, so need to allow users
to manually request autofill again in such cases.

Fixes: 38205945
Test: CtsAutoFillServiceTestCases pass
Test: LoginActivityTest.testAutofillManuallyAfterServiceReturnedNoDatasets()
Test: LoginActivityTest.testAutofillManuallyAndSaveAfterServiceReturnedNoDatasets()

Change-Id: I9b23c255e563dd0646bf266d31ddb10dcc4f7f6d
2017-05-14 00:31:45 -07:00
Jason Monk
d472349229 Merge "Fix the status icon colors in QS" into oc-dev 2017-05-13 13:10:58 +00:00
TreeHugger Robot
5fd8672d71 Merge "Couple autofill fixes." into oc-dev 2017-05-13 03:54:23 +00:00
Abodunrinwa Toki
ebd6bb561d Merge "TextClassifier: Ensure url scheme is in lowercase" into oc-dev 2017-05-12 22:50:54 +00:00
Felipe Leme
7a1deb7c5f Couple autofill fixes.
- Fixed PFLAG3_NOTIFY_AUTOFILL_ENTER_ON_LAYOUT value - it was overlapping with
PFLAG3_ASSIST_BLOCKED.
- Added missing permission on methods called by Shell command.
- Improved debugging.

Bug: 38173625

Test: android.autofillservice.cts.MultipleFragmentLoginTest#loginOnTwoFragments

Change-Id: Ie7880c97d38298e06134709c5c2e9e38fa1bacbb
2017-05-12 15:34:48 -07:00
Jason Monk
9a376bcd45 Fix the status icon colors in QS
Requires lots of theming magic

Test: visual
Change-Id: I1cd28b570f30989b496065c0e06a5aca461deb41
Fixes: 37619734
2017-05-12 16:16:39 -04:00
TreeHugger Robot
4b91fe8699 Merge "Removed deprecated APIs." into oc-dev 2017-05-12 20:13:15 +00:00
TreeHugger Robot
1454afce82 Merge "Not specify return val of View#onSaveInstanceState" into oc-dev 2017-05-12 19:14:53 +00:00
Phil Weaver
63e4503991 Add null check to a11y call.
No good will come from posting that a null View has
changed. Adding a null check so the failure will happen
when the bad call is made, rather than later when we
try to act on it in a handler.

Bug: 38122973
Test: Ran accessibility unit and cts tests.
Change-Id: I1e9aaf2a18180fcdfd0fbc0e5b716eb96446af33
2017-05-12 10:40:53 -07:00
Felipe Leme
73fedacfeb Removed deprecated APIs.
Test: CtsAutoFillServiceTestCases pass
Test: manual verification with existing service

Bug: 37563972

Change-Id: Ibea2810f9230f06e59d2d81e4ba853de54987956
2017-05-12 10:32:45 -07:00
Abodunrinwa Toki
86ef9827da TextClassifier: Ensure url scheme is in lowercase
packageManager.resolveActivity(intentWithUppercaseScheme, 0) returns null.
 This means we don't find an activity to handle the browser intent.
 Create a browser intent with url's scheme in lowercase instead.

Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
Fixes: 36504599
Change-Id: Idb0c5b73d54cf77d5d6fb4ee0af4478ec11e8b82
2017-05-12 13:13:25 +01:00
TreeHugger Robot
6bf9b9a5f3 Merge "TRON: Count smart selection events." into oc-dev 2017-05-12 11:54:37 +00:00
Philip P. Moltmann
517bafa59d Not specify return val of View#onSaveInstanceState
.. as the comment was incorrect since a long time.

Bug: 37802299
Test: compiled
Change-Id: I10fe0b1c0f7f4ccaade38c87136a3785f2685798
2017-05-11 15:32:15 -07:00
Evan Rosky
f14aea9f8b Merge "Only save focus in keyboard navigation clusters when appropriate" into oc-dev 2017-05-11 22:26:18 +00:00
Abodunrinwa Toki
1d77557517 TRON: Count smart selection events.
Logs:
 - Smart selection occured
 - TextView menu item activated on smart selection
 - Smart selection reset
 - Smart selection modified

Test: Manually checked logging happens as per go/tron-howto and verified
nothing is broken in related classes by running:
bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
bit FrameworksCoreTests:android.widget.TextViewActivityTest

Bug: 32572232
Change-Id: Ia9081d92ae9aea50d863455be770eecd0c73be1a
2017-05-11 23:04:29 +01:00
TreeHugger Robot
a7af385208 Merge "Detect isVisibleToUser post layout" into oc-dev 2017-05-11 20:38:28 +00:00
Albert Chaulk
6c34dd58f6 Merge "Propagate UIDs for all SurfaceControl instances" into oc-dev 2017-05-11 15:19:28 +00:00
Derek Sollenberger
d70695ee34 Add an O-release targetAPI check for Canvas.setBitmap.
For apps targeting releases earlier than O setBitmap will attempt
to preserve the matrix from the previous bitmap.  It does not however
attempt to reconstruct the save/restore stack or the clip.

Test: manual test of messenger app referenced in the bug
Bug: 37589964
Change-Id: I67f0928a3f84a8be41da38ef1868e79bdeb03e46
2017-05-11 09:28:02 -04:00
Svet Ganov
68f583879f Detect isVisibleToUser post layout
Test: MiltipleFragmentsLogin test no longer fails.
      All auto fill CTS tests pass.

bug:38173625

Change-Id: I6e36229bc9517c7339c77cbc5f236e8399ef4283
2017-05-10 20:11:45 -07:00
TreeHugger Robot
ea60efa8ef Merge "Remove outdated security note from A11yEvent" into oc-dev 2017-05-11 02:27:19 +00:00
TreeHugger Robot
69a0f3f020 Merge "Clarify documentation for notification a11y events" into oc-dev 2017-05-11 01:57:08 +00:00
Albert Chaulk
e4338f843b Propagate UIDs for all SurfaceControl instances
Previously, a default value was being propagated for surfaces constructed
though paths other than WindowManagerService.createSurfaceControl. This
allows us to handle all surfaces in VR in a better way

Bug: 36589137
Test: Launch chrome (uses SurfaceView)
Change-Id: I8434c356ebe51173cae161ec1405e3d5f9a17723
2017-05-10 20:13:09 -04:00
Svet Ganov
374cae1e61 Properly position dataset picker UI
Test: all autofill CTS tests pass

bug:37958210
bug:37986800

Change-Id: Ic2cb3b8c6762a922bdb7c632e451772b7a006739
2017-05-10 23:38:51 +00:00
Robert Carr
18f622f08c Preserve non-floating state when entering pinned stack.
When transitioning between the fullscreen and pinned states
we often have a situation where we go from having a navigation and
status bar in the window to not. We'd like to use the source bounds
animation to crop these out rather than a sudden jump or scaling
but in order to do so we need to ensure they last until the end
of the animation. We track this state, and return the appropriate
value from isFloating. Furthermore, we add support to the bounds
animation to use the content frame as a source bounds when there
is no source bounds present, this means that we can crop out the
navigation and status bar so they will be invisible by the end of
the animation.

Bug: 37531386
Test: Manual
Change-Id: I72c549e3a3318534428d17b68ebee5832c32e6d7
2017-05-10 15:16:17 -07:00
Svetoslav Ganov
a9379d0b44 Allow null fill values to support authentication case
If a dataset needs to be authenticated the fill service
may not have the values but needs to tell the system for
which fields to show the fill UI. We now allow passing
a null value to mean the view is a part of the dataset
semantically but its value should remain unchanged.

If a dataset has no values, i.e. the related autofill ids
are mapped to null, we cannot properly filter. In this case
we always match such items regardless what the user typed.

While at this improved accessibility support for filtering
to announce when the number of items being filtered changes.

Also while at this allowed a dataset authentication to return
a response which replaces the current response and refreshes
the UI. Matching datasets with null values to any text plus
allowing a response to be returned from a dataset auth enables
the use case where there is always "Import" item at the
end of the list which when clicked can show arbitrarily more
data entries associated to other apps.

Another change is that we now provide the client state
bundle on both request and dataset auth.

Finally, this change gets rid of dataset waiting auth and
response waiting auth concepts since the reference to the
response and the dataset is piped with the auth request.

Fixed a bug where the width of the autofill UI was not
properly measured by going over all items in the adapter.
Now we measure enough height to fit the first three and the
width id the width of the widest item in the adapter.

Test: Added LoginActivityTest#testDatasetAuthTwoFieldsReplaceResponse
      Added LoginActivityTest#testDatasetAuthTwoFieldsNoValues
      Added LiginActivityTest#filterTextNullValuesAlwaysMatched
      All autofill CTS tests pass

bug:37724701
bug:37424539

Change-Id: Ic19e5d7cbdbb7d110c9e7da0ad60b540cbf1aecf
2017-05-09 17:40:28 -07:00
Phil Weaver
33c7136dde Clarify documentation for notification a11y events
This javadoc was confusing the TalkBack team, so I've
clarified that these events can come from either a
notification or a toast. I also removed a note that I
found confusing and, as far as I could tell, was not
correct anyway.

Bug: 34851364
Test: Docs changes only. Relying on TreeHugger.
Change-Id: Ie5c6efd6e32ce1e33f8cc45c795cda7d7b2e6583
2017-05-09 16:17:02 -07:00
Rob Carr
3630fd4e11 Merge "SurfaceView: Release Surface with SurfaceControl." into oc-dev 2017-05-09 15:49:29 +00:00
Phil Weaver
8d25b77e4c Merge "NumberPicker a11y (and a11y-inspired) fixes" into oc-dev 2017-05-09 15:36:00 +00:00
Phil Weaver
64d6e3e11d Merge "Fix crash in a11y cache" into oc-dev 2017-05-09 15:30:30 +00:00
TreeHugger Robot
9f028643c2 Merge "Fix left/top in ViewNode for suppressed parents" into oc-dev 2017-05-09 02:15:43 +00:00
TreeHugger Robot
f512575c68 Merge changes I7c2c9411,Ibc72c84d,Ib3968644 into oc-dev
* changes:
  No need to deal with windowTokens
  Persistable accessibility ID from ContextWrappers
  Check callbacks when operting on UI
2017-05-09 01:49:58 +00:00
Philip P. Moltmann
f51b5f991c Merge "Read the autofill highlight from rootView context" into oc-dev 2017-05-08 23:06:31 +00:00
TreeHugger Robot
f0de5cdd9a Merge "Also check if view visible to user before engaging fill" into oc-dev 2017-05-08 21:10:53 +00:00
Philip P. Moltmann
134cee27b8 No need to deal with windowTokens
we have a link to the client which is enough to find the views.

Also there was some cases where the windowToken was not updated
properly. This is moot now.

Also: Read a array of views from the client to speed up the
client<->AutofillManager communication.

Fixes: 38070352
Test: CtsAutoFillServiceTestCases
      1 Started autofill, saw fill UI
      2 Home button
      3 Kill activity in background
      4 Recents -> back to activity
      5 Saw fill UI restored
Change-Id: I7c2c9411204fa5d65867efae9b7296399121c3a2
2017-05-08 14:02:58 -07:00
Philip P. Moltmann
ff6d6d9492 Persistable accessibility ID from ContextWrappers
Only IDs beyond LAST_APP_ACCESSIBILITY_ID can be reliably used for
autofilling. Other ids might change occasionally.

All Views attached to activities get usable IDs. Hence if a
ContextWrapper wraps an activity forward the goodness.

Also make sure that we don't accidentially autofill an unsafe view.

Test: Before the messaging handed out unusable Ids because it uses a
      Contextwrapper. Now it hands out good ideas (accoring to dumpsys)
      CtsAutoFillServiceTestCases
Bug: 38070352
Change-Id: Ibc72c84d77197019939abd231e8960988af7a592
2017-05-08 13:29:17 -07:00
Robert Carr
de84443489 SurfaceView: Release Surface with SurfaceControl.
Not so drastic as we were releasing the Server side resources
anyway but the close guard is producing a strict mode warning.

Bug: 35955183
Test: cts-tradefed run cts -m CtsViewTestCases -t android.view.cts.SurfaceViewTest#surfaceInvalidatedWhileDetaching
Change-Id: Id250fff8d001d5d82458af1a732c0e123f925dad
2017-05-08 12:12:30 -07:00
Svet Ganov
01e1a62997 Also check if view visible to user before engaging fill
Test: autofill CTS tests pass 

bug:37753348

Change-Id: Ia16bff13f2cfdf1d315e3f45cc114ee13b145eb5
2017-05-08 19:11:05 +00:00
Philip P. Moltmann
e926aad53d Fix left/top in ViewNode for suppressed parents
If parents of a view got suppressed in the autofill structure the left
and top value are not relative to their direct parents anymore. They
need to be relative to the next non-suppressed parent.

This does not change any values for assist structures.

Fixes: 36060132, 37444334
Test: CtsAutoFillServiceTestCases + new ones that check for the left and
      top parameters of view nodes.
Change-Id: I914ad028c7ed2f93ce44210cbe1a2a710673cbbb
2017-05-06 12:29:10 -07:00
Phil Weaver
2a86bad94c Merge "Properly translate text locations to screen coords" into oc-dev 2017-05-06 15:29:24 +00:00
Philip P. Moltmann
c368a240c9 Report less data in structure to autofill provider
Fixes: 35899963
Test: CtsAutoFillServiceTestCases, CtsAccessibilityTestCases,
      CtsAccessibilityServiceTestCases
Change-Id: Ia7dba3e252e7678c033d67bcf653e592f3134304
2017-05-05 14:20:11 -07:00
Phil Weaver
6c617f0a93 Properly translate text locations to screen coords
Using the same method as getBoundsInScreen.

Bug: 35095925
Test: Manually verified location with test app, ran a11y cts
Change-Id: I1eee2a4eb23912698be61c9030d92bbade1d743a
2017-05-05 14:19:58 -07:00