feat: update copy for message reqeusts and fix the decline all / delete items
This commit is contained in:
parent
4caa7681f8
commit
2628f03fcf
|
@ -195,7 +195,8 @@ class ConversationViewModel(
|
|||
}
|
||||
|
||||
fun declineMessageRequest() {
|
||||
repository.declineMessageRequest(threadId)
|
||||
val recipient = recipient ?: return
|
||||
repository.declineMessageRequest(threadId, recipient)
|
||||
}
|
||||
|
||||
private fun showMessage(message: String) {
|
||||
|
|
|
@ -611,9 +611,9 @@ open class Storage(
|
|||
val toAddCommunities = communities.filter { it.community.fullUrl() !in existingCommunities.map { it.value.joinURL } }
|
||||
val existingJoinUrls = existingCommunities.values.map { it.joinURL }
|
||||
|
||||
val existingClosedGroups = getAllGroups(includeInactive = true).filter { it.isLegacyClosedGroup }
|
||||
val existingLegacyClosedGroups = getAllGroups(includeInactive = true).filter { it.isLegacyClosedGroup }
|
||||
val lgcIds = lgc.map { it.sessionId.hexString() }
|
||||
val toDeleteClosedGroups = existingClosedGroups.filter { group ->
|
||||
val toDeleteClosedGroups = existingLegacyClosedGroups.filter { group ->
|
||||
GroupUtil.doubleDecodeGroupId(group.encodedId) !in lgcIds
|
||||
}
|
||||
|
||||
|
@ -656,9 +656,10 @@ open class Storage(
|
|||
pollerFactory.pollerFor(closedGroup.groupSessionId)?.start()
|
||||
}
|
||||
}
|
||||
// TODO: add in removing legacy closed groups via config update
|
||||
|
||||
for (group in lgc) {
|
||||
val existingGroup = existingClosedGroups.firstOrNull { GroupUtil.doubleDecodeGroupId(it.encodedId) == group.sessionId.hexString() }
|
||||
val existingGroup = existingLegacyClosedGroups.firstOrNull { GroupUtil.doubleDecodeGroupId(it.encodedId) == group.sessionId.hexString() }
|
||||
val existingThread = existingGroup?.let { getThreadId(existingGroup.encodedId) }
|
||||
if (existingGroup != null) {
|
||||
if (group.priority == PRIORITY_HIDDEN && existingThread != null) {
|
||||
|
@ -1224,19 +1225,25 @@ open class Storage(
|
|||
override fun respondToClosedGroupInvitation(groupRecipient: Recipient, approved: Boolean) {
|
||||
val groups = configFactory.userGroups ?: return
|
||||
val groupSessionId = SessionId.from(groupRecipient.address.serialize())
|
||||
val closedGroupInfo = groups.getClosedGroup(groupSessionId.hexString())?.copy(
|
||||
invited = false
|
||||
) ?: return
|
||||
groups.set(closedGroupInfo)
|
||||
ConfigurationMessageUtilities.forceSyncConfigurationNowIfNeeded(context)
|
||||
pollerFactory.pollerFor(groupSessionId)?.start()
|
||||
val inviteResponse = GroupUpdateInviteResponseMessage.newBuilder()
|
||||
.setIsApproved(true)
|
||||
val responseData = GroupUpdateMessage.newBuilder()
|
||||
.setInviteResponse(inviteResponse)
|
||||
val responseMessage = GroupUpdated(responseData.build())
|
||||
// this will fail the first couple of times :)
|
||||
MessageSender.send(responseMessage, fromSerialized(groupSessionId.hexString()))
|
||||
if (!approved) {
|
||||
groups.eraseClosedGroup(groupSessionId.hexString())
|
||||
ConfigurationMessageUtilities.forceSyncConfigurationNowIfNeeded(context)
|
||||
return
|
||||
} else {
|
||||
val closedGroupInfo = groups.getClosedGroup(groupSessionId.hexString())?.copy(
|
||||
invited = false
|
||||
) ?: return
|
||||
groups.set(closedGroupInfo)
|
||||
ConfigurationMessageUtilities.forceSyncConfigurationNowIfNeeded(context)
|
||||
pollerFactory.pollerFor(groupSessionId)?.start()
|
||||
val inviteResponse = GroupUpdateInviteResponseMessage.newBuilder()
|
||||
.setIsApproved(true)
|
||||
val responseData = GroupUpdateMessage.newBuilder()
|
||||
.setInviteResponse(inviteResponse)
|
||||
val responseMessage = GroupUpdated(responseData.build())
|
||||
// this will fail the first couple of times :)
|
||||
MessageSender.send(responseMessage, fromSerialized(groupSessionId.hexString()))
|
||||
}
|
||||
}
|
||||
|
||||
override fun addClosedGroupInvite(
|
||||
|
|
|
@ -77,7 +77,7 @@ interface ConversationRepository {
|
|||
|
||||
suspend fun acceptMessageRequest(threadId: Long, recipient: Recipient): ResultOf<Unit>
|
||||
|
||||
fun declineMessageRequest(threadId: Long)
|
||||
fun declineMessageRequest(threadId: Long, recipient: Recipient)
|
||||
|
||||
fun hasReceived(threadId: Long): Boolean
|
||||
|
||||
|
@ -286,8 +286,7 @@ class DefaultConversationRepository @Inject constructor(
|
|||
}
|
||||
|
||||
override suspend fun deleteMessageRequest(thread: ThreadRecord): ResultOf<Unit> {
|
||||
sessionJobDb.cancelPendingMessageSendJobs(thread.threadId)
|
||||
storage.deleteConversation(thread.threadId)
|
||||
declineMessageRequest(thread.threadId, thread.recipient)
|
||||
return ResultOf.Success(Unit)
|
||||
}
|
||||
|
||||
|
@ -320,9 +319,13 @@ class DefaultConversationRepository @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
override fun declineMessageRequest(threadId: Long) {
|
||||
override fun declineMessageRequest(threadId: Long, recipient: Recipient) {
|
||||
sessionJobDb.cancelPendingMessageSendJobs(threadId)
|
||||
storage.deleteConversation(threadId)
|
||||
if (recipient.isClosedGroupRecipient) {
|
||||
storage.respondToClosedGroupInvitation(recipient, false)
|
||||
} else {
|
||||
storage.deleteConversation(threadId)
|
||||
}
|
||||
}
|
||||
|
||||
override fun hasReceived(threadId: Long): Boolean {
|
||||
|
|
|
@ -941,7 +941,7 @@
|
|||
<string name="message_requests_decline_message">Are you sure you want to decline this message request?</string>
|
||||
<string name="message_requests_block_message">Are you sure you want to block this message request?</string>
|
||||
<string name="message_requests_deleted">Message request deleted</string>
|
||||
<string name="message_requests_clear_all_message">Are you sure you want to clear all message requests?</string>
|
||||
<string name="message_requests_clear_all_message">Are you sure you want to clear all message requests and group invites?</string>
|
||||
<string name="message_requests_cleared">Message requests deleted</string>
|
||||
<string name="message_requests_accepted">Your message request has been accepted.</string>
|
||||
<string name="message_requests_pending">Your message request is currently pending.</string>
|
||||
|
|
Loading…
Reference in New Issue