diff --git a/app/src/main/java/org/linphone/ui/main/viewmodel/MainViewModel.kt b/app/src/main/java/org/linphone/ui/main/viewmodel/MainViewModel.kt index 27a9c7334..fc7184eba 100644 --- a/app/src/main/java/org/linphone/ui/main/viewmodel/MainViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/viewmodel/MainViewModel.kt @@ -40,6 +40,7 @@ import org.linphone.core.ChatRoom import org.linphone.core.Core import org.linphone.core.CoreListenerStub import org.linphone.core.GlobalState +import org.linphone.core.MessageWaitingIndication import org.linphone.core.RegistrationState import org.linphone.core.VFS import org.linphone.core.tools.Log @@ -53,6 +54,7 @@ class MainViewModel @UiThread constructor() : ViewModel() { private const val TAG = "[Main ViewModel]" const val NONE = 0 + const val MWI_MESSAGES_WAITING = 4 const val NON_DEFAULT_ACCOUNT_NOTIFICATIONS = 5 const val NON_DEFAULT_ACCOUNT_NOT_CONNECTED = 10 const val SEND_NOTIFICATIONS_PERMISSION_NOT_GRANTED = 17 @@ -288,6 +290,32 @@ class MainViewModel @UiThread constructor() : ViewModel() { lastAccountRemovedEvent.postValue(Event(true)) } } + + @WorkerThread + override fun onMessageWaitingIndicationChanged( + core: Core, + event: org.linphone.core.Event, + mwi: MessageWaitingIndication + ) { + if (mwi.hasMessageWaiting()) { + val summaries = mwi.summaries + Log.i( + "$TAG MWI NOTIFY received, messages are waiting ([${summaries.size}] summaries)" + ) + if (summaries.isNotEmpty()) { + val summary = summaries.first() + val label = AppUtils.getStringWithPlural( + R.plurals.mwi_messages_are_waiting, + summary.nbNew, + summary.nbNew.toString() + ) + addAlert(MWI_MESSAGES_WAITING, label) + } + } else { + Log.i("$TAG MWI NOTIFY received, no message is waiting") + removeAlert(MWI_MESSAGES_WAITING) + } + } } init { diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index bcbd159e1..3f9c8c5d2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -743,6 +743,10 @@ Contacts Suggestions La permission de poster des notifications n\'est pas donnée ! + + %s message vocal en attente + %s messages vocaux en attente + Passer diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a6a0a7910..c75065098 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -781,6 +781,10 @@ Contacts Suggestions Post notifications permission not granted! + + %s new voice message + %s new voice messages + Skip