257 Commits

Author SHA1 Message Date
leticiars
2d337c5b81 [A11y][ExposedDropdownMenu] Improved accessibility for switch access.
Now clicking on dropdown menu via switch access triggers the dropdown list. Plus, the arrow icon is set to be not important for a11y only for screen readers.

PiperOrigin-RevId: 410858001
2021-11-29 16:55:06 +00:00
conradchen
cf5df22cce [TextField] Fix crashes when text field size is too large
When we try to draw cutout on text field borders, we draw the stroke on a bitmap first. However if the text field is too large, the bitmap size will be too large and cannot be drawn back to the real canvas, which causes crashes.

Adds a workaround/fallback solution to avoid the crash.

PiperOrigin-RevId: 410523013
2021-11-29 16:29:59 +00:00
leticiars
b878fc3209 [a11y][ExposedDropdownMenu] accessibilityManager.isEnabled() is not reliable to check if component is in a11y mode, as it may return true unexpectedly.
Automated g4 rollback of changelist 408655618

PiperOrigin-RevId: 409182047
2021-11-16 12:28:50 -05:00
leticiars
d8e19ddedf [a11y][ExposedDropdownMenu] Fixed dropdown list not showing for non editable dropdown menus in switch access mode.
For the editable type it remains as was: clicking on the edit text triggers the keyboard and clicking on the arrow icon shows the dropdown list.

PiperOrigin-RevId: 408655618
2021-11-10 16:06:58 -05:00
leticiars
c7c5c7c625 [TextInputLayout] Fixed calculateLabelMarginTop() value for filled text field style, which caused getBaseline() to return a wrong offset.
PiperOrigin-RevId: 408655451
2021-11-10 16:06:08 -05:00
leticiars
dca7fc0701 [TextInputLayout][a11y] Fixed RTL support for setting corner radius on TextInputLayout.
PiperOrigin-RevId: 408621523
2021-11-10 16:03:01 -05:00
Material Design Team
aaac96d724 [TextField] Fix helper text label for usage
The setLabelFor calls were made in the call to populate the accessibility node but they were made after calling super (one of them was actually nested inside of a getter!), this is too late, the accessibility node is populated with the label for by the super class

PiperOrigin-RevId: 407178334
2021-11-04 10:52:21 -04:00
leticiars
9d2f864f0a [TextInputLayout] Fixed getBoxCornerRadiusBottomEnd and getBoxCornerRadiusBottomStart returning wrong values.
PiperOrigin-RevId: 406360531
2021-10-29 18:48:29 +00:00
leticiars
c352dfde8d [TextInputLayout] Fixed shouldAnimateCaptionView() returning true when captionText is null.
captionView.getText() doesn't ever return null (only "" if it's empty), so changed captionText parameter to be @NonNull

PiperOrigin-RevId: 406358148
2021-10-29 18:47:26 +00:00
leticiars
3ca3b71bb2 [TextInputLayout] Don't add placeholder view to text field's input frame if placeholder is null.
PiperOrigin-RevId: 406129696
2021-10-28 18:50:16 +00:00
leticiars
20c3ad0413 [a11y][TextInputLayout] Removed TextInputLayout's placeholder text duplicated announcement.
Before, when swiping with TalkBack on, the placeholder text would be mistakenly announced. This change makes it so it's only announced when it appears, for API >= 16. It's still announced as part of the description announcement when the text field is selected, as before, so it's still accessible for APIs < 16.

PiperOrigin-RevId: 405668594
2021-10-27 18:54:35 +00:00
Material Design Team
8bf3bdeb8a Automated g4 rollback of changelist 404871534
PiperOrigin-RevId: 404899483
2021-10-25 16:08:53 +00:00
leticiars
2701161bbd [a11y][TextInputLayout] Removed TextInputLayout's placeholder text duplicated announcement, and fixed edge case where placeholder text was being enabled and added to the input frame while it was set to null.
Before, when swiping with TalkBack on, the placeholder text would be mistakenly announced. This change makes it so it's only announced when it appears, for API >= 16. It's still announced as part of the description announcement when the text field is selected, as before, so it's still accessible for APIs < 16.

PiperOrigin-RevId: 404871534
2021-10-25 16:07:47 +00:00
Material Design Team
01c1fc723d Automated g4 rollback of changelist 404266249
PiperOrigin-RevId: 404294350
2021-10-20 19:11:30 +00:00
conradchen
d10c75b357 [TextField] Fix collapsed hint cutout is not correctly applied
The box background of text fields are applied to EditTexts instead of the TextInputLayout. So when there are paddings in TextInputLayout, we will need to adjust cutout bounds, which is calculated based on TextInputLayout's coordinates, according to the paddings.

PiperOrigin-RevId: 404281248
2021-10-20 19:09:50 +00:00
leticiars
aa58657042 [a11y][TextInputLayout] Removed TextInputLayout's placeholder text duplicated announcement.
Before, when swiping with TalkBack on, the placeholder text would be mistakenly announced. This change makes it so it's only announced when it appears, for API >= 16. It's still announced as part of the description announcement when the text field is selected, as before, so it's still accessible for APIs < 16.

PiperOrigin-RevId: 404266249
2021-10-20 19:07:29 +00:00
pekingme
9de9319b1e [Resources] Added styles in res-public.
PiperOrigin-RevId: 403451624
2021-10-18 15:31:13 -04:00
conradchen
79ae9b1351 [TextInputLayout] Create label cutout only on borders
When a collapsed label is showing, we cutout part of the border of an outlined text input box according to the exact stroke width. However when using rounded corners, there can be slight offsets from where the border is really drawn. Also, if the corner size is large, the part of border we need to cutout might not just be a straight line but contains part of the corner.

However, with the existing cutout logic, we cannot just cutout the whole label area, which will cause the area inside the border also gets cutout, if it has color. This CL changes the cutout drawing logic to only apply the cutout on stroke drawing to fix the issue.

This CL also fixes the bug that when the label is too long, we didn't take the ellipsized text length into account. Creates a variable to store the calculated collapsed text width to fix the issue.

Resolves https://github.com/material-components/material-components-android/issues/2145

PiperOrigin-RevId: 402316057
2021-10-12 11:26:21 -04:00
conradchen
0fbdedc9be [M3][TextField] Update text field dev doc with M3 themes/styles
PiperOrigin-RevId: 395758232
2021-09-15 12:27:48 -07:00
dsn5ft
a461de5fd8 [M3][Text Field] Updated text appearance mappings
PiperOrigin-RevId: 391786230
2021-08-23 09:24:52 -07:00
conradchen
edbc4e1f64 [M3][Textfield] Create M3 styles
PiperOrigin-RevId: 391773145
2021-08-23 09:22:14 -07:00
Natalia Kuznetsova
cdeeb824cb [TextInputLayout] Adding getter and setter for boxCollapsedPaddingTop
Resolves https://github.com/material-components/material-components-android/pull/2289

GIT_ORIGIN_REV_ID=50ec191fbca0e2223ac322adb3f36035186b4bca
PiperOrigin-RevId: 391122971
2021-08-16 13:49:38 -07:00
jeremymuhia
10edc29b4f [TextInputLayout] fix counterTextColor java docs
PiperOrigin-RevId: 390602431
2021-08-16 13:43:10 -07:00
dsn5ft
57e3bc02fa [i18n] Updated some string translations for date picker, time picker, and text field
PiperOrigin-RevId: 389899697
2021-08-10 21:08:28 -07:00
pfthomas
47868d884e [DatePicker] Date selector hint incorrectly localized
PiperOrigin-RevId: 387066584
2021-07-29 14:28:10 -04:00
conradchen
4044183f46 [TextInputLayout] Apply tint when setting start icons
If startIconTint is a plain color, refreshStartIconDrawableState() won't update the tint to the new drawable. To solve the issue and make the logic be consistent, calls applyStartIconTint() when a new icon is set.

Resolves https://github.com/material-components/material-components-android/issues/2141

PiperOrigin-RevId: 383632467
2021-07-08 15:59:37 +00:00
conradchen
717774ec7f [TextField] Do not load default drawable if custom end icon is being used
Resolves https://github.com/material-components/material-components-android/issues/2085

PiperOrigin-RevId: 382785324
2021-07-07 19:21:28 +00:00
conradchen
8a4f42aca7 [TextField] Make clear text icon focusable
The current logic hides clear text icon whenever edit text loses its
focus. Therefore, the clear text icon can never be focused. Changes
the logic so it retains clear text icon if it has focus.

Resolves https://github.com/material-components/material-components-android/issues/2222

PiperOrigin-RevId: 380802379
2021-06-24 13:00:34 -07:00
afohrman
c92e6934d5 [TextInputLayout] Added a fade transition to placeholder TextView's appear and disappear.
The placeholder TextView previously appeared and disappeared with no fade, which led to a jarring effect and an overlap between the hint text and the placeholder text.

PiperOrigin-RevId: 373713144
2021-05-14 15:29:49 -04:00
leticiars
87b50c6aee [TextInputLayout] Fixed cutout padding so text field outline doesn't overlap collapsed hint.
Resolves https://github.com/material-components/material-components-android/issues/2127

PiperOrigin-RevId: 372563674
2021-05-07 12:27:01 -04:00
leticiars
73bf653ef2 Automated g4 rollback of changelist 372177002
PiperOrigin-RevId: 372384266
2021-05-07 12:16:55 -04:00
leticiars
66b0c98a27 [TextInputLayout] Fixed cutout padding so text field outline doesn't overlap collapsed hint.
Resolves https://github.com/material-components/material-components-android/issues/2127

PiperOrigin-RevId: 372177002
2021-05-05 15:41:30 -04:00
leticiars
f97560d8a8 [TextInputLayout][Large Screens] Adding setMinWidth and setMaxWidth methods on the TextInputLayout so it works as expected.
PiperOrigin-RevId: 366041873
2021-03-31 11:57:04 -04:00
Adrien Vitti
740a3d247b [TextInputLayout] Fixed clear icon being displayed when the text field is not focused.
Resolves https://github.com/material-components/material-components-android/pull/2025
Resolves https://github.com/material-components/material-components-android/issues/2024

GIT_ORIGIN_REV_ID=19a520a8d44cbb62e307fd4dde251cd7ca97da42
PiperOrigin-RevId: 366032778
2021-03-31 10:54:43 -04:00
leticiars
81273acb26 [TextInputLayout][LargeScreens] Adding default, max and min widths for text fields to optimize for large screens.
PiperOrigin-RevId: 363660219
2021-03-18 12:54:05 -04:00
haodong
0d0c90b9ef Updated string translations.
PiperOrigin-RevId: 354978993
2021-02-01 11:03:44 -08:00
leticiars
6015a4e901 [TextInputLayout] Adjusted background of collapsed hint to not overlap with edit text's background.
Resolves https://github.com/material-components/material-components-android/pull/1660
Resolves https://github.com/material-components/material-components-android/issues/1319

PiperOrigin-RevId: 353645196
2021-01-25 09:25:00 -08:00
leticiars
40e33a772c [TextInputLayout][a11y] Fixed placeholder text not being properly announced.
PiperOrigin-RevId: 346578367
2020-12-09 15:00:22 -05:00
Amr
dd0e697aca [TextInputLayout] Fix IndexOutOfBoundsException when trying to change end icon
Resolves https://github.com/material-components/material-components-android/pull/1788
Resolves https://github.com/material-components/material-components-android/issues/1724
Resolves https://github.com/material-components/material-components-android/issues/1748

PiperOrigin-RevId: 345541684
2020-12-04 09:47:38 -05:00
connieshi
725d78deb5 [i18n] Added or updated string translations for i18n / l10n
PiperOrigin-RevId: 344821092
2020-11-30 13:42:11 -05:00
leticiars
7bb8c4da01 [TextFields] Added comments explaining edit text padding values.
PiperOrigin-RevId: 339295143
2020-10-28 09:45:18 -04:00
leticiars
c9f2caaf9d Automated g4 rollback of changelist 339130013
PiperOrigin-RevId: 339279131
2020-10-28 09:40:41 -04:00
Material Design Team
8f6b39d860 Automated g4 rollback of changelist 339053684
PiperOrigin-RevId: 339130013
2020-10-27 10:21:11 -07:00
leticiars
948bb327f9 [ExposedDropdownMenu] Update paddings to match spec.
PiperOrigin-RevId: 339053684
2020-10-27 10:18:36 -07:00
rlatapy-luna
8ab270eba5 [TextInputLayout] Fixed clear text icon hide on double click
Resolves https://github.com/material-components/material-components-android/pull/1778

GIT_ORIGIN_REV_ID=add326dcc2cf85ad8c1f5354c0b6c4c6e1e31d45
PiperOrigin-RevId: 335700378
2020-10-08 15:59:57 +00:00
leticiars
c8197e3a26 [Text fields] Updated text fields measurements to match spec.
- updated top and bottom padding (updating the heights) except of dense outlined
- updated start and end paddings of layout and helper/error/counter view area
- updated label position of filled
- added padding between prefix/suffix and text input

PiperOrigin-RevId: 334955916
2020-10-08 15:43:54 +00:00
dniz
467bb88650 [TextField] Added string translations for i18n / l10n
PiperOrigin-RevId: 334813426
2020-10-01 11:30:12 -04:00
Gabriele Mariotti
8bcc8ee371 [TextInputLayout] Fixed wrong position of the counter when helper or error text are removed
Resolves https://github.com/material-components/material-components-android/pull/1726

GIT_ORIGIN_REV_ID=c8edb8beee34d0a479d763bbfbbe6936dc8b6d85
Co-authored-by: pekingme <pekingme@gmail.com>
PiperOrigin-RevId: 333351975
2020-09-24 08:59:14 -07:00
leticiars
22973ff103 [TextFields] Added expandedHintEnabled attribute (true by default). If set to false it allows for the hint to always be in its collapsed state.
If false it also allows for the placeholder text and prefix/suffix to be displayed when the text field is empty.

Resolves https://github.com/material-components/material-components-android/issues/1459
Resolves https://github.com/material-components/material-components-android/issues/1644
Resolves https://github.com/material-components/material-components-android/pull/1645
Resolves https://github.com/material-components/material-components-android/pull/1163

PiperOrigin-RevId: 331181181
2020-09-11 14:52:40 -04:00
Gabriele Mariotti
b48b445fb8 [TextInputLayout] Fixed wrong hint position when an error is shown and field is empty and unfocused
Resolves https://github.com/material-components/material-components-android/pull/1661

GIT_ORIGIN_REV_ID=8eccce1bee2f331b1441540985435cefe4e40b67
PiperOrigin-RevId: 330956944
2020-09-11 14:24:34 -04:00