Set usage graph LTR layout direction for Persian & Urdu

Persian & Urdu are RTL lanuages but users request LTR
usage graph layout direction.

Bug: 153483998
Test: manual visual
      Set locale Persian or Urdu.
      In 'Wi-Fi data usage', the usage graph should be LTR.
Change-Id: I850baa17d12ac3e0de62382fcb90eda9a19dbcbd
This commit is contained in:
Arc Wang
2020-04-29 15:10:00 +08:00
parent 44121a7a3d
commit 86aa111f0c

View File

@@ -18,6 +18,7 @@ package com.android.settings.widget;
import android.content.Context; import android.content.Context;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.SparseIntArray; import android.util.SparseIntArray;
import android.view.Gravity; import android.view.Gravity;
@@ -29,6 +30,8 @@ import android.widget.TextView;
import com.android.settingslib.R; import com.android.settingslib.R;
import java.util.Locale;
public class UsageView extends FrameLayout { public class UsageView extends FrameLayout {
private final UsageGraph mUsageGraph; private final UsageGraph mUsageGraph;
@@ -85,6 +88,14 @@ public class UsageView extends FrameLayout {
} }
mUsageGraph.setAccentColor(a.getColor(R.styleable.UsageView_android_colorAccent, 0)); mUsageGraph.setAccentColor(a.getColor(R.styleable.UsageView_android_colorAccent, 0));
a.recycle(); a.recycle();
// Locale Persian & Urdu are RTL languages but request LTR graph direction layout.
final String defaultLanguageCode = Locale.getDefault().getLanguage();
if (TextUtils.equals(defaultLanguageCode, new Locale("fa").getLanguage())
|| TextUtils.equals(defaultLanguageCode, new Locale("ur").getLanguage())) {
findViewById(R.id.graph_label_group).setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
findViewById(R.id.bottom_label_group).setLayoutDirection(View.LAYOUT_DIRECTION_LTR);
}
} }
public void clearPaths() { public void clearPaths() {