Commit Graph

9583 Commits

Author SHA1 Message Date
Casey Burkhardt
ecb5b5ccc3 Merge "Revise Accessibility button chooser intent/permissions" into oc-dev 2017-04-07 02:40:14 +00:00
Felipe Leme
75d0d92f7b Merge "Fixed Autofill NPE that crashed some apps." into oc-dev 2017-04-06 19:36:26 +00:00
Casey Burkhardt
afe3ef1b36 Revise Accessibility button chooser intent/permissions
1) Switch AccessibilityButtonChooserActivity to non-exported
2) Update AccessibilityButtonChooserActivity's intent action to
   be CTS-compliant
3) Switches to correct permission to validate a click of the
   accessibility button originated from the status bar service

Bug: 36866328
Bug: 36976440
Test: Manual / Created app to validate launch protection
Change-Id: Ifcd5e8dbbe683dc99bb900a5870a9ba374fbd5d4
2017-04-06 11:39:26 -07:00
Rob Carr
0b504559ee Merge "WindowManager.LayoutParams: Expose privateFlags for CTS" into oc-dev 2017-04-06 18:00:55 +00:00
Felipe Leme
6219f2693e Fixed Autofill NPE that crashed some apps.
It happened when views provided an Accessibility node that had children.

Bug: 37078783
Fixes: 37009008
Test: LoginActivityTest#testAutoFillWhenViewHasChildAccessibilityNodes

Change-Id: Ie694094afe9129b933096a385eb867baf4550e7f
2017-04-06 09:44:04 -07:00
Julius D'souza
4d0c2084f1 Document Android Wear usage of KEYCODE_WINDOW. am: 03d4a65865
am: 137006ff5c

Change-Id: I40ba20230d36bfe7b1f397b822f2122172de9da3
2017-04-06 14:19:58 +00:00
Julius D'souza
137006ff5c Document Android Wear usage of KEYCODE_WINDOW.
am: 03d4a65865

Change-Id: If938e79a9eddcf3cec97274ad305834c2d58386e
2017-04-06 14:12:46 +00:00
Philip P. Moltmann
b42d133c8b Overlay a highlight over autofilled views
Also clear this overlay once the data changes. Some views call
notifyValueUpdated even if the value did not change. Hence remeber the
data that was autofilled and check if the data really changed.

Make the autofilledDrawable publicly accessible so that virtual views
can use the same UI.

As the activity is not aware that the views were autofilled the state
has to be explicitly persisted over activity lifecycle events as part
of the view. The lifecyle does not work yet as the AutofillIds are not
stable over activity lifecycle events.

Fixes: 34946006
Test: Autofilled and changed all supported views.
      cts-tradefed run cts-dev -m CtsUiRenderingTestCases
Change-Id: I58b105bb221f1b6466dd136dfe5062d3babb5aa8
2017-04-06 03:57:54 +00:00
TreeHugger Robot
101b151548 Merge "Consolidate a11y unit tests and get them working" into oc-dev 2017-04-05 21:41:27 +00:00
TreeHugger Robot
b44feb154b Merge "Removed deprecated auto(F)ill classes." into oc-dev 2017-04-05 20:25:40 +00:00
Phil Weaver
7a6cc9b5a7 Consolidate a11y unit tests and get them working
Moving tests for accessibility manager into the a11y
directory and getting them to use some of the newer
test infrastructure. Minor tweaks to
AccessibilityManager to make it testable.

Deleting the AccessibilityManagerService tests entirely.
This class is difficult to unit test with the current
infrastructure, but is covered in CTS tests to a large
degree. I wasn't able to get these working quickly, and
they rely on timeouts that make them run much slower than
the other tests. They also throw exceptions when their
mock accessibility services receive accessibility events,
which causes the system to blacklist those services, causing
the tests to fail differently until the system is reset.
I think it's better to focus on writing new, more robust
tests than on rewriting these tests to pass.

Bug: 36614219
Test: A11y unit tests now work.
Change-Id: I8effe44f22110d55ebb700dc46f59b7e7a1aa946
(cherry picked from commit 9213d23178)
2017-04-05 16:34:29 +00:00
Alan Viverette
7458ea3827 Merge "Automatic casts for more findViewById implementations" into oc-dev 2017-04-05 13:54:51 +00:00
Felipe Leme
f78e952d8d Removed deprecated auto(F)ill classes.
Bug: 35956626
Test: manual verification
Test: CtsAutoFillServiceTestCases pass
Change-Id: Icb622589c41e6a286d51e3f85bd5a813e483b5ea
2017-04-04 18:28:09 -07:00
Robert Carr
b48380a056 WindowManager.LayoutParams: Expose privateFlags for CTS
We need PRIVATE_FLAG_NO_MOVE_ANIMATION to get consistent
results from client initiated window movement in CTS.

Bug: 36865695
Test: Annotations only.
Change-Id: I7850ce3920ba1e89c7759bf9bc25f25731f568a7
2017-04-04 15:02:20 -07:00
Evan Rosky
baa9a3f4b9 Merge "More finishing-up of cluster implementation" into oc-dev 2017-04-04 19:47:11 +00:00
Alan Viverette
db7423cd8d Automatic casts for more findViewById implementations
Bug: 24137209
Test: make -j32
Change-Id: I423297a78e63d74eb44fd14747fc3890a9c42937
2017-04-04 14:07:20 -04:00
TreeHugger Robot
b841b4e919 Merge "Request layout when updating child layout params." into oc-dev 2017-04-04 17:36:48 +00:00
Jorim Jaggi
de95d544cd Merge "Schedule window animations at vsync-sf" into oc-dev 2017-04-04 09:26:03 +00:00
Robert Carr
5429daaa51 Request layout when updating child layout params.
In order to clear the measure cache, we need to requestLayout
when updating the child layout params. To see why, consider the case of
a Frame or Linear layout which will measure different heights
depending on the (top/left/right/bottom)Margin parameters of it's
childrens layout params. Now imagine the following sequence of events:

1. We request a layout on the FrameLayout
2. We measure the FrameLayout and place a value in the cache.
3. Now we update the margin parameters on one of the frame layouts
   children. Because the parent already has a layout requested
   we don't call parent.requestLayout (see View.java#requestLayout),
   and thus the parent measure cache isn't cleared.
4. Now we measure the frame layout again and we incorrectly
   used the cached value.

Calling to requestLayout when the child layout params
change clears the cache properly. If the child didn't
call request layout from it's own relayout, it must mean that
a layout was already pending (step 1 in the sequence),
and so no more work should be triggered besides clearing the cache.

Bug: 33095565
Bug: 33308065
Bug: 34388764
Test: Manual case in bugs.
Change-Id: I9148f32530588e4dc859297f9658f506b38e72f0
2017-04-03 19:11:40 -07:00
Andrii Kulian
d6f0b0fc4f Merge "Update display contents when metrics change" into oc-dev 2017-04-04 01:38:25 +00:00
Evan Rosky
fe9ce65491 Merge "Handle edge-case where the focus-search root is focused" into oc-dev 2017-04-03 23:10:56 +00:00
Yohei Yukawa
1061992733 Merge "Warn if IMM#showSoftInputUnchecked() is called" into oc-dev 2017-04-03 22:14:28 +00:00
Andrii Kulian
cd09799339 Update display contents when metrics change
There are two separate overrides for display metrics in DisplayManager
and WindowManager:
- In DM - LogicalDisplay#mOverrideDisplayInfo, in most cases not null.
- In WM - DisplayContent#mBaseDisplayWidth/Height/Density, different
from #mInitialDisplayWidth/Height/Density values when some metrics are
forced.

When display was resized its windows weren't updated because of
two problems: old LogicaDisplay#mOverrideDisplayInfo was preventing
WM from detecting the change and override (base) display metrics were
never updated by resize.

When display size changes:
- Before this CL:
DM receives DISPLAY_CHANGED event, it updates internal values and
WM is notified about them with a message. In most cases there is an
override obtained from WM and WM doesn't get new values from
LogicalDisplay#getDisplayInfoLocked().

- With this CL:
WM will requests real updated values from DM without any overrides
and will decide whether to apply them or not: if there is no override
in WM - it will apply values from WM, otherwise it will keep the
override. Also it will always update initial display metrics if there
is a real change detected.

Bug: 35258051
Bug: 34164473
Bug: 36518752
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testDisplayResize
Test: #testForceDisplayMetrics
Change-Id: I2495c27797f11f9aaee4ea06648a8ccd29ac5b62
2017-04-03 19:45:14 +00:00
Vladislav Kaznacheev
671a9701c9 Javadoc fix for View.setTooltipText
Change "unless is not handled" to "unless it is handled"

Bug: 36668465
Test: read the Javadoc
Change-Id: I432f24e313358b4448aff2ff9de382d4a58652bc
2017-04-03 18:39:05 +00:00
Evan Rosky
e55f4a611e Handle edge-case where the focus-search root is focused
Bug: 36854948
Test: Added check to FocusFinderTest#testFindNextFocus
Change-Id: Iac6ea6e255d16d4cd1f7fe053ba47e171fff73e0
2017-04-03 11:37:20 -07:00
Julius D'souza
03d4a65865 Document Android Wear usage of KEYCODE_WINDOW.
Bug: 36779123
Change-Id: I17ea8c13d91bd3d8125413cc0c4a7881d0f289e8
2017-04-03 10:17:01 -07:00
Yohei Yukawa
101ae464fc Warn if IMM#showSoftInputUnchecked() is called
With this CL, an @hide method InputMethodManager#showSoftInputUnchecked
is marked to be deprecated and starts showing a warning message in logcat
when it gets called to tell application developers who are still using
old implementation fo android.support.v7.widget.SearchView that they
need to switch to support library ver. 26.0 or later version.

Other than that there is no behavior change in this CL.

Test: Manually verified as follows:
       1. Flash an OS image
       2. Complete the setup wizard (if any).
       3. In N MR-1 AOSP repository
          frameworks/support/gradlew -p frameworks/support support-v7-demos:assemble
       4. adb install out/host/gradle/frameworks/support/support-v7-demos/build/outputs/apk/support-v7-demos-debug.apk
       5. adb logcat -s InputMethodManager
       6. adb shell am start -n com.example.android.supportv7/.Support7Demos
       7. Tap AppCompat -> Action Bar -> Action Bar Usage
       8. Tap the magnifier icon.
       9. Make sure that the software keyboard shows up.
      10. Make sure that in logcat a warning that showSoftInputUnchecked
          is going to be removed is shown.
Fixes: 36015425
Change-Id: If01316a0c2a210f9ea03b53700d0ef651955ba9c
2017-04-03 17:11:41 +00:00
Bryce Lee
7efe56b779 Merge "Add app bounds to configuration." into oc-dev 2017-04-03 14:30:49 +00:00
Jorim Jaggi
d6d6de6da4 Schedule window animations at vsync-sf
Test: Run window animation, make sure it's smooth
Test: Take systrace, make sure it runs at vsync-tick
Test: Move divider, make sure it's still smooth

Change-Id: I1600618e074be811134fe4ccb1dfbd5034820c71
Fixes: 36583867
2017-04-03 15:27:16 +02:00
Bryce Lee
7566d76c61 Add app bounds to configuration.
The system previously overrode the display size for a specific scope
(task/activity/etc.) by setting the associated Configuration's
screenWidthDp/screenHeightDp. This leads to two issues. First, the
conversion of screen size from pixels to display independent pixels
and then upconverting later on leads to rounding errors. Secondly,
the screenWidthDp and screenHeightDp values account for insets, such
as the status bar. These however are not reflected in the display
size when returned from Display#getMetrics/getSize.

This changelist addresses the issue by adding a Rect value to
Configuration which stores the app display bounds. This is always set
at the display level and overridden as appropriate. As the proper
app insets are accounted for at the root configuration, all overrides
(outside of specific exceptions) are the result of the intersection
between the requested bound and the parent bound.

Change-Id: I2c4fcd0bee92af12aabbca258de05b4ec061d0e1
Fixes: 34338931
Bug: 36812336
Bug: 36676979
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test CtsAppTestCases android.app.cts.AspectRatioTests
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test CtsServicesHostTestCases android.server.cts.ActivityManagerDisplayTests
Test: bit FrameworksServicesTests:com.android.server.wm.AppBoundsTests
2017-03-31 21:34:30 -07:00
TreeHugger Robot
4d558930c8 Merge "Created an HtmlInfo object on ViewStructure." into oc-dev 2017-04-01 02:34:03 +00:00
TreeHugger Robot
2af994ec03 Merge "Ensure we show the PiP menu in response to KEYCODE_WINDOW." into oc-dev 2017-03-31 23:07:23 +00:00
Winson Chung
ac52f2892d Ensure we show the PiP menu in response to KEYCODE_WINDOW.
Bug: 36687605
Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testWindowButtonEntersPip
Change-Id: I0bb35fd666eb6a438e4676267f6726b44bffb3db
2017-03-31 10:42:53 -07:00
TreeHugger Robot
774b1f1f37 Merge "Split scroll factor into a 2d float." into oc-dev 2017-03-31 14:54:45 +00:00
TreeHugger Robot
f9533e7b4d Merge "TextClassificationManager API cleanup." into oc-dev 2017-03-31 04:29:27 +00:00
Abodunrinwa Toki
802144cca4 TextClassificationManager API cleanup.
Removes @removed methods.
See: I24e86272cf58bf6864505bee3b06978c1c0d46e5

Test: Checked that API is removed.
Change-Id: I93e7f64740671b5ff856f8b38eddc04417f6486e
2017-03-31 02:15:28 +01:00
Philip P. Moltmann
81192b40de Rename autoFillHint to autoFillHints.
Fixes: 35364993
Test: cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases
Change-Id: I65a4c2c65563e7bbd60c4e99c8800b0b11af2300
(cherry picked from commit feb3299ed5)
2017-03-30 23:45:33 +00:00
TreeHugger Robot
e577a840a1 Merge "Fix issue with not forwarding config. changes on the window size" into oc-dev 2017-03-30 23:06:18 +00:00
TreeHugger Robot
fb4a74f26b Merge "Adds FillResponse extra to passed to authentication intent." into oc-dev 2017-03-30 22:40:24 +00:00
Felipe Leme
25bf787ffb Created an HtmlInfo object on ViewStructure.
The ViewStructure typically represents a View, but it it can also be a virtual
view; in particular, WebView uses virtual views to represent HTML elements.

Although most of the properties of the HTML element maps to properties of
Android Views, some properties (such as 'name' and 'id' on <INPUT> fields)
don't, and those are crucial for autofilling web pages.

Rather than trying to artificially map these properties, it's better to create
a generic representation, for the following reasons:

1. Web standards move in a different velocity than Android APIs
2. Android APIs cannot be changed easily. Deprecated APIs continue to work,
   and new added APIs don't work in older versions
3. The data used for autofill is opaque to the Framework - it's only relevant
   to the node producers (like WebView) and consumers (Autofill services).

Also removed the setIdEntry() that was used for the same purpose.

Fixes: 36696757
Bug: 36718508
Test: VirtualContainerActivityTest with new checks pass

Change-Id: Ia626bd1f640b0b5861e81a5915504b95029874c9
2017-03-30 14:24:05 -07:00
Wale Ogunwale
cdc8ada9c9 Fix issue with not forwarding config. changes on the window size
Coding error inroduced in ag/1965162 where we were no longer setting
the config. if the dispatchResized() call originated from a different
process.

Fixes: 36544847
Test: Change languages and confirm that the status bar changed to the
new language.

Change-Id: I91d73c9f506f28cf1ba13a55f86f87a1aff80e0b
2017-03-30 21:01:22 +00:00
TreeHugger Robot
60e0c19505 Merge "API refactor: context.startForegroundService()" into oc-dev 2017-03-30 20:54:24 +00:00
Rob Carr
2b33162e82 Merge "Remove code for seamlessly rotating SurfaceView's." into oc-dev 2017-03-30 20:10:26 +00:00
TreeHugger Robot
dada7c0e71 Merge "TextClassificationManager API updates." into oc-dev 2017-03-30 19:17:24 +00:00
TreeHugger Robot
7600925263 Merge "Hide TextClassifier.EntityType from the public API." into oc-dev 2017-03-30 19:15:17 +00:00
Christopher Tate
08992ac57e API refactor: context.startForegroundService()
Rather than require an a-priori Notification be supplied in order to
start a service directly into the foreground state, we adopt a two-stage
compound operation for undertaking ongoing service work even from a
background execution state.  Context#startForegroundService() is not
subject to background restrictions, with the requirement that the
service formally enter the foreground state via startForeground() within
5 seconds.  If the service does not do so, it is stopped by the OS and
the app is blamed with a service ANR.

We also introduce a new flavor of PendingIntent that starts a service
into this two-stage "promises to call startForeground()" sequence, so
that deferred and second-party launches can take advantage of it.

Bug 36130212
Test: CTS

Change-Id: I96d6b23fcfc27d8fa606827b7d48a093611b2345
(cherry picked from commit 79047c62b5)
2017-03-30 18:31:24 +00:00
Abodunrinwa Toki
45cb3e6c1f Hide TextClassifier.EntityType from the public API.
Test: current.txt and friends updated correctly.
Bug: 35959173
Change-Id: I74011020a4e509bad98b94738d2e929fc068d9ae
2017-03-30 16:56:18 +01:00
Abodunrinwa Toki
df61b0328e TextClassificationManager API updates.
- Changes getDefaultTextClassifier to getTextClassifier
- Adds a setTextClassifier API

Test: cts-tradefed run cts-dev -m CtsWidgetTestCases -t
android.widget.cts.TextViewTest
Bug: 35763797

Change-Id: I24e86272cf58bf6864505bee3b06978c1c0d46e5
2017-03-30 14:15:44 +01:00
Felipe Leme
955e252a95 Simplified autofill() methods by returning void instead of boolean.
Test: CtsAutoFillServiceTestCases pass

Change-Id: Ic94e6686e291fed60ef6715bd160f9b568bf0ea6
2017-03-29 18:16:40 -07:00
Evan Rosky
7ac3fb2282 Merge "Expose initial focus feature flag for testing" into oc-dev 2017-03-30 01:02:28 +00:00