diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/components/LinkPreviewDraftView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/components/LinkPreviewDraftView.kt index 23158acf0f..a312b6fa9b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/components/LinkPreviewDraftView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/components/LinkPreviewDraftView.kt @@ -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() } \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt index 65965a2177..cb48804ec5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt @@ -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 }