diff --git a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt index 059f1241d..d0f68f72a 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/fragment/MeetingsListFragment.kt @@ -128,10 +128,14 @@ class MeetingsListFragment : AbstractMainFragment() { adapter.meetingClickedEvent.observe(viewLifecycleOwner) { it.consume { model -> - Log.i("$TAG Show conversation with ID [${model.id}]") - sharedViewModel.displayedMeeting = model.conferenceInfo - val action = MeetingFragmentDirections.actionGlobalMeetingFragment(model.id) - binding.meetingsNavContainer.findNavController().navigate(action) + if (model.isCancelled) { + Log.w("$TAG Meeting with ID [${model.id}] is cancelled, can't show the details") + } else { + Log.i("$TAG Show meeting with ID [${model.id}]") + sharedViewModel.displayedMeeting = model.conferenceInfo + val action = MeetingFragmentDirections.actionGlobalMeetingFragment(model.id) + binding.meetingsNavContainer.findNavController().navigate(action) + } } } 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 b8355d5f7..063e86c71 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 @@ -26,7 +26,7 @@ class MeetingListItemModel @WorkerThread constructor( meetingModel: MeetingModel?, val firstMeetingOfTheWeek: Boolean ) { - val isToday = meetingModel == null + val isToday = meetingModel == null || meetingModel.isToday val month = meetingModel?.month ?: TimestampUtils.month(System.currentTimeMillis(), false) diff --git a/app/src/main/java/org/linphone/ui/main/meetings/model/MeetingModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/model/MeetingModel.kt index 20f8b156a..e13f674f2 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/model/MeetingModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/model/MeetingModel.kt @@ -63,6 +63,8 @@ class MeetingModel @WorkerThread constructor(val conferenceInfo: ConferenceInfo) val firstMeetingOfTheWeek = MutableLiveData() + val isCancelled = conferenceInfo.state == ConferenceInfo.State.Cancelled + init { subject.postValue(conferenceInfo.subject) diff --git a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt index 313f802a5..caa40d661 100644 --- a/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/meetings/viewmodel/MeetingViewModel.kt @@ -63,6 +63,8 @@ class MeetingViewModel @UiThread constructor() : GenericViewModel() { val participants = MutableLiveData>() + val isCancelled = MutableLiveData() + val conferenceInfoFoundEvent = MutableLiveData>() val startTimeStamp = MutableLiveData() @@ -212,6 +214,10 @@ class MeetingViewModel @UiThread constructor() : GenericViewModel() { sipUri.postValue(conferenceInfo.uri?.asStringUriOnly() ?: "") description.postValue(conferenceInfo.description) + val state = conferenceInfo.state + Log.i("$TAG Conference info is in state [$state]") + isCancelled.postValue(state == ConferenceInfo.State.Cancelled) + val timestamp = conferenceInfo.dateTime val duration = conferenceInfo.duration val date = TimestampUtils.toString( diff --git a/app/src/main/res/layout/meeting_list_cell.xml b/app/src/main/res/layout/meeting_list_cell.xml index 5056ce708..69ac843ca 100644 --- a/app/src/main/res/layout/meeting_list_cell.xml +++ b/app/src/main/res/layout/meeting_list_cell.xml @@ -132,6 +132,27 @@ android:textColor="?attr/color_main2_500" android:maxLines="1" android:ellipsize="end" + android:visibility="@{model.isCancelled ? View.GONE : View.VISIBLE}" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/title" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" /> + + La réunion a été créée La réunion a été mise à jour La réunion a été annulée + Réunion annulée Échec de la création de la réunion ! Au moins un champ obligatoire n\'a pas été rempli Échec de l\'envoi des invitations à la réunion ! diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 462c439bd..303b4c101 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -573,6 +573,7 @@ Meeting has been created Meeting has been updated Meeting has been cancelled + Meeting cancelled Failed to schedule meeting! A least a mandatory field wasn\'t filled Failed to send all invites to meeting!