Skip to content

Commit 7b2c19b

Browse files
committed
[DatePicker] Made dialog container color configurable in xml style.
PiperOrigin-RevId: 520113790
1 parent 62aa802 commit 7b2c19b

File tree

4 files changed

+17
-4
lines changed

4 files changed

+17
-4
lines changed

lib/java/com/google/android/material/datepicker/MaterialDatePicker.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,17 +230,26 @@ public final Dialog onCreateDialog(@Nullable Bundle bundle) {
230230
Dialog dialog = new Dialog(requireContext(), getThemeResId(requireContext()));
231231
Context context = dialog.getContext();
232232
fullscreen = isFullscreen(context);
233-
int surfaceColor =
234-
MaterialAttributes.resolveOrThrow(
235-
context, R.attr.colorSurface, MaterialDatePicker.class.getCanonicalName());
236233
background =
237234
new MaterialShapeDrawable(
238235
context,
239236
null,
240237
R.attr.materialCalendarStyle,
241238
R.style.Widget_MaterialComponents_MaterialCalendar);
239+
240+
TypedArray a =
241+
context.obtainStyledAttributes(
242+
null,
243+
R.styleable.MaterialCalendar,
244+
R.attr.materialCalendarStyle,
245+
R.style.Widget_MaterialComponents_MaterialCalendar);
246+
247+
int backgroundColor = a.getColor(R.styleable.MaterialCalendar_backgroundTint, 0);
248+
249+
a.recycle();
250+
242251
background.initializeElevationOverlay(context);
243-
background.setFillColor(ColorStateList.valueOf(surfaceColor));
252+
background.setFillColor(ColorStateList.valueOf(backgroundColor));
244253
background.setElevation(ViewCompat.getElevation(dialog.getWindow().getDecorView()));
245254
return dialog;
246255
}

lib/java/com/google/android/material/datepicker/res/values/attrs.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939

4040
<declare-styleable name="MaterialCalendar">
4141
<attr name="android:windowFullscreen"/>
42+
<attr name="backgroundTint"/>
4243
<attr name="dayStyle" format="reference"/>
4344
<attr name="dayInvalidStyle" format="reference"/>
4445
<attr name="daySelectedStyle" format="reference"/>

lib/java/com/google/android/material/datepicker/res/values/styles.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
<style name="Widget.MaterialComponents.MaterialCalendar" parent="android:Widget">
3333
<item name="android:windowFullscreen">false</item>
34+
<item name="backgroundTint">?attr/colorSurface</item>
3435
<item name="shapeAppearance">?attr/shapeAppearanceMediumComponent</item>
3536
<item name="dayStyle">@style/Widget.MaterialComponents.MaterialCalendar.Day</item>
3637
<item name="dayInvalidStyle">@style/Widget.MaterialComponents.MaterialCalendar.Day.Invalid</item>
@@ -204,6 +205,7 @@
204205
<!-- M3 Date Picker styles -->
205206
<style name="Widget.Material3.MaterialCalendar" parent="Widget.MaterialComponents.MaterialCalendar">
206207
<item name="android:windowFullscreen">false</item>
208+
<item name="backgroundTint">@macro/m3_comp_date_picker_modal_container_color</item>
207209
<item name="dayStyle">@style/Widget.Material3.MaterialCalendar.Day</item>
208210
<item name="dayInvalidStyle">@style/Widget.Material3.MaterialCalendar.Day.Invalid</item>
209211
<item name="daySelectedStyle">@style/Widget.Material3.MaterialCalendar.Day.Selected</item>

lib/java/com/google/android/material/datepicker/res/values/tokens.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
<!-- Generated from token set (md.comp.date-picker.modal) in context (platform=android, audience=3p). -->
2323
<!-- Enabled - Container -->
24+
<macro name="m3_comp_date_picker_modal_container_color">?attr/colorSurface</macro>
2425
<macro name="m3_comp_date_picker_modal_container_shape">?attr/shapeAppearanceCornerExtraLarge</macro>
2526
<style name="ShapeAppearance.M3.Comp.DatePicker.Modal.Date.Container.Shape" parent="ShapeAppearance.M3.Sys.Shape.Corner.Full"/>
2627
<macro name="m3_comp_date_picker_modal_date_today_container_outline_color">?attr/colorPrimary</macro>

0 commit comments

Comments
 (0)