@@ -2,6 +2,7 @@ package com.reactcommunity.rndatetimepicker
2
2
3
3
import android.content.DialogInterface
4
4
import android.os.Bundle
5
+ import android.util.TypedValue
5
6
import androidx.fragment.app.FragmentManager
6
7
import com.facebook.react.bridge.Promise
7
8
import com.facebook.react.bridge.ReactApplicationContext
@@ -13,6 +14,7 @@ import com.google.android.material.datepicker.DateValidatorPointBackward
13
14
import com.google.android.material.datepicker.DateValidatorPointForward
14
15
import com.google.android.material.datepicker.MaterialDatePicker
15
16
import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener
17
+ import com.google.android.material.R
16
18
import java.util.Calendar
17
19
18
20
class RNMaterialDatePicker (
@@ -97,14 +99,25 @@ class RNMaterialDatePicker(
97
99
98
100
private fun setFullscreen () {
99
101
val isFullscreen = args.getBoolean(RNConstants .ARG_FULLSCREEN )
100
-
101
102
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)
103
105
} else {
104
- builder.setTheme(com.google.android.material.R .style.ThemeOverlay_Material3_MaterialCalendar )
106
+ val themeId = obtainMaterialThemeOverlayId(R .attr.materialCalendarTheme)
107
+ builder.setTheme(themeId)
105
108
}
106
109
}
107
110
111
+ private fun obtainMaterialThemeOverlayId (resId : Int ): Int {
112
+ if (reactContext.currentActivity?.theme == null ) {
113
+ return resId
114
+ }
115
+
116
+ val typedValue = TypedValue ()
117
+ reactContext.currentActivity!! .theme!! .resolveAttribute(resId, typedValue, true )
118
+ return typedValue.resourceId
119
+ }
120
+
108
121
private fun addListeners () {
109
122
val listeners = Listeners ()
110
123
datePicker!! .addOnPositiveButtonClickListener(listeners)
0 commit comments