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