Hook up cancel link preview draft button

This commit is contained in:
Niels Andriesse 2021-06-24 16:30:16 +10:00
parent fe8b0c9798
commit 2132e53fb0
2 changed files with 23 additions and 1 deletions

View file

@ -12,6 +12,7 @@ import org.thoughtcrime.securesms.mms.GlideRequests
import org.thoughtcrime.securesms.mms.ImageSlide
class LinkPreviewDraftView : LinearLayout {
var delegate: LinkPreviewDraftViewDelegate? = null
// region Lifecycle
constructor(context: Context) : super(context) { initialize() }
@ -22,6 +23,7 @@ class LinkPreviewDraftView : LinearLayout {
LayoutInflater.from(context).inflate(R.layout.view_link_preview_draft, this)
linkPreviewDraftContainer.isVisible = false
thumbnailImageView.clipToOutline = true
linkPreviewDraftCancelButton.setOnClickListener { cancel() }
}
// endregion
@ -35,4 +37,15 @@ class LinkPreviewDraftView : LinearLayout {
linkPreviewDraftTitleTextView.text = linkPreview.title
}
// endregion
// region Interaction
private fun cancel() {
delegate?.cancelLinkPreviewDraft()
}
// endregion
}
interface LinkPreviewDraftViewDelegate {
fun cancelLinkPreviewDraft()
}

View file

@ -12,6 +12,7 @@ import kotlinx.android.synthetic.main.view_quote.view.*
import network.loki.messenger.R
import org.session.libsession.messaging.sending_receiving.link_preview.LinkPreview
import org.thoughtcrime.securesms.conversation.v2.components.LinkPreviewDraftView
import org.thoughtcrime.securesms.conversation.v2.components.LinkPreviewDraftViewDelegate
import org.thoughtcrime.securesms.conversation.v2.messages.QuoteView
import org.thoughtcrime.securesms.conversation.v2.messages.QuoteViewDelegate
import org.thoughtcrime.securesms.database.model.MessageRecord
@ -22,7 +23,7 @@ import org.thoughtcrime.securesms.mms.GlideRequests
import kotlin.math.max
import kotlin.math.roundToInt
class InputBar : RelativeLayout, InputBarEditTextDelegate, QuoteViewDelegate {
class InputBar : RelativeLayout, InputBarEditTextDelegate, QuoteViewDelegate, LinkPreviewDraftViewDelegate {
private val screenWidth = Resources.getSystem().displayMetrics.widthPixels
private val vMargin by lazy { toDp(4, resources) }
private val minHeight by lazy { toPx(56, resources) }
@ -127,6 +128,7 @@ class InputBar : RelativeLayout, InputBarEditTextDelegate, QuoteViewDelegate {
val linkPreviewDraftHeight = toPx(88, resources)
inputBarAdditionalContentContainer.removeAllViews()
val linkPreviewDraftView = LinkPreviewDraftView(context)
linkPreviewDraftView.delegate = this
this.linkPreviewDraftView = linkPreviewDraftView
inputBarAdditionalContentContainer.addView(linkPreviewDraftView)
val newHeight = max(inputBarEditText.height + 2 * vMargin, minHeight) + linkPreviewDraftHeight
@ -138,6 +140,13 @@ class InputBar : RelativeLayout, InputBarEditTextDelegate, QuoteViewDelegate {
val linkPreviewDraftView = this.linkPreviewDraftView ?: return
linkPreviewDraftView.update(glide, linkPreview)
}
override fun cancelLinkPreviewDraft() {
inputBarAdditionalContentContainer.removeAllViews()
val newHeight = max(inputBarEditText.height + 2 * vMargin, minHeight)
additionalContentHeight = 0
setHeight(newHeight)
}
// endregion
}