Added mark as read when dismissing message notif setting

This commit is contained in:
Sylvain Berfini 2024-09-05 10:22:15 +02:00
parent 9fc9574369
commit 6c22b1f66d
6 changed files with 58 additions and 0 deletions

View file

@ -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

View file

@ -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()
}

View file

@ -87,6 +87,8 @@ class SettingsViewModel @UiThread constructor() : GenericViewModel() {
val autoDownloadEnabled = MutableLiveData<Boolean>()
val markAsReadWhenDismissingNotification = MutableLiveData<Boolean>()
// Contacts settings
val showContactsSettings = MutableLiveData<Boolean>()
@ -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

View file

@ -44,6 +44,34 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:onClick="@{() -> viewModel.toggleMarkConversationAsReadWhenDismissingNotification()}"
android:id="@+id/mark_as_read_dismiss_notif_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_conversations_mark_as_read_when_dismissing_notif_title"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/mark_as_read_dismiss_notif_switch"
app:layout_constraintBottom_toBottomOf="@id/mark_as_read_dismiss_notif_switch"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/mark_as_read_dismiss_notif_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/mark_as_read_dismiss_notif_switch"
android:onClick="@{() -> viewModel.toggleMarkConversationAsReadWhenDismissingNotification()}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.markAsReadWhenDismissingNotification}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/auto_download_switch" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View file

@ -194,6 +194,7 @@
<string name="settings_calls_change_ringtone_title">Changer de sonnerie</string>
<string name="settings_conversations_title">Conversations</string>
<string name="settings_conversations_auto_download_title">Télécharger automatiquement les fichiers</string>
<string name="settings_conversations_mark_as_read_when_dismissing_notif_title">Marquer la conversation comme lue lorsqu\'une notification de message est supprimée</string>
<string name="settings_contacts_title">Contacts</string>
<string name="settings_contacts_add_ldap_server_title">Ajouter un serveur LDAP</string>
<string name="settings_contacts_edit_ldap_server_title">Editer le serveur LDAP</string>

View file

@ -231,6 +231,7 @@
<string name="settings_calls_change_ringtone_title">Change ringtone</string>
<string name="settings_conversations_title">Conversations</string>
<string name="settings_conversations_auto_download_title">Auto-download files</string>
<string name="settings_conversations_mark_as_read_when_dismissing_notif_title">Mark conversation as read when dismissing message notification</string>
<string name="settings_contacts_title">Contacts</string>
<string name="settings_contacts_add_ldap_server_title">Add LDAP server</string>
<string name="settings_contacts_edit_ldap_server_title">Edit LDAP server</string>