From 5498386be1fd035335b6ec92c07e641999f5f6c6 Mon Sep 17 00:00:00 2001 From: Nik Clayton Date: Thu, 12 Jan 2023 19:40:01 +0100 Subject: [PATCH] Respect "Always expand posts marked with content warnings" pref in notifications (#3154) Fixes https://github.com/tuskyapp/Tusky/issues/3139 --- .../components/notifications/NotificationHelper.java | 10 +++++----- .../java/com/keylesspalace/tusky/db/AccountEntity.kt | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationHelper.java b/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationHelper.java index 41853cc1f..b855049d8 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationHelper.java +++ b/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationHelper.java @@ -174,11 +174,11 @@ public class NotificationHelper { notificationId++; builder.setContentTitle(titleForType(context, body, account)) - .setContentText(bodyForType(body, context)); + .setContentText(bodyForType(body, context, account.getAlwaysOpenSpoiler())); if (body.getType() == Notification.Type.MENTION || body.getType() == Notification.Type.POLL) { builder.setStyle(new NotificationCompat.BigTextStyle() - .bigText(bodyForType(body, context))); + .bigText(bodyForType(body, context, account.getAlwaysOpenSpoiler()))); } //load the avatar synchronously @@ -695,7 +695,7 @@ public class NotificationHelper { return null; } - private static String bodyForType(Notification notification, Context context) { + private static String bodyForType(Notification notification, Context context, Boolean alwaysOpenSpoiler) { switch (notification.getType()) { case FOLLOW: case FOLLOW_REQUEST: @@ -705,13 +705,13 @@ public class NotificationHelper { case FAVOURITE: case REBLOG: case STATUS: - if (!TextUtils.isEmpty(notification.getStatus().getSpoilerText())) { + if (!TextUtils.isEmpty(notification.getStatus().getSpoilerText()) && !alwaysOpenSpoiler) { return notification.getStatus().getSpoilerText(); } else { return parseAsMastodonHtml(notification.getStatus().getContent()).toString(); } case POLL: - if (!TextUtils.isEmpty(notification.getStatus().getSpoilerText())) { + if (!TextUtils.isEmpty(notification.getStatus().getSpoilerText()) && !alwaysOpenSpoiler) { return notification.getStatus().getSpoilerText(); } else { StringBuilder builder = new StringBuilder(parseAsMastodonHtml(notification.getStatus().getContent())); diff --git a/app/src/main/java/com/keylesspalace/tusky/db/AccountEntity.kt b/app/src/main/java/com/keylesspalace/tusky/db/AccountEntity.kt index f20660083..852088f33 100644 --- a/app/src/main/java/com/keylesspalace/tusky/db/AccountEntity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/db/AccountEntity.kt @@ -62,6 +62,7 @@ data class AccountEntity( var defaultMediaSensitivity: Boolean = false, var defaultPostLanguage: String = "", var alwaysShowSensitiveMedia: Boolean = false, + /** True if content behind a content warning is shown by default */ var alwaysOpenSpoiler: Boolean = false, var mediaPreviewEnabled: Boolean = true, var lastNotificationId: String = "0",