From 8c76f2d816c34bfa6a44f37b8bafb717eeb5cf0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 11 May 2026 13:55:16 +0200 Subject: [PATCH] removed now indicator from android and ios widgets --- .../mobile/client/widgets/WidgetRenderer.kt | 46 ------------------- .../res/drawable/widget_now_indicator.xml | 5 -- .../main/res/layout/widget_now_indicator.xml | 7 --- .../TimetableDayView.swift | 26 ----------- .../TimetableWeekView.swift | 1 - 5 files changed, 85 deletions(-) delete mode 100644 android/app/src/main/res/drawable/widget_now_indicator.xml delete mode 100644 android/app/src/main/res/layout/widget_now_indicator.xml diff --git a/android/app/src/main/kotlin/eu/mhsl/marianum/mobile/client/widgets/WidgetRenderer.kt b/android/app/src/main/kotlin/eu/mhsl/marianum/mobile/client/widgets/WidgetRenderer.kt index 3c454dd..a9d1c22 100644 --- a/android/app/src/main/kotlin/eu/mhsl/marianum/mobile/client/widgets/WidgetRenderer.kt +++ b/android/app/src/main/kotlin/eu/mhsl/marianum/mobile/client/widgets/WidgetRenderer.kt @@ -167,14 +167,6 @@ object WidgetRenderer { horizontalPaddingDp = 7, ) } - maybeAddNowIndicator( - packageName, - views, - R.id.widget_day_grid, - hourHeightDp, - anchorDate = data.anchorDate, - periods = data.periods, - ) } views.setOnClickPendingIntent(R.id.widget_root, openAppIntent(context)) @@ -283,16 +275,6 @@ object WidgetRenderer { horizontalPaddingDp = 3, ) } - if (WidgetDateUtils.isSameDay(day, Date())) { - maybeAddNowIndicator( - packageName, - views, - columnId, - hourHeightDp, - anchorDate = day, - periods = data.periods, - ) - } } views.setOnClickPendingIntent(R.id.widget_root, openAppIntent(context)) @@ -644,34 +626,6 @@ object WidgetRenderer { } } - private fun maybeAddNowIndicator( - packageName: String, - parent: RemoteViews, - containerId: Int, - hourHeightDp: Float, - anchorDate: Date, - periods: List, - ) { - if (!WidgetDateUtils.isSameDay(anchorDate, Date())) return - val now = Calendar.getInstance() - val nowMinutes = now.get(Calendar.HOUR_OF_DAY) * 60 + now.get(Calendar.MINUTE) - if (periods.isNotEmpty()) { - if (nowMinutes < periods.first().startMinutes || - nowMinutes > periods.last().endMinutes - ) return - } - val virtualNow = realMinutesToVirtual(nowMinutes, periods) - val topDp = virtualNow * hourHeightDp / 60.0f - val indicator = RemoteViews(packageName, R.layout.widget_now_indicator) - indicator.setViewLayoutMargin( - R.id.widget_now_indicator_root, - RemoteViews.MARGIN_TOP, - topDp, - TypedValue.COMPLEX_UNIT_DIP, - ) - parent.addView(containerId, indicator) - } - /// Custom-events use the user-picked palette (orange/red/green/blue, /// mirroring CustomTimetableColors). private fun statusDrawable(lesson: WidgetLesson): Int { diff --git a/android/app/src/main/res/drawable/widget_now_indicator.xml b/android/app/src/main/res/drawable/widget_now_indicator.xml deleted file mode 100644 index 48a7f67..0000000 --- a/android/app/src/main/res/drawable/widget_now_indicator.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/android/app/src/main/res/layout/widget_now_indicator.xml b/android/app/src/main/res/layout/widget_now_indicator.xml deleted file mode 100644 index 02f77de..0000000 --- a/android/app/src/main/res/layout/widget_now_indicator.xml +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/ios/TimetableWidgetExtension/TimetableDayView.swift b/ios/TimetableWidgetExtension/TimetableDayView.swift index 6ece9f7..ea4b977 100644 --- a/ios/TimetableWidgetExtension/TimetableDayView.swift +++ b/ios/TimetableWidgetExtension/TimetableDayView.swift @@ -82,7 +82,6 @@ struct TimetableDayView: View { TimeGridView( lessons: data.lessons, periods: data.periods, - anchorDate: data.anchorDate, hourHeight: max( MIN_HOUR_HEIGHT, min(MAX_HOUR_HEIGHT, geo.size.height / max(totalMin, 60) * 60) @@ -135,7 +134,6 @@ struct TimetableDayView: View { struct TimeGridView: View { let lessons: [WidgetLesson] let periods: [WidgetPeriod] - let anchorDate: Date let hourHeight: CGFloat let showRoom: Bool let showTeacher: Bool @@ -170,9 +168,6 @@ struct TimeGridView: View { ForEach(lessons.indices, id: \.self) { idx in lessonBlock(lessons[idx]) } - if Calendar.current.isDate(anchorDate, inSameDayAs: Date()) { - nowIndicator - } } .frame(maxWidth: .infinity, minHeight: totalHeight, alignment: .top) } @@ -344,27 +339,6 @@ struct TimeGridView: View { } } - private var nowIndicator: some View { - let cal = Calendar.current - let comps = cal.dateComponents([.hour, .minute], from: Date()) - let nowMinutes = (comps.hour ?? 0) * 60 + (comps.minute ?? 0) - let inside: Bool - if let first = periods.first, let last = periods.last { - inside = nowMinutes >= first.startMinutes && nowMinutes <= last.endMinutes - } else { - inside = true - } - let top = realMinutesToVirtual(nowMinutes, periods: periods) * hourHeight / 60.0 - return Group { - if inside { - Rectangle() - .fill(Color.red) - .frame(height: 2) - .offset(y: top) - } - } - } - private func subjectLabel(_ lesson: WidgetLesson) -> String { !lesson.subjectShort.isEmpty ? lesson.subjectShort diff --git a/ios/TimetableWidgetExtension/TimetableWeekView.swift b/ios/TimetableWidgetExtension/TimetableWeekView.swift index 6173097..4a03a2c 100644 --- a/ios/TimetableWidgetExtension/TimetableWeekView.swift +++ b/ios/TimetableWidgetExtension/TimetableWeekView.swift @@ -131,7 +131,6 @@ struct TimetableWeekView: View { return TimeGridView( lessons: lessonsForDay, periods: data.periods, - anchorDate: day, hourHeight: hourHeight, showRoom: !subjectOnly, showTeacher: !subjectOnly,