From c4eb94a9bf0525901cb33fa0b7e4755aca68ae95 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 26 Jun 2023 15:10:00 +0200 Subject: [PATCH] Fixed padding issue in multi line text view in chat --- .../views/MultiLineWrapContentWidthTextView.kt | 18 ++++++++++-------- .../java/org/linphone/core/CorePreferences.kt | 1 + 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/chat/views/MultiLineWrapContentWidthTextView.kt b/app/src/main/java/org/linphone/activities/main/chat/views/MultiLineWrapContentWidthTextView.kt index a0b114149..fe08e43a0 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/views/MultiLineWrapContentWidthTextView.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/views/MultiLineWrapContentWidthTextView.kt @@ -25,6 +25,8 @@ import android.text.method.LinkMovementMethod import android.util.AttributeSet import androidx.appcompat.widget.AppCompatTextView import kotlin.math.ceil +import kotlin.math.max +import kotlin.math.round /** * The purpose of this class is to have a TextView declared with wrap_content as width that won't @@ -52,10 +54,12 @@ class MultiLineWrapContentWidthTextView : AppCompatTextView { if (layout != null && layout.lineCount >= 2) { val maxLineWidth = ceil(getMaxLineWidth(layout)).toInt() - val uselessPaddingWidth = layout.width - maxLineWidth - val width = measuredWidth - uselessPaddingWidth - val height = measuredHeight - setMeasuredDimension(width, height) + if (maxLineWidth < measuredWidth) { + super.onMeasure( + MeasureSpec.makeMeasureSpec(maxLineWidth, MeasureSpec.getMode(widthSpec)), + heightSpec + ) + } } } @@ -63,10 +67,8 @@ class MultiLineWrapContentWidthTextView : AppCompatTextView { var maxWidth = 0.0f val lines = layout.lineCount for (i in 0 until lines) { - if (layout.getLineWidth(i) > maxWidth) { - maxWidth = layout.getLineWidth(i) - } + maxWidth = max(maxWidth, layout.getLineWidth(i)) } - return maxWidth + return round(maxWidth) } } diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index 51c8e7f6d..9a19daf03 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -53,6 +53,7 @@ class CorePreferences constructor(private val context: Context) { context, MasterKey.DEFAULT_MASTER_KEY_ALIAS ).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build() + try { EncryptedSharedPreferences.create( context,