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"/>
-
-