diff --git a/app/src/main/java/org/linphone/activities/Navigation.kt b/app/src/main/java/org/linphone/activities/Navigation.kt index d1b42cabc..b9d005f70 100644 --- a/app/src/main/java/org/linphone/activities/Navigation.kt +++ b/app/src/main/java/org/linphone/activities/Navigation.kt @@ -951,6 +951,16 @@ internal fun ConferenceCallFragment.navigateToConferenceLayout() { } } +internal fun ConferenceCallFragment.refreshConferenceFragment() { + if (findNavController().currentDestination?.id == R.id.conferenceCallFragment) { + findNavController().navigate( + R.id.action_global_conferenceCallFragment, + null, + popupTo(R.id.conferenceCallFragment, true) + ) + } +} + internal fun ConferenceParticipantsFragment.navigateToAddParticipants() { if (findNavController().currentDestination?.id == R.id.conferenceParticipantsFragment) { findNavController().navigate( 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 b498f8a11..7167d85e6 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 @@ -25,6 +25,7 @@ import android.os.Bundle import android.os.SystemClock import android.view.View import android.widget.Chronometer +import android.widget.Toast import androidx.constraintlayout.widget.ConstraintLayout import androidx.databinding.DataBindingUtil import androidx.databinding.ViewDataBinding @@ -34,7 +35,7 @@ import com.google.android.material.snackbar.Snackbar import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R -import org.linphone.activities.GenericFragment +import org.linphone.activities.* import org.linphone.activities.main.MainActivity import org.linphone.activities.navigateToCallsList import org.linphone.activities.navigateToConferenceLayout @@ -107,9 +108,11 @@ class ConferenceCallFragment : GenericFragment conferenceViewModel.maxParticipantsForMosaicLayout ) { - showSnackBar(R.string.conference_too_many_participants_for_mosaic_layout) Log.w("[Conference Call] More than ${conferenceViewModel.maxParticipantsForMosaicLayout} participants (${it.size}), forcing active speaker layout") - conferenceViewModel.conferenceDisplayMode.value = ConferenceDisplayMode.ACTIVE_SPEAKER + conferenceViewModel.changeLayout(ConferenceDisplayMode.ACTIVE_SPEAKER) + refreshConferenceFragment() + // Can't use SnackBar whilst changing fragment + Toast.makeText(requireContext(), R.string.conference_too_many_participants_for_mosaic_layout, Toast.LENGTH_LONG).show() } }