diff --git a/app/src/main/java/org/linphone/ui/main/meetings/adapter/MeetingsListAdapter.kt b/app/src/main/java/org/linphone/ui/main/meetings/adapter/MeetingsListAdapter.kt index 1844e7259..ee8dde14b 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/adapter/MeetingsListAdapter.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/adapter/MeetingsListAdapter.kt @@ -32,6 +32,7 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import org.linphone.R import org.linphone.databinding.MeetingListCellBinding +import org.linphone.databinding.MeetingListTodayIndicatorBinding import org.linphone.databinding.MeetingsListDecorationBinding import org.linphone.ui.main.meetings.model.MeetingListItemModel import org.linphone.ui.main.meetings.model.MeetingModel @@ -91,6 +92,8 @@ class MeetingsListAdapter : override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { if (holder is MeetingViewHolder) { holder.bind(getItem(position).model as MeetingModel) + } else if (holder is TodayIndicatorViewHolder) { + holder.bind(getItem(position)) } } @@ -125,13 +128,17 @@ class MeetingsListAdapter : } private fun createTodayIndicatorViewHolder(parent: ViewGroup): TodayIndicatorViewHolder { - return TodayIndicatorViewHolder( - LayoutInflater.from(parent.context).inflate( - R.layout.meeting_list_today_indicator, - parent, - false - ) + val binding: MeetingListTodayIndicatorBinding = DataBindingUtil.inflate( + LayoutInflater.from(parent.context), + R.layout.meeting_list_today_indicator, + parent, + false ) + val viewHolder = TodayIndicatorViewHolder(binding) + binding.apply { + lifecycleOwner = parent.findViewTreeLifecycleOwner() + } + return viewHolder } inner class MeetingViewHolder( @@ -150,8 +157,16 @@ class MeetingsListAdapter : } inner class TodayIndicatorViewHolder( - val view: View - ) : RecyclerView.ViewHolder(view) + val binding: MeetingListTodayIndicatorBinding + ) : RecyclerView.ViewHolder(binding.root) { + @UiThread + fun bind(meetingListModel: MeetingListItemModel) { + with(binding) { + model = meetingListModel + executePendingBindings() + } + } + } private class MeetingDiffCallback : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: MeetingListItemModel, newItem: MeetingListItemModel): Boolean { diff --git a/app/src/main/java/org/linphone/ui/main/meetings/model/MeetingListItemModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/model/MeetingListItemModel.kt index b4455fd35..43a831c93 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/model/MeetingListItemModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/model/MeetingListItemModel.kt @@ -27,6 +27,13 @@ class MeetingListItemModel @WorkerThread constructor(meetingModel: MeetingModel? val month = meetingModel?.month ?: TimestampUtils.month(System.currentTimeMillis(), false) + val day = meetingModel?.day ?: TimestampUtils.dayOfWeek(System.currentTimeMillis(), false) + + val dayNumber = meetingModel?.dayNumber ?: TimestampUtils.dayOfMonth( + System.currentTimeMillis(), + false + ) + val model = meetingModel ?: TodayModel() class TodayModel 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 46117acea..3df875155 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 @@ -118,9 +118,7 @@ class MeetingsListViewModel @UiThread constructor() : AbstractMainViewModel() { } model.firstMeetingOfTheDay.postValue(firstMeetingOfTheDay) - // Insert "Today" fake model before the first one of today - if (firstMeetingOfTheDay && model.isToday) { - list.add(MeetingListItemModel(null)) + if (model.isToday) { meetingForTodayFound = true } diff --git a/app/src/main/res/layout/meeting_list_cell.xml b/app/src/main/res/layout/meeting_list_cell.xml index f625def5b..e5f908598 100644 --- a/app/src/main/res/layout/meeting_list_cell.xml +++ b/app/src/main/res/layout/meeting_list_cell.xml @@ -55,7 +55,7 @@ android:layout_height="wrap_content" android:text="@{model.dayNumber, default=`19`}" android:visibility="@{model.firstMeetingOfTheDay ? View.VISIBLE : View.INVISIBLE}" - android:textColor="@{model.isToday ? @color/main2_000 : @color/main2_500, default=@color/main2_500}" + android:textColor="@{model.isToday ? @color/main2_000 : @color/main2_500, default=`#ffffff`}" android:textSize="20sp" android:paddingBottom="4dp" app:layout_constraintStart_toStartOf="@id/today_background" 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 9f7b9414e..848de9458 100644 --- a/app/src/main/res/layout/meeting_list_today_indicator.xml +++ b/app/src/main/res/layout/meeting_list_today_indicator.xml @@ -1,25 +1,75 @@ - + - + + + + + + android:paddingStart="16dp" + android:paddingEnd="16dp"> - + - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 445cef971..a4554ec52 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -477,6 +477,7 @@ Aucune réunion pour le moment… Aujourd\'hui + Aucune réunion aujourd\'hui Nouvelle réunion Réunion diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9d852d6dc..c19e8042f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -513,6 +513,7 @@ No meeting for the moment… Today + No meeting scheduled for today New meeting Meeting