diff --git a/app/src/main/java/chat/stoat/c2dm/HandlerService.kt b/app/src/main/java/chat/stoat/c2dm/HandlerService.kt index 2864fb9d..bbd0f4f5 100644 --- a/app/src/main/java/chat/stoat/c2dm/HandlerService.kt +++ b/app/src/main/java/chat/stoat/c2dm/HandlerService.kt @@ -182,7 +182,7 @@ class HandlerService : FirebaseMessagingService() { val dbChannel = db.channelQueries.findById(channelId).executeAsOneOrNull() - val authorBitmap = loadBitmap(image) + val authorBitmap = runCatching { loadBitmap(image) }.getOrElse { generateLetterBitmap(authorName) } val conversationBitmap: Bitmap = when (dbChannel?.channelType) { "TextChannel", "VoiceChannel" -> { val server = @@ -275,18 +275,24 @@ class HandlerService : FirebaseMessagingService() { PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT ) + val existingStyle = NotificationManagerCompat.from(this) + .activeNotifications + .firstOrNull { it.tag == channelId && it.id == NotificationID.NEW_MESSAGE } + ?.notification + ?.let { NotificationCompat.MessagingStyle.extractMessagingStyleFromNotification(it) } + + val messagingStyle = (existingStyle ?: NotificationCompat.MessagingStyle(self)) + .setGroupConversation(dbChannel?.channelType != "DirectMessage") + .setConversationTitle(channelName) + .addMessage(body, messageTimestamp, author) + val builder = NotificationCompat.Builder(this, CHANNEL_ID_GROUP_CONVERSATIONS_MESSAGES) .setSmallIcon(R.drawable.ic_stoat_24dp) .setContentTitle(authorName) .setContentText(body) .setContentIntent(contentIntent) .setCategory(NotificationCompat.CATEGORY_MESSAGE) - .setStyle( - NotificationCompat.MessagingStyle(self) - .setGroupConversation(dbChannel?.channelType != "DirectMessage") - .setConversationTitle(channelName) - .addMessage(body, messageTimestamp, author) - ) + .setStyle(messagingStyle) .addAction(replyAction) .addAction(markAsReadAction) .setPriority(NotificationCompat.PRIORITY_HIGH) diff --git a/app/src/main/java/chat/stoat/sheets/ChannelInfoSheet.kt b/app/src/main/java/chat/stoat/sheets/ChannelInfoSheet.kt index 74743ecd..60cda1e9 100644 --- a/app/src/main/java/chat/stoat/sheets/ChannelInfoSheet.kt +++ b/app/src/main/java/chat/stoat/sheets/ChannelInfoSheet.kt @@ -184,7 +184,8 @@ fun ChannelInfoSheet(channelId: String, onHideSheet: suspend () -> Unit) { } } - SheetButton( + // FIXME: Waiting on backend! + /*SheetButton( headlineContent = { Text( text = stringResource(id = R.string.channel_info_sheet_options_notifications_manage), @@ -197,7 +198,7 @@ fun ChannelInfoSheet(channelId: String, onHideSheet: suspend () -> Unit) { ) }, onClick = {} - ) + )*/ SheetButton( headlineContent = {