Add missing GV2 state update on conversation open.
This commit is contained in:
parent
913605a065
commit
e9fbce4e28
2 changed files with 24 additions and 0 deletions
|
@ -631,6 +631,8 @@ class ConversationFragment :
|
|||
).addTo(disposables)
|
||||
}
|
||||
|
||||
conversationGroupViewModel.updateGroupStateIfNeeded()
|
||||
|
||||
ConversationUtil.refreshRecipientShortcuts()
|
||||
|
||||
if (SignalStore.rateLimit().needsRecaptcha()) {
|
||||
|
|
|
@ -17,10 +17,14 @@ import org.signal.core.util.concurrent.subscribeWithSubject
|
|||
import org.thoughtcrime.securesms.conversation.v2.ConversationRecipientRepository
|
||||
import org.thoughtcrime.securesms.database.GroupTable
|
||||
import org.thoughtcrime.securesms.database.model.GroupRecord
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.groups.GroupId
|
||||
import org.thoughtcrime.securesms.groups.ui.GroupChangeFailureReason
|
||||
import org.thoughtcrime.securesms.groups.v2.GroupBlockJoinRequestResult
|
||||
import org.thoughtcrime.securesms.groups.v2.GroupManagementRepository
|
||||
import org.thoughtcrime.securesms.jobs.ForceUpdateGroupV2Job
|
||||
import org.thoughtcrime.securesms.jobs.GroupV2UpdateSelfProfileKeyJob
|
||||
import org.thoughtcrime.securesms.jobs.RequestGroupV2InfoJob
|
||||
import org.thoughtcrime.securesms.profiles.spoofing.ReviewUtil
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
|
||||
|
@ -132,6 +136,24 @@ class ConversationGroupViewModel(
|
|||
.observeOn(AndroidSchedulers.mainThread())
|
||||
}
|
||||
|
||||
fun updateGroupStateIfNeeded() {
|
||||
recipientRepository
|
||||
.conversationRecipient
|
||||
.firstOrError()
|
||||
.onErrorComplete()
|
||||
.filter { it.isPushV2Group && !it.isBlocked }
|
||||
.subscribe {
|
||||
val groupId = it.requireGroupId().requireV2()
|
||||
ApplicationDependencies.getJobManager()
|
||||
.startChain(RequestGroupV2InfoJob(groupId))
|
||||
.then(GroupV2UpdateSelfProfileKeyJob.withoutLimits(groupId))
|
||||
.enqueue()
|
||||
|
||||
ForceUpdateGroupV2Job.enqueueIfNecessary(groupId)
|
||||
}
|
||||
.addTo(disposables)
|
||||
}
|
||||
|
||||
class Factory(private val threadId: Long, private val recipientRepository: ConversationRecipientRepository) : ViewModelProvider.Factory {
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
return modelClass.cast(ConversationGroupViewModel(threadId, recipientRepository = recipientRepository)) as T
|
||||
|
|
Loading…
Add table
Reference in a new issue