Twidere-App-Android-Twitter.../twidere/src/main/kotlin/org/mariotaku/twidere/view/LinkPreviewView.kt

53 lines
1.8 KiB
Kotlin
Raw Normal View History

2020-05-29 12:06:56 +02:00
package org.mariotaku.twidere.view
import android.content.Context
2020-06-02 11:15:34 +02:00
import android.net.Uri
2020-05-29 12:06:56 +02:00
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.core.view.isVisible
2020-06-02 11:15:34 +02:00
import com.bumptech.glide.RequestManager
import com.google.android.material.card.MaterialCardView
2020-05-29 12:06:56 +02:00
import kotlinx.android.synthetic.main.layout_link_preview.view.*
import org.mariotaku.twidere.R
2020-06-02 11:15:34 +02:00
2020-05-29 12:06:56 +02:00
data class LinkPreviewData(
val title: String?,
2020-06-02 11:15:34 +02:00
val desc: String? = null,
val img: String? = null,
val imgRes: Int? = null
2020-05-29 12:06:56 +02:00
)
2020-06-02 11:15:34 +02:00
class LinkPreviewView : MaterialCardView {
2020-05-29 12:06:56 +02:00
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
init {
2020-06-02 11:15:34 +02:00
LayoutInflater.from(context).inflate(R.layout.layout_link_preview, this, true)
2020-05-29 12:06:56 +02:00
}
2020-06-02 11:15:34 +02:00
fun displayData(value: String, result: LinkPreviewData, requestManager: RequestManager) {
2020-05-29 12:06:56 +02:00
link_preview_title.isVisible = true
link_preview_link.isVisible = true
2020-06-02 11:15:34 +02:00
link_preview_img.isVisible = result.img != null
2020-05-29 12:06:56 +02:00
link_preview_loader.isVisible = false
link_preview_title.text = result.title
2020-06-02 11:15:34 +02:00
link_preview_link.text = Uri.parse(value).host
if (result.img != null) {
requestManager.load(result.img).into(link_preview_img)
} else if (result.imgRes != null) {
requestManager.load(result.imgRes).into(link_preview_img)
}
2020-05-29 12:06:56 +02:00
}
fun reset() {
2020-06-02 11:15:34 +02:00
link_preview_img.isVisible = false
2020-05-29 12:06:56 +02:00
link_preview_title.isVisible = false
link_preview_link.isVisible = false
link_preview_loader.isVisible = true
link_preview_title.text = ""
link_preview_link.text = ""
}
}