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)
|
).addTo(disposables)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
conversationGroupViewModel.updateGroupStateIfNeeded()
|
||||||
|
|
||||||
ConversationUtil.refreshRecipientShortcuts()
|
ConversationUtil.refreshRecipientShortcuts()
|
||||||
|
|
||||||
if (SignalStore.rateLimit().needsRecaptcha()) {
|
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.conversation.v2.ConversationRecipientRepository
|
||||||
import org.thoughtcrime.securesms.database.GroupTable
|
import org.thoughtcrime.securesms.database.GroupTable
|
||||||
import org.thoughtcrime.securesms.database.model.GroupRecord
|
import org.thoughtcrime.securesms.database.model.GroupRecord
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||||
import org.thoughtcrime.securesms.groups.GroupId
|
import org.thoughtcrime.securesms.groups.GroupId
|
||||||
import org.thoughtcrime.securesms.groups.ui.GroupChangeFailureReason
|
import org.thoughtcrime.securesms.groups.ui.GroupChangeFailureReason
|
||||||
import org.thoughtcrime.securesms.groups.v2.GroupBlockJoinRequestResult
|
import org.thoughtcrime.securesms.groups.v2.GroupBlockJoinRequestResult
|
||||||
import org.thoughtcrime.securesms.groups.v2.GroupManagementRepository
|
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.profiles.spoofing.ReviewUtil
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient
|
import org.thoughtcrime.securesms.recipients.Recipient
|
||||||
|
|
||||||
|
@ -132,6 +136,24 @@ class ConversationGroupViewModel(
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.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 {
|
class Factory(private val threadId: Long, private val recipientRepository: ConversationRecipientRepository) : ViewModelProvider.Factory {
|
||||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||||
return modelClass.cast(ConversationGroupViewModel(threadId, recipientRepository = recipientRepository)) as T
|
return modelClass.cast(ConversationGroupViewModel(threadId, recipientRepository = recipientRepository)) as T
|
||||||
|
|
Loading…
Add table
Reference in a new issue