Commit Graph

7214 Commits

Author SHA1 Message Date
Siyamed Sinir
484c2e2fbe Force Autofill in FloatingToolbar overflow menu
Test: bit CtsWidgetTestCases:android.widget.cts.TextViewTest
bit CtsWidgetTestCases:android.widget.cts.EditTextTest

Bug: 62271937
Change-Id: Ib3447281f3bd1abc811a25fc55ad55e34e155bbb
2017-06-08 17:16:26 -07:00
Felipe Leme
1c1626ec76 Don't show AUTOFILL menu when text is selected.
Fixes: 62271937
Test: manual verification
Test: existing CtsAutoFillServiceTestCases tests pass

Change-Id: I80902cb38633e41f50044f413b1b86904a60261e
2017-06-02 12:18:29 -07:00
Evan Rosky
3653aed87b Merge "Enabled (asymmetric) tab selection in GridView" into oc-dev 2017-06-02 00:45:17 +00:00
Andrei Stingaceanu
b6eaf5b8ef AutoSize TextView - major fixes
* splits the auto-size setup part from the execution
  function:
** in TextView CTOR we only setup and we leave the
   actual auto-sizing execution to happen in the
   view||text layout  phase
** encapsulated the conditions needed to start
   applying auto-size in the execution function

* introduces a private way to set the text size
  without requesting a new layout pass; auto-size
  always uses this practically setting the text
  size on the paint object and creating a new
  layout

* calls execution autoSizeText() from within
  TextView#checkForRelayout() if not requestLayout()
  is needed => this makes sure that auto-size will be
  performed even if a view layout is not requested,
  but only a text layout

* fixes the calculation of the sizes available for
  auto-size when configured via granularity

Bug: 62050646
Bug: 38409622
Bug: 38440435
Bug: 62109627
Test: run cts --test android.widget.cts.TextViewTest -m \
      CtsWidgetTestCases
Test: manually tested the new behaviors in demo apps
Test: new test attached in topic

Change-Id: I4ccaa0a0afa3b5aa47213442d0029da2c74e7eb4
2017-06-01 15:40:40 +01:00
Siyamed Sinir
42b2760525 Merge "Don’t try to autoSize if TextView is not measured" into oc-dev 2017-05-27 00:13:39 +00:00
TreeHugger Robot
759669988b Merge changes from topic 'highlight_fixed' into oc-dev
* changes:
  Check default focus highlight for ImageView.
  Check state_focus in foreground.
2017-05-27 00:11:10 +00:00
Sergey Vasilinets
bacaffa497 Merge "Don't show ripple effect on the element replacing "See All"" into oc-dev 2017-05-26 22:11:27 +00:00
Jiaquan He
1dd48d0b8f Check default focus highlight for ImageView.
This commit specially checks isDefaultFocusHighlightNeeded for
ImageView. We should also check with the content drawable of the
ImageView besides its foreground or background.

Bug: 62141891
Test: cts-tradefed run singleCommand cts --skip-device-info
--skip-preconditions --abi armeabi-v7a -m CtsViewTestCases -t
android.view.cts.View_DefaultFocusHighlightTest#testIsDefaultFocusHighlightNeeded

Change-Id: Iaf12a5863d7760d9361d0196a46de07a9ccda74e
2017-05-26 14:31:29 -07:00
Siyamed Sinir
cfc79a9e5f Don’t try to autoSize if TextView is not measured
This CL early returns from auto sizing text if the view is not measured
yet.

Test: run cts --test android.widget.cts.TextViewTest -m CtsWidgetTestCases
Test: Added cts.TextViewTest#testAutosizeWithMaxLines_shouldNotThrowException
Test: Manual test with sample app for the failing case.

Bug: 38440435
Change-Id: Ic03c991f33a2b7701623f00f44cba7fb6cdfce46
2017-05-26 12:00:51 -07:00
TreeHugger Robot
58f6f428fc Merge "SelectionActionModeHelper should use target view's thread" into oc-dev 2017-05-26 00:45:42 +00:00
sergeyv
e471a4e0f7 Don't show ripple effect on the element replacing "See All"
bug: 30247194
Test: manual
Change-Id: Icbe5baba62df7b2a107ecc00d52119cb557d3a6b
2017-05-25 15:49:40 -07:00
Makoto Onuki
1488a3a19d SelectionActionModeHelper should use target view's thread
Use the looper from the TextView's thread for the helper

Bug 62043115
Test: Manual, type on edit field and select text

Change-Id: I501430a500016a81963a9f9fa636474b708b9b36
2017-05-25 15:33:10 -07:00
TreeHugger Robot
7f517b2fe6 Merge "Disable state save/restore for inflated date/time picker views" into oc-dev 2017-05-24 19:50:57 +00:00
TreeHugger Robot
afea5e8ca4 Merge "TRON: Smart selection events that don't change the selection." into oc-dev 2017-05-24 15:44:40 +00:00
Abodunrinwa Toki
e78ac52d8b TRON: Smart selection events that don't change the selection.
See Ia9081d92ae9aea50d863455be770eecd0c73be1a for multi-selection
counts.

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

Bug: 32572232
Change-Id: I4ceab136ab73a20c6bc56732f7606ed103fe64d3
2017-05-24 14:45:24 +01:00
Andrei Stingaceanu
98891dbb70 Merge "AutoSize TextView - correct pixel transformations" into oc-dev 2017-05-24 09:16:52 +00:00
Adam Powell
43da25c670 Disable state save/restore for inflated date/time picker views
Fix a bug where the internal date/time picker views reused view IDs
causing state save/restore bugs when placed within AlertDialogs and
other places. Since the pickers already save/restore their state at a
higher level leaving this enabled was redundant.

Bug 32654446
Test: manual

Change-Id: I3df2fc932ac5296ab6eb0a5013dddef8d1117635
2017-05-23 15:58:47 -07:00
Phil Weaver
ed83139842 Merge "Revert "NumberPicker a11y (and a11y-inspired) fixes"" into oc-dev 2017-05-22 13:03:45 +00:00
Evan Rosky
a2ee78aeb9 Merge "Missed a break statement. very sorry" into oc-dev 2017-05-19 20:25:54 +00:00
TreeHugger Robot
99e620ef32 Merge "In onDragEvent(), don't assume text is Spannable" into oc-dev 2017-05-18 19:21:51 +00:00
Evan Rosky
0892401a86 Missed a break statement. very sorry
Change-Id: Ifbc6c60a3fa2cf296a34836c890a10d50c0f14c1
2017-05-18 11:18:18 -07:00
Phil Weaver
a998b5f869 Revert "NumberPicker a11y (and a11y-inspired) fixes"
This reverts commit 1d359a6d31.

Bug: 38301562
Change-Id: I7a04f3068a8ecb0de63efcb82205b41916138a89
2017-05-18 16:19:23 +00:00
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
Roozbeh Pournader
74e7b26a10 In onDragEvent(), don't assume text is Spannable
Previously, onDragEvent() tried to set the anchor even if
the text was not Spannable. Now we check to make sure it is
Spannable before trying to set the selection.

Test: cts-tradefed run cts-dev --module CtsTextTestCases
Change-Id: I835bf3d6024bf3c85e1d248458829eef496ad93d
Fixes: 37261326
2017-05-17 15:04:45 -07:00
TreeHugger Robot
2df0155a97 Merge "Fixes crash (race cond) when using toast that is immediately cancelled" into oc-dev 2017-05-16 14:16:01 +00:00
Svet Ganov
0df3702f53 Fixes crash (race cond) when using toast that is immediately cancelled
Running cancel after toast is shown and adding some UI stress (or sleep
on UI thread) causes a crash from toast when trying to add the toast
window to the display. The toast must be triggered from app that is
above N MR1 (25).

The steps that crash the app are:
1. Show toast (Toast.makeText(...).show()), window token is created
2. Immediately cancel toast (Toast.cancel()), window token is removed
3. Stall UI thread (Thread.sleep, heavy task), both show and cancel
events are queued to UI thread from window manager
4. Crash trying to add toast but no window token exists

In Toast:handleShow(), the mNextView is required to add the toast to
display, if the mNextView is null before posting to window manager, then
when handleShow() runs later, it will ignore adding the toast to
display. The issue before is that mNextView is set to null after cancel
runs back from window manager in UI thread but the show post will always
happen first. Therefore set mNextView to null at the beginning of
cancel will ignore adding the toast to display and avoid the crash.

Bug: 37606432

Test: manual - write an app to Toast.show(), Toast.cancel(), then
Thread.sleep(), set app's sdk usage above 25 (N MR1) and show the
toast

Change-Id: I352e296c47b1b8776c78b6b0943b1dc809963026
2017-05-15 23:46:21 -07:00
TreeHugger Robot
1812e446e1 Merge "Update TimePicker mode switch icon." into oc-dev 2017-05-16 01:14:01 +00:00
Evan Rosky
8c8ac8125a Enabled (asymmetric) tab selection in GridView
We decided its better for tab to do something than to have no
tab navigation within GridView.

Also fixed a small bug that made backwards focus order not work
right.

Bug: 38264959
Test: Manually tested in test-app. Added basic CTS for tab keys
Change-Id: I8236deed26e6d8b8cae0130359b104af4d9a244d
2017-05-15 15:58:45 -07:00
Aurimas Liutikas
c0aa90d9ee Update TimePicker mode switch icon.
Previously the icon was an event icon, but a clock icon is
more appropriate so we are switching to that instead.

Bug: 37351390
Test: Open time picker
Change-Id: I47e6caf3c341c10264168004628288fd00e4601a
2017-05-15 15:39:28 -07:00
TreeHugger Robot
22c6f2d3a8 Merge "Revert "Respect PopupWindow.setOverlapAnchor when above anchor"" into oc-dev 2017-05-13 00:34:43 +00:00
Abodunrinwa Toki
05d41a7183 Merge "TextView: Invalidate selection action mode on "select all"." into oc-dev 2017-05-12 23:51:51 +00:00
Abodunrinwa Toki
4ce651e92d TextView: Invalidate selection action mode on "select all".
Test: bit FrameworksCoreTests:android.widget.TextViewActivityTest
bit CtsWidgetTestCases:android.widget.cts.TextViewTest
Change-Id: I0b5ebb8d6f1af1a9938151f758a2feedb14fcb9f
Fixes: 38244876
2017-05-13 00:39:58 +01:00
Abodunrinwa Toki
f0d0e37564 Merge "Properly invalidate text classification cache." into oc-dev 2017-05-12 23:08:03 +00:00
Vladislav Kaznacheev
3b105d92a5 Revert "Respect PopupWindow.setOverlapAnchor when above anchor"
This reverts commit 07084924be.

Bug: 37951656
Test: android.widget.cts.PopupWindowTest
Change-Id: I6c950d19bbf5c778f799a652595550a2733aae08
2017-05-12 10:40:16 -07:00
Evan Rosky
23114d68be Added redundant focusable attribute read in TextView
Some apps were relying on TextView favoring focusable over
focusableInTouchMode when they were explicitly set to
opposite values in XML (usually because they start with an
EditText and only set focusable=false). This behavior is
undefined (and is, in-fact opposite to every other View).
In order to keep backwards-compatibility, this restores
the old behavior.

Bug: 36497135
Bug: 37916052
Test: Tested those apps and they behave like they used to.
      TextView CTS still passes.

Change-Id: I65bd1b343a6dfb087f41c9fc8af4b5c1e4c71493
2017-05-12 17:01:54 +00:00
Abodunrinwa Toki
08925e6501 Properly invalidate text classification cache.
Test: bit FrameworksCoreTests:android.widget.TextViewActivityTest
Change-Id: I02b77fc0edf53d13b1623631f4521487cd0bf081
Fixes: 38247676
2017-05-12 13:48:50 +01:00
TreeHugger Robot
6bf9b9a5f3 Merge "TRON: Count smart selection events." into oc-dev 2017-05-12 11:54:37 +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
Andrei Stingaceanu
d4082bb9ad AutoSize TextView - correct pixel transformations
When configuring a TextView to auto-size via min/max/granularity
do the calculations in float pixels and only convert to int (via
rounding, see TypedArray#getDimensionPixelSize) to produce the
final text size values to be used by the auto-size algorithm.
This is because the previous version where the values were
initially directly converted to pixels and only after used in
calculations was losing precision and was not consistent with how
we deal with preset configuration (and the developer
expectations).

Practically

textView1.setAutoSizeTextTypeUniformWithConfiguration(10, 20, 2,
        TypedValue.COMPLEX_UNIT_SP)

and

textView2.setAutoSizeTextTypeUniformWithPresetSizes(
         new int[] {10, 12, 14, 16, 18, 20},
         TypedValue.COMPLEX_UNIT_SP);

produce exactly the same values in pixels to choose from when
auto-sizing (on any device) =>
(TextView#getAutoSizeTextAvailableSizes())

Bug: 38185233
Bug: 37265610
Test: attached in the same topic
Change-Id: I95cbbf4674e98f080d7752ae350df26b4adf31b4
2017-05-11 15:49:02 +01:00
TreeHugger Robot
bcc6cc84bf Merge "Hiding text from obscured text fields." into oc-dev 2017-05-11 02:15:17 +00:00
TreeHugger Robot
3ee2bfd8f5 Merge "Fix Toast exception in NotificationManagerService" into oc-dev 2017-05-10 17:41:17 +00:00
TreeHugger Robot
a9a916ada7 Merge "Warn when other's child is added to ListView as header/footer." into oc-dev 2017-05-10 00:20:57 +00:00
Phil Weaver
52b9dbc677 Hiding text from obscured text fields.
My change to remove "speak passwords" set things up as if
the user had permanently enabled speaking of passwords.
That mode seems to go too far, though. It would speak the
password content even if it wasn't shown on the screen.

This change reverts a small part of ag/1900438 to avoid
populating text changed accessibility events with the plain
text of a view that is concealing that text from users who
are looking at the screen.

I'm tempted to populate the event instead with the
transformed text, but I'm concerned that corner cases may
exist where the transformed text is not valid in the
beforeTextChanged callback. This change seems safer, as it
is just going part way back to the pre-O behavior.

Bug: 38172502
Test: Verified that letters in the WiFi password are no
longer read out when they are deleted.

Change-Id: I1a000ee7f87c334a0d38248ce9ad120f43d12256
2017-05-09 14:28:18 -07:00
Geoffrey Pitsch
d34c1879f1 Fix Toast exception in NotificationManagerService
Toast client code needed optional way to specify a looper

Bug: 37945054
Test: runtest systemui-notification
Change-Id: I8f0e051876871b8c44c225f53370392f1b7f353e
2017-05-09 12:51:32 -04:00
Phil Weaver
8d25b77e4c Merge "NumberPicker a11y (and a11y-inspired) fixes" into oc-dev 2017-05-09 15:36:00 +00:00
Daichi Hirono
a3e6a957a8 Warn when other's child is added to ListView as header/footer.
If other's child is added to ListView as header/footer, it may crash
while layouting. To notify users invalid use case, the CL adds warning.

Bug: 37726743
Test: Manually inspect logcat after adding other's child as header.
Change-Id: I1a66fa9a74e4f15e9d8a696a3957db88fc5bbfbe
2017-05-09 18:24:44 +09: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
TreeHugger Robot
a20b6ba1f2 Merge "Only classify text when the toolbar is shown." into oc-dev 2017-05-04 15:15:34 +00:00