summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaoxu Liu <shaoxu@codeaurora.org>2015-11-30 16:15:56 +0800
committerLorDClockaN <lordclockan@gmail.com>2016-07-02 22:07:25 +0200
commit9af93675be96dc1cf095644dafe6be5fc01aad61 (patch)
treeda40583ef53e31e691436b79e618cdc718994f5b
parent5ee9da32c0a2fe991ae97dd5ea52ef33d18337c0 (diff)
Add rtl support to GlowPadView
When anwser a incoming call, GlowPadView alwasy shows the button in LTR view. While the RTL locale needs the mirror UI of LTR. Switch the left target and right target while in RTL view. Change-Id: I693932ab1cba35910dbea418adb50e0a32a7364d
-rw-r--r--src/com/android/incallui/widget/multiwaveview/GlowPadView.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/com/android/incallui/widget/multiwaveview/GlowPadView.java b/src/com/android/incallui/widget/multiwaveview/GlowPadView.java
index acbcdba6..2acf2b6b 100644
--- a/src/com/android/incallui/widget/multiwaveview/GlowPadView.java
+++ b/src/com/android/incallui/widget/multiwaveview/GlowPadView.java
@@ -56,6 +56,7 @@ import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
import android.view.accessibility.AccessibilityNodeProvider;
import com.android.incallui.R;
+import com.android.incallui.InCallPresenter;
import java.util.ArrayList;
import java.util.List;
@@ -641,7 +642,7 @@ public class GlowPadView extends View {
final int count = array.length();
ArrayList<TargetDrawable> drawables = new ArrayList<TargetDrawable>(count);
for (int i = 0; i < count; i++) {
- TypedValue value = array.peekValue(i);
+ TypedValue value = array.peekValue(getRtlTarget(i));
TargetDrawable target = new TargetDrawable(res, value != null ? value.resourceId : 0, 3);
drawables.add(target);
}
@@ -1549,4 +1550,20 @@ public class GlowPadView extends View {
}
}
+
+ /**
+ * Get the mirrored target iterator if it is in RTL locale
+ */
+ private int getRtlTarget(int id) {
+ if (InCallPresenter.isRtl()) {
+ // In the drawable array, LEFT is array[0], TOP is array[1], RIGHT is array[2]
+ int LEFT = 0, RIGHT = 2;
+ if (id == LEFT) {
+ return RIGHT;
+ } else if (id == RIGHT) {
+ return LEFT;
+ }
+ }
+ return id;
+ }
}