PreviewUrl: Application part - bugfix
This commit is contained in:
parent
48354c7793
commit
fa7b0a24a7
@ -23,10 +23,10 @@ import androidx.core.widget.TextViewCompat
|
||||
import com.airbnb.epoxy.EpoxyAttribute
|
||||
import com.airbnb.epoxy.EpoxyModelClass
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.ui.views.PreviewUrlView
|
||||
import im.vector.app.features.home.room.detail.timeline.tools.findPillsAndProcess
|
||||
import im.vector.app.features.home.room.detail.timeline.url.PreviewUrlRetriever
|
||||
import im.vector.app.features.home.room.detail.timeline.url.PreviewUrlUiState
|
||||
import im.vector.app.features.home.room.detail.timeline.url.PreviewUrlView
|
||||
import im.vector.app.features.media.ImageContentRenderer
|
||||
|
||||
@EpoxyModelClass(layout = R.layout.item_timeline_event_base)
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
package im.vector.app.features.home.room.detail.timeline.url
|
||||
|
||||
import im.vector.app.BuildConfig
|
||||
import im.vector.app.core.di.ScreenScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
@ -34,7 +35,7 @@ class PreviewUrlRetriever @Inject constructor(
|
||||
fun getPreviewUrl(event: Event, coroutineScope: CoroutineScope) {
|
||||
val eventId = event.eventId ?: return
|
||||
|
||||
val urlToRetrieve = synchronized(data) {
|
||||
synchronized(data) {
|
||||
if (data[eventId] == null) {
|
||||
// Keep only the first URL for the moment
|
||||
val url = session.mediaService().extractUrls(event).firstOrNull()
|
||||
@ -48,15 +49,13 @@ class PreviewUrlRetriever @Inject constructor(
|
||||
// Already handled
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
urlToRetrieve?.let { urlToRetrieve ->
|
||||
}?.let { urlToRetrieve ->
|
||||
coroutineScope.launch {
|
||||
runCatching {
|
||||
session.mediaService().getPreviewUrl(
|
||||
url = urlToRetrieve,
|
||||
timestamp = null,
|
||||
cacheStrategy = CacheStrategy.TtlCache(CACHE_VALIDITY, false)
|
||||
cacheStrategy = if (BuildConfig.DEBUG) CacheStrategy.NoCache else CacheStrategy.TtlCache(CACHE_VALIDITY, false)
|
||||
)
|
||||
}.fold(
|
||||
{
|
||||
|
@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package im.vector.app.core.ui.views
|
||||
package im.vector.app.features.home.room.detail.timeline.url
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
@ -27,10 +27,8 @@ import butterknife.BindView
|
||||
import butterknife.ButterKnife
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.extensions.setTextOrHide
|
||||
import im.vector.app.features.home.room.detail.timeline.url.PreviewUrlUiState
|
||||
import im.vector.app.features.media.ImageContentRenderer
|
||||
import org.matrix.android.sdk.api.session.media.PreviewUrlData
|
||||
import timber.log.Timber
|
||||
|
||||
/**
|
||||
* A View to display a PreviewUrl and some other state
|
||||
@ -70,10 +68,8 @@ class PreviewUrlView @JvmOverloads constructor(
|
||||
imageContentRenderer: ImageContentRenderer,
|
||||
force: Boolean = false) {
|
||||
if (newState == state && !force) {
|
||||
Timber.v("State unchanged")
|
||||
return
|
||||
}
|
||||
Timber.v("Rendering $newState")
|
||||
|
||||
state = newState
|
||||
|
||||
@ -121,7 +117,7 @@ class PreviewUrlView @JvmOverloads constructor(
|
||||
imageContentRenderer.render(mxcUrl, imageView)
|
||||
}
|
||||
descriptionView.setTextOrHide(previewUrlData.description)
|
||||
siteView.setTextOrHide(previewUrlData.siteName)
|
||||
siteView.setTextOrHide(previewUrlData.siteName.takeIf { it != previewUrlData.title })
|
||||
}
|
||||
|
||||
/**
|
@ -13,7 +13,7 @@
|
||||
android:textSize="14sp"
|
||||
tools:text="@sample/matrix.json/data/message" />
|
||||
|
||||
<im.vector.app.core.ui.views.PreviewUrlView
|
||||
<im.vector.app.features.home.room.detail.timeline.url.PreviewUrlView
|
||||
android:id="@+id/messageUrlPreview"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -36,7 +36,6 @@
|
||||
android:layout_height="157dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:importantForAccessibility="no"
|
||||
android:scaleType="centerCrop"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/url_preview_title"
|
||||
app:layout_constraintTop_toBottomOf="@+id/url_preview_title"
|
||||
|
Loading…
x
Reference in New Issue
Block a user