diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index db0e196fb..aa9a1ca91 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -121,6 +121,14 @@ class CorePreferences @UiThread constructor(private val context: Context) { config.setBool("app", "show_confirmation_dialog_zrtp_trust_call", value) } + /* Conversation related */ + + var markConversationAsReadWhenDismissingMessageNotification: Boolean + get() = config.getBool("app", "mark_as_read_notif_dismissal", false) + set(value) { + config.setBool("app", "mark_as_read_notif_dismissal", value) + } + /* Contacts related */ @get:WorkerThread @set:WorkerThread diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt index 845c3ab52..3190bc22d 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.kt +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.kt @@ -1089,6 +1089,12 @@ class NotificationsManager @MainThread constructor(private val context: Context) notificationBuilder.addPerson(person) } + if (corePreferences.markConversationAsReadWhenDismissingMessageNotification) { + Log.i("$TAG Conversation will be marked as read upon notification dismissal") + notificationBuilder + .setDeleteIntent(getMarkMessageAsReadPendingIntent(notifiable)) + } + return notificationBuilder.build() } diff --git a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt index c52c00362..c14e24be9 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt @@ -87,6 +87,8 @@ class SettingsViewModel @UiThread constructor() : GenericViewModel() { val autoDownloadEnabled = MutableLiveData() + val markAsReadWhenDismissingNotification = MutableLiveData() + // Contacts settings val showContactsSettings = MutableLiveData() @@ -271,6 +273,9 @@ class SettingsViewModel @UiThread constructor() : GenericViewModel() { allowIpv6.postValue(core.isIpv6Enabled) autoDownloadEnabled.postValue(core.maxSizeForAutoDownloadIncomingFiles == 0) + markAsReadWhenDismissingNotification.postValue( + corePreferences.markConversationAsReadWhenDismissingMessageNotification + ) defaultLayout.postValue(core.defaultConferenceLayout.toInt()) @@ -418,6 +423,15 @@ class SettingsViewModel @UiThread constructor() : GenericViewModel() { } } + @UiThread + fun toggleMarkConversationAsReadWhenDismissingNotification() { + val newValue = markAsReadWhenDismissingNotification.value == false + coreContext.postOnCoreThread { + corePreferences.markConversationAsReadWhenDismissingMessageNotification = newValue + markAsReadWhenDismissingNotification.postValue(newValue) + } + } + @UiThread fun toggleContactsExpand() { expandContacts.value = expandContacts.value == false diff --git a/app/src/main/res/layout/settings_chat.xml b/app/src/main/res/layout/settings_chat.xml index 9f9e64559..d118eada6 100644 --- a/app/src/main/res/layout/settings_chat.xml +++ b/app/src/main/res/layout/settings_chat.xml @@ -44,6 +44,34 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 657b87b40..899128750 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -194,6 +194,7 @@ Changer de sonnerie Conversations Télécharger automatiquement les fichiers + Marquer la conversation comme lue lorsqu\'une notification de message est supprimée Contacts Ajouter un serveur LDAP Editer le serveur LDAP diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 13c8e712d..610d246cc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -231,6 +231,7 @@ Change ringtone Conversations Auto-download files + Mark conversation as read when dismissing message notification Contacts Add LDAP server Edit LDAP server