Add story ring to CFV2.
This commit is contained in:
parent
e1e3d7a85b
commit
9b1917cbdc
7 changed files with 43 additions and 15 deletions
|
@ -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 {
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_activated="true">
|
||||
<shape android:shape="oval">
|
||||
<stroke android:color="@color/signal_colorPrimary" android:width="2.5dp" />
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape android:shape="oval">
|
||||
<stroke android:color="@color/signal_inverse_transparent_25" android:width="1.5dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
7
app/src/main/res/drawable/avatar_story_ring_active.xml
Normal file
7
app/src/main/res/drawable/avatar_story_ring_active.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<stroke
|
||||
android:width="2.5dp"
|
||||
android:color="@color/signal_colorPrimary" />
|
||||
</shape>
|
7
app/src/main/res/drawable/avatar_story_ring_inactive.xml
Normal file
7
app/src/main/res/drawable/avatar_story_ring_inactive.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<stroke
|
||||
android:width="1.5dp"
|
||||
android:color="@color/signal_inverse_transparent_25" />
|
||||
</shape>
|
|
@ -17,7 +17,7 @@
|
|||
android:id="@+id/avatar_story_ring"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/avatar_story_ring"
|
||||
android:background="@drawable/avatar_story_ring_inactive"
|
||||
android:importantForAccessibility="no"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
|
Loading…
Add table
Reference in a new issue