From fa7b0a24a73ee53dba502af774b6c45ad75d3f8f Mon Sep 17 00:00:00 2001
From: Benoit Marty <benoit@matrix.org>
Date: Fri, 4 Dec 2020 08:01:00 +0100
Subject: [PATCH] PreviewUrl: Application part - bugfix

---
 .../home/room/detail/timeline/item/MessageTextItem.kt    | 2 +-
 .../home/room/detail/timeline/url/PreviewUrlRetriever.kt | 9 ++++-----
 .../home/room/detail/timeline/url}/PreviewUrlView.kt     | 8 ++------
 .../res/layout/item_timeline_event_text_message_stub.xml | 2 +-
 vector/src/main/res/layout/url_preview.xml               | 1 -
 5 files changed, 8 insertions(+), 14 deletions(-)
 rename vector/src/main/java/im/vector/app/{core/ui/views => features/home/room/detail/timeline/url}/PreviewUrlView.kt (93%)

diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageTextItem.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageTextItem.kt
index 5ba5496f3d..8bb5a84695 100644
--- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageTextItem.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageTextItem.kt
@@ -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)
diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/url/PreviewUrlRetriever.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/url/PreviewUrlRetriever.kt
index 94df822218..a36b2367f6 100644
--- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/url/PreviewUrlRetriever.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/url/PreviewUrlRetriever.kt
@@ -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(
                         {
diff --git a/vector/src/main/java/im/vector/app/core/ui/views/PreviewUrlView.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/url/PreviewUrlView.kt
similarity index 93%
rename from vector/src/main/java/im/vector/app/core/ui/views/PreviewUrlView.kt
rename to vector/src/main/java/im/vector/app/features/home/room/detail/timeline/url/PreviewUrlView.kt
index a63273f00a..c29d57539d 100755
--- a/vector/src/main/java/im/vector/app/core/ui/views/PreviewUrlView.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/url/PreviewUrlView.kt
@@ -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 })
     }
 
     /**
diff --git a/vector/src/main/res/layout/item_timeline_event_text_message_stub.xml b/vector/src/main/res/layout/item_timeline_event_text_message_stub.xml
index 914f4a9d9b..54d677c310 100644
--- a/vector/src/main/res/layout/item_timeline_event_text_message_stub.xml
+++ b/vector/src/main/res/layout/item_timeline_event_text_message_stub.xml
@@ -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"
diff --git a/vector/src/main/res/layout/url_preview.xml b/vector/src/main/res/layout/url_preview.xml
index fc896b359a..b9f355162e 100644
--- a/vector/src/main/res/layout/url_preview.xml
+++ b/vector/src/main/res/layout/url_preview.xml
@@ -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"