From dd1ec48cbd99b13477b5738c2851ae583a379dd1 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 18 Oct 2022 15:47:07 +0200 Subject: [PATCH] Dismiss ZRTP SAS validation dialog when clicking outside --- .../linphone/activities/main/viewmodels/DialogViewModel.kt | 7 +++++++ .../linphone/activities/voip/fragments/StatusFragment.kt | 6 ++++++ app/src/main/res/layout/voip_dialog.xml | 3 +++ 3 files changed, 16 insertions(+) diff --git a/app/src/main/java/org/linphone/activities/main/viewmodels/DialogViewModel.kt b/app/src/main/java/org/linphone/activities/main/viewmodels/DialogViewModel.kt index 68ea7459e..050821270 100644 --- a/app/src/main/java/org/linphone/activities/main/viewmodels/DialogViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/viewmodels/DialogViewModel.kt @@ -23,6 +23,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import org.linphone.R import org.linphone.utils.AppUtils +import org.linphone.utils.Event class DialogViewModel(val message: String, val title: String = "") : ViewModel() { var showDoNotAskAgain: Boolean = false @@ -41,6 +42,8 @@ class DialogViewModel(val message: String, val title: String = "") : ViewModel() val doNotAskAgain = MutableLiveData() + val dismissEvent = MutableLiveData>() + init { doNotAskAgain.value = false showTitle = title.isNotEmpty() @@ -92,4 +95,8 @@ class DialogViewModel(val message: String, val title: String = "") : ViewModel() fun onOkClicked() { onOk(doNotAskAgain.value == true) } + + fun dismiss() { + dismissEvent.value = Event(true) + } } diff --git a/app/src/main/java/org/linphone/activities/voip/fragments/StatusFragment.kt b/app/src/main/java/org/linphone/activities/voip/fragments/StatusFragment.kt index e8ce89a73..ba5a253d3 100644 --- a/app/src/main/java/org/linphone/activities/voip/fragments/StatusFragment.kt +++ b/app/src/main/java/org/linphone/activities/voip/fragments/StatusFragment.kt @@ -140,6 +140,12 @@ class StatusFragment : GenericFragment() { getString(R.string.zrtp_dialog_ok_button_label) ) + viewModel.dismissEvent.observe(viewLifecycleOwner) { + it.consume { + dialog.dismiss() + } + } + zrtpDialog = dialog dialog.show() } diff --git a/app/src/main/res/layout/voip_dialog.xml b/app/src/main/res/layout/voip_dialog.xml index 8975f262d..8cf555de1 100644 --- a/app/src/main/res/layout/voip_dialog.xml +++ b/app/src/main/res/layout/voip_dialog.xml @@ -10,6 +10,7 @@