From 2ab24f893abf1355646ca04113a509449ce82faa Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 11 Apr 2022 11:00:54 +0200 Subject: [PATCH] Showing snack bar when you're the first to join a conference or when you're the last one in it --- .../main/files/fragments/PdfViewerFragment.kt | 1 - .../voip/fragments/ConferenceCallFragment.kt | 18 +++++++++++++++++ .../voip/viewmodels/ConferenceViewModel.kt | 20 +++++++++++++++++-- app/src/main/res/values-fr/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/files/fragments/PdfViewerFragment.kt b/app/src/main/java/org/linphone/activities/main/files/fragments/PdfViewerFragment.kt index d08293e38..799543fc4 100644 --- a/app/src/main/java/org/linphone/activities/main/files/fragments/PdfViewerFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/files/fragments/PdfViewerFragment.kt @@ -56,6 +56,5 @@ class PdfViewerFragment : GenericViewerFragment() adapter = PdfPagesListAdapter(viewModel) binding.pdfViewPager.adapter = adapter - //adapter.notifyDataSetChanged() } } diff --git a/app/src/main/java/org/linphone/activities/voip/fragments/ConferenceCallFragment.kt b/app/src/main/java/org/linphone/activities/voip/fragments/ConferenceCallFragment.kt index 516d56480..15fbb90a1 100644 --- a/app/src/main/java/org/linphone/activities/voip/fragments/ConferenceCallFragment.kt +++ b/app/src/main/java/org/linphone/activities/voip/fragments/ConferenceCallFragment.kt @@ -136,6 +136,24 @@ class ConferenceCallFragment : GenericFragment() val isRemotelyRecorded = MutableLiveData() + val maxParticipantsForMosaicLayout = corePreferences.maxConferenceParticipantsForMosaicLayout + + val speakingParticipant = MutableLiveData() + val participantAdminStatusChangedEvent: MutableLiveData> by lazy { MutableLiveData>() } - val maxParticipantsForMosaicLayout = corePreferences.maxConferenceParticipantsForMosaicLayout + val firstToJoinEvent: MutableLiveData> by lazy { + MutableLiveData>() + } - val speakingParticipant = MutableLiveData() + val allParticipantsLeftEvent: MutableLiveData> by lazy { + MutableLiveData>() + } private val conferenceListener = object : ConferenceListenerStub() { override fun onParticipantAdded(conference: Conference, participant: Participant) { @@ -72,6 +80,10 @@ class ConferenceViewModel : ViewModel() { override fun onParticipantRemoved(conference: Conference, participant: Participant) { Log.i("[Conference] Participant removed: ${participant.address.asStringUriOnly()}") updateParticipantsList(conference) + + if (conferenceParticipants.value.orEmpty().isEmpty()) { + allParticipantsLeftEvent.value = Event(true) + } } override fun onParticipantDeviceAdded( @@ -246,6 +258,10 @@ class ConferenceViewModel : ViewModel() { isRecording.value = conference.isRecording updateConferenceLayout(conference) + + if (conferenceParticipants.value.orEmpty().isEmpty()) { + firstToJoinEvent.value = Event(true) + } } fun configureConference(conference: Conference) { diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 9c27353db..8077d4717 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -721,4 +721,6 @@ Faible bande passante détectée, vidéo désactivée Afficher/cacher les détails de la conférence Participants de la conférence + Vous êtes le premier à avoir rejoint la conférence + Tous les autres participants ont quitté la conférence \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 485ec302e..00fb4c6f6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -290,6 +290,8 @@ You have been invited to a conference Conference invitation Low bandwidth detected, disabling video + You\'re the first to join the conference + All other participants have left the conference Incoming Call