97 Commits

Author SHA1 Message Date
afohrman
abb21b753f Respect shapeAppearance and shapeAppearanceOverlay attributes in Chip.
Chip was setting chipCornerRadius in the style.

The chipCornerRadius attribute takes precedence over shapeAppearance cornerSize attributes in order to respect values previously set by the user. However, including it in the chip style prevents a cornerSize set in a shapeAppearance or shapeAppearanceOverlay from taking effect. This commit removes chipCornerSize from the chip style to respect cornerSize values.

PiperOrigin-RevId: 241014276
2019-04-05 15:19:48 -04:00
connieshi
e6f429fe75 Fix bug that ignored Chip#setEnsureMinTouchTargetAttribute(false) once Chip#setEnsureMinTouchTargetAttribute(true) has been called.
Ensure chip width also meets the min touch target size.

PiperOrigin-RevId: 240679599
2019-04-05 15:17:59 -04:00
connieshi
b544530ac0 Update Chip's background / surface color state lists to support state_checked as well.
PiperOrigin-RevId: 240128475
2019-03-26 17:33:09 -04:00
marianomartin
05bc55723a Add a way to disable min touch target size in fab
PiperOrigin-RevId: 239395098
2019-03-22 17:00:43 -04:00
dniz
833258417d Add @RequiresApi(VERSION_CODES.LOLLIPOP) to overriden setElevation() methods
that call super.setElevation()

PiperOrigin-RevId: 239171863
2019-03-22 16:50:21 -04:00
connieshi
6ebcd6416a Elevation overlay support for chip.
PiperOrigin-RevId: 239029411
2019-03-22 16:30:10 -04:00
afohrman
ca07e5f616 Create OnChangedListener to respond to ShapeAppearanceModel changes and Shapeable interface, and implement it in Chip.
The OnChangedListener provides a callback that MaterialShapeDrawables can use to invalidate themselves when the associated ShapeAppearanceModel changes. This allows for modifying the ShapeAppearanceModel through the get/setShapeAppearance methods that the Shapeable interface exposes without having to update the client to redraw itself.

PiperOrigin-RevId: 238703600
2019-03-22 16:16:23 -04:00
connieshi
5a9e0d378d Update ChipDrawable to use TextDrawableHelper to handle logic related to text rendering. ChipDrawable is still responsible for drawing text.
PiperOrigin-RevId: 237257476
2019-03-08 10:08:59 -05:00
marianomartin
77ac869283 Add single selection attr to resources package
PiperOrigin-RevId: 236851563
2019-03-08 09:58:19 -05:00
connieshi
3bd6fd4688 Composite chip surface and background color to reduce ovedraw.
PiperOrigin-RevId: 235979248
2019-03-08 09:39:53 -05:00
gauthams
1db449c897 Refactor dpToPx method into ViewUtils
PiperOrigin-RevId: 235243747
2019-02-24 14:38:37 -05:00
connieshi
b641bf706f Avoid infinite loop in Chip#SetLayoutDirection.
PiperOrigin-RevId: 234604880
2019-02-24 14:22:05 -05:00
connieshi
6f73e58e9d Update chipSpacingHorizontal to 8dp to match spec.
PiperOrigin-RevId: 233487590
2019-02-24 13:58:42 -05:00
Material Design Team
a0ab1c29a3 Update Chip padding on RTL properties change
Prior to this change, when setLayoutDirection is called on a parent/ancestor View of a Chip, the updated layout direction could be propagated to the Chip without updating its text padding. This change forces a padding update whenever layout direction changes.

PiperOrigin-RevId: 230933347
2019-01-25 15:22:40 -05:00
dniz
11df79f95c Clean up Gradle build shorthands for appcompat/androidx libraries
PiperOrigin-RevId: 229369959
2019-01-18 14:13:26 -05:00
marianomartin
8b7ec0c80e Add check drawable when card is selected.
PiperOrigin-RevId: 228715367
2019-01-10 17:17:34 -05:00
connieshi
6c70169e8d Update chipgroup spacing attribute documentation to clarify that it doesn't apply to hidden chips.
PiperOrigin-RevId: 226498090
2018-12-21 16:29:20 -05:00
connieshi
50d133ef03 Update chip to support dynamically changing texts in RTL layout.
PiperOrigin-RevId: 226174458
2018-12-21 11:24:38 -05:00
connieshi
3d23dbeac2 Fix logic to delegate text rendering to ChipDrawable instead of Chip.
Delegating text rendering to ChipDrawable breaks the api contract so this is for testing purposes only.

PiperOrigin-RevId: 226001080
2018-12-21 11:15:02 -05:00
cketcham
dc72aaeed4 Migrate Gradle build and sources to androidx
PiperOrigin-RevId: 225551505
2018-12-21 11:07:45 -05:00
connieshi
9b1f8478e5 Remove chipTouchTargetDelegate attribute.
PiperOrigin-RevId: 222298640
2018-12-06 11:16:48 -05:00
connieshi
9fd32f61c3 Log warning instead of UnsupportedOperationException when chip#setBackground and related methods are called.
PiperOrigin-RevId: 221665841
2018-11-16 12:18:15 -05:00
connieshi
c13949593f Add getter/setter for custom chip attribute "ensureMinTouchTargetSize".
PiperOrigin-RevId: 221145735
2018-11-16 11:28:10 -05:00
connieshi
60d1dfac70 Update chipDrawable to be wrapped by InsetDrawable (if needed) to ensure it meets Android's recommended minimum touch target size.
Update demo catalog app.

PiperOrigin-RevId: 220370443
2018-11-16 10:57:34 -05:00
connieshi
c48d882994 Add javadoc to ChipDrawable's getters and setters.
PiperOrigin-RevId: 220301488
2018-11-16 10:51:06 -05:00
connieshi
a9b6225c08 Add build.gradle dependency on shapes to the Chip module.
PiperOrigin-RevId: 220168626
2018-11-16 10:40:37 -05:00
connieshi
f219705bb6 Add javadoc to chip getters and setters.
PiperOrigin-RevId: 219793479
2018-11-16 10:37:15 -05:00
connieshi
b888d9620b Support shape theming in Chip component.
PiperOrigin-RevId: 219373344
2018-11-01 16:16:14 -07:00
connieshi
12b56e226a Make ChipSurfaceColor attribute private, remove its public getter/setters.
PiperOrigin-RevId: 218680794
2018-10-28 21:39:27 -04:00
marianomartin
9e36c150c0 Fix most javadocs errors
PiperOrigin-RevId: 216697274
2018-10-11 18:24:53 -04:00
connieshi
f3a95d09fe Avoid constantly invalidating ChipDrawable when used in standalone mode.
Created TextAppearanceFontCallback (a fork of FontCallback) in order to pass parameter indicating whether font was resolved synchronously.

PiperOrigin-RevId: 216566240
2018-10-11 18:21:33 -04:00
connieshi
fee1efe5c0 Migrate ChipDrawable to inherit from MaterialShapeDrawable instead of Drawable.
PiperOrigin-RevId: 213991051
2018-09-28 16:15:10 -04:00
connieshi
b6e96bf4d0 To avoid extra memory allocation, only run workaround for a framework bug that doesn't support themed color referenced in ColorStateList for API level < 23 when the Android version is pre-API 23.
Add test for setting a chip's text color to a CSL that references a themed color.

PiperOrigin-RevId: 212871700
2018-09-14 11:03:34 -04:00
connieshi
f64b2fb3c7 Automated g4 rollback of changelist 212803097
PiperOrigin-RevId: 212821631
2018-09-14 11:02:38 -04:00
connieshi
5b701669ac Reuse text color from ChipDrawable#getTextAppearance instead of using additional resources to refetch it.
PiperOrigin-RevId: 212803097
2018-09-14 11:02:17 -04:00
dniz
02382c612a Update Chip to use compat setLayoutDirection() method
PiperOrigin-RevId: 212680124
2018-09-14 10:59:52 -04:00
connieshi
d796149d25 Update chip to use themed color attributes.
PiperOrigin-RevId: 212104772
2018-09-14 10:51:49 -04:00
connieshi
bf33b9e4e7 Override onInitializeAccessibilityNodeInfo to explicitly tell the AccessibilityInfoNode whether a chip is checkable or clickable.
Avoid setting custom ExploreByTouchHelper as delegate in pre-N unless there's a close/trailing icon. This is necessary to workaround a Talkback bug.

PiperOrigin-RevId: 211490101
2018-09-07 11:49:26 -04:00
connieshi
bca3dad666 Add surface layer to ChipDrawable.
PiperOrigin-RevId: 210727850
2018-08-31 11:11:01 -04:00
Material Design Team
b0a9ff6658 Add an override to setLayoutDirection from the parent text view of chips.
Setting layoutDirection on TextViews to the direction of the View locale is necessary to ensure that text on chips is rendered correctly in RTL mode. Previously, it would default to LTR mode and then not get set with proper paddings until you interact with a chip to invalidate the layout.

Before (RTL): https://surbhimadan.users.x20web.corp.google.com/www/textrtl_before.mp4
After (RTL): https://surbhimadan.users.x20web.corp.google.com/www/textrtl_after.mp4
Verified no changes to LTR.

PiperOrigin-RevId: 210560864
2018-08-28 16:43:46 -04:00
connieshi
250a906620 Fix bug that ignored ripple colors set programmatically if device is running Api 21+ and framework ripple is used.
Update chip demo in catalog to have ripple color corresponding to the current theme's primary color.

PiperOrigin-RevId: 210142873
2018-08-28 16:40:45 -04:00
Material Design Team
a5c1ea2709 Fixes Chip text padding & drawing.
The previous code was setting total padding (both start & end) as just end padding of the parent TextView and relying on the invalidation phase drawing the text in the correct place by shifting canvas with computed offset of start padding. This is risky as Chip may be just re-laid without actually invalidating it and render wrong paddings. Also RTL layout direction is incorrectly identified as LTR during layout sometimes, which makes the text being rendered with incorrect offset.

This change sets the paddings correctly removing the need of manual offsetting during onDraw() and relies purely on TextView for its text rendering.

PiperOrigin-RevId: 210042249
2018-08-28 16:40:05 -04:00
connieshi
1f98c64b66 Remove redundant call to onSizeChange() in ChipDrawable#setTextAppearance(). Always evoke callback in TextAppearance#getFontAsync
Switch to using TextUtils.equals for more robust string comparison.

PiperOrigin-RevId: 209764943
2018-08-28 16:36:00 -04:00
Material Design Team
b65d0e3e57 TextAppearance typeface bug fix & refactoring of getFontAsync().
This is in preparation of larger change of moving CollapsingTextHelper onto TextAppearance to fix related bugs & avoid code duplication.

1. Introduces a version of getFontAsync() in TextAppearance that doesn't require TextPaint as an argument.
2. Refactors the existing getFontAsync to wrap the new implementation.
3. Fixes a bug - TextAppearance would not apply the correct typeface from a style when fontFamily was not present in the style def.

PiperOrigin-RevId: 209147825
2018-08-17 17:20:54 -04:00
connieshi
0ced1bcf8c Return early from Chip#setupTouchTargetDelegate If the client didn't specify touchTargetDelegate attribute in xml.
PiperOrigin-RevId: 208717708
2018-08-17 17:13:05 -04:00
connieshi
82d02a1112 Call ViewObserver#RemoveOnGlobalLayoutListener to avoid memory leak in Chip.
PiperOrigin-RevId: 208114143
2018-08-17 17:07:33 -04:00
connieshi
0c8dd4f121 Stop unicode wrapping user input strings in Chip#setText.
Remove overridden getText method, and rely on the TextView's implementation.
This also fixes accessibility issues when Talkback granularity is set to "word" or "characters".

PiperOrigin-RevId: 207296625
2018-08-17 16:59:28 -04:00
connieshi
601f2511bc Add localization to Material Design Components lib, initially for chip.
PiperOrigin-RevId: 207265701
2018-08-17 16:58:09 -04:00
connieshi
7449427d36 Each time a chip icon is updated, apply the current chip icon tint.
Fixes bug that only updated chip icon tint if tint is updated after an icon has been set.

PiperOrigin-RevId: 206838032
2018-08-02 18:06:05 -07:00
connieshi
ffa7b10cae Add null check in Chip#setupTouchTargetDelegate
PiperOrigin-RevId: 206215855
2018-08-02 18:00:36 -07:00