@@ -2,6 +2,7 @@ package com.reactcommunity.rndatetimepicker
22
33import android.content.DialogInterface
44import android.os.Bundle
5+ import android.util.TypedValue
56import androidx.fragment.app.FragmentManager
67import com.facebook.react.bridge.Promise
78import com.facebook.react.bridge.ReactApplicationContext
@@ -13,6 +14,7 @@ import com.google.android.material.datepicker.DateValidatorPointBackward
1314import com.google.android.material.datepicker.DateValidatorPointForward
1415import com.google.android.material.datepicker.MaterialDatePicker
1516import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener
17+ import com.google.android.material.R
1618import java.util.Calendar
1719
1820class RNMaterialDatePicker (
@@ -97,14 +99,25 @@ class RNMaterialDatePicker(
9799
98100 private fun setFullscreen () {
99101 val isFullscreen = args.getBoolean(RNConstants .ARG_FULLSCREEN )
100-
101102 if (isFullscreen) {
102- builder.setTheme(com.google.android.material.R .style.ThemeOverlay_Material3_MaterialCalendar_Fullscreen )
103+ val themeId = obtainMaterialThemeOverlayId(R .attr.materialCalendarFullscreenTheme)
104+ builder.setTheme(themeId)
103105 } else {
104- builder.setTheme(com.google.android.material.R .style.ThemeOverlay_Material3_MaterialCalendar )
106+ val themeId = obtainMaterialThemeOverlayId(R .attr.materialCalendarTheme)
107+ builder.setTheme(themeId)
105108 }
106109 }
107110
111+ private fun obtainMaterialThemeOverlayId (resId : Int ): Int {
112+ val theme = reactContext.currentActivity?.theme ? : run {
113+ return resId
114+ }
115+
116+ val typedValue = TypedValue ()
117+ theme.resolveAttribute(resId, typedValue, true )
118+ return typedValue.resourceId
119+ }
120+
108121 private fun addListeners () {
109122 val listeners = Listeners ()
110123 datePicker!! .addOnPositiveButtonClickListener(listeners)
0 commit comments