@@ -107,24 +107,48 @@ class AwidgetProvider : AppWidgetProvider() {
107107 val sizeEvents = prefs.getFloat(" size_events" , 14f )
108108
109109 val showOutline = prefs.getBoolean(" show_outline" , false )
110+ val useLightTheme = prefs.getBoolean(" use_light_theme" , false )
110111
111- // --- Apply Outline ---
112- views.setInt(R .id.widget_root, " setBackgroundResource" , if (showOutline) R .drawable.background_glow else R .drawable.background_dark)
112+ // --- Theme Setup ---
113+ val bgRes = if (useLightTheme) {
114+ if (showOutline) R .drawable.background_glow_light else R .drawable.background_light
115+ } else {
116+ if (showOutline) R .drawable.background_glow else R .drawable.background_dark
117+ }
118+
119+ val primaryColor = if (useLightTheme) {
120+ context.getColor(R .color.widget_text_light)
121+ } else {
122+ android.graphics.Color .WHITE
123+ }
124+
125+ val secondaryColor = if (useLightTheme) {
126+ context.getColor(R .color.widget_text_secondary_light)
127+ } else {
128+ android.graphics.Color .parseColor(" #CCFFFFFF" )
129+ }
130+
131+ // --- Apply Outline / Background ---
132+ views.setInt(R .id.widget_root, " setBackgroundResource" , bgRes)
113133
114134 // --- Apply Time ---
115135 views.setViewVisibility(R .id.clock_time, if (showTime) android.view.View .VISIBLE else android.view.View .GONE )
116136 views.setTextViewTextSize(R .id.clock_time, android.util.TypedValue .COMPLEX_UNIT_SP , sizeTime)
137+ views.setTextColor(R .id.clock_time, primaryColor)
117138
118139 // --- Apply Date ---
119140 views.setViewVisibility(R .id.clock_date, if (showDate) android.view.View .VISIBLE else android.view.View .GONE )
120- views.setTextViewTextSize(R .id.clock_date, android.util.TypedValue .COMPLEX_UNIT_SP , sizeDate) // Using prefs default 18f or saved
141+ views.setTextViewTextSize(R .id.clock_date, android.util.TypedValue .COMPLEX_UNIT_SP , sizeDate)
142+ views.setTextColor(R .id.clock_date, secondaryColor)
121143
122144 // --- Apply Battery & Temp ---
123145 views.setViewVisibility(R .id.text_battery, if (showBattery) android.view.View .VISIBLE else android.view.View .GONE )
124146 views.setTextViewTextSize(R .id.text_battery, android.util.TypedValue .COMPLEX_UNIT_SP , sizeBattery)
147+ views.setTextColor(R .id.text_battery, primaryColor)
125148
126149 views.setViewVisibility(R .id.text_temp, if (showTemp) android.view.View .VISIBLE else android.view.View .GONE )
127150 views.setTextViewTextSize(R .id.text_temp, android.util.TypedValue .COMPLEX_UNIT_SP , sizeTemp)
151+ views.setTextColor(R .id.text_temp, secondaryColor)
128152
129153 // --- Fetch & Update Data (Battery) ---
130154 val batteryStatus: Intent ? = IntentFilter (Intent .ACTION_BATTERY_CHANGED ).let { ifilter ->
@@ -168,7 +192,7 @@ class AwidgetProvider : AppWidgetProvider() {
168192 // --- Calendar Events ---
169193 views.setViewVisibility(R .id.events_container, if (showEvents) android.view.View .VISIBLE else android.view.View .GONE )
170194 if (showEvents) {
171- loadCalendarEvents(context, views, sizeEvents)
195+ loadCalendarEvents(context, views, sizeEvents, primaryColor, secondaryColor )
172196 }
173197
174198 // Click on events container to refresh widget
@@ -187,7 +211,7 @@ class AwidgetProvider : AppWidgetProvider() {
187211 }
188212
189213
190- private fun loadCalendarEvents (context : Context , views : RemoteViews , textSizeSp : Float ) {
214+ private fun loadCalendarEvents (context : Context , views : RemoteViews , textSizeSp : Float , primaryColor : Int , secondaryColor : Int ) {
191215 // Check permission
192216 if (androidx.core.content.ContextCompat .checkSelfPermission(
193217 context, android.Manifest .permission.READ_CALENDAR
@@ -276,10 +300,6 @@ class AwidgetProvider : AppWidgetProvider() {
276300 val timeFormat = java.text.SimpleDateFormat (" h:mm a" , java.util.Locale .getDefault())
277301 val dayFormat = java.text.SimpleDateFormat (" EEE" , java.util.Locale .getDefault())
278302
279- // Colors: Local events brighter, holidays dimmer
280- val localColor = android.graphics.Color .parseColor(" #FFFFFF" ) // Bright white
281- val holidayColor = android.graphics.Color .parseColor(" #99FFFFFF" ) // Dimmer
282-
283303 for (i in eventViews.indices) {
284304 if (i < events.size) {
285305 val event = events[i]
@@ -289,7 +309,7 @@ class AwidgetProvider : AppWidgetProvider() {
289309 " ${dayFormat.format(java.util.Date (event.begin))} ${timeFormat.format(java.util.Date (event.begin))} "
290310 }
291311 views.setTextViewText(eventViews[i], " • $timeText ${event.title} " )
292- views.setTextColor(eventViews[i], if (event.isLocal) localColor else holidayColor )
312+ views.setTextColor(eventViews[i], if (event.isLocal) primaryColor else secondaryColor )
293313 views.setTextViewTextSize(eventViews[i], android.util.TypedValue .COMPLEX_UNIT_SP , textSizeSp)
294314 views.setViewVisibility(eventViews[i], android.view.View .VISIBLE )
295315 } else {
0 commit comments