diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationItem.java b/src/main/java/org/thoughtcrime/securesms/ConversationItem.java index 0b9885c55..8045fbab5 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationItem.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationItem.java @@ -71,7 +71,6 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.Linkifier; import org.thoughtcrime.securesms.util.LongClickMovementMethod; import org.thoughtcrime.securesms.util.MediaUtil; -import org.thoughtcrime.securesms.util.Prefs; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.views.Stub; @@ -386,7 +385,6 @@ public class ConversationItem extends BaseConversationItem private void setBodyText(DcMsg messageRecord) { bodyText.setClickable(false); bodyText.setFocusable(false); - bodyText.setTextSize(TypedValue.COMPLEX_UNIT_SP, Prefs.getMessageBodyTextSize(context)); String text = messageRecord.getText(); diff --git a/src/main/java/org/thoughtcrime/securesms/components/emoji/AutoScaledEmojiTextView.java b/src/main/java/org/thoughtcrime/securesms/components/emoji/AutoScaledEmojiTextView.java index eba67f57f..08777fc15 100644 --- a/src/main/java/org/thoughtcrime/securesms/components/emoji/AutoScaledEmojiTextView.java +++ b/src/main/java/org/thoughtcrime/securesms/components/emoji/AutoScaledEmojiTextView.java @@ -8,6 +8,8 @@ import android.util.TypedValue; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatTextView; +import org.thoughtcrime.securesms.util.ViewUtil; + import java.text.BreakIterator; import java.util.Locale; import java.util.regex.Pattern; @@ -21,7 +23,7 @@ public class AutoScaledEmojiTextView extends AppCompatTextView { to avoid matching normal text with such characters */ private static final Pattern emojiRegex = Pattern.compile("([๐Ÿป-๐Ÿฟ๐Ÿ˜€๐Ÿ˜ƒ๐Ÿ˜„๐Ÿ˜๐Ÿ˜†๐Ÿ˜…๐Ÿคฃ๐Ÿ˜‚๐Ÿ™‚๐Ÿ™ƒ๐Ÿซ ๐Ÿ˜‰๐Ÿ˜Š๐Ÿ˜‡๐Ÿฅฐ๐Ÿ˜๐Ÿคฉ๐Ÿ˜˜๐Ÿ˜—โ˜บ๐Ÿ˜š๐Ÿ˜™๐Ÿฅฒ๐Ÿ˜‹๐Ÿ˜›๐Ÿ˜œ๐Ÿคช๐Ÿ˜๐Ÿค‘๐Ÿค—๐Ÿคญ๐Ÿซข๐Ÿซฃ๐Ÿคซ๐Ÿค”๐Ÿซก๐Ÿค๐Ÿคจ๐Ÿ˜๐Ÿ˜‘๐Ÿ˜ถ๐Ÿซฅ๐Ÿ˜๐Ÿ˜’๐Ÿ™„๐Ÿ˜ฌ๐Ÿคฅ๐Ÿซจ๐Ÿ˜Œ๐Ÿ˜”๐Ÿ˜ช๐Ÿคค๐Ÿ˜ด๐Ÿ˜ท๐Ÿค’๐Ÿค•๐Ÿคข๐Ÿคฎ๐Ÿคง๐Ÿฅต๐Ÿฅถ๐Ÿฅด๐Ÿ˜ต๐Ÿคฏ๐Ÿค ๐Ÿฅณ๐Ÿฅธ๐Ÿ˜Ž๐Ÿค“๐Ÿง๐Ÿ˜•๐Ÿซค๐Ÿ˜Ÿ๐Ÿ™โ˜น๐Ÿ˜ฎ๐Ÿ˜ฏ๐Ÿ˜ฒ๐Ÿ˜ณ๐Ÿฅบ๐Ÿฅน๐Ÿ˜ฆ-๐Ÿ˜จ๐Ÿ˜ฐ๐Ÿ˜ฅ๐Ÿ˜ข๐Ÿ˜ญ๐Ÿ˜ฑ๐Ÿ˜–๐Ÿ˜ฃ๐Ÿ˜ž๐Ÿ˜“๐Ÿ˜ฉ๐Ÿ˜ซ๐Ÿฅฑ๐Ÿ˜ค๐Ÿ˜ก๐Ÿ˜ ๐Ÿคฌ๐Ÿ˜ˆ๐Ÿ‘ฟ๐Ÿ’€โ˜ ๐Ÿ’ฉ๐Ÿคก๐Ÿ‘น-๐Ÿ‘ป๐Ÿ‘ฝ๐Ÿ‘พ๐Ÿค–๐Ÿ˜บ๐Ÿ˜ธ๐Ÿ˜น๐Ÿ˜ป-๐Ÿ˜ฝ๐Ÿ™€๐Ÿ˜ฟ๐Ÿ˜พ๐Ÿ™ˆ-๐Ÿ™Š๐Ÿ’Œ๐Ÿ’˜๐Ÿ’๐Ÿ’–๐Ÿ’—๐Ÿ’“๐Ÿ’ž๐Ÿ’•๐Ÿ’Ÿโฃ๐Ÿ’”โค๐Ÿฉท๐Ÿงก๐Ÿ’›๐Ÿ’š๐Ÿ’™๐Ÿฉต๐Ÿ’œ๐ŸคŽ๐Ÿ–ค๐Ÿฉถ๐Ÿค๐Ÿ’‹๐Ÿ’ฏ๐Ÿ’ข๐Ÿ’ฅ๐Ÿ’ซ๐Ÿ’ฆ๐Ÿ’จ๐Ÿ•ณ๐Ÿ’ฌ๐Ÿ—จ๐Ÿ—ฏ๐Ÿ’ญ๐Ÿ’ค๐Ÿ‘‹๐Ÿคš๐Ÿ–โœ‹๐Ÿ––๐Ÿซฑ-๐Ÿซด๐Ÿซท๐Ÿซธ๐Ÿ‘Œ๐ŸคŒ๐ŸคโœŒ๐Ÿคž๐Ÿซฐ๐ŸคŸ๐Ÿค˜๐Ÿค™๐Ÿ‘ˆ๐Ÿ‘‰๐Ÿ‘†๐Ÿ–•๐Ÿ‘‡โ˜๐Ÿซต๐Ÿ‘๐Ÿ‘ŽโœŠ๐Ÿ‘Š๐Ÿค›๐Ÿคœ๐Ÿ‘๐Ÿ™Œ๐Ÿซถ๐Ÿ‘๐Ÿคฒ๐Ÿค๐Ÿ™โœ๐Ÿ’…๐Ÿคณ๐Ÿ’ช๐Ÿฆพ๐Ÿฆฟ๐Ÿฆต๐Ÿฆถ๐Ÿ‘‚๐Ÿฆป๐Ÿ‘ƒ๐Ÿง ๐Ÿซ€๐Ÿซ๐Ÿฆท๐Ÿฆด๐Ÿ‘€๐Ÿ‘๐Ÿ‘…๐Ÿ‘„๐Ÿซฆ๐Ÿ‘ถ๐Ÿง’๐Ÿ‘ฆ๐Ÿ‘ง๐Ÿง‘๐Ÿ‘ฑ๐Ÿ‘จ๐Ÿง”๐Ÿ‘ฉ๐Ÿง“๐Ÿ‘ด๐Ÿ‘ต๐Ÿ™๐Ÿ™Ž๐Ÿ™…๐Ÿ™†๐Ÿ’๐Ÿ™‹๐Ÿง๐Ÿ™‡๐Ÿคฆ๐Ÿคท๐Ÿ‘ฎ๐Ÿ•ต๐Ÿ’‚๐Ÿฅท๐Ÿ‘ท๐Ÿซ…๐Ÿคด๐Ÿ‘ธ๐Ÿ‘ณ๐Ÿ‘ฒ๐Ÿง•๐Ÿคต๐Ÿ‘ฐ๐Ÿคฐ๐Ÿซƒ๐Ÿซ„๐Ÿคฑ๐Ÿ‘ผ๐ŸŽ…๐Ÿคถ๐Ÿฆธ๐Ÿฆน๐Ÿง™-๐ŸงŸ๐ŸงŒ๐Ÿ’†๐Ÿ’‡๐Ÿšถ๐Ÿง๐ŸงŽ๐Ÿƒ๐Ÿ’ƒ๐Ÿ•บ๐Ÿ•ด๐Ÿ‘ฏ๐Ÿง–๐Ÿง—๐Ÿคบ๐Ÿ‡โ›ท๐Ÿ‚๐ŸŒ๐Ÿ„๐Ÿšฃ๐ŸŠโ›น๐Ÿ‹๐Ÿšด๐Ÿšต๐Ÿคธ๐Ÿคผ-๐Ÿคพ๐Ÿคน๐Ÿง˜๐Ÿ›€๐Ÿ›Œ๐Ÿ‘ญ๐Ÿ‘ซ๐Ÿ‘ฌ๐Ÿ’๐Ÿ’‘๐Ÿ—ฃ๐Ÿ‘ค๐Ÿ‘ฅ๐Ÿซ‚๐Ÿ‘ช๐Ÿ‘ฃ๐Ÿฆฐ๐Ÿฆฑ๐Ÿฆณ๐Ÿฆฒ๐Ÿต๐Ÿ’๐Ÿฆ๐Ÿฆง๐Ÿถ๐Ÿ•๐Ÿฆฎ๐Ÿฉ๐Ÿบ๐ŸฆŠ๐Ÿฆ๐Ÿฑ๐Ÿˆ๐Ÿฆ๐Ÿฏ๐Ÿ…๐Ÿ†๐Ÿด๐ŸซŽ๐Ÿซ๐ŸŽ๐Ÿฆ„๐Ÿฆ“๐ŸฆŒ๐Ÿฆฌ๐Ÿฎ๐Ÿ‚-๐Ÿ„๐Ÿท๐Ÿ–๐Ÿ—๐Ÿฝ๐Ÿ๐Ÿ‘๐Ÿ๐Ÿช๐Ÿซ๐Ÿฆ™๐Ÿฆ’๐Ÿ˜๐Ÿฆฃ๐Ÿฆ๐Ÿฆ›๐Ÿญ๐Ÿ๐Ÿ€๐Ÿน๐Ÿฐ๐Ÿ‡๐Ÿฟ๐Ÿฆซ๐Ÿฆ”๐Ÿฆ‡๐Ÿป๐Ÿจ๐Ÿผ๐Ÿฆฅ๐Ÿฆฆ๐Ÿฆจ๐Ÿฆ˜๐Ÿฆก๐Ÿพ๐Ÿฆƒ๐Ÿ”๐Ÿ“๐Ÿฃ-๐Ÿง๐Ÿ•Š๐Ÿฆ…๐Ÿฆ†๐Ÿฆข๐Ÿฆ‰๐Ÿฆค๐Ÿชถ๐Ÿฆฉ๐Ÿฆš๐Ÿฆœ๐Ÿชฝ๐Ÿชฟ๐Ÿธ๐ŸŠ๐Ÿข๐ŸฆŽ๐Ÿ๐Ÿฒ๐Ÿ‰๐Ÿฆ•๐Ÿฆ–๐Ÿณ๐Ÿ‹๐Ÿฌ๐Ÿฆญ๐ŸŸ-๐Ÿก๐Ÿฆˆ๐Ÿ™๐Ÿš๐Ÿชธ๐Ÿชผ๐ŸŒ๐Ÿฆ‹๐Ÿ›-๐Ÿ๐Ÿชฒ๐Ÿž๐Ÿฆ—๐Ÿชณ๐Ÿ•ท๐Ÿ•ธ๐Ÿฆ‚๐ŸฆŸ๐Ÿชฐ๐Ÿชฑ๐Ÿฆ ๐Ÿ’๐ŸŒธ๐Ÿ’ฎ๐Ÿชท๐Ÿต๐ŸŒน๐Ÿฅ€๐ŸŒบ-๐ŸŒผ๐ŸŒท๐Ÿชป๐ŸŒฑ๐Ÿชด๐ŸŒฒ-๐ŸŒต๐ŸŒพ๐ŸŒฟโ˜˜๐Ÿ€-๐Ÿƒ๐Ÿชน๐Ÿชบ๐Ÿ„๐Ÿ‡-๐Ÿ๐Ÿฅญ๐ŸŽ-๐Ÿ“๐Ÿซ๐Ÿฅ๐Ÿ…๐Ÿซ’๐Ÿฅฅ๐Ÿฅ‘๐Ÿ†๐Ÿฅ”๐Ÿฅ•๐ŸŒฝ๐ŸŒถ๐Ÿซ‘๐Ÿฅ’๐Ÿฅฌ๐Ÿฅฆ๐Ÿง„๐Ÿง…๐Ÿฅœ๐Ÿซ˜๐ŸŒฐ๐Ÿซš๐Ÿซ›๐Ÿž๐Ÿฅ๐Ÿฅ–๐Ÿซ“๐Ÿฅจ๐Ÿฅฏ๐Ÿฅž๐Ÿง‡๐Ÿง€๐Ÿ–๐Ÿ—๐Ÿฅฉ๐Ÿฅ“๐Ÿ”๐ŸŸ๐Ÿ•๐ŸŒญ๐Ÿฅช๐ŸŒฎ๐ŸŒฏ๐Ÿซ”๐Ÿฅ™๐Ÿง†๐Ÿฅš๐Ÿณ๐Ÿฅ˜๐Ÿฒ๐Ÿซ•๐Ÿฅฃ๐Ÿฅ—๐Ÿฟ๐Ÿงˆ๐Ÿง‚๐Ÿฅซ๐Ÿฑ๐Ÿ˜-๐Ÿ๐Ÿ ๐Ÿข-๐Ÿฅ๐Ÿฅฎ๐Ÿก๐ŸฅŸ-๐Ÿฅก๐Ÿฆ€๐Ÿฆž๐Ÿฆ๐Ÿฆ‘๐Ÿฆช๐Ÿฆ-๐Ÿช๐ŸŽ‚๐Ÿฐ๐Ÿง๐Ÿฅง๐Ÿซ-๐Ÿฏ๐Ÿผ๐Ÿฅ›โ˜•๐Ÿซ–๐Ÿต๐Ÿถ๐Ÿพ๐Ÿท-๐Ÿป๐Ÿฅ‚๐Ÿฅƒ๐Ÿซ—๐Ÿฅค๐Ÿง‹๐Ÿงƒ๐Ÿง‰๐ŸงŠ๐Ÿฅข๐Ÿฝ๐Ÿด๐Ÿฅ„๐Ÿ”ช๐Ÿซ™๐Ÿบ๐ŸŒ-๐ŸŒ๐Ÿ—บ๐Ÿ—พ๐Ÿงญ๐Ÿ”โ›ฐ๐ŸŒ‹๐Ÿ—ป๐Ÿ•๐Ÿ–๐Ÿœ-๐ŸŸ๐Ÿ›๐Ÿ—๐Ÿงฑ๐Ÿชจ๐Ÿชต๐Ÿ›–๐Ÿ˜๐Ÿš๐Ÿ -๐Ÿฆ๐Ÿจ-๐Ÿญ๐Ÿฏ๐Ÿฐ๐Ÿ’’๐Ÿ—ผ๐Ÿ—ฝโ›ช๐Ÿ•Œ๐Ÿ›•๐Ÿ•โ›ฉ๐Ÿ•‹โ›ฒโ›บ๐ŸŒ๐ŸŒƒ๐Ÿ™๐ŸŒ„-๐ŸŒ‡๐ŸŒ‰โ™จ๐ŸŽ ๐Ÿ›๐ŸŽก๐ŸŽข๐Ÿ’ˆ๐ŸŽช๐Ÿš‚-๐ŸšŠ๐Ÿš๐Ÿšž๐Ÿš‹-๐ŸšŽ๐Ÿš-๐Ÿš™๐Ÿ›ป๐Ÿšš-๐Ÿšœ๐ŸŽ๐Ÿ๐Ÿ›ต๐Ÿฆฝ๐Ÿฆผ๐Ÿ›บ๐Ÿšฒ๐Ÿ›ด๐Ÿ›น๐Ÿ›ผ๐Ÿš๐Ÿ›ฃ๐Ÿ›ค๐Ÿ›ขโ›ฝ๐Ÿ›ž๐Ÿšจ๐Ÿšฅ๐Ÿšฆ๐Ÿ›‘๐Ÿšงโš“๐Ÿ›Ÿโ›ต๐Ÿ›ถ๐Ÿšค๐Ÿ›ณโ›ด๐Ÿ›ฅ๐Ÿšขโœˆ๐Ÿ›ฉ๐Ÿ›ซ๐Ÿ›ฌ๐Ÿช‚๐Ÿ’บ๐Ÿš๐ŸšŸ-๐Ÿšก๐Ÿ›ฐ๐Ÿš€๐Ÿ›ธ๐Ÿ›Ž๐ŸงณโŒ›โณโŒšโฐ-โฒ๐Ÿ•ฐ๐Ÿ•›๐Ÿ•ง๐Ÿ•๐Ÿ•œ๐Ÿ•‘๐Ÿ•๐Ÿ•’๐Ÿ•ž๐Ÿ•“๐Ÿ•Ÿ๐Ÿ•”๐Ÿ• ๐Ÿ••๐Ÿ•ก๐Ÿ•–๐Ÿ•ข๐Ÿ•—๐Ÿ•ฃ๐Ÿ•˜๐Ÿ•ค๐Ÿ•™๐Ÿ•ฅ๐Ÿ•š๐Ÿ•ฆ๐ŸŒ‘-๐ŸŒœ๐ŸŒกโ˜€๐ŸŒ๐ŸŒž๐Ÿชโญ๐ŸŒŸ๐ŸŒ ๐ŸŒŒโ˜โ›…โ›ˆ๐ŸŒค-๐ŸŒฌ๐ŸŒ€๐ŸŒˆ๐ŸŒ‚โ˜‚โ˜”โ›ฑโšกโ„โ˜ƒโ›„โ˜„๐Ÿ”ฅ๐Ÿ’ง๐ŸŒŠ๐ŸŽƒ๐ŸŽ„๐ŸŽ†๐ŸŽ‡๐Ÿงจโœจ๐ŸŽˆ-๐ŸŽ‹๐ŸŽ-๐ŸŽ‘๐Ÿงง๐ŸŽ€๐ŸŽ๐ŸŽ—๐ŸŽŸ๐ŸŽซ๐ŸŽ–๐Ÿ†๐Ÿ…๐Ÿฅ‡-๐Ÿฅ‰โšฝโšพ๐ŸฅŽ๐Ÿ€๐Ÿ๐Ÿˆ๐Ÿ‰๐ŸŽพ๐Ÿฅ๐ŸŽณ๐Ÿ๐Ÿ‘๐Ÿ’๐Ÿฅ๐Ÿ“๐Ÿธ๐ŸฅŠ๐Ÿฅ‹๐Ÿฅ…โ›ณโ›ธ๐ŸŽฃ๐Ÿคฟ๐ŸŽฝ๐ŸŽฟ๐Ÿ›ท๐ŸฅŒ๐ŸŽฏ๐Ÿช€๐Ÿช๐Ÿ”ซ๐ŸŽฑ๐Ÿ”ฎ๐Ÿช„๐ŸŽฎ๐Ÿ•น๐ŸŽฐ๐ŸŽฒ๐Ÿงฉ๐Ÿงธ๐Ÿช…๐Ÿชฉ๐Ÿช†โ™ โ™ฅโ™ฆโ™ฃโ™Ÿ๐Ÿƒ๐Ÿ€„๐ŸŽด๐ŸŽญ๐Ÿ–ผ๐ŸŽจ๐Ÿงต๐Ÿชก๐Ÿงถ๐Ÿชข๐Ÿ‘“๐Ÿ•ถ๐Ÿฅฝ๐Ÿฅผ๐Ÿฆบ๐Ÿ‘”-๐Ÿ‘–๐Ÿงฃ-๐Ÿงฆ๐Ÿ‘—๐Ÿ‘˜๐Ÿฅป๐Ÿฉฑ-๐Ÿฉณ๐Ÿ‘™๐Ÿ‘š๐Ÿชญ๐Ÿ‘›-๐Ÿ‘๐Ÿ›๐ŸŽ’๐Ÿฉด๐Ÿ‘ž๐Ÿ‘Ÿ๐Ÿฅพ๐Ÿฅฟ๐Ÿ‘ ๐Ÿ‘ก๐Ÿฉฐ๐Ÿ‘ข๐Ÿชฎ๐Ÿ‘‘๐Ÿ‘’๐ŸŽฉ๐ŸŽ“๐Ÿงข๐Ÿช–โ›‘๐Ÿ“ฟ๐Ÿ’„๐Ÿ’๐Ÿ’Ž๐Ÿ”‡-๐Ÿ”Š๐Ÿ“ข๐Ÿ“ฃ๐Ÿ“ฏ๐Ÿ””๐Ÿ”•๐ŸŽผ๐ŸŽต๐ŸŽถ๐ŸŽ™-๐ŸŽ›๐ŸŽค๐ŸŽง๐Ÿ“ป๐ŸŽท๐Ÿช—๐ŸŽธ-๐ŸŽป๐Ÿช•๐Ÿฅ๐Ÿช˜๐Ÿช‡๐Ÿชˆ๐Ÿ“ฑ๐Ÿ“ฒโ˜Ž๐Ÿ“ž-๐Ÿ“ ๐Ÿ”‹๐Ÿชซ๐Ÿ”Œ๐Ÿ’ป๐Ÿ–ฅ๐Ÿ–จโŒจ๐Ÿ–ฑ๐Ÿ–ฒ๐Ÿ’ฝ-๐Ÿ“€๐Ÿงฎ๐ŸŽฅ๐ŸŽž๐Ÿ“ฝ๐ŸŽฌ๐Ÿ“บ๐Ÿ“ท-๐Ÿ“น๐Ÿ“ผ๐Ÿ”๐Ÿ”Ž๐Ÿ•ฏ๐Ÿ’ก๐Ÿ”ฆ๐Ÿฎ๐Ÿช”๐Ÿ“”-๐Ÿ“š๐Ÿ““๐Ÿ“’๐Ÿ“ƒ๐Ÿ“œ๐Ÿ“„๐Ÿ“ฐ๐Ÿ—ž๐Ÿ“‘๐Ÿ”–๐Ÿท๐Ÿ’ฐ๐Ÿช™๐Ÿ’ด-๐Ÿ’ธ๐Ÿ’ณ๐Ÿงพ๐Ÿ’นโœ‰๐Ÿ“ง-๐Ÿ“ฉ๐Ÿ“ค-๐Ÿ“ฆ๐Ÿ“ซ๐Ÿ“ช๐Ÿ“ฌ-๐Ÿ“ฎ๐Ÿ—ณโœโœ’๐Ÿ–‹๐Ÿ–Š๐Ÿ–Œ๐Ÿ–๐Ÿ“๐Ÿ’ผ๐Ÿ“๐Ÿ“‚๐Ÿ—‚๐Ÿ“…๐Ÿ“†๐Ÿ—’๐Ÿ—“๐Ÿ“‡-๐Ÿ“Ž๐Ÿ–‡๐Ÿ“๐Ÿ“โœ‚๐Ÿ—ƒ๐Ÿ—„๐Ÿ—‘๐Ÿ”’๐Ÿ”“๐Ÿ”-๐Ÿ”‘๐Ÿ—๐Ÿ”จ๐Ÿช“โ›โš’๐Ÿ› ๐Ÿ—กโš”๐Ÿ’ฃ๐Ÿชƒ๐Ÿน๐Ÿ›ก๐Ÿชš๐Ÿ”ง๐Ÿช›๐Ÿ”ฉโš™๐Ÿ—œโš–๐Ÿฆฏ๐Ÿ”—โ›“๐Ÿช๐Ÿงฐ๐Ÿงฒ๐Ÿชœโš—๐Ÿงช-๐Ÿงฌ๐Ÿ”ฌ๐Ÿ”ญ๐Ÿ“ก๐Ÿ’‰๐Ÿฉธ๐Ÿ’Š๐Ÿฉน๐Ÿฉผ๐Ÿฉบ๐Ÿฉป๐Ÿšช๐Ÿ›—๐Ÿชž๐ŸชŸ๐Ÿ›๐Ÿ›‹๐Ÿช‘๐Ÿšฝ๐Ÿช ๐Ÿšฟ๐Ÿ›๐Ÿชค๐Ÿช’๐Ÿงด๐Ÿงท๐Ÿงน-๐Ÿงป๐Ÿชฃ๐Ÿงผ๐Ÿซง๐Ÿชฅ๐Ÿงฝ๐Ÿงฏ๐Ÿ›’๐Ÿšฌโšฐ๐Ÿชฆโšฑ๐Ÿงฟ๐Ÿชฌ๐Ÿ—ฟ๐Ÿชง๐Ÿชช๐Ÿง๐Ÿšฎ๐Ÿšฐโ™ฟ๐Ÿšน-๐Ÿšผ๐Ÿšพ๐Ÿ›‚-๐Ÿ›…โš ๐Ÿšธโ›”๐Ÿšซ๐Ÿšณ๐Ÿšญ๐Ÿšฏ๐Ÿšฑ๐Ÿšท๐Ÿ“ต๐Ÿ”žโ˜ขโ˜ฃโฌ†โ†—โžกโ†˜โฌ‡โ†™โฌ…โ†–โ†•โ†”โ†ฉโ†ชโคดโคต๐Ÿ”ƒ๐Ÿ”„๐Ÿ”™-๐Ÿ”๐Ÿ›โš›๐Ÿ•‰โœกโ˜ธโ˜ฏโœโ˜ฆโ˜ชโ˜ฎ๐Ÿ•Ž๐Ÿ”ฏ๐Ÿชฏโ™ˆ-โ™“โ›Ž๐Ÿ”€-๐Ÿ”‚โ–ถโฉโญโฏโ—€โชโฎ๐Ÿ”ผโซ๐Ÿ”ฝโฌโธ-โบโ๐ŸŽฆ๐Ÿ”…๐Ÿ”†๐Ÿ“ถ๐Ÿ›œ๐Ÿ“ณ๐Ÿ“ดโ™€โ™‚โšงโœ–โž•-โž—๐ŸŸฐโ™พโ€ผโ‰โ“-โ•โ—ใ€ฐ๐Ÿ’ฑ๐Ÿ’ฒโš•โ™ปโšœ๐Ÿ”ฑ๐Ÿ“›๐Ÿ”ฐโญ•โœ…โ˜‘โœ”โŒโŽโžฐโžฟใ€ฝโœณโœดโ‡ยฉยฎโ„ข๐Ÿ”Ÿ-๐Ÿ”ค๐Ÿ…ฐ๐Ÿ†Ž๐Ÿ…ฑ๐Ÿ†‘-๐Ÿ†“โ„น๐Ÿ†”โ“‚๐Ÿ†•๐Ÿ†–๐Ÿ…พ๐Ÿ†—๐Ÿ…ฟ๐Ÿ†˜-๐Ÿ†š๐Ÿˆ๐Ÿˆ‚๐Ÿˆท๐Ÿˆถ๐Ÿˆฏ๐Ÿ‰๐Ÿˆน๐Ÿˆš๐Ÿˆฒ๐Ÿ‰‘๐Ÿˆธ๐Ÿˆด๐ŸˆณใŠ—ใŠ™๐Ÿˆบ๐Ÿˆต๐Ÿ”ด๐ŸŸ -๐ŸŸข๐Ÿ”ต๐ŸŸฃ๐ŸŸคโšซโšช๐ŸŸฅ๐ŸŸง-๐ŸŸฉ๐ŸŸฆ๐ŸŸช๐ŸŸซโฌ›โฌœโ—ผโ—ปโ—พโ—ฝโ–ชโ–ซ๐Ÿ”ถ-๐Ÿ”ป๐Ÿ’ ๐Ÿ”˜๐Ÿ”ณ๐Ÿ”ฒ๐Ÿ๐Ÿšฉ๐ŸŽŒ๐Ÿด๐Ÿณ๐Ÿ‡ฆ-๐Ÿ‡ฟ\uD83E\uDD89\uD83E\uDD8F\uD83E\uDDBE\uD83E\uDDC6\uD83E\uddcd\uD83E\udddf\uD83E\ude99]|#๏ธโƒฃ|\\*๏ธโƒฃ|0๏ธโƒฃ|1๏ธโƒฃ|2๏ธโƒฃ|3๏ธโƒฃ|4๏ธโƒฃ|5๏ธโƒฃ|6๏ธโƒฃ|7๏ธโƒฃ|8๏ธโƒฃ|9๏ธโƒฃ)+"); - private final float originalFontSize; + private float originalFontSize; public AutoScaledEmojiTextView(Context context) { this(context, null); @@ -34,18 +36,39 @@ public class AutoScaledEmojiTextView extends AppCompatTextView { public AutoScaledEmojiTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); TypedArray typedArray = context.obtainStyledAttributes(attrs, new int[]{android.R.attr.textSize}); - originalFontSize = typedArray.getDimensionPixelSize(0, 0); + originalFontSize = ViewUtil.pxToSp(context, typedArray.getDimensionPixelSize(0, 0)); + if (originalFontSize == 0) { + originalFontSize = 16f; + } typedArray.recycle(); } @Override public void setText(@Nullable CharSequence text, BufferType type) { float scale = text != null ? getTextScale(text.toString()) : 1; - super.setTextSize(TypedValue.COMPLEX_UNIT_PX, originalFontSize * scale); + super.setTextSize(TypedValue.COMPLEX_UNIT_SP, originalFontSize * scale); super.setText(text, type); } - + @Override + public void setTextSize(float size) { + setTextSize(TypedValue.COMPLEX_UNIT_SP, size); + } + + @Override + public void setTextSize(int unit, float size) { + if (unit == TypedValue.COMPLEX_UNIT_SP) { + originalFontSize = size; + } else { + float pxSize = TypedValue.applyDimension(unit, size, getResources().getDisplayMetrics()); + float spSize = ViewUtil.pxToSp(getContext(), (int) pxSize); + if (spSize > 0) { + originalFontSize = spSize; + } + } + super.setTextSize(unit, size); + } + private float getTextScale(String text) { if (text.length() > 21 || text.isEmpty() || Character.isLetter(text.charAt(0))) { return 1; diff --git a/src/main/java/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java b/src/main/java/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java index c3514cf26..f276f2e27 100644 --- a/src/main/java/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java +++ b/src/main/java/org/thoughtcrime/securesms/preferences/AppearancePreferenceFragment.java @@ -23,8 +23,6 @@ public class AppearancePreferenceFragment extends ListSummaryPreferenceFragment this.findPreference(Prefs.THEME_PREF).setOnPreferenceChangeListener(new ListSummaryListener()); initializeListSummary((ListPreference)findPreference(Prefs.THEME_PREF)); this.findPreference(Prefs.BACKGROUND_PREF).setOnPreferenceClickListener(new BackgroundClickListener()); - this.findPreference(Prefs.MESSAGE_BODY_TEXT_SIZE_PREF).setOnPreferenceChangeListener(new ListSummaryListener()); - initializeListSummary((ListPreference) findPreference(Prefs.MESSAGE_BODY_TEXT_SIZE_PREF)); } @Override diff --git a/src/main/java/org/thoughtcrime/securesms/util/Prefs.java b/src/main/java/org/thoughtcrime/securesms/util/Prefs.java index ee085145b..face741e6 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/Prefs.java +++ b/src/main/java/org/thoughtcrime/securesms/util/Prefs.java @@ -47,7 +47,6 @@ public class Prefs { public static final String DOZE_ASKED_DIRECTLY = "pref_doze_asked_directly"; public static final String ASKED_FOR_NOTIFICATION_PERMISSION= "pref_asked_for_notification_permission"; private static final String IN_THREAD_NOTIFICATION_PREF = "pref_key_inthread_notifications"; - public static final String MESSAGE_BODY_TEXT_SIZE_PREF = "pref_message_body_text_size"; public static final String NOTIFICATION_PRIVACY_PREF = "pref_notification_privacy"; public static final String NOTIFICATION_PRIORITY_PREF = "pref_notification_priority"; @@ -104,10 +103,6 @@ public class Prefs { return Integer.valueOf(getStringPreference(context, NOTIFICATION_PRIORITY_PREF, String.valueOf(NotificationCompat.PRIORITY_HIGH))); } - public static int getMessageBodyTextSize(Context context) { - return Integer.valueOf(getStringPreference(context, MESSAGE_BODY_TEXT_SIZE_PREF, "16")); - } - public static void setDirectCaptureCameraId(Context context, int value) { setIntegerPreference(context, DIRECT_CAPTURE_CAMERA_ID, value); } diff --git a/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java b/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java index 683b84be9..147516a3c 100644 --- a/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java +++ b/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java @@ -32,7 +32,9 @@ import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import androidx.interpolator.view.animation.FastOutSlowInInterpolator; +import android.util.DisplayMetrics; import android.util.Log; +import android.util.TypedValue; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -202,6 +204,18 @@ public class ViewUtil { return (int)((dp * context.getResources().getDisplayMetrics().density) + 0.5); } + public static float pxToSp(Context context, int px) { + DisplayMetrics metrics = context.getResources().getDisplayMetrics(); + if (VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE) { + return TypedValue.deriveDimension(TypedValue.COMPLEX_UNIT_SP, px, metrics); + } else { + if (metrics.scaledDensity == 0) { + return 0; + } + return px / metrics.scaledDensity; + } + } + public static void updateLayoutParams(@NonNull View view, int width, int height) { view.getLayoutParams().width = width; view.getLayoutParams().height = height; diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml index 988725912..71c05125b 100644 --- a/src/main/res/values/arrays.xml +++ b/src/main/res/values/arrays.xml @@ -175,20 +175,6 @@ #000000 - - @string/small - @string/normal - @string/large - @string/extra_large - - - - 13 - 16 - 20 - 30 - - @string/def @string/notify_priority_high diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 913947d10..40226be13 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -736,6 +736,7 @@ App Access Chats In-Chat Sounds + Message Font Size View Log Saved the log to \"Downloads\" folder diff --git a/src/main/res/xml-v29/preferences_appearance.xml b/src/main/res/xml-v29/preferences_appearance.xml index 4bd688c34..b5dc15490 100644 --- a/src/main/res/xml-v29/preferences_appearance.xml +++ b/src/main/res/xml-v29/preferences_appearance.xml @@ -15,11 +15,4 @@ android:key="pref_chat_background" android:title="@string/pref_background"/> - - diff --git a/src/main/res/xml/preferences_appearance.xml b/src/main/res/xml/preferences_appearance.xml index d18c413bd..d41fca347 100644 --- a/src/main/res/xml/preferences_appearance.xml +++ b/src/main/res/xml/preferences_appearance.xml @@ -15,11 +15,4 @@ android:key="pref_chat_background" android:title="@string/pref_background"/> - -