Skip to content

Commit

Permalink
#835 & #1100 - Show group chat info and message attachment in notific…
Browse files Browse the repository at this point in the history
…ation
  • Loading branch information
moezbhatti committed Jun 9, 2018
1 parent c283677 commit a4b82bc
Showing 1 changed file with 22 additions and 2 deletions.
24 changes: 22 additions & 2 deletions presentation/src/main/java/common/util/NotificationManagerImpl.kt
Expand Up @@ -22,6 +22,7 @@ import android.annotation.SuppressLint
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.ContentUris
import android.content.Context
import android.content.Intent
import android.graphics.Color
Expand All @@ -36,11 +37,13 @@ import com.moez.QKSMS.R
import common.util.extensions.dpToPx
import feature.compose.ComposeActivity
import feature.qkreply.QkReplyActivity
import mapper.CursorToPartImpl
import receiver.MarkReadReceiver
import receiver.MarkSeenReceiver
import receiver.RemoteMessagingReceiver
import repository.MessageRepository
import util.Preferences
import util.extensions.isImage
import util.tryOrNull
import javax.inject.Inject
import javax.inject.Singleton
Expand Down Expand Up @@ -128,9 +131,26 @@ class NotificationManagerImpl @Inject constructor(
.setVibrate(if (prefs.vibration(threadId).get()) VIBRATE_PATTERN else longArrayOf(0))

val messagingStyle = NotificationCompat.MessagingStyle("Me")
if (conversation.recipients.size >= 2) {
messagingStyle.conversationTitle = conversation.getTitle()
}

messages.forEach { message ->
val name = if (message.isMe()) null else conversation.getTitle()
messagingStyle.addMessage(message.getSummary(), message.date, name)
val name = when {
message.isMe() -> null
conversation.recipients.size < 2 -> conversation.getTitle()
else -> conversation.recipients
.firstOrNull { PhoneNumberUtils.compare(it.address, message.address) }
?.getDisplayName()
?: message.address
}

NotificationCompat.MessagingStyle.Message(message.getSummary(), message.date, name).apply {
message.parts.firstOrNull { it.isImage() }?.let { part ->
setData(part.type, ContentUris.withAppendedId(CursorToPartImpl.CONTENT_URI, part.id))
}
messagingStyle.addMessage(this)
}
}

val avatar = conversation.recipients.takeIf { it.size == 1 }
Expand Down

0 comments on commit a4b82bc

Please sign in to comment.