diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt
index d76721547d..907f09d9a8 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt
@@ -6,11 +6,14 @@ import android.os.Parcelable
import android.util.AttributeSet
import android.view.View
import android.widget.FrameLayout
+import android.widget.ImageView
import android.widget.TextView
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.R
+import org.thoughtcrime.securesms.blurhash.BlurHash
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint
+import org.thoughtcrime.securesms.mms.GlideApp
import org.thoughtcrime.securesms.util.visible
/**
@@ -36,7 +39,7 @@ class StorySlateView @JvmOverloads constructor(
inflate(context, R.layout.stories_slate_view, this)
}
- private val background: View = findViewById(R.id.background)
+ private val background: ImageView = findViewById(R.id.background)
private val loadingSpinner: View = findViewById(R.id.loading_spinner)
private val errorCircle: View = findViewById(R.id.error_circle)
private val unavailableText: View = findViewById(R.id.unavailable)
@@ -68,6 +71,16 @@ class StorySlateView @JvmOverloads constructor(
}
}
+ fun setBackground(blur: BlurHash?) {
+ if (blur != null) {
+ GlideApp.with(background)
+ .load(blur)
+ .into(background)
+ } else {
+ GlideApp.with(background).clear(background)
+ }
+ }
+
private fun moveToProgressState(state: State) {
this.state = state
visible = true
diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt
index e7f95bb16d..79b8177a68 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt
@@ -541,6 +541,8 @@ class StoryViewerPageFragment :
}
private fun presentSlate(post: StoryPost) {
+ storySlate.setBackground((post.conversationMessage.messageRecord as? MediaMmsMessageRecord)?.slideDeck?.thumbnailSlide?.placeholderBlur)
+
when (post.content.transferState) {
AttachmentDatabase.TRANSFER_PROGRESS_DONE -> {
storySlate.moveToState(StorySlateView.State.HIDDEN, post.id)
diff --git a/app/src/main/res/drawable/ic_arrow_down_24.xml b/app/src/main/res/drawable/ic_arrow_down_24.xml
new file mode 100644
index 0000000000..c2673233f3
--- /dev/null
+++ b/app/src/main/res/drawable/ic_arrow_down_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/stories_slate_view.xml b/app/src/main/res/layout/stories_slate_view.xml
index 436d9a8f7e..de8ff96851 100644
--- a/app/src/main/res/layout/stories_slate_view.xml
+++ b/app/src/main/res/layout/stories_slate_view.xml
@@ -6,35 +6,46 @@
android:layout_height="match_parent"
tools:parentTag="android.widget.FrameLayout">
-
+
+
-
= (1L..5L).map(RecipientId::from)
val startStory = RecipientId.from(1L)
whenever(repository.getStories(any())).doReturn(Single.just(stories))
- val testSubject = StoryViewerViewModel(startStory, false, null, null, repository)
+ val testSubject = StoryViewerViewModel(startStory, false, null, null, null, repository)
testScheduler.triggerActions()
// WHEN
@@ -72,7 +72,7 @@ class StoryViewerViewModelTest {
val stories: List = (1L..5L).map(RecipientId::from)
val startStory = stories.last()
whenever(repository.getStories(any())).doReturn(Single.just(stories))
- val testSubject = StoryViewerViewModel(startStory, false, null, null, repository)
+ val testSubject = StoryViewerViewModel(startStory, false, null, null, null, repository)
testScheduler.triggerActions()
// WHEN
@@ -92,7 +92,7 @@ class StoryViewerViewModelTest {
val stories: List = (1L..5L).map(RecipientId::from)
val startStory = stories.last()
whenever(repository.getStories(any())).doReturn(Single.just(stories))
- val testSubject = StoryViewerViewModel(startStory, false, null, null, repository)
+ val testSubject = StoryViewerViewModel(startStory, false, null, null, null, repository)
testScheduler.triggerActions()
// WHEN
@@ -112,7 +112,7 @@ class StoryViewerViewModelTest {
val stories: List = (1L..5L).map(RecipientId::from)
val startStory = stories.first()
whenever(repository.getStories(any())).doReturn(Single.just(stories))
- val testSubject = StoryViewerViewModel(startStory, false, null, null, repository)
+ val testSubject = StoryViewerViewModel(startStory, false, null, null, null, repository)
testScheduler.triggerActions()
// WHEN
@@ -132,7 +132,7 @@ class StoryViewerViewModelTest {
val stories: List = (1L..5L).map(RecipientId::from)
val startStory = stories.first()
whenever(repository.getStories(any())).doReturn(Single.just(stories))
- val testSubject = StoryViewerViewModel(startStory, false, null, null, repository)
+ val testSubject = StoryViewerViewModel(startStory, false, null, null, null, repository)
testScheduler.triggerActions()
// WHEN