diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java index 16f1f64d4a..9852fdd2e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java @@ -30,18 +30,18 @@ import com.annimon.stream.Stream; import net.sqlcipher.database.SQLiteDatabase; -import org.session.libsession.utilities.DistributionTypes; -import org.session.libsession.utilities.Contact; import org.session.libsession.utilities.Address; -import org.session.libsession.utilities.GroupRecord; -import org.session.libsession.utilities.recipients.Recipient; -import org.session.libsession.utilities.recipients.Recipient.RecipientSettings; +import org.session.libsession.utilities.Contact; import org.session.libsession.utilities.DelimiterUtil; +import org.session.libsession.utilities.DistributionTypes; +import org.session.libsession.utilities.GroupRecord; import org.session.libsession.utilities.TextSecurePreferences; import org.session.libsession.utilities.Util; +import org.session.libsession.utilities.recipients.Recipient; +import org.session.libsession.utilities.recipients.Recipient.RecipientSettings; +import org.session.libsignal.utilities.Log; import org.session.libsignal.utilities.Pair; import org.session.libsignal.utilities.guava.Optional; -import org.session.libsignal.utilities.Log; import org.thoughtcrime.securesms.contactshare.ContactUtil; import org.thoughtcrime.securesms.database.MessagingDatabase.MarkedMessageInfo; import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper; @@ -49,9 +49,9 @@ import org.thoughtcrime.securesms.database.model.MediaMmsMessageRecord; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.database.model.ThreadRecord; -import org.thoughtcrime.securesms.util.SessionMetaProtocol; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.mms.SlideDeck; +import org.thoughtcrime.securesms.util.SessionMetaProtocol; import java.io.Closeable; import java.util.HashMap; @@ -651,7 +651,7 @@ public class ThreadDatabase extends Database { groupRecord = Optional.absent(); } - Recipient recipient = Recipient.from(context, address, settings, groupRecord, true); + Recipient recipient = Recipient.from(context, address, settings, groupRecord, false); String body = cursor.getString(cursor.getColumnIndexOrThrow(ThreadDatabase.SNIPPET)); long date = cursor.getLong(cursor.getColumnIndexOrThrow(ThreadDatabase.DATE)); long count = cursor.getLong(cursor.getColumnIndexOrThrow(ThreadDatabase.MESSAGE_COUNT)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/ConversationView.kt b/app/src/main/java/org/thoughtcrime/securesms/home/ConversationView.kt index 57681963c1..4d404bc5e5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/ConversationView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/ConversationView.kt @@ -14,9 +14,10 @@ import androidx.recyclerview.widget.RecyclerView import kotlinx.android.synthetic.main.view_conversation.view.* import network.loki.messenger.R import org.session.libsession.utilities.recipients.Recipient -import org.thoughtcrime.securesms.database.model.ThreadRecord import org.thoughtcrime.securesms.conversation.v2.utilities.MentionManagerUtilities.populateUserPublicKeyCacheIfNeeded import org.thoughtcrime.securesms.conversation.v2.utilities.MentionUtilities.highlightMentions +import org.thoughtcrime.securesms.database.RecipientDatabase +import org.thoughtcrime.securesms.database.model.ThreadRecord import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.util.DateUtils import java.util.* @@ -59,7 +60,14 @@ class ConversationView : LinearLayout { val senderDisplayName = getUserDisplayName(thread.recipient) ?: thread.recipient.address.toString() conversationViewDisplayNameTextView.text = senderDisplayName timestampTextView.text = DateUtils.getDisplayFormattedTimeSpanString(context, Locale.getDefault(), thread.date) - muteIndicatorImageView.visibility = if (thread.recipient.isMuted) VISIBLE else GONE + val recipient = thread.recipient + muteIndicatorImageView.isVisible = recipient.isMuted || recipient.notifyType != RecipientDatabase.NOTIFY_TYPE_ALL + val drawableRes = if (recipient.isMuted || recipient.notifyType == RecipientDatabase.NOTIFY_TYPE_NONE) { + R.drawable.ic_outline_notifications_off_24 + } else { + R.drawable.ic_outline_notification_important_24 + } + muteIndicatorImageView.setImageResource(drawableRes) val rawSnippet = thread.getDisplayBody(context) val snippet = highlightMentions(rawSnippet, thread.threadId, context) snippetTextView.text = snippet diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java index 6e0fbbd183..e06a1c153c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/DefaultMessageNotifier.java @@ -238,6 +238,14 @@ public class DefaultMessageNotifier implements MessageNotifier { return; } + if (recipients != null && recipients.notifyType != RecipientDatabase.NOTIFY_TYPE_ALL) { + // if mentions and no mention then return + if (recipients.notifyType == RecipientDatabase.NOTIFY_TYPE_MENTIONS) { + + } + return; + } + if (isVisible) { sendInThreadNotification(context, threads.getRecipientForThreadId(threadId)); } else if (!homeScreenVisible) { @@ -280,7 +288,7 @@ public class DefaultMessageNotifier implements MessageNotifier { } sendMultipleThreadNotification(context, notificationState, signal); - } else { + } else if (notificationState.getMessageCount() > 0){ sendSingleThreadNotification(context, notificationState, signal, false); }