Rename kcm attribute to keyboardLayout.

Bug: 6478076
Change-Id: I7fc0d8eb36d03a628d070f8fd6ea1e1464b1a163
diff --git a/api/16.txt b/api/16.txt
index ee53bcc3..18a4b7b 100644
--- a/api/16.txt
+++ b/api/16.txt
@@ -593,7 +593,6 @@
     field public static final int itemIconDisabledAlpha = 16843057; // 0x1010131
     field public static final int itemPadding = 16843565; // 0x101032d
     field public static final int itemTextAppearance = 16843052; // 0x101012c
-    field public static final int kcm = 16843691; // 0x10103ab
     field public static final int keepScreenOn = 16843286; // 0x1010216
     field public static final int key = 16843240; // 0x10101e8
     field public static final int keyBackground = 16843315; // 0x1010233
@@ -608,6 +607,7 @@
     field public static final int keyTextColor = 16843318; // 0x1010236
     field public static final int keyTextSize = 16843316; // 0x1010234
     field public static final int keyWidth = 16843325; // 0x101023d
+    field public static final int keyboardLayout = 16843691; // 0x10103ab
     field public static final int keyboardMode = 16843341; // 0x101024d
     field public static final int keycode = 16842949; // 0x10100c5
     field public static final int killAfterRestore = 16843420; // 0x101029c
diff --git a/api/current.txt b/api/current.txt
index 635947c..8402f31 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -594,7 +594,6 @@
     field public static final int itemIconDisabledAlpha = 16843057; // 0x1010131
     field public static final int itemPadding = 16843565; // 0x101032d
     field public static final int itemTextAppearance = 16843052; // 0x101012c
-    field public static final int kcm = 16843691; // 0x10103ab
     field public static final int keepScreenOn = 16843286; // 0x1010216
     field public static final int key = 16843240; // 0x10101e8
     field public static final int keyBackground = 16843315; // 0x1010233
@@ -609,6 +608,7 @@
     field public static final int keyTextColor = 16843318; // 0x1010236
     field public static final int keyTextSize = 16843316; // 0x1010234
     field public static final int keyWidth = 16843325; // 0x101023d
+    field public static final int keyboardLayout = 16843691; // 0x10103ab
     field public static final int keyboardMode = 16843341; // 0x101024d
     field public static final int keycode = 16842949; // 0x10100c5
     field public static final int killAfterRestore = 16843420; // 0x101029c
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java
index 5ba1850..6448b55 100755
--- a/core/java/android/hardware/input/InputManager.java
+++ b/core/java/android/hardware/input/InputManager.java
@@ -96,14 +96,14 @@
      * <keyboard-layouts xmlns:android="http://schemas.android.com/apk/res/android">
      *     <keyboard-layout android:name="keyboard_layout_english_us"
      *             android:label="@string/keyboard_layout_english_us_label"
-     *             android:kcm="@raw/keyboard_layout_english_us" />
+     *             android:keyboardLayout="@raw/keyboard_layout_english_us" />
      * </keyboard-layouts>
      * </p><p>
      * The <code>android:name</code> attribute specifies an identifier by which
      * the keyboard layout will be known in the package.
      * The <code>android:label</code> attributes specifies a human-readable descriptive
      * label to describe the keyboard layout in the user interface, such as "English (US)".
-     * The <code>android:kcm</code> attribute refers to a
+     * The <code>android:keyboardLayout</code> attribute refers to a
      * <a href="http://source.android.com/tech/input/key-character-map-files.html">
      * key character map</a> resource that defines the keyboard layout.
      * </p>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 69fe6dc..8b0b8ba 100755
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -5627,6 +5627,6 @@
         <!-- The display label of the keyboard layout. -->
         <attr name="label" />
         <!-- The key character map file resource. -->
-        <attr name="kcm" format="reference" />
+        <attr name="keyboardLayout" format="reference" />
     </declare-styleable>
 </resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 29a94af..42130b3c 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -3603,7 +3603,7 @@
   <public type="attr" name="permissionGroupFlags" id="0x010103a8" />
   <public type="attr" name="isolatedProcess" id="0x010103a9" />
   <public type="attr" name="importantForAccessibility" id="0x010103aa" />
-  <public type="attr" name="kcm" id="0x010103ab" />
+  <public type="attr" name="keyboardLayout" id="0x010103ab" />
   <public type="attr" name="fontFamily" id="0x010103ac" />
 
 </resources>
diff --git a/packages/InputDevices/res/xml/keyboard_layouts.xml b/packages/InputDevices/res/xml/keyboard_layouts.xml
index 23f6bcb..c2a2ecc 100644
--- a/packages/InputDevices/res/xml/keyboard_layouts.xml
+++ b/packages/InputDevices/res/xml/keyboard_layouts.xml
@@ -2,109 +2,109 @@
 <keyboard-layouts xmlns:android="http://schemas.android.com/apk/res/android">
     <keyboard-layout android:name="keyboard_layout_english_us"
             android:label="@string/keyboard_layout_english_us_label"
-            android:kcm="@raw/keyboard_layout_english_us" />
+            android:keyboardLayout="@raw/keyboard_layout_english_us" />
 
     <keyboard-layout android:name="keyboard_layout_english_us_dvorak"
             android:label="@string/keyboard_layout_english_us_dvorak_label"
-            android:kcm="@raw/keyboard_layout_english_us_dvorak" />
+            android:keyboardLayout="@raw/keyboard_layout_english_us_dvorak" />
 
     <keyboard-layout android:name="keyboard_layout_german"
             android:label="@string/keyboard_layout_german_label"
-            android:kcm="@raw/keyboard_layout_german" />
+            android:keyboardLayout="@raw/keyboard_layout_german" />
 
     <keyboard-layout android:name="keyboard_layout_french"
             android:label="@string/keyboard_layout_french_label"
-            android:kcm="@raw/keyboard_layout_french" />
+            android:keyboardLayout="@raw/keyboard_layout_french" />
 
     <keyboard-layout android:name="keyboard_layout_french_ca"
             android:label="@string/keyboard_layout_french_ca_label"
-            android:kcm="@raw/keyboard_layout_french_ca" />
+            android:keyboardLayout="@raw/keyboard_layout_french_ca" />
 
     <keyboard-layout android:name="keyboard_layout_russian"
             android:label="@string/keyboard_layout_russian_label"
-            android:kcm="@raw/keyboard_layout_russian" />
+            android:keyboardLayout="@raw/keyboard_layout_russian" />
 
     <keyboard-layout android:name="keyboard_layout_russian_mac"
             android:label="@string/keyboard_layout_russian_mac_label"
-            android:kcm="@raw/keyboard_layout_russian_mac" />
+            android:keyboardLayout="@raw/keyboard_layout_russian_mac" />
 
     <keyboard-layout android:name="keyboard_layout_spanish"
             android:label="@string/keyboard_layout_spanish_label"
-            android:kcm="@raw/keyboard_layout_spanish" />
+            android:keyboardLayout="@raw/keyboard_layout_spanish" />
 
     <keyboard-layout android:name="keyboard_layout_swiss_french"
             android:label="@string/keyboard_layout_swiss_french_label"
-            android:kcm="@raw/keyboard_layout_swiss_french" />
+            android:keyboardLayout="@raw/keyboard_layout_swiss_french" />
 
     <keyboard-layout android:name="keyboard_layout_swiss_german"
             android:label="@string/keyboard_layout_swiss_german_label"
-            android:kcm="@raw/keyboard_layout_swiss_german" />
+            android:keyboardLayout="@raw/keyboard_layout_swiss_german" />
 
     <keyboard-layout android:name="keyboard_layout_belgian"
             android:label="@string/keyboard_layout_belgian"
-            android:kcm="@raw/keyboard_layout_belgian" />
+            android:keyboardLayout="@raw/keyboard_layout_belgian" />
 
     <keyboard-layout android:name="keyboard_layout_bulgarian"
             android:label="@string/keyboard_layout_bulgarian"
-            android:kcm="@raw/keyboard_layout_bulgarian" />
+            android:keyboardLayout="@raw/keyboard_layout_bulgarian" />
 
     <keyboard-layout android:name="keyboard_layout_italian"
             android:label="@string/keyboard_layout_italian"
-            android:kcm="@raw/keyboard_layout_italian" />
+            android:keyboardLayout="@raw/keyboard_layout_italian" />
 
     <keyboard-layout android:name="keyboard_layout_danish"
             android:label="@string/keyboard_layout_danish"
-            android:kcm="@raw/keyboard_layout_danish" />
+            android:keyboardLayout="@raw/keyboard_layout_danish" />
 
     <keyboard-layout android:name="keyboard_layout_norwegian"
             android:label="@string/keyboard_layout_norwegian"
-            android:kcm="@raw/keyboard_layout_norwegian" />
+            android:keyboardLayout="@raw/keyboard_layout_norwegian" />
 
     <keyboard-layout android:name="keyboard_layout_swedish"
             android:label="@string/keyboard_layout_swedish"
-            android:kcm="@raw/keyboard_layout_swedish" />
+            android:keyboardLayout="@raw/keyboard_layout_swedish" />
 
     <keyboard-layout android:name="keyboard_layout_finnish"
             android:label="@string/keyboard_layout_finnish"
-            android:kcm="@raw/keyboard_layout_finnish" />
+            android:keyboardLayout="@raw/keyboard_layout_finnish" />
 
     <keyboard-layout android:name="keyboard_layout_croatian"
             android:label="@string/keyboard_layout_croatian"
-            android:kcm="@raw/keyboard_layout_croatian_and_slovenian" />
+            android:keyboardLayout="@raw/keyboard_layout_croatian_and_slovenian" />
 
     <keyboard-layout android:name="keyboard_layout_czech"
             android:label="@string/keyboard_layout_czech"
-            android:kcm="@raw/keyboard_layout_czech" />
+            android:keyboardLayout="@raw/keyboard_layout_czech" />
 
     <keyboard-layout android:name="keyboard_layout_estonian"
             android:label="@string/keyboard_layout_estonian"
-            android:kcm="@raw/keyboard_layout_estonian" />
+            android:keyboardLayout="@raw/keyboard_layout_estonian" />
 
     <keyboard-layout android:name="keyboard_layout_hungarian"
             android:label="@string/keyboard_layout_hungarian"
-            android:kcm="@raw/keyboard_layout_hungarian" />
+            android:keyboardLayout="@raw/keyboard_layout_hungarian" />
 
     <keyboard-layout android:name="keyboard_layout_icelandic"
             android:label="@string/keyboard_layout_icelandic"
-            android:kcm="@raw/keyboard_layout_icelandic" />
+            android:keyboardLayout="@raw/keyboard_layout_icelandic" />
 
     <keyboard-layout android:name="keyboard_layout_portuguese"
             android:label="@string/keyboard_layout_portuguese"
-            android:kcm="@raw/keyboard_layout_portuguese" />
+            android:keyboardLayout="@raw/keyboard_layout_portuguese" />
 
     <keyboard-layout android:name="keyboard_layout_slovak"
             android:label="@string/keyboard_layout_slovak"
-            android:kcm="@raw/keyboard_layout_slovak" />
+            android:keyboardLayout="@raw/keyboard_layout_slovak" />
 
     <keyboard-layout android:name="keyboard_layout_slovenian"
             android:label="@string/keyboard_layout_slovenian"
-            android:kcm="@raw/keyboard_layout_croatian_and_slovenian" />
+            android:keyboardLayout="@raw/keyboard_layout_croatian_and_slovenian" />
 
     <keyboard-layout android:name="keyboard_layout_turkish"
             android:label="@string/keyboard_layout_turkish"
-            android:kcm="@raw/keyboard_layout_turkish" />
+            android:keyboardLayout="@raw/keyboard_layout_turkish" />
 
     <keyboard-layout android:name="keyboard_layout_ukrainian"
             android:label="@string/keyboard_layout_ukrainian"
-            android:kcm="@raw/keyboard_layout_ukrainian" />
+            android:keyboardLayout="@raw/keyboard_layout_ukrainian" />
 </keyboard-layouts>
diff --git a/services/java/com/android/server/input/InputManagerService.java b/services/java/com/android/server/input/InputManagerService.java
index 299649d..9e94b52 100644
--- a/services/java/com/android/server/input/InputManagerService.java
+++ b/services/java/com/android/server/input/InputManagerService.java
@@ -597,7 +597,7 @@
         visitAllKeyboardLayouts(new KeyboardLayoutVisitor() {
             @Override
             public void visitKeyboardLayout(Resources resources,
-                    String descriptor, String label, int kcmResId) {
+                    String descriptor, String label, int keyboardLayoutResId) {
                 list.add(new KeyboardLayout(descriptor, label));
             }
         });
@@ -614,7 +614,7 @@
         visitKeyboardLayout(keyboardLayoutDescriptor, new KeyboardLayoutVisitor() {
             @Override
             public void visitKeyboardLayout(Resources resources,
-                    String descriptor, String label, int kcmResId) {
+                    String descriptor, String label, int keyboardLayoutResId) {
                 result[0] = new KeyboardLayout(descriptor, label);
             }
         });
@@ -683,10 +683,11 @@
                                     com.android.internal.R.styleable.KeyboardLayout_name);
                             String label = a.getString(
                                     com.android.internal.R.styleable.KeyboardLayout_label);
-                            int kcmResId = a.getResourceId(
-                                     com.android.internal.R.styleable.KeyboardLayout_kcm, 0);
-                            if (name == null || label == null || kcmResId == 0) {
-                                Log.w(TAG, "Missing required 'name', 'label' or 'kcm' "
+                            int keyboardLayoutResId = a.getResourceId(
+                                    com.android.internal.R.styleable.KeyboardLayout_keyboardLayout,
+                                    0);
+                            if (name == null || label == null || keyboardLayoutResId == 0) {
+                                Log.w(TAG, "Missing required 'name', 'label' or 'keyboardLayout' "
                                         + "attributes in keyboard layout "
                                         + "resource from receiver "
                                         + receiver.packageName + "/" + receiver.name);
@@ -695,7 +696,7 @@
                                         receiver.packageName, receiver.name, name);
                                 if (keyboardName == null || name.equals(keyboardName)) {
                                     visitor.visitKeyboardLayout(resources, descriptor,
-                                            label, kcmResId);
+                                            label, keyboardLayoutResId);
                                 }
                             }
                         } finally {
@@ -1138,11 +1139,11 @@
         visitKeyboardLayout(keyboardLayoutDescriptor, new KeyboardLayoutVisitor() {
             @Override
             public void visitKeyboardLayout(Resources resources,
-                    String descriptor, String label, int kcmResId) {
+                    String descriptor, String label, int keyboardLayoutResId) {
                 try {
                     result[0] = descriptor;
                     result[1] = Streams.readFully(new InputStreamReader(
-                            resources.openRawResource(kcmResId)));
+                            resources.openRawResource(keyboardLayoutResId)));
                 } catch (IOException ex) {
                 } catch (NotFoundException ex) {
                 }
@@ -1261,7 +1262,7 @@
 
     private interface KeyboardLayoutVisitor {
         void visitKeyboardLayout(Resources resources,
-                String descriptor, String label, int kcmResId);
+                String descriptor, String label, int keyboardLayoutResId);
     }
 
     private final class InputDevicesChangedListenerRecord implements DeathRecipient {