Skip to content

Commit

Permalink
feat: remove Reply option for notifications in degraded conversation …
Browse files Browse the repository at this point in the history
…[WPB-7425] πŸ’πŸ’ (#3190)
  • Loading branch information
borichellow authored Jul 19, 2024
1 parent dfadc57 commit a99467b
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ class MessageNotificationManager
* @return [Notification] for the conversation with all the messages in it (including previous messages as well)
* OR null if there is no new messages in conversation and no need to update the existed notification.
*/
@Suppress("LongMethod", "ComplexMethod", "NestedBlockDepth")
private fun getConversationNotification(
conversation: NotificationConversation,
userId: QualifiedID,
Expand Down Expand Up @@ -213,9 +214,11 @@ class MessageNotificationManager
}

is NotificationMessage.Comment -> {
val isAppLocked = lockCodeTimeManager.isAppLocked()
if (conversation.isReplyAllowed) {
val isAppLocked = lockCodeTimeManager.isAppLocked()
addAction(getActionReply(context, conversation.id, userIdString, isAppLocked))
}
setContentIntent(messagePendingIntent(context, conversation.id, userIdString))
addAction(getActionReply(context, conversation.id, userIdString, isAppLocked))
}

is NotificationMessage.Knock -> {
Expand All @@ -224,15 +227,19 @@ class MessageNotificationManager
}

is NotificationMessage.Text -> {
val isAppLocked = lockCodeTimeManager.isAppLocked()
if (conversation.isReplyAllowed) {
val isAppLocked = lockCodeTimeManager.isAppLocked()
addAction(getActionReply(context, conversation.id, userIdString, isAppLocked))
}
setContentIntent(messagePendingIntent(context, conversation.id, userIdString))
addAction(getActionReply(context, conversation.id, userIdString, isAppLocked))
}

is NotificationMessage.ObfuscatedMessage -> {
val isAppLocked = lockCodeTimeManager.isAppLocked()
if (conversation.isReplyAllowed) {
val isAppLocked = lockCodeTimeManager.isAppLocked()
addAction(getActionReply(context, conversation.id, userIdString, isAppLocked))
}
setContentIntent(messagePendingIntent(context, conversation.id, userIdString))
addAction(getActionReply(context, conversation.id, userIdString, isAppLocked))
}

is NotificationMessage.ObfuscatedKnock -> {
Expand All @@ -241,9 +248,11 @@ class MessageNotificationManager
}

null -> {
val isAppLocked = lockCodeTimeManager.isAppLocked()
if (conversation.isReplyAllowed) {
val isAppLocked = lockCodeTimeManager.isAppLocked()
addAction(getActionReply(context, conversation.id, userIdString, isAppLocked))
}
setContentIntent(messagePendingIntent(context, conversation.id, userIdString))
addAction(getActionReply(context, conversation.id, userIdString, isAppLocked))
}
}
}
Expand Down
6 changes: 4 additions & 2 deletions app/src/main/kotlin/com/wire/android/notification/Models.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ data class NotificationConversation(
val name: String?,
val messages: List<NotificationMessage>,
val isOneToOneConversation: Boolean,
val lastMessageTime: Long
val lastMessageTime: Long,
val isReplyAllowed: Boolean,
)

sealed class NotificationMessage(open val messageId: String, open val author: NotificationMessageAuthor?, open val time: Long) {
Expand Down Expand Up @@ -99,7 +100,8 @@ fun LocalNotification.Conversation.intoNotificationConversation(): NotificationC
name = conversationName,
messages = notificationMessages,
isOneToOneConversation = isOneToOneConversation,
lastMessageTime = lastMessageTime
lastMessageTime = lastMessageTime,
isReplyAllowed = isReplyAllowed,
)
}

Expand Down
2 changes: 1 addition & 1 deletion kalium
Submodule kalium updated 88 files
+49 βˆ’0 data/build.gradle.kts
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/asset/Asset.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/asset/AssetMessage.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/Call.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallActiveSpeakers.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallClient.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallMetadataProfile.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallParticipants.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/CallType.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/ConversationType.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/EpochInfo.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/Participant.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/TestVideoType.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/call/VideoState.kt
+0 βˆ’15 data/src/commonMain/kotlin/com/wire/kalium/logic/data/client/ClientModel.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/connection/ConnectionDetails.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/Conversation.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/ConversationGuestLink.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/ConversationOptions.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/ConversationStatus.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/ProposalTimer.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/event/MemberLeaveReason.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/featureConfig/FeatureConfigModel.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/id/PlainId.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/id/QualifiedId.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/legalhold/LastPreKey.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/legalhold/LegalHoldRequest.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/legalhold/ListUsersLegalHoldConsent.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/logout/LogoutReason.kt
+4 βˆ’2 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/AssetContent.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/Message.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageBlob.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageContent.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageContentLogging.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageEncryptionAlgorithm.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageEnvelope.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MigratedMessage.kt
+0 βˆ’4 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/ProtoContent.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/SelfDeletionTimer.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/UserSummary.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/draft/MessageDraft.kt
+2 βˆ’4 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/linkpreview/LinkPreviewAsset.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/linkpreview/MessageLinkPreview.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/mention/MessageMention.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/reaction/MessageReaction.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/message/receipt/DetailedReceipt.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/mls/CipherSuite.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/notification/LocalNotification.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/service/ServiceDetails.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/team/Team.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/team/TeamPermission.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/user/LegalHoldStatus.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/user/UserModel.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/user/type/UserType.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/web/KtxWebSerializer.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/web/WebContentSerialization.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/web/WebEventContent.kt
+0 βˆ’0 data/src/commonMain/kotlin/com/wire/kalium/logic/data/web/WebMappers.kt
+1 βˆ’0 logic/build.gradle.kts
+14 βˆ’12 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/asset/AssetMapper.kt
+34 βˆ’0 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/client/RegisterClientParam.kt
+19 βˆ’11 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/MessageMapper.kt
+3 βˆ’2 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/ProtoContentMapper.kt
+11 βˆ’11 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/linkpreview/LinkPreviewMapper.kt
+5 βˆ’1 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/notification/LocalNotificationMessageMapper.kt
+3 βˆ’2 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/RecoverMLSConversationsUseCase.kt
+3 βˆ’2 ...mmonMain/kotlin/com/wire/kalium/logic/feature/e2ei/usecase/FetchConversationMLSVerificationStatusUseCase.kt
+4 βˆ’3 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/MessageSendingInterceptor.kt
+10 βˆ’7 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/PersistMigratedMessagesUseCase.kt
+3 βˆ’2 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/RetryFailedMessageUseCase.kt
+4 βˆ’3 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/SendTextMessageUseCase.kt
+6 βˆ’3 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/mlsmigration/MLSMigrationWorker.kt
+4 βˆ’3 ...om/wire/kalium/logic/feature/selfDeletingMessages/ObserveSelfDeletionTimerSettingsForConversationUseCase.kt
+4 βˆ’3 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/user/GetUserInfoUseCase.kt
+4 βˆ’3 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/user/ObserveUserInfoUseCase.kt
+3 βˆ’3 logic/src/commonMain/kotlin/com/wire/kalium/logic/sync/receiver/asset/AssetMessageHandler.kt
+12 βˆ’2 ...src/commonMain/kotlin/com/wire/kalium/logic/sync/receiver/conversation/message/ApplicationMessageHandler.kt
+3 βˆ’2 logic/src/commonMain/kotlin/com/wire/kalium/logic/sync/receiver/handler/ButtonActionConfirmationhandler.kt
+8 βˆ’6 logic/src/commonMain/kotlin/com/wire/kalium/logic/sync/receiver/handler/MessageTextEditHandler.kt
+3 βˆ’1 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/message/MessageRepositoryTest.kt
+156 βˆ’0 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/notification/LocalNotificationMessageMapperTest.kt
+46 βˆ’37 logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/message/SendTextMessageCaseTest.kt
+2 βˆ’2 logic/src/jvmTest/kotlin/com/wire/kalium/logic/sync/receiver/asset/AssetMessageHandlerTest.kt
+7 βˆ’1 persistence/src/commonMain/db_user/com/wire/kalium/persistence/Notification.sq
+3 βˆ’1 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/message/MessageEntity.kt
+6 βˆ’2 persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/message/MessageMapper.kt
+2 βˆ’0 persistence/src/commonTest/kotlin/com/wire/kalium/persistence/dao/message/MessageNotificationsTest.kt
+3 βˆ’7 testservice/src/main/kotlin/com/wire/kalium/testservice/managed/InstanceService.kt

0 comments on commit a99467b

Please sign in to comment.