Added KCM for Thai (Pattachote).

Test: flashed on device.
Bug: 299861742.
Change-Id: Icc62c7fd4480557dedf7df1085a875efdbb246ea
diff --git a/packages/InputDevices/res/raw/keyboard_layout_thai_pattachote.kcm b/packages/InputDevices/res/raw/keyboard_layout_thai_pattachote.kcm
new file mode 100644
index 0000000..a136aca
--- /dev/null
+++ b/packages/InputDevices/res/raw/keyboard_layout_thai_pattachote.kcm
@@ -0,0 +1,317 @@
+# Copyright 2024 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# Thai Pattachote keyboard layout.
+#
+
+type OVERLAY
+
+map key 86 PLUS
+
+### ROW 1
+
+key GRAVE {
+    label:                              '_'
+    base:                               '_'
+    shift, capslock:                    '\u0e3f'
+}
+
+key 1 {
+    label:                              '='
+    base:                               '='
+    shift, capslock:                    '+'
+}
+
+key 2 {
+    label:                              '\u0e52'
+    base:                               '\u0e52'
+    shift, capslock:                    '\u0022'
+}
+
+key 3 {
+    label:                              '\u0e53'
+    base:                               '\u0e53'
+    shift, capslock:                    '/'
+}
+
+key 4 {
+    label:                              '\u0e54'
+    base:                               '\u0e54'
+    shift, capslock:                    ','
+}
+
+key 5 {
+    label:                              '\u0e55'
+    base:                               '\u0e55'
+    shift, capslock:                    '?'
+}
+
+key 6 {
+    label:                              '\u0e39'
+    base:                               '\u0e39'
+    shift, capslock:                    '\u0e38'
+}
+
+key 7 {
+    label:                              '\u0e57'
+    base:                               '\u0e57'
+    shift, capslock:                    '_'
+}
+
+key 8 {
+    label:                              '\u0e58'
+    base:                               '\u0e58'
+    shift, capslock:                    '.'
+}
+
+key 9 {
+    label:                              '\u0e59'
+    base:                               '\u0e59'
+    shift, capslock:                    '('
+}
+
+key 0 {
+    label:                              '\u0e50'
+    base:                               '\u0e50'
+    shift, capslock:                    ')'
+}
+
+key MINUS {
+    label:                              '\u0e51'
+    base:                               '\u0e51'
+    shift, capslock:                    '-'
+}
+
+key EQUALS {
+    label:                              '\u0e56'
+    base:                               '\u0e56'
+    shift, capslock:                    '%'
+}
+
+### ROW 2
+
+key Q {
+    label:                              '\u0e47'
+    base:                               '\u0e47'
+    shift, capslock:                    '\u0e4a'
+}
+
+key W {
+    label:                              '\u0e15'
+    base:                               '\u0e15'
+    shift, capslock:                    '\u0e24'
+}
+
+key E {
+    label:                              '\u0e22'
+    base:                               '\u0e22'
+    shift, capslock:                    '\u0e46'
+}
+
+key R {
+    label:                              '\u0e2d'
+    base:                               '\u0e2d'
+    shift, capslock:                    '\u0e0d'
+}
+
+key T {
+    label:                              '\u0e23'
+    base:                               '\u0e23'
+    shift, capslock:                    '\u0e29'
+}
+
+key Y {
+    label:                              '\u0e48'
+    base:                               '\u0e48'
+    shift, capslock:                    '\u0e36'
+}
+
+key U {
+    label:                              '\u0e14'
+    base:                               '\u0e14'
+    shift, capslock:                    '\u0e1d'
+}
+
+key I {
+    label:                              '\u0e21'
+    base:                               '\u0e21'
+    shift, capslock:                    '\u0e0b'
+}
+
+key O {
+    label:                              '\u0e27'
+    base:                               '\u0e27'
+    shift, capslock:                    '\u0e16'
+}
+
+key P {
+    label:                              '\u0e41'
+    base:                               '\u0e41'
+    shift, capslock:                    '\u0e12'
+}
+
+key LEFT_BRACKET {
+    label:                              '\u0e43'
+    base:                               '\u0e43'
+    shift, capslock:                    '\u0e2f'
+}
+
+key RIGHT_BRACKET {
+    label:                              '\u0e0c'
+    base:                               '\u0e0c'
+    shift, capslock:                    '\u0e26'
+}
+
+### ROW 3
+
+key A {
+    label:                              '\u0e49'
+    base:                               '\u0e49'
+    shift, capslock:                    '\u0e4b'
+}
+
+key S {
+    label:                              '\u0e17'
+    base:                               '\u0e17'
+    shift, capslock:                    '\u0e18'
+}
+
+key D {
+    label:                              '\u0e07'
+    base:                               '\u0e07'
+    shift, capslock:                    '\u0e33'
+}
+
+key F {
+    label:                              '\u0e01'
+    base:                               '\u0e01'
+    shift, capslock:                    '\u0e13'
+}
+
+key G {
+    label:                              '\u0e31'
+    base:                               '\u0e31'
+    shift, capslock:                    '\u0e4c'
+}
+
+key H {
+    label:                              '\u0e35'
+    base:                               '\u0e35'
+    shift, capslock:                    '\u0e37'
+}
+
+key J {
+    label:                              '\u0e32'
+    base:                               '\u0e32'
+    shift, capslock:                    '\u0e1c'
+}
+
+key K {
+    label:                              '\u0e19'
+    base:                               '\u0e19'
+    shift, capslock:                    '\u0e0a'
+}
+
+key L {
+    label:                              '\u0e40'
+    base:                               '\u0e40'
+    shift, capslock:                    '\u0e42'
+}
+
+key SEMICOLON {
+    label:                              '\u0e44'
+    base:                               '\u0e44'
+    shift, capslock:                    '\u0e06'
+}
+
+key APOSTROPHE {
+    label:                              '\u0e02'
+    base:                               '\u0e02'
+    shift, capslock:                    '\u0e11'
+}
+
+key BACKSLASH {
+    label:                              '\u0e45'
+    base:                               '\u0e45'
+    shift, capslock:                    '\u0e4d'
+}
+
+### ROW 4
+
+key PLUS {
+    label:                              '\u0e45'
+    base:                               '\u0e45'
+    shift, capslock:                    '\u0e4d'
+}
+
+key Z {
+    label:                              '\u0e1a'
+    base:                               '\u0e1a'
+    shift, capslock:                    '\u0e0e'
+}
+
+key X {
+    label:                              '\u0e1b'
+    base:                               '\u0e1b'
+    shift, capslock:                    '\u0e0f'
+}
+
+key C {
+    label:                              '\u0e25'
+    base:                               '\u0e25'
+    shift, capslock:                    '\u0e10'
+}
+
+key V {
+    label:                              '\u0e2b'
+    base:                               '\u0e2b'
+    shift, capslock:                    '\u0e20'
+}
+
+key B {
+    label:                              '\u0e34'
+    base:                               '\u0e34'
+    shift, capslock:                    '\u0e31'
+}
+
+key N {
+    label:                              '\u0e04'
+    base:                               '\u0e04'
+    shift, capslock:                    '\u0e28'
+}
+
+key M {
+    label:                              '\u0e2a'
+    base:                               '\u0e2a'
+    shift, capslock:                    '\u0e2e'
+}
+
+key COMMA {
+    label:                              '\u0e30'
+    base:                               '\u0e30'
+    shift, capslock:                    '\u0e1f'
+}
+
+key PERIOD {
+    label:                              '\u0e08'
+    base:                               '\u0e08'
+    shift, capslock:                    '\u0e09'
+}
+
+key SLASH {
+    label:                              '\u0e1e'
+    base:                               '\u0e1e'
+    shift, capslock:                    '\u0e2c'
+}
\ No newline at end of file
diff --git a/packages/InputDevices/res/values/strings.xml b/packages/InputDevices/res/values/strings.xml
index 33a1d76..e10bd7f 100644
--- a/packages/InputDevices/res/values/strings.xml
+++ b/packages/InputDevices/res/values/strings.xml
@@ -149,4 +149,7 @@
 
     <!-- Thai (Kedmanee variant) keyboard layout label. [CHAR LIMIT=35] -->
     <string name="keyboard_layout_thai_kedmanee">Thai (Kedmanee)</string>
+
+    <!-- Thai (Pattachote variant) keyboard layout label. [CHAR LIMIT=35] -->
+    <string name="keyboard_layout_thai_pattachote">Thai (Pattachote)</string>
 </resources>
diff --git a/packages/InputDevices/res/xml/keyboard_layouts.xml b/packages/InputDevices/res/xml/keyboard_layouts.xml
index 4b7ea90..c18d73c 100644
--- a/packages/InputDevices/res/xml/keyboard_layouts.xml
+++ b/packages/InputDevices/res/xml/keyboard_layouts.xml
@@ -325,4 +325,11 @@
         android:keyboardLayout="@raw/keyboard_layout_thai_kedmanee"
         android:keyboardLocale="th-Thai"
         android:keyboardLayoutType="extended" />
+
+    <keyboard-layout
+        android:name="keyboard_layout_thai_pattachote"
+        android:label="@string/keyboard_layout_thai_pattachote"
+        android:keyboardLayout="@raw/keyboard_layout_thai_pattachote"
+        android:keyboardLocale="th-Thai"
+        android:keyboardLayoutType="extended" />
 </keyboard-layouts>