From a39d9bf1324e47293820ba50b7a08f837abf0bd5 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Mon, 25 Sep 2017 09:05:41 -0700 Subject: [PATCH] Fix for RTL layout detection crash on < API 17 Fixes #6987 // FREEBIE --- src/org/thoughtcrime/securesms/ConversationItem.java | 3 ++- src/org/thoughtcrime/securesms/components/FromTextView.java | 3 ++- src/org/thoughtcrime/securesms/util/DynamicLanguage.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/org/thoughtcrime/securesms/ConversationItem.java b/src/org/thoughtcrime/securesms/ConversationItem.java index 531ca62f1b..31e75b4b2e 100644 --- a/src/org/thoughtcrime/securesms/ConversationItem.java +++ b/src/org/thoughtcrime/securesms/ConversationItem.java @@ -27,6 +27,7 @@ import android.net.Uri; import android.os.AsyncTask; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.view.ViewCompat; import android.support.v7.app.AlertDialog; import android.text.SpannableString; import android.text.Spanned; @@ -222,7 +223,7 @@ public class ConversationItem extends LinearLayout content.getPaddingTop() + groupSenderHolder.getMeasuredHeight()); - if (DynamicLanguage.getLayoutDirection(context) == LAYOUT_DIRECTION_RTL) { + if (ViewCompat.getLayoutDirection(groupSenderProfileName) == ViewCompat.LAYOUT_DIRECTION_RTL) { groupSenderProfileName.layout(groupSenderHolder.getPaddingLeft(), groupSenderHolder.getPaddingTop(), groupSenderHolder.getPaddingLeft() + groupSenderProfileName.getWidth(), diff --git a/src/org/thoughtcrime/securesms/components/FromTextView.java b/src/org/thoughtcrime/securesms/components/FromTextView.java index 1ac461af6d..6538fc3911 100644 --- a/src/org/thoughtcrime/securesms/components/FromTextView.java +++ b/src/org/thoughtcrime/securesms/components/FromTextView.java @@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.components; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Typeface; +import android.support.v4.view.ViewCompat; import android.text.Spannable; import android.text.SpannableString; import android.text.SpannableStringBuilder; @@ -61,7 +62,7 @@ public class FromTextView extends EmojiTextView { profileName.setSpan(new TypefaceSpan("sans-serif-light"), 0, profileName.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); profileName.setSpan(new ForegroundColorSpan(ResUtil.getColor(getContext(), R.attr.conversation_list_item_subject_color)), 0, profileName.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - if (DynamicLanguage.getLayoutDirection(getContext()) == LAYOUT_DIRECTION_RTL){ + if (ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL){ builder.append(profileName); builder.append(fromSpan); } else { diff --git a/src/org/thoughtcrime/securesms/util/DynamicLanguage.java b/src/org/thoughtcrime/securesms/util/DynamicLanguage.java index 10be6afb24..e2b6b20ae1 100644 --- a/src/org/thoughtcrime/securesms/util/DynamicLanguage.java +++ b/src/org/thoughtcrime/securesms/util/DynamicLanguage.java @@ -8,6 +8,7 @@ import android.content.Intent; import android.content.res.Configuration; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; +import android.support.annotation.RequiresApi; import android.text.TextUtils; import java.util.Locale; @@ -42,7 +43,7 @@ public class DynamicLanguage { return currentLocale; } - @TargetApi(VERSION_CODES.JELLY_BEAN_MR1) + @RequiresApi(VERSION_CODES.JELLY_BEAN_MR1) public static int getLayoutDirection(Context context) { Configuration configuration = context.getResources().getConfiguration(); return configuration.getLayoutDirection();