From 1690992d1b5e37f21edb3040d5b939bd0f713efc Mon Sep 17 00:00:00 2001
From: Yohei Yukawa <yukawa@google.com>
Date: Wed, 30 Apr 2014 16:30:06 +0900
Subject: [PATCH] Check OS codename for shouldOfferSwitchingToNextInputMethod

Make sure if Build.VERSION.CODENAME is "REL" or not when
Build.VERSION.SDK_INT is 19 (KitKat). This is a tentative
workaround until Build.VERSION.SDK_INT is bumped to 20 or
greater.

BUG: 12965588
Change-Id: I0f6a8ef92af221240d247997ce65bd5e351b2d5e
---
 .../latin/RichInputMethodManager.java           | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
index 2b0be545e0..64cc562c87 100644
--- a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
+++ b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
@@ -410,12 +410,21 @@ public final class RichInputMethodManager {
 
     public boolean shouldOfferSwitchingToNextInputMethod(final IBinder binder,
             boolean defaultValue) {
-        // Use the default value instead on Jelly Bean MR2 and previous where
-        // {@link InputMethodManager#shouldOfferSwitchingToNextInputMethod} isn't yet available
-        // and on KitKat where the API is still just a stub to return true always.
-        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
+        // Use the default value instead on Jelly Bean MR2 and previous, where
+        // {@link InputMethodManager#shouldOfferSwitchingToNextInputMethod} isn't yet available.
+        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2) {
             return defaultValue;
         }
+        // Use the default value instead on KitKat as well, where
+        // {@link InputMethodManager#shouldOfferSwitchingToNextInputMethod} is still just a stub to
+        // return true always.
+        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
+            // Make sure this is actually KitKat.
+            // TODO: Consider to remove this check once the *next* version becomes available.
+            if (Build.VERSION.CODENAME.equals("REL")) {
+                return defaultValue;
+            }
+        }
         return mImmWrapper.shouldOfferSwitchingToNextInputMethod(binder);
     }
 }
-- 
GitLab