mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-26 14:09:58 +00:00
Add story ring to CFV2.
This commit is contained in:
committed by
Greyson Parrelli
parent
e1e3d7a85b
commit
9b1917cbdc
@@ -41,7 +41,7 @@ class AvatarView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
storyRing.visible = true
|
||||
storyRing.isActivated = hasUnreadStory
|
||||
storyRing.setBackgroundResource(if (hasUnreadStory) R.drawable.avatar_story_ring_active else R.drawable.avatar_story_ring_inactive)
|
||||
|
||||
avatar.scaleX = storyRingScale
|
||||
avatar.scaleY = storyRingScale
|
||||
|
||||
@@ -479,6 +479,7 @@ class ConversationFragment :
|
||||
presentChatColors(args.chatColors)
|
||||
presentConversationTitle(viewModel.recipientSnapshot)
|
||||
presentActionBarMenu()
|
||||
presentStoryRing()
|
||||
|
||||
observeConversationThread()
|
||||
|
||||
@@ -855,6 +856,25 @@ class ConversationFragment :
|
||||
.addTo(disposables)
|
||||
}
|
||||
|
||||
private fun presentStoryRing() {
|
||||
if (SignalStore.storyValues().isFeatureDisabled) {
|
||||
return
|
||||
}
|
||||
|
||||
disposables += viewModel.storyRingState.subscribeBy {
|
||||
binding.conversationTitleView.conversationTitleView.setStoryRingFromState(it)
|
||||
}
|
||||
|
||||
binding.conversationTitleView.conversationTitleView.setOnStoryRingClickListener {
|
||||
val recipient: Recipient = viewModel.recipientSnapshot ?: return@setOnStoryRingClickListener
|
||||
val args = StoryViewerArgs.Builder(recipient.id, recipient.shouldHideStory())
|
||||
.isFromQuote(true)
|
||||
.build()
|
||||
|
||||
startActivity(StoryViewerActivity.createIntent(requireContext(), args))
|
||||
}
|
||||
}
|
||||
|
||||
private fun presentInputReadyState(inputReadyState: InputReadyState) {
|
||||
presentConversationTitle(inputReadyState.conversationRecipient)
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
||||
import org.thoughtcrime.securesms.database.model.Quote
|
||||
import org.thoughtcrime.securesms.database.model.ReactionRecord
|
||||
import org.thoughtcrime.securesms.database.model.StickerRecord
|
||||
import org.thoughtcrime.securesms.database.model.StoryViewState
|
||||
import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.jobs.RetrieveProfileJob
|
||||
@@ -123,6 +124,12 @@ class ConversationViewModel(
|
||||
private val _searchQuery = BehaviorSubject.createDefault("")
|
||||
val searchQuery: Observable<String> = _searchQuery
|
||||
|
||||
val storyRingState = recipient
|
||||
.switchMap { StoryViewState.getForRecipientId(it.id) }
|
||||
.subscribeOn(Schedulers.io())
|
||||
.distinctUntilChanged()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
|
||||
init {
|
||||
disposables += recipient
|
||||
.subscribeBy {
|
||||
|
||||
Reference in New Issue
Block a user