Autoscale story text so all content fits in viewer.

fork-5.53.8
Alex Hart 2022-10-13 15:47:33 -03:00 zatwierdzone przez Greyson Parrelli
rodzic b6db7e7af6
commit a0172ddb2f
3 zmienionych plików z 9 dodań i 10 usunięć

Wyświetl plik

@ -9,6 +9,7 @@ import android.widget.TextView
import org.signal.core.util.BreakIteratorCompat import org.signal.core.util.BreakIteratorCompat
import org.signal.core.util.DimensionUnit import org.signal.core.util.DimensionUnit
import org.signal.core.util.EditTextUtil import org.signal.core.util.EditTextUtil
import org.thoughtcrime.securesms.util.doOnEachLayout
class TextStoryTextWatcher private constructor(private val textView: TextView) : TextWatcher { class TextStoryTextWatcher private constructor(private val textView: TextView) : TextWatcher {
@ -45,6 +46,14 @@ class TextStoryTextWatcher private constructor(private val textView: TextView) :
if (textView is EditText) { if (textView is EditText) {
EditTextUtil.addGraphemeClusterLimitFilter(textView, 700) EditTextUtil.addGraphemeClusterLimitFilter(textView, 700)
} else {
textView.doOnEachLayout {
val contentHeight = textView.height - textView.paddingTop - textView.paddingBottom
if (textView.layout != null && textView.layout.height > contentHeight) {
val percentShown = contentHeight / textView.layout.height.toFloat()
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, DimensionUnit.DP.toPixels(18f * percentShown))
}
}
} }
textView.addTextChangedListener(watcher) textView.addTextChangedListener(watcher)

Wyświetl plik

@ -168,10 +168,6 @@ public final class MultiShareArgs implements Parcelable {
return false; return false;
} }
if (!Util.isEmpty(getDraftText()) && getDraftText().split("\n").length > Stories.MAX_TEXT_STORY_LINE_COUNT) {
return false;
}
if (!Util.isEmpty(getDraftText())) { if (!Util.isEmpty(getDraftText())) {
BreakIteratorCompat breakIteratorCompat = BreakIteratorCompat.getInstance(); BreakIteratorCompat breakIteratorCompat = BreakIteratorCompat.getInstance();
breakIteratorCompat.setText(getDraftText()); breakIteratorCompat.setText(getDraftText());

Wyświetl plik

@ -4,11 +4,9 @@ import android.content.Context
import android.graphics.Typeface import android.graphics.Typeface
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.util.AttributeSet import android.util.AttributeSet
import android.util.TypedValue
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import androidx.annotation.ColorInt import androidx.annotation.ColorInt
import androidx.annotation.Px
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.graphics.ColorUtils import androidx.core.graphics.ColorUtils
import androidx.core.view.doOnNextLayout import androidx.core.view.doOnNextLayout
@ -85,10 +83,6 @@ class StoryTextPostView @JvmOverloads constructor(
textView.text = text textView.text = text
} }
private fun setTextSize(@Px textSize: Float) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize)
}
private fun setTextGravity(textAlignment: TextAlignment) { private fun setTextGravity(textAlignment: TextAlignment) {
textView.gravity = textAlignment.gravity textView.gravity = textAlignment.gravity
} }