diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index 3a6742740f..1a11d12ed9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -6,6 +6,7 @@ import android.content.res.Resources import android.database.Cursor import android.graphics.Rect import android.os.Bundle +import android.util.Log import android.view.ActionMode import android.view.Menu import android.view.MenuItem @@ -160,7 +161,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe additionalContentContainer.layoutParams = additionalContentContainerLayoutParams // Attachment options val attachmentButtonHeight = inputBar.attachmentsButtonContainer.height - val bottomMargin = (newValue - inputBar.inputBarAdditionalContentContainer.height - attachmentButtonHeight) / 2 + val bottomMargin = (newValue - inputBar.additionalContentHeight - attachmentButtonHeight) / 2 val margin = toPx(8, resources) val attachmentOptionsContainerLayoutParams = attachmentOptionsContainer.layoutParams as RelativeLayout.LayoutParams attachmentOptionsContainerLayoutParams.bottomMargin = bottomMargin + attachmentButtonHeight + margin 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 79e116f6b1..4a891b1d92 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 @@ -5,6 +5,7 @@ import android.util.AttributeSet import android.util.Log import android.view.LayoutInflater import android.view.MotionEvent +import android.widget.LinearLayout import android.widget.RelativeLayout import androidx.core.view.isVisible import kotlinx.android.synthetic.main.view_input_bar.view.* @@ -19,6 +20,7 @@ import kotlin.math.max class InputBar : RelativeLayout, InputBarEditTextDelegate, QuoteViewDelegate { private val vMargin by lazy { toDp(4, resources) } var delegate: InputBarDelegate? = null + var additionalContentHeight = 0 private val attachmentsButton by lazy { InputBarButton(context, R.drawable.ic_plus_24) } private val microphoneButton by lazy { InputBarButton(context, R.drawable.ic_microphone) } @@ -87,13 +89,16 @@ class InputBar : RelativeLayout, InputBarEditTextDelegate, QuoteViewDelegate { quoteView.delegate = this inputBarAdditionalContentContainer.addView(quoteView) quoteView.bind(message.individualRecipient.address.toString(), message.body, null, message.recipient) - val newHeight = max(inputBarEditText.height + 2 * vMargin, toPx(56, resources)) + quoteView.getIntrinsicHeight() + val quoteViewIntrinsicHeight = quoteView.getIntrinsicHeight() + val newHeight = max(inputBarEditText.height + 2 * vMargin, toPx(56, resources)) + quoteViewIntrinsicHeight + additionalContentHeight = quoteViewIntrinsicHeight setHeight(newHeight) } override fun cancelQuoteDraft() { inputBarAdditionalContentContainer.removeAllViews() val newHeight = max(inputBarEditText.height + 2 * vMargin, toPx(56, resources)) + additionalContentHeight = 0 setHeight(newHeight) } // endregion diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/mentions/MentionCandidatesView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/mentions/MentionCandidatesView.kt index 01aa0c06a7..a685dbc828 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/mentions/MentionCandidatesView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/mentions/MentionCandidatesView.kt @@ -14,7 +14,7 @@ import org.session.libsession.messaging.mentions.Mention class MentionCandidatesView(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : ListView(context, attrs, defStyleAttr) { private var candidates = listOf() - set(newValue) { field = newValue; snAdapter.mentionCandidates = newValue } + set(newValue) { field = newValue; snAdapter.candidates = newValue } var glide: GlideRequests? = null set(newValue) { field = newValue; snAdapter.glide = newValue } var openGroupServer: String? = null @@ -26,15 +26,15 @@ class MentionCandidatesView(context: Context, attrs: AttributeSet?, defStyleAttr private val snAdapter by lazy { Adapter(context) } private class Adapter(private val context: Context) : BaseAdapter() { - var mentionCandidates = listOf() + var candidates = listOf() set(newValue) { field = newValue; notifyDataSetChanged() } var glide: GlideRequests? = null var openGroupServer: String? = null var openGroupRoom: String? = null - override fun getCount(): Int { return mentionCandidates.count() } + override fun getCount(): Int { return candidates.count() } override fun getItemId(position: Int): Long { return position.toLong() } - override fun getItem(position: Int): Mention { return mentionCandidates[position] } + override fun getItem(position: Int): Mention { return candidates[position] } override fun getView(position: Int, cellToBeReused: View?, parent: ViewGroup): View { val cell = cellToBeReused as MentionCandidateView? ?: MentionCandidateView.inflate(LayoutInflater.from(context), parent) @@ -53,21 +53,21 @@ class MentionCandidatesView(context: Context, attrs: AttributeSet?, defStyleAttr init { clipToOutline = true adapter = snAdapter - snAdapter.mentionCandidates = candidates + snAdapter.candidates = candidates setOnItemClickListener { _, _, position, _ -> onCandidateSelected?.invoke(candidates[position]) } } - fun show(mentionCandidates: List, threadID: Long) { + fun show(candidates: List, threadID: Long) { val openGroup = DatabaseFactory.getLokiThreadDatabase(context).getOpenGroupChat(threadID) if (openGroup != null) { openGroupServer = openGroup.server openGroupRoom = openGroup.room } - this.candidates = mentionCandidates + this.candidates = candidates val layoutParams = this.layoutParams as ViewGroup.LayoutParams - layoutParams.height = toPx(Math.min(mentionCandidates.count(), 4) * 44, resources) + layoutParams.height = toPx(Math.min(candidates.count(), 4) * 44, resources) this.layoutParams = layoutParams } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt index c1d7006a33..cfe83c32a7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt @@ -47,7 +47,7 @@ class VisibleMessageView : LinearLayout { var onLongPress: (() -> Unit)? = null companion object { - const val swipeToReplyThreshold = 90.0f // dp + const val swipeToReplyThreshold = 80.0f // dp const val longPressMovementTreshold = 10.0f // dp const val longPressDurationThreshold = 250L // ms }