From 802503f82b80da4e283822244c9bdd245d3c2790 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 25 Jul 2025 12:21:02 +0200 Subject: [PATCH] Fixed duplicated week label if 'no meeting today' is first of the week, improved layout a bit --- .../meetings/viewmodel/MeetingsListViewModel.kt | 15 +++++---------- app/src/main/res/layout/meeting_list_cell.xml | 2 +- .../res/layout/meeting_list_today_indicator.xml | 11 ++++++----- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt index 0e6ef5ec7..5673b406a 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingsListViewModel.kt @@ -188,6 +188,10 @@ class MeetingsListViewModel var previousModel: MeetingModel? = null var previousModelWeekLabel = "" var meetingForTodayFound = false + val todayWeekLabel = TimestampUtils.firstAndLastDayOfWeek( + System.currentTimeMillis(), + false + ) Log.d("$TAG There are [${sortedSource.size}] conference info in DB") for (info: ConferenceInfo in sortedSource) { @@ -234,17 +238,12 @@ class MeetingsListViewModel // but only add that fake meeting if filter is empty if (!meetingForTodayFound && model.isAfterToday) { if (filter.isEmpty()) { - val todayWeekLabel = TimestampUtils.firstAndLastDayOfWeek( - System.currentTimeMillis(), - false - ) val first = previousModelWeekLabel != todayWeekLabel list.add(MeetingListItemModel(null, first)) meetingForTodayFound = true - // Consider next meeting is first of the week (do not count "no meeting today" as first) previousModelWeekLabel = model.weekLabel - firstMeetingOfTheWeek = true + firstMeetingOfTheWeek = false } } else { previousModelWeekLabel = model.weekLabel @@ -258,10 +257,6 @@ class MeetingsListViewModel // If no meeting was found after today, insert "Today" fake model at the end, // but only add that fake meeting if filter is empty if (!meetingForTodayFound && filter.isEmpty()) { - val todayWeekLabel = TimestampUtils.firstAndLastDayOfWeek( - System.currentTimeMillis(), - false - ) val firstMeetingOfTheWeek = previousModelWeekLabel != todayWeekLabel list.add(MeetingListItemModel(null, firstMeetingOfTheWeek)) } diff --git a/app/src/main/res/layout/meeting_list_cell.xml b/app/src/main/res/layout/meeting_list_cell.xml index aeea03096..73d9c53e3 100644 --- a/app/src/main/res/layout/meeting_list_cell.xml +++ b/app/src/main/res/layout/meeting_list_cell.xml @@ -34,7 +34,7 @@ android:textColor="?attr/color_main2_500" android:maxLines="1" android:ellipsize="end" - android:visibility="@{model.firstMeetingOfTheWeek ? View.VISIBLE : View.GONE}" + android:visibility="@{model.firstMeetingOfTheWeek ? View.VISIBLE : View.GONE, default=gone}" app:layout_constraintStart_toStartOf="@id/cardview" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/header_day" diff --git a/app/src/main/res/layout/meeting_list_today_indicator.xml b/app/src/main/res/layout/meeting_list_today_indicator.xml index 8ebae2c07..715eb6c8c 100644 --- a/app/src/main/res/layout/meeting_list_today_indicator.xml +++ b/app/src/main/res/layout/meeting_list_today_indicator.xml @@ -13,6 +13,7 @@ @@ -28,7 +29,7 @@ android:textColor="?attr/color_main2_500" android:maxLines="1" android:ellipsize="end" - android:visibility="@{model.firstMeetingOfTheWeek ? View.VISIBLE : View.GONE}" + android:visibility="@{model.firstMeetingOfTheWeek ? View.VISIBLE : View.GONE, default=gone}" app:layout_constraintStart_toStartOf="@id/title" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/header_day" @@ -55,7 +56,7 @@ android:contentDescription="@null" android:src="@drawable/shape_circle_primary_background" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/header_day" /> + app:layout_constraintTop_toBottomOf="@id/header_day"/>