Fix for RTL layout detection crash on < API 17

Fixes #6987
// FREEBIE
This commit is contained in:
Moxie Marlinspike 2017-09-25 09:05:41 -07:00
parent 185d22809e
commit a39d9bf132
3 changed files with 6 additions and 3 deletions

View File

@ -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(),

View File

@ -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 {

View File

@ -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();