summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;
+ }
}