From 47b71c82eca80b06e76d960c4a501b9a6c64654b Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Thu, 29 Aug 2013 17:17:28 +0900
Subject: [PATCH] Fix keyStyle flags handling

Change-Id: Ia0d21f7a00ff99eae89c746244484d6fa3f0f44e
---
 .../inputmethod/keyboard/internal/KeyStylesSet.java    | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
index b21ea3f71d..05d855e313 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
@@ -124,10 +124,11 @@ public final class KeyStylesSet {
 
         @Override
         public int getFlags(final TypedArray a, final int index) {
+            final int parentFlags = mStyles.get(mParentStyleName).getFlags(a, index);
             final Integer value = (Integer)mStyleAttributes.get(index);
-            final int flags = a.getInt(index, (value != null) ? value : 0);
-            final KeyStyle parentStyle = mStyles.get(mParentStyleName);
-            return flags | parentStyle.getFlags(a, index);
+            final int styleFlags = (value != null) ? value : 0;
+            final int flags = a.getInt(index, 0);
+            return flags | styleFlags | parentFlags;
         }
 
         public void readKeyAttributes(final TypedArray keyAttr) {
@@ -163,7 +164,8 @@ public final class KeyStylesSet {
         private void readFlags(final TypedArray a, final int index) {
             if (a.hasValue(index)) {
                 final Integer value = (Integer)mStyleAttributes.get(index);
-                mStyleAttributes.put(index, a.getInt(index, 0) | (value != null ? value : 0));
+                final int styleFlags = value != null ? value : 0;
+                mStyleAttributes.put(index, a.getInt(index, 0) | styleFlags);
             }
         }
 
-- 
GitLab