321 Commits

Author SHA1 Message Date
pekingme
567cc5494b [Tokens] Refresh the output to reflect the current version.
PiperOrigin-RevId: 484515702
2022-10-28 07:46:16 -07:00
Material Design Team
644d141359 [ExposedDropdownMenu] Dismiss modal popup in dismissDropDown
PiperOrigin-RevId: 484502383
2022-10-28 07:45:40 -07:00
Material Design Team
db115f0a1f [ExposedDropdownMenu] Fix MaterialAutoCompleteTextView.setDropDownBackgroundDrawable(Drawable).
[TextField] MaterialAutoCompleteTextView uses a ListPopupWindow to show a modal dropdown menu when in "Accessibility Touch Exploration" mode. This popup also should respond to setDropDownBackgroundDrawable(Drawable).

PiperOrigin-RevId: 482233381
2022-10-21 16:23:52 +00:00
conradchen
a3521784e8 [TextField] Fix label cutout doesn't work on API < 18
Android framework Canvas.clipRect() has a bug with Region.Op.DIFFERENCE when handling bounds.left on APIs lower than 18, which causes text field outlines are still drawn over the label on lower APIs, despite the label area is supposed to be cut out.

Fixes this by bringing back the old solution we were using - "painting out" the label area after the stroke is drawn. Since the implementation is quite complicated, this CL also splits the CutoutDrawable to two inner impl classes to have a better code structure.

Resolves https://github.com/material-components/material-components-android/issues/2811#issuecomment-1196016169

PiperOrigin-RevId: 482013070
2022-10-19 09:20:41 -07:00
pubiqq
e76eaff716 [TextInputLayout] Fixed counter overflow text color getter
Resolves https://github.com/material-components/material-components-android/pull/3002

GIT_ORIGIN_REV_ID=b9f8e26840e02df2529561cf464e347fe220065d
PiperOrigin-RevId: 478059617
2022-10-03 19:14:09 +00:00
Material Design Team
e804957628 [TextInputLayout] Fix code formatting.
PiperOrigin-RevId: 474180631
2022-09-15 14:18:55 -04:00
leticiars
e7697c235b [TextInputLayout] Integrated tokens for text fields and the exposed dropdown menu.
PiperOrigin-RevId: 474105090
2022-09-15 14:15:10 -04:00
leticiars
fbd75ec5b0 [TextInputLayout] Updated cursor color on error for APIs >= 29.
Resolves https://github.com/material-components/material-components-android/issues/2719

PiperOrigin-RevId: 472535969
2022-09-08 13:41:59 -04:00
rightnao
7c56473a58 [Translations] Update string translations
PiperOrigin-RevId: 472531245
2022-09-08 13:25:10 -04:00
rightnao
c98480c019 [TextInputLayout] Update motion attributes for textfield animations
PiperOrigin-RevId: 472525831
2022-09-08 13:24:09 -04:00
leticiars
a85204eb75 [TextInputLayout] Updated expanded label color to take error color when on error.
Partially fixes https://github.com/material-components/material-components-android/issues/2719

PiperOrigin-RevId: 471799584
2022-09-02 12:54:09 -07:00
leticiars
08c40d85e5 [TextInputLayout] Added method to set corner family programmatically and a setShapeAppearanceModel method for greater customizability of the box background shape.
Resolves https://github.com/material-components/material-components-android/issues/1957

PiperOrigin-RevId: 470826160
2022-08-30 11:28:55 -04:00
rightnao
6b53f62aa2 [TextInputLayout] Update motion specs for hint animation
PiperOrigin-RevId: 469753395
2022-08-24 14:41:36 -07:00
leticiars
9147704468 [ExposedDropdownMenu] Fixed missing icon activated color.
PiperOrigin-RevId: 466742317
2022-08-10 16:34:12 -04:00
rightnao
e284e57d64 [TextInputLayout] Add scale type setters/getters for start and end image buttons in the TextInputLayout
Resolves https://github.com/material-components/material-components-android/issues/2080

PiperOrigin-RevId: 463381963
2022-07-28 17:36:31 -04:00
rightnao
633b3cecfa [TextInputLayout] Adding set/get methods to control minimum width and height for start/end icons
Resolves https://github.com/material-components/material-components-android/issues/2080

PiperOrigin-RevId: 461939723
2022-07-20 21:44:40 +00:00
pubiqq
b18f45ee99 [TextInputLayout] Delete unused paint
Resolves https://github.com/material-components/material-components-android/pull/2812

    GIT_ORIGIN_REV_ID=b1c718c45ab55d0c70539afe6233d10e883c413a
    Co-authored-by: paulfthomas

PiperOrigin-RevId: 460962180
2022-07-14 18:17:02 +00:00
pubiqq
15fa4db616 [TextInputLayout] Fix "android:enabled" attribute support
Resolves https://github.com/material-components/material-components-android/issues/2766
Resolves https://github.com/material-components/material-components-android/pull/2769

GIT_ORIGIN_REV_ID=9e60355679855b57ab63edf63944d3e23d2aec9a
PiperOrigin-RevId: 458516880
2022-07-06 05:03:16 -07:00
AshutoshSundresh
cd80b71817 [Resources] Remove unused public.xml resources
Resolves https://github.com/material-components/material-components-android/pull/2761

GIT_ORIGIN_REV_ID=fbc80605591c097ab56f4a8f0c9b4a2a3cbcfe10
PiperOrigin-RevId: 457959343
2022-06-29 14:39:28 +00:00
conradchen
051410b7ef [TextField] Stop saving/restoring TextInputLayout's themeable fields
Saving/restoring themeable fields will cause problems when the view is recreated, because those fields will be restored to the value resolved from the context before the recreation, instead of the current context. For example, when the device locale changes, those fields will still be restored to the previous locale instead of the new one.

It's a general practice in Android framework and AndroidX not to save/restore themeable fields. If clients need this, they should implement their own logic.

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

PiperOrigin-RevId: 454708278
2022-06-13 16:15:10 -07:00
rightnao
4ded01ed3f [TextInputLayout] Add a new custom length counter field and getters/setters to switch how text length is calculated for the counter.
Resolves https://github.com/material-components/material-components-android/issues/2418

PiperOrigin-RevId: 449842640
2022-05-23 10:21:23 -04:00
conradchen
2db8b0cd5a [TextField] Link OnItemSelectedListener of AutoCompleteTextView with the actual drop-down list
Framework has no default implementation of how or when OnItemSelectedListener will be called. We need to link it with the actual ListPopupWindow we are going to show.

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

PiperOrigin-RevId: 449725174
2022-05-19 14:24:31 -04:00
conradchen
73cb1b6e78 [TextField] Fix hint is not displayed when expanding space is limited
In CollapsingTextHelper we are checking both the expanded bound and the collapsed bound to be larger than 0 to decide if we are going to draw the collapsing text. However this can result in a situation that when there's no space to display expanded hint, the collapsed hint won't be drawn either, even if the hint is not expandable at all.

This CL fixes the issue in a more generic way - whenever draw() is called, we check if the current bound (should be calculated whenever the collapsing fraction is changed) is larger than 0 to decide if we need to draw the collapsing text.

This CL also adds the logic to ensure the cutout bound will never be larger than the collapsed bound.

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

PiperOrigin-RevId: 449597658
2022-05-18 21:14:13 -04:00
raajkumars
673cefc714 [TextInputLayout] Fix for TextInputLayout leak via AccessibilityManager.
Resolves https://github.com/material-components/material-components-android/issues/2615

PiperOrigin-RevId: 449517571
2022-05-18 21:12:36 -04:00
conradchen
ac74bc3bfd [CleanUp][TextField] Centralize icon view state handling logic
Note that there are a slight behavior changes - when a new end icon mode is set, the state will always be reset, if applicable. This should be logically more consistent and correct than the current behavior.

PiperOrigin-RevId: 449027939
2022-05-16 16:09:50 -04:00
conradchen
86b512a81c [CleanUp][TextField] Move end icon and content description logic to the layout class
PiperOrigin-RevId: 448036109
2022-05-11 14:59:46 -04:00
conradchen
d3ab6d7bf1 [CleanUp][TextField] Centralize accessibility event dispatching logic for drop-downs
This also fixes the bug that clients cannot use custom AccessibilityDelegate with drop-down mode.

PiperOrigin-RevId: 447748501
2022-05-10 15:04:34 -04:00
leticiars
6206ff5a1f [ExposedDropdownMenu] Added support for default/ripple background colors for the selected item of the exposed dropdown menu when the default MaterialAutoCompleteArrayAdapter is being used.
PiperOrigin-RevId: 447531152
2022-05-09 17:35:43 -04:00
conradchen
7b2f92443a [CleanUp][TextField] Remove TextInputLayout.getEditText() calls from EndIconDelegates
PiperOrigin-RevId: 446240046
2022-05-03 15:06:11 -04:00
conradchen
2c0e42f56a [TextField] Fix icon ripples go behind the edit text
On API 21 & 22, the borderless ripple will go behind the container view under certain conditions. Setting a mask when creating the ripple drawable to restrain the ripple inside view bounds somehow solves the issue.

PiperOrigin-RevId: 445920587
2022-05-02 09:52:55 -04:00
conradchen
1a42c743fe [CleanUp][TextField] Move drop-down background and ripple creation to TextInputLayout class
This CL also cleans up and fixes the edit text background setting logic - when the edit text is an autocomplete text view and provides its own background, we won't override the background by trying to add ripples to it.

Later they should be split again from the main class with other box-background-relevant logic.

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

PiperOrigin-RevId: 445486075
2022-05-02 09:19:04 -04:00
Material Design Team
940c8aafd8 Automated g4 rollback of changelist 444595599
PiperOrigin-RevId: 445446957
2022-04-29 14:34:16 -04:00
leticiars
0e4e44e8cd [TextInputLayout] Updated shape to use M3 attrs/styles.
PiperOrigin-RevId: 444647020
2022-04-27 10:09:51 -04:00
conradchen
e3bd856567 [TextField] Fix icon ripples go behind the edit text
On API 21 & 22, the borderless ripple will go behind the container view under certain conditions. Setting a mask when creating the ripple drawable to restrain the ripple inside view bounds somehow solves the issue.

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

PiperOrigin-RevId: 444595599
2022-04-26 14:09:24 -04:00
conradchen
431e291b01 [Translation] Update string translations
PiperOrigin-RevId: 443191056
2022-04-20 17:19:02 -04:00
pubiqq
3ca41be8f0 [General] Fix typos
Resolves https://github.com/material-components/material-components-android/pull/2654

GIT_ORIGIN_REV_ID=b8f6728979875629f2c813ef90d2f671cf56b4eb
PiperOrigin-RevId: 442852630
2022-04-19 14:48:55 -04:00
conradchen
a0e8c35470 [CleanUp][TextField] Create EndIconDelegate.deactivate() method and remove the relevant listener
PiperOrigin-RevId: 442846789
2022-04-19 13:57:46 -04:00
conradchen
26308d97d8 [CleanUp][TextField] Centralize EndIconDelegate listener logic
It provides better performance and memory management.

PiperOrigin-RevId: 441566824
2022-04-14 13:15:33 -04:00
leticiars
2c335b5f77 [ExposedDropdownMenu] Updated the elevation of the popup to match M3 specs. Also fixed bug where elevation wasn't being read via xml.
PiperOrigin-RevId: 440397922
2022-04-11 11:17:51 -04:00
leticiars
f915ffdd8a [ExposedDropdownMenu] Removed update dropdown background call from setInputType as it indirectly calls setRawInputType
PiperOrigin-RevId: 439311647
2022-04-05 15:08:02 -04:00
leticiars
f31414af02 [ExposedDropdownMenu] Update dropdown background when setRawInputType is called.
PiperOrigin-RevId: 438829151
2022-04-05 13:39:43 -04:00
leticiars
df3a708392 [ExposedDropdownMenu] Fixed android:popupBackground not working in xml/styles for the AutoCompleteTextView.
Before, its value was being overwritten in code where we set the default popup background, so we should null it in the Material styles.

PiperOrigin-RevId: 437813304
2022-03-30 15:12:06 +00:00
leticiars
784f901135 [TextInputLayout] Fixed regression bug of prefix spacing being shown and making expanded label be in the wrong position when text field is not focused.
Resolves https://github.com/material-components/material-components-android/issues/2612

PiperOrigin-RevId: 437745108
2022-03-28 16:48:28 +00:00
leticiars
1c02b62eaf [ExposedDropdownMenu] Update background when setInputType is called so that ripple is or isn't present properly.
PiperOrigin-RevId: 437345929
2022-03-28 16:47:36 +00:00
leticiars
01021a710a [ExposedDropdownMenu][a11y] Fixed bug where setting the AutoCompleteTextView's input type to TYPE_NULL in code would make it unusable in a11y touch mode, as it was still seen as editable for a11y.
Fixed by checking for the input type instead of the key listener (which remains as non null when updating the input type).

PiperOrigin-RevId: 436308197
2022-03-28 15:55:36 +00:00
conradchen
7c160c86fb [CleanUp][TextField] Create EndIconDelegates in an on-demand fashion
This should slightly improve the text field rendering performance.

PiperOrigin-RevId: 435411420
2022-03-18 18:50:15 +00:00
leticiars
dce4419744 [TextInputLayout][a11y] Fixed text field's focused rect wrong behavior when using a11y magnification.
Before, in requestRectangleOnScreen we were setting the text input layout’s rectangle to a specific and constant position, which caused the zoomed in screen to be fixed to the left instead of following the input text as it was typed. We should use the edit text’s rectangle’s position first, then adjust for the text field’s height (which includes the helper/error text), then use that updated rectangle on the super call of the method.

PiperOrigin-RevId: 435402032
2022-03-17 18:52:42 +00:00
conradchen
6cdf7b5155 [CleanUp][TextField] Extract end components from TextInputLayout
PiperOrigin-RevId: 435390505
2022-03-17 18:51:39 +00:00
leticiars
b9a21f0d97 [a11y][ExposedDropdownMenu] Fixed end icon focus in a11y mode when a11y mode is turned on/off after views have been attached. Also added a11y tests.
PiperOrigin-RevId: 433472357
2022-03-09 22:11:21 +00:00
conradchen
9a46af2af2 [CleanUp][TextField] Extract start components from TextInputLayout
PiperOrigin-RevId: 432953110
2022-03-09 21:07:45 +00:00