Commit Graph

8181 Commits

Author SHA1 Message Date
Adrian Roos
7c7898e74f GestureNav: Fix AbsSeekBar thumb exclusion
Fix two issues that caused the exclusion for SeekBar thumbs to be to small and offset
from the thumb:

Account for padding and thumb offset; the thumb drawable is drawn with an offset
from the View's Canvas; the same offset must be applied when udpating the exclusion
rects.

The thumb is typically much smaller than the drag zone; the thumb rect alone doesn't
provide an appropriately large exclusion for reliably hitting it, so it is enlarged
to the height of the seek bar (up to 48dp).

Bug: 138992366
Test: manual, show exclusion zones with: adb shell setprop debug.pointerlocation.showexclusion 150 && adb shell settings put system pointer_location 1
Test: atest android.widget.AbsSeekBarTest
Change-Id: I2b670c6f3f33451bdccdfd3d75a75e90260257ff
2019-08-07 15:09:26 +02:00
Kevin Hufnagle
21083088e9 Merge "docs: Fixed link in setCurrentTab() description" into qt-dev
am: 2839f24e64

Change-Id: I4d888ec589953a02238520de0594d751fda3e6d0
2019-07-22 15:23:56 -07:00
Kevin Hufnagle
2839f24e64 Merge "docs: Fixed link in setCurrentTab() description" into qt-dev 2019-07-22 22:01:49 +00:00
Nick Cook
82252f17d3 Merge "docs: Fix broken link." into qt-dev
am: 2aec022fd2

Change-Id: I52cd7a41c34a1f44b427029c651c29912b36da93
2019-07-22 10:43:27 -07:00
Nick Cook
2aec022fd2 Merge "docs: Fix broken link." into qt-dev 2019-07-22 17:24:07 +00:00
Nick Cook
d0a4a594c5 Merge "docs: Fix broken link." into qt-dev
am: a2fe3be17d

Change-Id: I8618dd139fedc0af13bdb6e00b441b237a319784
2019-07-19 10:15:39 -07:00
Nick Cook
42ece979a2 docs: Fix broken link.
Test: make ds-docs

Bug: 132635673
Change-Id: I9e6a493112418f7b1467d9d2926a1b2c106d4ad0
2019-07-18 21:44:50 +00:00
Nick Cook
0cbfc85ef7 docs: Fix broken link.
Test: make ds-docs

Bug: 79729313
Change-Id: I3f7b90457e9127380f2b8cbaf0f958823ba5488e
2019-07-18 20:42:25 +00:00
Kevin Hufnagle
e71346fa0a docs: Fixed link in setCurrentTab() description
Moving focus and selected tab requires focusCurrentTab(), not
setCurrentTab().

Test: make ds-docs

Bug: 137317608
Change-Id: I96f4f4c32cbf8a3dfa0aac8cfa6d6cd12e8f8259
2019-07-18 12:50:31 -07:00
Mathew Inwood
68d07b7d6b Merge "Restore some greylist entries." into qt-dev
am: f76bdce6e0

Change-Id: I7636cbdbd4177461c56103a6a8e7d87498c9ba13
2019-06-28 08:19:19 -07:00
Mathew Inwood
3a75f264a8 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: I5ac8b8b9b23c3789d80239cf456072cc7dfa1203
2019-06-28 10:15:37 +01:00
Mihai Popa
104a254b1a Merge "[Magnifier-87] Fix deadlock causing ANR" into qt-dev
am: 9550c185f9

Change-Id: I0bd285dde76e8e232c119f66c5904bf1b461fb5b
2019-06-18 02:22:45 -07:00
Mihai Popa
e42215ea70 [Magnifier-87] Fix deadlock causing ANR
Before this CL, the magnifier could deadlock when the following
happened:
1. the renderer is asked to draw (and a frame callback is provided)
2. a #dismiss() happens on the UI thread. This acquires mDestroyLock
(previously line 309)
3. InternalPopupWindow#destroy() is called, and this calls
mRenderer.destroy(). This attempts to destroy the renderer on the UI
thread, however the UI thread will wait until the pending frame callback
corresponding to step 1 is executed on the render thread.
4. The frame callback starts executing on the render thread, and tries
to acquire mDestroyLock (previously line 1093). However, this is held by
the UI thread, so a deadlock happens.

This CL completely removes mDestroyLock, relying on the existing
synchronization between the UI and render threads described in step 3.

Bug: 134584742
Test: manual testing
Change-Id: Ia4c75b5b997e0ed94d5a3814dd4507a8fffa124d
2019-06-17 11:59:20 +00:00
Qasid Ahmad Sadiq
f695023309 Merge "Disabled items shouldn't also be marked as unactionable." into qt-dev
am: 0963cc2418

Change-Id: I990a85b223694123bbf9114e038373253fd4f25f
2019-06-12 13:26:09 -07:00
TreeHugger Robot
0963cc2418 Merge "Disabled items shouldn't also be marked as unactionable." into qt-dev 2019-06-12 20:10:31 +00:00
Qasid Ahmad Sadiq
08de63ea45 Disabled items shouldn't also be marked as unactionable.
Something can be clickable and disabled. Returning early here prevents that state to be reflected in ListView items.
The reported bug was happening because the items were disabled, but they weren't being reported as clickable.
Talkback doesn't read "disabled" for disabled items unless they are also actionable in certain ways.
Test: CTSAccessibility*, CTS AbsListViewTest, CTS ListViewTest, tried UI with sample app.
Fix: 131281972

Change-Id: Ic9b8c995398151f084d194e272ce082ec345e517
2019-06-11 18:58:21 -07:00
Adam Powell
076200294d Merge "Gesture exclusion for seekbar thumbs/edit handles" into qt-dev
am: 2b2d6f58c1

Change-Id: I7485be0f36776fd3cd08aa4b3b20b7bf623c5eb1
2019-06-11 13:46:21 -07:00
Adam Powell
8624121b27 Gesture exclusion for seekbar thumbs/edit handles
Track gesture exclusion rects for seekbars and EditText selection and
cursor handles.

Bug: 133845668
Bug: 129338678
Test: cts/manual
Change-Id: I029d8ba465459f8ecaa14ee8ad0f5f4139b24e65
2019-06-10 20:24:20 +00:00
Feng Cao
9e4ca44e28 Only send text update for TextView after VIEW_ADDED is notified
Test: atest CtsContentCaptureServiceTestCases (sanity check)
Fixes: 134309443

Change-Id: Ia94194576db0a1679bbb2a9b76c84a871b965435
2019-06-08 00:56:43 +00:00
Aurimas Liutikas
c38e9716a8 Merge "Record textAppearance information for TextView." into qt-dev
am: e53837182c

Change-Id: I93a7c449a72bab5f25690505453432b551e3ff94
2019-06-07 15:51:30 -07:00
TreeHugger Robot
e53837182c Merge "Record textAppearance information for TextView." into qt-dev 2019-06-07 22:35:55 +00:00
Sunny Goyal
0dc76428f8 Merge "Resetting widget cache when some configurations change" into qt-dev
am: 5cb8996742

Change-Id: If13799bd7bde4a39744c355c1766e602cb9e7de9
2019-06-07 11:37:31 -07:00
Sunny Goyal
758e88bd44 Resetting widget cache when some configurations change
Sometimes widget providers hardcode colors in their remoteViews
by loading them from resources. On UI mode change, this can lead to
inconsistent UI if some widgets use a different configuration
than others.

Test: Verified with calendar widget on device
Bug: 133064045
Change-Id: If47a6b1973f55b7590f5d4116813d6a332951697
2019-06-06 17:02:55 -07:00
Torne (Richard Coles)
a50d608b89 Merge "Clarify problems with Linkify.MAP_ADDRESSES." into qt-dev
am: a0d66cf3f6

Change-Id: I264a589322b87b09a5d250f1a7e71b7f1795f3dd
2019-06-06 10:59:10 -07:00
Aurimas Liutikas
9504459279 Record textAppearance information for TextView.
Test: Added in CTS
Bug: 133773670
Change-Id: I1d66a75ef7aca11f577fe54b7ef393565a64da79
2019-06-05 15:49:20 -07:00
Torne (Richard Coles)
aa68ab8288 Clarify problems with Linkify.MAP_ADDRESSES.
Update the documentation for WebView.findAddress, as well as the related
functionality in Linkify and TextView, to clarify why the method is
deprecated, why it should not be used, and that it can cause unexpected
exceptions to be thrown from several places on older OS versions.

Fixes: 24676033
Test: m offline-sdk-docs
Change-Id: I45d82b9a4c9cf62d9566898dd21cd2139ad98f37
2019-06-04 14:14:05 -04:00
Feng Cao
2a42d99897 Make content capture send text update event for TextView even when it is not editable (EditText)
Test: atest CtsContentCaptureServiceTestCases
Fixes: 124203774

Change-Id: Ib79c847d68dfcde89155e18feea1bc34206269f9
2019-05-29 01:09:47 +00:00
Bin Chen
009fecb8ad Merge "[Magnifier-86] Fix deadlock causing ANR" into qt-dev
am: 0c7e69bdb6

Change-Id: I9946c147c60f1704a9af9f4d0f50cf0a4e4e2e40
2019-05-24 10:34:29 -07:00
TreeHugger Robot
0c7e69bdb6 Merge "[Magnifier-86] Fix deadlock causing ANR" into qt-dev 2019-05-24 17:03:21 +00:00
Mihai Popa
d88a953a78 Merge "[Magnifier-84] Improve PixelCopy failures handling" into qt-dev
am: 612f71b1df

Change-Id: I44978468da2e25534945596f6d750e3d4e9b49a1
2019-05-24 09:22:20 -07:00
Bin Chen
c8beb5c0f0 [Magnifier-86] Fix deadlock causing ANR
"main" prio=5 tid=1 Blocked
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x74aeca00 self=0x7021814c00
  | sysTid=27953 nice=-10 cgrp=default sched=0/0 handle=0x70a85ff548
  | state=S schedstat=( 31382082536 9164116362 28130 ) utm=2661 stm=477 core=0 HZ=100
  | stack=0x7ff7a52000-0x7ff7a54000 stackSize=8MB
  | held mutexes=
  at android.widget.Magnifier$InternalPopupWindow.destroy(Magnifier.java:607)
  - waiting to lock <0x0ef5c351> (a java.lang.Object) held by thread 13
  at android.widget.Magnifier.dismiss(Magnifier.java:191)
  - locked <0x01cd07b6> (a java.lang.Object)

 "hwuiTask1" prio=5 tid=13 Blocked
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f815d8 self=0x70000e7800
  | sysTid=28075 nice=-2 cgrp=default sched=0/0 handle=0x70046ba4f0
  | state=S schedstat=( 138800095 85604746 532 ) utm=10 stm=3 core=1 HZ=100
  | stack=0x70045bf000-0x70045c1000 stackSize=1009KB
  | held mutexes=
  at android.widget.Magnifier$InternalPopupWindow.lambda$doDraw$0(Magnifier.java:663)
  - waiting to lock <0x01cd07b6> (a java.lang.Object) held by thread 1
  - locked <0x0ef5c351> (a java.lang.Object)
  at android.widget.-$$Lambda$Magnifier$InternalPopupWindow$vZThyvjDQhg2J1GAeOWCNqy2iiw.onFrameDraw(lambda:-1)

Bug: 133396461
Test: atest CtsWidgetTestCases:android.widget.cts.MagnifierTest
Change-Id: Idf0373ab0d5033d56da0f6f45d7d953f7e796813
Merged-In: Idf0373ab0d5033d56da0f6f45d7d953f7e796813
2019-05-23 10:18:02 +00:00
TreeHugger Robot
0ac85feb6f Merge "DO NOT MERGE - Re-add ContentCapture support from standard SDK toolkit." into qt-r1-dev 2019-05-22 20:15:34 +00:00
Mihai Popa
30b1fe3dd0 [Magnifier-84] Improve PixelCopy failures handling
The CL adds PixelCopy failure handling in Magnifier. Previously, if the
content copy failed, the Magnifier would still render the shadow,
therefore displaying an empty rectangle shadow frame. The CL fixes this,
avoiding displaying anything if the PixelCopy request fails.

Test: atest CtsWidgetTestCases:android.widget.cts.MagnifierTest
Bug: 132136368
Change-Id: I66715c56770380afafa5af5a3ee976bcaaa5ba1e
(cherry picked from commit 3aa46b2dd0)
Merged-In: I66715c56770380afafa5af5a3ee976bcaaa5ba1e
2019-05-22 11:09:27 +00:00
Felka Chang
33f56060d5 Fix sysui's security issue of cross-user copy/paste
Background:
The applications with the granted INTERNAL_SYSTEM_WINDOW and
INTERACT_ACROSS_USERS_FULL means that it could show the same
window for all of users. i.e. to use user 0 presents all of
UI things to all of users.

INTERNAL_SYSTEM_WINDOW usually comes with INTERACT_ACROSS_USERS_FULL
because it will serve all of users to know the information that
comes from framework and system server.

Solution:
Because SystemUI never restarts after the user changing,
ClipboardService can't tell if the callingUid has the the same userId
with the current user or not.  The solution is to use the permission
check. Especially, INTERACT_ACROSS_USERS_FULL and
INTERNAL_SYSTEM_WINDOW. To check INTERACT_ACROSS_USERS_FULL by using
ActivityManagerInternal.handleIncomingUser.

Caution:
The application with INTERNAL_SYSTEM_WINDOW usually use user 0
to show the window. But, the current user is user 10, WindowManager
know the focus windows is belong to user 0 rather user 10. That's
why user 10 can't copy the the text from systemui directly reply to
the other applications.

Readability:
ClipboardService use callingUid everywhere but actaully it is not
appropriated to fix this kind of bug. This patch refactor the naming
to produce two name. i.e. intendingUid and intentdingUserId that are
validated by ActivityManagerInternal.handleIncomingUser.

Test: manual test
Test: atest android.widget.cts.TextViewTest
Test: atest CtsTextTestCases
Test: atest CtsContentTestCases

Bug: 123232892
Bug: 117768051
Change-Id: Ie3daecd1e8fc2f7fdf37baeb5979da9f2e0b3937
2019-05-21 14:16:59 +08:00
Lucas Dupin
01c783823b Refresh should always update the field
Otherwise it's hard to keep track of things happening or not, since
the request would be postponed, leading to bugs elsewhere.

Test: Wait for time to pass on lock screen
Test: Enter/leave AOD
Fixes: 132955195
Change-Id: I54f806f9dd2d1cf4acac420bab08d4579f867a5f
2019-05-20 11:29:45 -07:00
Felipe Leme
911cb1fa76 DO NOT MERGE - Re-add ContentCapture support from standard SDK toolkit.
This reverts commit ef1c0b36ab.

Test: atest CtsContentCaptureServiceTestCases
Test: m update-api

Bug: 130726495

Change-Id: Iecda9df96722ac8a3184710796032b6c01bd8ea3
2019-05-16 16:05:51 -07:00
Ian Pedowitz
028b649f71 Merge "Revert "Revert "Removing deprecated APIs added to Q""" into qt-dev 2019-05-15 16:28:54 +00:00
Ian Pedowitz
cece8d3bd5 Revert "Revert "Removing deprecated APIs added to Q""
This reverts commit 1600c5a615.

Reason for revert: Rolling forward for Q-Finalization

Bug: 129975435
Change-Id: I1ffb8162cb5e6f386fd3c417fabfd4298ef86ffd
2019-05-12 19:46:31 +00:00
Ryan Mitchell
400bc93c71 Fix RelativeLayout rules
A previous change restricted rules that are added to the rule dependency
graph to resource ids rather than just integers greater that zero.
Restore the previous behavior and also allow for negative resource ids
to work as expected.

Bug: 132447676
Test: loaded maps and view looks as expected
Change-Id: I88d86c77c696d1e494a743fdd2e398283383c64e
2019-05-10 17:48:58 -07:00
Ian Pedowitz
1600c5a615 Revert "RESTRICT AUTOMERGE Removing deprecated APIs added to Q"
This reverts commit f6ed8afa40.

Reason for revert: QT SDK Finalization. Will be merged again on/after May 13th

Bug: 129975435
Change-Id: If94098b7cc9cf75cf9782d2b70e01881f9c40430
2019-05-02 00:56:02 +00:00
Suprabh Shukla
f6ed8afa40 RESTRICT AUTOMERGE Removing deprecated APIs added to Q
Test: Builds, boots

Bug: 129975435
Change-Id: If083957effedf7987b200c366f65d6863b99bca1
2019-05-01 14:04:37 -07:00
Nader Jawad
531db61ac1 Added BlendMode equivalent APIs to replace deprecated PorterDuff
variants

Updated various framework Views to have equivalent BlendMode APIs
to replace the deprecated PorterDuff equivalents.
Updated InspectableProperty annotations to refer to the same
xml attributes as the original tintmode APIs

Bug: 126726419
Test: Added CTS tests to verify new BlendMode APIs
Change-Id: Id9ab36d3d4d29f351250723e9d13d49bc6062c83
Merged-In: Id9ab36d3d4d29f351250723e9d13d49bc6062c83
2019-04-17 21:11:39 +00:00
Tony Mak
0bf14e4804 Merge "Split TextClassifierEvent into multiple subclasses" into qt-dev 2019-04-17 10:05:20 +00:00
Abodunrinwa Toki
6d06337157 Split TextClassifierEvent into multiple subclasses
As per the suggestion from API council, we now have a subclass for event
of each category.

Bug: 129344540

Test: atest frameworks/base/core/tests/coretests/src/android/view/textclassifier/
Test: atest cts/tests/tests/view/src/android/view/textclassifier/cts/
Test: atest frameworks/base/packages/ExtServices/tests/src/android/ext/services/notification/SmartActionsHelperTest.java

Change-Id: Ic43b33c2176447c40e64bd0e410e906d5fb9c4cc
2019-04-16 13:22:25 +01:00
Felipe Leme
ef1c0b36ab DO NOT MERGE - Removed ContentCapture support from standard SDK toolkit.
Test: atest CtsContentCaptureServiceTestCases
Test: m update-api
Test: make ds-docs

Fixes: 129982633

Change-Id: I5a0fa4231d0222638830c1abd8015d9f2635996a
2019-04-15 09:36:25 -07:00
Ryan Mitchell
9f6f9ca935 Fix RelativeLayout checking of resource ids greater than 0x80
For splits with package id 0x80 and higher, the resource ids are
negative. RelativeLayout builds a dependency graph to indicate in which
order the layout height and width need to be processed. Since the ids
are less than 0, RelativeLayout is incorrectly assuming the layouts are
not order dependent.

Bug: 72869300
Test: manual
Change-Id: I98f58f11733c2976fc5c1b4152949cf80660f657
2019-04-11 16:55:37 -07:00
Hans Boehm
886705338b Merge "Clarify hasSelection description" am: 6bd5cf2bcc am: 0e63b9ce98
am: 8331efe0af

Change-Id: Idb4ac0cdc786ff080a998ad48fe54e803d58cc4d
2019-03-28 15:59:20 -07:00
TreeHugger Robot
9f230d5e16 Merge "Instead of duplicating test config, use imports." 2019-03-27 09:42:47 +00:00
Hans Boehm
fd7a3cf9ce Clarify hasSelection description
It's unintuitive that hasSelection() can return false, while
getSelectionStart() and getSelectionEnd() return meaningful non -1
values.

Test: TreeHugger

Change-Id: Iea2157f4b3b2c13c74547ba31eb4131496f939cc
2019-03-20 17:18:18 -07:00
Aurimas Liutikas
efab4dfa45 Instead of duplicating test config, use imports.
TEST_MAPPING allows sharing test configs, use that
to avoid duplication.

Test: atest --test-mapping frameworks/base/core/java/android/widget
Change-Id: I441f36fabcc26bc8198ab49eebc433932b344ae7
2019-03-20 15:39:23 -07:00