Commit Graph

9380 Commits

Author SHA1 Message Date
TreeHugger Robot
1b0f1568d9 Merge "Auto-fill logging improvements:" 2017-02-23 23:01:33 +00:00
TreeHugger Robot
125d2f14ee Merge "Update fill UI" 2017-02-23 20:01:06 +00:00
TreeHugger Robot
8716ef9419 Merge "Revert "Don't trigger auto-fill request if mode is manual"" 2017-02-23 18:58:26 +00:00
Rob Carr
c864ca3039 Merge "Correct SurfaceControl matrix parameter names." 2017-02-23 18:26:29 +00:00
Svet Ganov
28a2c7e057 Update fill UI
1. Abstracted the fill/save view and window management
   in dedicated classs

2. Avoided the need of a second window to detect outside
   touches

3. Simplified the fill-ui window management

4. Moved the UI in its own package to ease mmigration to
   sys UI.

5. Removed hard-coded colors from the layout

6. Make sure the save UI cannot grow as wide as the screen
   as this would not look good on tablets

7. Update the save UI to look closer to mocks

Test: CTS tests pass
Bug: 35708258

Change-Id: Ia74a5aad6f16bba0047a9e8e61958c77af0d358d
2017-02-23 10:13:03 -08:00
Felipe Leme
0ab53dcb31 Auto-fill logging improvements:
- Shorten history line by removing less relevant items.
- Decrease number of history items (from 100 to 20).
- Removed redundant logs from service (and kept them on manager)
- Use {} on all log statements.
- Remove DEBUG guard on some important messages.
- Remove DEBUG guard from service-side toString() implementations.
- Don't log FLAG_FOCUS_LOST actions.

BUG: 33197203
Test: manual verification
Change-Id: I30466ab3c0d12cfa2ad68b2b2a107d5890256845
2017-02-23 17:30:42 +00:00
Philip P. Moltmann
e572989b3f Revert "Don't trigger auto-fill request if mode is manual"
This reverts commit 576a847e03.

Fixes: 35701500
Change-Id: I972c2d0e56d365d1fad76a66e74bfad227bf26c4
2017-02-23 17:06:27 +00:00
Bryan Cassell
7c4e9341d2 Merge "Added VSYNC and INTENDED_VSYNC timestamps to FrameMetrics API." 2017-02-23 16:08:37 +00:00
Bryce Lee
32bd2ea56c Merge "Update DisplayAdjustments in Display from Resources." 2017-02-23 15:15:10 +00:00
Felipe Leme
62fb65fd3c Merge "Added auto-fill support for Spinner." 2017-02-23 06:45:16 +00:00
TreeHugger Robot
30172869a7 Merge "Don't trigger auto-fill request if mode is manual" 2017-02-23 05:57:21 +00:00
Felipe Leme
d09ccb8db6 Added auto-fill support for Spinner.
Spinner is a special kind of list-value field because its auto-fillable
values are not currently present in the assist structure: this change
adds a getAutoFillOptions() to fill that void, and implements the
auto-fill APIs on Spinner.

It also fixes RadioGroup.getAutoFillValue() - it should return the index
of the child, not its resource id.

Bug: 33550221
Test: CtsAutoFillServiceTestCases (with new tests) pass
Change-Id: I625e7dd705fade56fda490fcd3c4446c0c245ee1
2017-02-22 16:09:50 -08:00
Svetoslav Ganov
6699538fb6 Merge "Fix a memory leak in AutoFillManager" 2017-02-23 00:02:56 +00:00
TreeHugger Robot
f5da23114d Merge "Improved documentation and added @CallSuper on onProvideAutoFillStructure()." 2017-02-22 19:39:18 +00:00
Philip P. Moltmann
576a847e03 Don't trigger auto-fill request if mode is manual
Also improve descriptions of the attributes, constants and methods.

Test: Ran updated ViewAttributesTest
Bug: 34077687
Change-Id: I532f1b26b97ba113f316eed6fc68dae2ed33ea6a
2017-02-22 11:05:46 -08:00
Bryce Lee
609bf65668 Update DisplayAdjustments in Display from Resources.
Previously, a copy of DisplayAdjustments was provided during Display
construction. If the Display instance is held, the adjustments would
not update. However, the DisplayInfo would, leading to a mismatch.

This changelist adds a reference to the Resources, which can be
queried to provide the latest adjustments.

Fixes: 33430498
Test: manual from bug repro steps.
Test: make -j32 cts; cts-tradefed; run cts --module CtsAppTestCases --test android.app.cts.DisplayTest#testRotation

Change-Id: Ida2ed3990add885d06b011494af24b055343f3fa
2017-02-22 10:27:34 -08:00
Bryan Cassell
f4c2a52be3 Added VSYNC and INTENDED_VSYNC timestamps to FrameMetrics API.
BUG: b/31650117

Test: cts-tradefed run singleCommand cts --skip-device-info
--skip-preconditions -m CtsViewTestCases -t
android.view.cts.FrameMetricsListenerTest

Change-Id: I8341809b6dac420859dad8c21f30d4ee8897425d
2017-02-22 09:49:32 -08:00
Felipe Leme
bd271212a2 Improved documentation and added @CallSuper on onProvideAutoFillStructure().
onProvideAutoFillStructure() sets mandatory auto-fill information like the
auto-fill id, so we must enforce subclass to call it.

Bug: 35395043
Test: m update-api
Change-Id: I525690b38639d970f516a906ddeb3a6bd6e01d8c
2017-02-22 09:05:50 -08:00
Robert Carr
0edf18f34c Correct SurfaceControl matrix parameter names.
DsDx is used for the X scale but DtDy is used for the Y scale, it
seems like this is a simple mix up. Correct before documenting
SurfaceControl.

Test: Animations and such work.
Change-Id: Ic52b67596bf576f58346e4db66661b06ea1bdc2f
2017-02-21 20:01:47 -08:00
Svet Ganov
17db9dc38c Fix a memory leak in AutoFillManager
Test: Auto-fill CTS tests pass

bug:35435080

Change-Id: I3006cd8394a04bcd64da015f392d084267646366
2017-02-21 20:00:20 -08:00
TreeHugger Robot
527e886704 Merge "Avoid copying NoCopySpans." 2017-02-22 02:14:05 +00:00
TreeHugger Robot
f7d364d820 Merge "Optimize AutoFillManager calls" 2017-02-22 01:27:16 +00:00
Svetoslav Ganov
acfa5ee00a Optimize AutoFillManager calls
AutoFillManager needs to handle calls for value changes and
reset only if there was a focus change reported, hence the
APIs for value change and reset do not need to connect to
the backing service to determine the enabled state.

Test: Auto-fill CTS tests pass

bug:35641424

Change-Id: I50e449925034c54257e35aa78e066e2a0fa53c03
2017-02-22 00:54:02 +00:00
Phil Weaver
0ebe6bd5da Avoid copying NoCopySpans.
Move from Spannable to SpannableStringBuilder, as the latter doesn't
copy NoCopySpans.

Bug: 34712634
Test: CTS tests that verify clickable spans still work.
Change-Id: I0ab029a7c79cb7d0b48724890c5cabe841390f4a
2017-02-21 16:24:31 -08:00
TreeHugger Robot
22e4f07439 Merge "Make scrollbarSize in Material Design theme configurable" 2017-02-21 21:56:58 +00:00
TreeHugger Robot
f780d86963 Merge "Add API to mark sanitized fields and implement it on TextView." 2017-02-21 21:36:50 +00:00
Felipe Leme
33791fd54b Add API to mark sanitized fields and implement it on TextView.
When sending a ViewNode to the auto-fill service, it's necessary to sanitize
it so it does not contain PII (Personally Identifiable Information).

A good rule of thumb is to mark as sanitized nodes whose value were statically
set from resources. Ideally, that logic should belong to View, but View does
not know how its contexts are set, so the decision must be made by the
subclasses, and this CL implements that logic on TextView (which is the main
auto-fill type - others will come soon...)

Bug: 33269702

Test: CtsAutoFillServiceTestCases pass
Test: manual verification

Change-Id: I4dcdd8419a35812bd2f15a63a5be85f8cd97bb4e
2017-02-21 11:47:33 -08:00
TreeHugger Robot
f9bd294469 Merge "Overhaul GraphicsStatsService" 2017-02-21 19:23:46 +00:00
John Reck
df1742ed47 Overhaul GraphicsStatsService
* LRU cache of recently-used is dead, replaced
  disk storage
* ASHMEM size is read from native by the system service,
  no longer requires keeping a sizeof() in sync with a
  constant in Java
* Supports dumping in proto format by passing --proto
* Rotates logs on a daily basis
* Keeps a history of the most recent 3 days

Bug: 33705836
Test: Manual. Verified log rotating works by setting it up to
rotate every minute instead of day. Confirmed /data/system/graphicsstats
only has the most recent 3 entries after several minutes

Change-Id: Ib84bafb26c58701cc86f123236de4fff01aaa4aa
2017-02-21 09:49:10 -08:00
Derek Sollenberger
d7df6748f2 Merge "Add developer setting to set the default GPU renderer." 2017-02-21 17:37:38 +00:00
Svet Ganov
00c771dc7d Add support for remote views backed auto-fill UI
Test: CTS and manual

Change-Id: Ia09f0208d78439491052e4886a0e71c387b73370
2017-02-20 00:37:33 -08:00
TreeHugger Robot
6f781be91e Merge "Minor improvements to help diagnose auth workflow." 2017-02-18 02:18:24 +00:00
Vladislav Kaznacheev
98329f4da3 Make scrollbarSize in Material Design theme configurable
1. Introduce config_scrollbarSize, default value=4dp
2. Use it to define android:scrollbarSize in themes.
3. Remove the explicit size from the MD scrollbar thumb shape.

Bug: 35432058
Test: android.cts.view.ViewTest#testScrollbarSize
Change-Id: Ia97b8f34ae1b9296ca2afcf62ff5bde55f70a63e
2017-02-17 15:14:05 -08:00
TreeHugger Robot
cd1af32eda Merge "Add autoFillMode attribute to View" 2017-02-17 20:50:18 +00:00
Evan Rosky
1228e2cb83 Merge "Fixed default-cluster and empty-cluster navigation behavior" 2017-02-17 20:48:55 +00:00
TreeHugger Robot
a42ba85b0e Merge "Clarify extra data argument nullness." 2017-02-17 19:47:02 +00:00
Andrii Kulian
000fd43eec Merge "Report move to display for activities that handle config changes" 2017-02-17 18:27:29 +00:00
Felipe Leme
d633f07255 Minor improvements to help diagnose auth workflow.
BUG: 35348724
Test: CtsAutoFillServiceTestCases passes

Change-Id: I6ad3320faca8eed329b2cc4836281a547f57456a
2017-02-17 10:15:37 -08:00
Phil Weaver
d666953f57 Clarify extra data argument nullness.
Bug: 35098706
Test: Trivial change, so I just verified that it builds.
Change-Id: I234afe4f1e52ef1c4c64e44b486a539f0d46854c
2017-02-17 09:55:46 -08:00
Philip P. Moltmann
8f35ba4690 Add autoFillMode attribute to View
Bug: 34077687
Test: Ran ViewAttributesTest
Change-Id: I76cfd04efa63e30d2e7bb22ff59c4e7db7c620bb
2017-02-17 09:19:39 -08:00
Aaron Whyte
cdb8fcb611 Merge "Unhide InputDevice.SOURCE_ROTARY_ENCODER" 2017-02-17 16:40:51 +00:00
Andrii Kulian
b047b8bd7e Report move to display for activities that handle config changes
When activity that is moved between displays handles all configuration
changes, it won't be restarted. This CL adds a callback to the client
to notify it about display change. Usually it will be followed by
onConfigurationChanged, except when configuration didn't actually change.
When activity is recreated, it won't receive onMovedToDisplay.

Bug: 34862802
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testOnMovedToDisplayCallback
Change-Id: I9a9501cab788623ada15a31efb53e4b2378639fe
2017-02-16 17:33:59 -08:00
TreeHugger Robot
209346faa0 Merge "Remove final from View.setTooltipText/getTooltipText" 2017-02-16 18:56:32 +00:00
TreeHugger Robot
89863ea4f6 Merge "Suppress a11y shortcut on emergency dialer" 2017-02-16 18:36:39 +00:00
TreeHugger Robot
15c4454970 Merge "Allow setImeWindowStatus with null startInputToken" 2017-02-16 17:29:36 +00:00
Felipe Leme
387f45d78f Merge "Add URL on ViewStructure." 2017-02-16 16:04:22 +00:00
Yohei Yukawa
ee2a7ed3d9 Allow setImeWindowStatus with null startInputToken
This is a follow up CL to my previous CL [1], which caused an unexpected
side effect that leads the current IME to crash due to a too strict
requiremnt.

It turns out that it was too early for us to start requiring non-null
StartInputToken in InputMethodManagerService#setImeWindowStatus()
because in many places we have assumed that an IME can show/hide its
software keyboard even before an IME target window is associated with
the IME.

There are two major cases that we missed:

 - InputMethodManager#showSoftInputFromInputMethod(IBinder, int):

   This method does not require that the calling IME is already bound
   to an IME target window.

 - InputMethodManager#showSoftInputUnchecked(int ,ResultReceiver):

   This @hide method allows the caller application to let current IME
   show the software keyboard with bypassing all the normal focus
   management tasks in InputMethodManager.  We should seriously
   consider to deprecate this @hide method, but to do that we have to
   clean up some internal components and SearchView in the support
   library that still rely on this method.

Bug 35395372 is triggered by the second scenario, but until we sort out
all the possible corner cases, we should allow null startInputToken as a
valid request, like we had have done so before the CL [1] introduced
such a validation.

 [1]: I9921b381e02106dbffff5e0b3d13f0a1245ce807
      6db3bfe33d

Test: Made sure Bug 35395372 is no longer reproducible, that is,
      1. Flash a new image and complete the setup wizard on a
         direct-boot unaware device.
      2. Set a device password and require it upon each device boot.
      3. adb reboot
      4. Observe the default IME does not crash because of
         InvalidParameterException thrown by IMMS.
Test: Made sure IMM#showSoftInputFromInputMethod(IBinder, int) does
      not throw an InvalidParameterException even in an extreme case.
      1. Rebuild LatinIME with the following code in LatinIME.java
       @Override
       public AbstractInputMethodImpl onCreateInputMethodInterface() {
           return new InputMethodService.InputMethodImpl() {
               @Override
               public void attachToken(IBinder token) {
                   super.attachToken(token);

                   final InputMethodManager imm =
                       getSystemService(InputMethodManager.class);
                   final IBinder imeToken =
                       getWindow().getWindow().getAttributes().token;
                   imm.showSoftInputFromInputMethod(imeToken, 0);
               }
           };
       }
      2. adb install -r LatinIME.apk
      3. adb shell ime enable com.android.inputmethod.latin/.LatinIME
      4. adb shell ime set com.android.inputmethod.latin/.LatinIME
      5. Tap any text field.
      4. Observe LatinIME does not crash because of
         InvalidParameterException thrown by IMMS.
Bug: 34628091
Bug: 35079353
Fixes: 35395372
Change-Id: Ib9448c551d9a30776a999c27a5ff20f1a095633a
2017-02-15 21:38:57 -08:00
TreeHugger Robot
59d3c40855 Merge "Minor fixes on documentation." 2017-02-16 04:36:56 +00:00
Felipe Leme
c32410068d Add URL on ViewStructure.
The URL will be typically used by views rendering HTML pages (like WebView),
and used in 2 cases

- Root node (containing the URL of the HTML page)
- Child nodes that represent hyperlinks (contains the hyperlink URL).

Fixes: 20902429
Test: manual verification
Test: android.assist.cts.WebViewTest verifies it

Change-Id: Ic49472f1fca89047369b7187176f54efd277e204
2017-02-15 18:15:46 -08:00
Evan Rosky
3ac6463724 Fixed default-cluster and empty-cluster navigation behavior
Cluster navigation would get stuck if:
 - there was an empty cluster (nothing to focus)
 - there were views NOT in a cluster and the global
   default-focused view was in a cluster.

This will skip over empty clusters during cluster navigation
and when the default "cluster" is active, it will try to
focus a non-clustered focusable instead of the global default
(and if there aren't any non-clustered focusables, it will
skip over the default "cluster" as it now does with actual
clusters.

Bug: 35273052
Bug: 34361282
Test: Added/Updated CTS tests and checked behavior in a test app.
Change-Id: I0b4d55707203f6a0453f25313f940927d59a9b31
2017-02-15 17:30:34 -08:00