diff --git a/Android.mk b/Android.mk
index a40e5c5..18362b8 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,6 +1,8 @@
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
+LOCAL_MODULE_TAGS := optional
+
 LOCAL_SRC_FILES := $(call all-subdir-java-files)
 
 LOCAL_PACKAGE_NAME := OpenWnn
@@ -8,6 +10,8 @@
 LOCAL_JNI_SHARED_LIBRARIES := \
 	 libWnnEngDic libWnnJpnDic libwnndict
 
+LOCAL_AAPT_FLAGS += -c hdpi
+
 include $(BUILD_PACKAGE)
 
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 7f91d07..54e14cd 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -15,9 +15,7 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-	  package="jp.co.omronsoft.openwnn"
-	  android:versionCode="1"
-	  android:versionName="1.0">
+	  package="jp.co.omronsoft.openwnn">
   <uses-permission xmlns:android="http://schemas.android.com/apk/res/android" android:name="android.permission.VIBRATE"/>
     <application android:label="OpenWnn">
 
diff --git a/NOTICE b/NOTICE
index 1c6236a..828dc84 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,8 +1,68 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/ 
 
-   Copyright (C) 2008,2009  OMRON SOFTWARE Co., Ltd.
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. 
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. 
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. 
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. 
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. 
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. 
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). 
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. 
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." 
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: 
+You must give any other recipients of the Work or Derivative Works a copy of this License; and 
+
+You must cause any modified files to carry prominent notices stating that You changed the files; and 
+
+You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and 
+
+If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 
+
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. 
+
+END OF TERMS AND CONDITIONS 
+APPENDIX: How to apply the Apache License to your work 
+
+To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. 
+
+   Copyright [yyyy] [name of copyright owner]
 
    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,
@@ -10,181 +70,3 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
diff --git a/README.txt b/README.txt
index 5ed09c3..3b0ac1d 100644
--- a/README.txt
+++ b/README.txt
@@ -1,7 +1,7 @@
 -------------------------------------------------------------------------------
                               OpenWnn Japnese README
 
-                                   Version 1.3.1
+                                   Version 1.3.5
                   
      (C) Copyright OMRON SOFTWARE Co., Ltd. 2008,2009 All Rights Reserved.
 -------------------------------------------------------------------------------
@@ -79,6 +79,8 @@
         drawable/                             |
             *.xml                             |
             *.png                             |
+        drawable-hdpi/                        |
+            *.png                             |
         drawable-ja/                          |
             *.png                             |
         layout/                               |
diff --git a/res/drawable-hdpi/cand_back_normal.9.png b/res/drawable-hdpi/cand_back_normal.9.png
new file mode 100644
index 0000000..c5c8d04
--- /dev/null
+++ b/res/drawable-hdpi/cand_back_normal.9.png
Binary files differ
diff --git a/res/drawable-hdpi/cand_back_pressed.9.png b/res/drawable-hdpi/cand_back_pressed.9.png
new file mode 100644
index 0000000..2c4f82c
--- /dev/null
+++ b/res/drawable-hdpi/cand_back_pressed.9.png
Binary files differ
diff --git a/res/drawable-hdpi/cand_down.png b/res/drawable-hdpi/cand_down.png
new file mode 100644
index 0000000..4122bdf
--- /dev/null
+++ b/res/drawable-hdpi/cand_down.png
Binary files differ
diff --git a/res/drawable-hdpi/cand_down_press.png b/res/drawable-hdpi/cand_down_press.png
new file mode 100644
index 0000000..4d38c28
--- /dev/null
+++ b/res/drawable-hdpi/cand_down_press.png
Binary files differ
diff --git a/res/drawable-hdpi/cand_up.png b/res/drawable-hdpi/cand_up.png
new file mode 100644
index 0000000..ce8b563
--- /dev/null
+++ b/res/drawable-hdpi/cand_up.png
Binary files differ
diff --git a/res/drawable-hdpi/cand_up_press.png b/res/drawable-hdpi/cand_up_press.png
new file mode 100644
index 0000000..cedbc9f
--- /dev/null
+++ b/res/drawable-hdpi/cand_up_press.png
Binary files differ
diff --git a/res/drawable-hdpi/dialog_bubble.9.png b/res/drawable-hdpi/dialog_bubble.9.png
new file mode 100644
index 0000000..83d7ca1
--- /dev/null
+++ b/res/drawable-hdpi/dialog_bubble.9.png
Binary files differ
diff --git a/res/drawable-hdpi/dialog_bubble_moji.9.png b/res/drawable-hdpi/dialog_bubble_moji.9.png
new file mode 100644
index 0000000..dfd5998
--- /dev/null
+++ b/res/drawable-hdpi/dialog_bubble_moji.9.png
Binary files differ
diff --git a/res/drawable-hdpi/dialog_bubble_symbol.9.png b/res/drawable-hdpi/dialog_bubble_symbol.9.png
new file mode 100644
index 0000000..118ea72
--- /dev/null
+++ b/res/drawable-hdpi/dialog_bubble_symbol.9.png
Binary files differ
diff --git a/res/drawable-hdpi/dialog_bubble_undo.9.png b/res/drawable-hdpi/dialog_bubble_undo.9.png
new file mode 100644
index 0000000..a9b9c37
--- /dev/null
+++ b/res/drawable-hdpi/dialog_bubble_undo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/immodeic_full_alphabet.png b/res/drawable-hdpi/immodeic_full_alphabet.png
new file mode 100644
index 0000000..5f5137c
--- /dev/null
+++ b/res/drawable-hdpi/immodeic_full_alphabet.png
Binary files differ
diff --git a/res/drawable-hdpi/immodeic_full_kana.png b/res/drawable-hdpi/immodeic_full_kana.png
new file mode 100644
index 0000000..870787a
--- /dev/null
+++ b/res/drawable-hdpi/immodeic_full_kana.png
Binary files differ
diff --git a/res/drawable-hdpi/immodeic_full_number.png b/res/drawable-hdpi/immodeic_full_number.png
new file mode 100644
index 0000000..fc41837
--- /dev/null
+++ b/res/drawable-hdpi/immodeic_full_number.png
Binary files differ
diff --git a/res/drawable-hdpi/immodeic_half_alphabet.png b/res/drawable-hdpi/immodeic_half_alphabet.png
new file mode 100644
index 0000000..6d14168
--- /dev/null
+++ b/res/drawable-hdpi/immodeic_half_alphabet.png
Binary files differ
diff --git a/res/drawable-hdpi/immodeic_half_kana.png b/res/drawable-hdpi/immodeic_half_kana.png
new file mode 100644
index 0000000..6003174
--- /dev/null
+++ b/res/drawable-hdpi/immodeic_half_kana.png
Binary files differ
diff --git a/res/drawable-hdpi/immodeic_half_number.png b/res/drawable-hdpi/immodeic_half_number.png
new file mode 100644
index 0000000..fcd2261
--- /dev/null
+++ b/res/drawable-hdpi/immodeic_half_number.png
Binary files differ
diff --git a/res/drawable-hdpi/immodeic_hiragana.png b/res/drawable-hdpi/immodeic_hiragana.png
new file mode 100644
index 0000000..2640e3a
--- /dev/null
+++ b/res/drawable-hdpi/immodeic_hiragana.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha0.png b/res/drawable-hdpi/key_12key_alpha0.png
new file mode 100644
index 0000000..e3360d7
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha0.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha0_b.png b/res/drawable-hdpi/key_12key_alpha0_b.png
new file mode 100644
index 0000000..2392459
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha0_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha1.png b/res/drawable-hdpi/key_12key_alpha1.png
new file mode 100644
index 0000000..559a0d5
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha1.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha1_b.png b/res/drawable-hdpi/key_12key_alpha1_b.png
new file mode 100644
index 0000000..af2466e
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha1_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha2.png b/res/drawable-hdpi/key_12key_alpha2.png
new file mode 100644
index 0000000..970c4e4
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha2.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha2_b.png b/res/drawable-hdpi/key_12key_alpha2_b.png
new file mode 100644
index 0000000..2dd2897
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha2_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha3.png b/res/drawable-hdpi/key_12key_alpha3.png
new file mode 100644
index 0000000..c4c031f
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha3.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha3_b.png b/res/drawable-hdpi/key_12key_alpha3_b.png
new file mode 100644
index 0000000..2c12a40
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha3_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha4.png b/res/drawable-hdpi/key_12key_alpha4.png
new file mode 100644
index 0000000..cd4d00c
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha4.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha4_b.png b/res/drawable-hdpi/key_12key_alpha4_b.png
new file mode 100644
index 0000000..5b98435
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha4_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha5.png b/res/drawable-hdpi/key_12key_alpha5.png
new file mode 100644
index 0000000..9f0e92b
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha5.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha5_b.png b/res/drawable-hdpi/key_12key_alpha5_b.png
new file mode 100644
index 0000000..f214550
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha5_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha6.png b/res/drawable-hdpi/key_12key_alpha6.png
new file mode 100644
index 0000000..10d970b
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha6.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha6_b.png b/res/drawable-hdpi/key_12key_alpha6_b.png
new file mode 100644
index 0000000..d3beae0
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha6_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha7.png b/res/drawable-hdpi/key_12key_alpha7.png
new file mode 100644
index 0000000..cbe3cc1
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha7.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha7_b.png b/res/drawable-hdpi/key_12key_alpha7_b.png
new file mode 100644
index 0000000..6584b60
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha7_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha8.png b/res/drawable-hdpi/key_12key_alpha8.png
new file mode 100644
index 0000000..793c005
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha8.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha8_b.png b/res/drawable-hdpi/key_12key_alpha8_b.png
new file mode 100644
index 0000000..f8eed53
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha8_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha9.png b/res/drawable-hdpi/key_12key_alpha9.png
new file mode 100644
index 0000000..afb0d92
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha9.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_alpha9_b.png b/res/drawable-hdpi/key_12key_alpha9_b.png
new file mode 100644
index 0000000..7bdf491
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_alpha9_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_caps.png b/res/drawable-hdpi/key_12key_caps.png
new file mode 100644
index 0000000..a4f2885
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_caps.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_caps_b.png b/res/drawable-hdpi/key_12key_caps_b.png
new file mode 100644
index 0000000..a4922e5
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_caps_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_dakuten.png b/res/drawable-hdpi/key_12key_dakuten.png
new file mode 100644
index 0000000..6bbf010
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_dakuten.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_dakuten_b.png b/res/drawable-hdpi/key_12key_dakuten_b.png
new file mode 100644
index 0000000..d6e7505
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_dakuten_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_del.png b/res/drawable-hdpi/key_12key_del.png
new file mode 100644
index 0000000..fda82fa
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_del.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_del_b.png b/res/drawable-hdpi/key_12key_del_b.png
new file mode 100644
index 0000000..e93f2e0
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_del_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_del_b_landscape.png b/res/drawable-hdpi/key_12key_del_b_landscape.png
new file mode 100644
index 0000000..e183c93
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_del_b_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_del_landscape.png b/res/drawable-hdpi/key_12key_del_landscape.png
new file mode 100644
index 0000000..b227fd4
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_del_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_eisukana.png b/res/drawable-hdpi/key_12key_eisukana.png
new file mode 100644
index 0000000..0cb9637
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_eisukana.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_eisukana_b.png b/res/drawable-hdpi/key_12key_eisukana_b.png
new file mode 100644
index 0000000..d6d8d30
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_eisukana_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_enter.png b/res/drawable-hdpi/key_12key_enter.png
new file mode 100644
index 0000000..4dae5b6
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_enter.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_enter_b.png b/res/drawable-hdpi/key_12key_enter_b.png
new file mode 100644
index 0000000..6899036
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_enter_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_enter_jp.png b/res/drawable-hdpi/key_12key_enter_jp.png
new file mode 100644
index 0000000..59ccc07
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_enter_jp.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_enter_jp_b.png b/res/drawable-hdpi/key_12key_enter_jp_b.png
new file mode 100644
index 0000000..3bb83f4
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_enter_jp_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_enter_landscape.png b/res/drawable-hdpi/key_12key_enter_landscape.png
new file mode 100644
index 0000000..9bf47ab
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_enter_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_enter_landscape_b.png b/res/drawable-hdpi/key_12key_enter_landscape_b.png
new file mode 100644
index 0000000..98b2d99
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_enter_landscape_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_enter_landscape_jp.png b/res/drawable-hdpi/key_12key_enter_landscape_jp.png
new file mode 100644
index 0000000..fd98c6b
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_enter_landscape_jp.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_enter_landscape_jp_b.png b/res/drawable-hdpi/key_12key_enter_landscape_jp_b.png
new file mode 100644
index 0000000..af60064
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_enter_landscape_jp_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana0.png b/res/drawable-hdpi/key_12key_hiragana0.png
new file mode 100644
index 0000000..eb25b1c
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana0.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana0_b.png b/res/drawable-hdpi/key_12key_hiragana0_b.png
new file mode 100644
index 0000000..2144788
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana0_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana1.png b/res/drawable-hdpi/key_12key_hiragana1.png
new file mode 100644
index 0000000..32b51fa
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana1.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana1_b.png b/res/drawable-hdpi/key_12key_hiragana1_b.png
new file mode 100644
index 0000000..f5f21f0
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana1_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana2.png b/res/drawable-hdpi/key_12key_hiragana2.png
new file mode 100644
index 0000000..f9ba3c6
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana2.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana2_b.png b/res/drawable-hdpi/key_12key_hiragana2_b.png
new file mode 100644
index 0000000..d12cb7c
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana2_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana3.png b/res/drawable-hdpi/key_12key_hiragana3.png
new file mode 100644
index 0000000..0b68d99
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana3.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana3_b.png b/res/drawable-hdpi/key_12key_hiragana3_b.png
new file mode 100644
index 0000000..13f7c56
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana3_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana4.png b/res/drawable-hdpi/key_12key_hiragana4.png
new file mode 100644
index 0000000..5e8a855
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana4.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana4_b.png b/res/drawable-hdpi/key_12key_hiragana4_b.png
new file mode 100644
index 0000000..3b9e352
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana4_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana5.png b/res/drawable-hdpi/key_12key_hiragana5.png
new file mode 100644
index 0000000..8c9361e
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana5.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana5_b.png b/res/drawable-hdpi/key_12key_hiragana5_b.png
new file mode 100644
index 0000000..616b43d
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana5_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana6.png b/res/drawable-hdpi/key_12key_hiragana6.png
new file mode 100644
index 0000000..4912b4f
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana6.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana6_b.png b/res/drawable-hdpi/key_12key_hiragana6_b.png
new file mode 100644
index 0000000..e92957a
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana6_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana7.png b/res/drawable-hdpi/key_12key_hiragana7.png
new file mode 100644
index 0000000..dbc5bc3
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana7.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana7_b.png b/res/drawable-hdpi/key_12key_hiragana7_b.png
new file mode 100644
index 0000000..2eab3f6
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana7_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana8.png b/res/drawable-hdpi/key_12key_hiragana8.png
new file mode 100644
index 0000000..63e02c9
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana8.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana8_b.png b/res/drawable-hdpi/key_12key_hiragana8_b.png
new file mode 100644
index 0000000..9389ced
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana8_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana9.png b/res/drawable-hdpi/key_12key_hiragana9.png
new file mode 100644
index 0000000..76fcf40
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana9.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_hiragana9_b.png b/res/drawable-hdpi/key_12key_hiragana9_b.png
new file mode 100644
index 0000000..15471e6
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_hiragana9_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_left.png b/res/drawable-hdpi/key_12key_left.png
new file mode 100644
index 0000000..8adfc19
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_left.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_left_b.png b/res/drawable-hdpi/key_12key_left_b.png
new file mode 100644
index 0000000..767f2d4
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_left_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_full_alpha.png b/res/drawable-hdpi/key_12key_mode_full_alpha.png
new file mode 100644
index 0000000..c875bf5
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_full_alpha.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_full_alpha_landscape.png b/res/drawable-hdpi/key_12key_mode_full_alpha_landscape.png
new file mode 100644
index 0000000..927d56b
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_full_alpha_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_full_kata.png b/res/drawable-hdpi/key_12key_mode_full_kata.png
new file mode 100644
index 0000000..6786f1c
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_full_kata.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_full_kata_landscape.png b/res/drawable-hdpi/key_12key_mode_full_kata_landscape.png
new file mode 100644
index 0000000..edd502c
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_full_kata_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_full_num.png b/res/drawable-hdpi/key_12key_mode_full_num.png
new file mode 100644
index 0000000..d0699b5
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_full_num.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_full_num_landscape.png b/res/drawable-hdpi/key_12key_mode_full_num_landscape.png
new file mode 100644
index 0000000..7e286c5
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_full_num_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_half_alpha.png b/res/drawable-hdpi/key_12key_mode_half_alpha.png
new file mode 100644
index 0000000..3f6d081
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_half_alpha.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_half_alpha_landscape.png b/res/drawable-hdpi/key_12key_mode_half_alpha_landscape.png
new file mode 100644
index 0000000..c6f5245
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_half_alpha_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_half_kata.png b/res/drawable-hdpi/key_12key_mode_half_kata.png
new file mode 100644
index 0000000..296731a
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_half_kata.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_half_kata_landscape.png b/res/drawable-hdpi/key_12key_mode_half_kata_landscape.png
new file mode 100644
index 0000000..c8acb6d
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_half_kata_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_half_num.png b/res/drawable-hdpi/key_12key_mode_half_num.png
new file mode 100644
index 0000000..6172775
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_half_num.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_half_num_landscape.png b/res/drawable-hdpi/key_12key_mode_half_num_landscape.png
new file mode 100644
index 0000000..fb2f61a
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_half_num_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_hira.png b/res/drawable-hdpi/key_12key_mode_hira.png
new file mode 100644
index 0000000..ea62e79
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_hira.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_mode_hira_landscape.png b/res/drawable-hdpi/key_12key_mode_hira_landscape.png
new file mode 100644
index 0000000..9fd9d08
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_mode_hira_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_period_comma.png b/res/drawable-hdpi/key_12key_period_comma.png
new file mode 100644
index 0000000..8a4c7fc
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_period_comma.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_period_comma_b.png b/res/drawable-hdpi/key_12key_period_comma_b.png
new file mode 100644
index 0000000..29fc223
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_period_comma_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_pict_sym.png b/res/drawable-hdpi/key_12key_pict_sym.png
new file mode 100644
index 0000000..1121b98
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_pict_sym.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_pict_sym_b.png b/res/drawable-hdpi/key_12key_pict_sym_b.png
new file mode 100644
index 0000000..a97c9cf
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_pict_sym_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_reverse.png b/res/drawable-hdpi/key_12key_reverse.png
new file mode 100644
index 0000000..f1e18c3
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_reverse.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_reverse_b.png b/res/drawable-hdpi/key_12key_reverse_b.png
new file mode 100644
index 0000000..184c694
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_reverse_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_right.png b/res/drawable-hdpi/key_12key_right.png
new file mode 100644
index 0000000..8cb8ee9
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_right.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_right_b.png b/res/drawable-hdpi/key_12key_right_b.png
new file mode 100644
index 0000000..61402c5
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_right_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_space.png b/res/drawable-hdpi/key_12key_space.png
new file mode 100644
index 0000000..5ddbc1e
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_space.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_space_b.png b/res/drawable-hdpi/key_12key_space_b.png
new file mode 100644
index 0000000..d51f357
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_space_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_space_jp.png b/res/drawable-hdpi/key_12key_space_jp.png
new file mode 100644
index 0000000..22932e5
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_space_jp.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_space_jp_b.png b/res/drawable-hdpi/key_12key_space_jp_b.png
new file mode 100644
index 0000000..54e8b19
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_space_jp_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_ten.png b/res/drawable-hdpi/key_12key_ten.png
new file mode 100644
index 0000000..62f6fc4
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_ten.png
Binary files differ
diff --git a/res/drawable-hdpi/key_12key_ten_b.png b/res/drawable-hdpi/key_12key_ten_b.png
new file mode 100644
index 0000000..a6a4d37
--- /dev/null
+++ b/res/drawable-hdpi/key_12key_ten_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_mode_change_b.png b/res/drawable-hdpi/key_mode_change_b.png
new file mode 100644
index 0000000..24abfd4
--- /dev/null
+++ b/res/drawable-hdpi/key_mode_change_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_mode_panel_kbd.png b/res/drawable-hdpi/key_mode_panel_kbd.png
new file mode 100644
index 0000000..d088f97
--- /dev/null
+++ b/res/drawable-hdpi/key_mode_panel_kbd.png
Binary files differ
diff --git a/res/drawable-hdpi/key_mode_panel_kbd_12key.png b/res/drawable-hdpi/key_mode_panel_kbd_12key.png
new file mode 100644
index 0000000..2ed8f3d
--- /dev/null
+++ b/res/drawable-hdpi/key_mode_panel_kbd_12key.png
Binary files differ
diff --git a/res/drawable-hdpi/key_mode_panel_kbd_12key_b.png b/res/drawable-hdpi/key_mode_panel_kbd_12key_b.png
new file mode 100644
index 0000000..7b0f7f0
--- /dev/null
+++ b/res/drawable-hdpi/key_mode_panel_kbd_12key_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_mode_panel_kbd_b.png b/res/drawable-hdpi/key_mode_panel_kbd_b.png
new file mode 100644
index 0000000..468cda7
--- /dev/null
+++ b/res/drawable-hdpi/key_mode_panel_kbd_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_del.png b/res/drawable-hdpi/key_qwerty_del.png
new file mode 100644
index 0000000..c02e66c
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_del.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_del_b.png b/res/drawable-hdpi/key_qwerty_del_b.png
new file mode 100644
index 0000000..df084c1
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_del_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_del_b_landscape.png b/res/drawable-hdpi/key_qwerty_del_b_landscape.png
new file mode 100644
index 0000000..db71256
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_del_b_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_del_landscape.png b/res/drawable-hdpi/key_qwerty_del_landscape.png
new file mode 100644
index 0000000..2855634
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_del_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_enter.png b/res/drawable-hdpi/key_qwerty_enter.png
new file mode 100644
index 0000000..6243499
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_enter.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_enter_b.png b/res/drawable-hdpi/key_qwerty_enter_b.png
new file mode 100644
index 0000000..2d38865
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_enter_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_enter_jp.png b/res/drawable-hdpi/key_qwerty_enter_jp.png
new file mode 100644
index 0000000..54c82b5
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_enter_jp.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_enter_jp_b.png b/res/drawable-hdpi/key_qwerty_enter_jp_b.png
new file mode 100644
index 0000000..b2fad3e
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_enter_jp_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_enter_landscape.png b/res/drawable-hdpi/key_qwerty_enter_landscape.png
new file mode 100644
index 0000000..fd0231c
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_enter_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_enter_landscape_b.png b/res/drawable-hdpi/key_qwerty_enter_landscape_b.png
new file mode 100644
index 0000000..574c896
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_enter_landscape_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_enter_landscape_jp.png b/res/drawable-hdpi/key_qwerty_enter_landscape_jp.png
new file mode 100644
index 0000000..bb9d835
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_enter_landscape_jp.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_enter_landscape_jp_b.png b/res/drawable-hdpi/key_qwerty_enter_landscape_jp_b.png
new file mode 100644
index 0000000..a43e717
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_enter_landscape_jp_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_full_alpha.png b/res/drawable-hdpi/key_qwerty_mode_full_alpha.png
new file mode 100644
index 0000000..004cd36
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_full_alpha.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_full_alpha_landscape.png b/res/drawable-hdpi/key_qwerty_mode_full_alpha_landscape.png
new file mode 100644
index 0000000..a7152ad
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_full_alpha_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_full_kata.png b/res/drawable-hdpi/key_qwerty_mode_full_kata.png
new file mode 100644
index 0000000..1a37099
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_full_kata.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_full_kata_landscape.png b/res/drawable-hdpi/key_qwerty_mode_full_kata_landscape.png
new file mode 100644
index 0000000..d3a537e
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_full_kata_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_full_num.png b/res/drawable-hdpi/key_qwerty_mode_full_num.png
new file mode 100644
index 0000000..442b93d
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_full_num.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_full_num_landscape.png b/res/drawable-hdpi/key_qwerty_mode_full_num_landscape.png
new file mode 100644
index 0000000..b0e530e
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_full_num_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_half_alpha.png b/res/drawable-hdpi/key_qwerty_mode_half_alpha.png
new file mode 100644
index 0000000..7d58689
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_half_alpha.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_half_alpha_landscape.png b/res/drawable-hdpi/key_qwerty_mode_half_alpha_landscape.png
new file mode 100644
index 0000000..f87d42b
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_half_alpha_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_half_kata.png b/res/drawable-hdpi/key_qwerty_mode_half_kata.png
new file mode 100644
index 0000000..4c219a3
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_half_kata.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_half_kata_landscape.png b/res/drawable-hdpi/key_qwerty_mode_half_kata_landscape.png
new file mode 100644
index 0000000..05eee0a
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_half_kata_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_half_num.png b/res/drawable-hdpi/key_qwerty_mode_half_num.png
new file mode 100644
index 0000000..a181e33
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_half_num.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_half_num_landscape.png b/res/drawable-hdpi/key_qwerty_mode_half_num_landscape.png
new file mode 100644
index 0000000..2aec40b
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_half_num_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_hira.png b/res/drawable-hdpi/key_qwerty_mode_hira.png
new file mode 100644
index 0000000..077d7da
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_hira.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_mode_hira_landscape.png b/res/drawable-hdpi/key_qwerty_mode_hira_landscape.png
new file mode 100644
index 0000000..5d3fd29
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_mode_hira_landscape.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_pict_sym.png b/res/drawable-hdpi/key_qwerty_pict_sym.png
new file mode 100644
index 0000000..276fc9d
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_pict_sym.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_pict_sym_b.png b/res/drawable-hdpi/key_qwerty_pict_sym_b.png
new file mode 100644
index 0000000..43472f2
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_pict_sym_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_shift.png b/res/drawable-hdpi/key_qwerty_shift.png
new file mode 100644
index 0000000..8d9d8ed
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_shift.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_shift_b.png b/res/drawable-hdpi/key_qwerty_shift_b.png
new file mode 100644
index 0000000..73cbec8
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_shift_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_space.png b/res/drawable-hdpi/key_qwerty_space.png
new file mode 100644
index 0000000..a9bbdbe
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_space.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_space_b.png b/res/drawable-hdpi/key_qwerty_space_b.png
new file mode 100644
index 0000000..0cbaf57
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_space_b.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_space_conv.png b/res/drawable-hdpi/key_qwerty_space_conv.png
new file mode 100644
index 0000000..e120c85
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_space_conv.png
Binary files differ
diff --git a/res/drawable-hdpi/key_qwerty_space_conv_b.png b/res/drawable-hdpi/key_qwerty_space_conv_b.png
new file mode 100644
index 0000000..f79e545
--- /dev/null
+++ b/res/drawable-hdpi/key_qwerty_space_conv_b.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_classic.9.png b/res/drawable-hdpi/keybg_classic.9.png
new file mode 100644
index 0000000..47a9963
--- /dev/null
+++ b/res/drawable-hdpi/keybg_classic.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_classic_bg.png b/res/drawable-hdpi/keybg_classic_bg.png
new file mode 100644
index 0000000..cc1fabc
--- /dev/null
+++ b/res/drawable-hdpi/keybg_classic_bg.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_classic_p.9.png b/res/drawable-hdpi/keybg_classic_p.9.png
new file mode 100644
index 0000000..e5b4362
--- /dev/null
+++ b/res/drawable-hdpi/keybg_classic_p.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_classic_psftoff.9.png b/res/drawable-hdpi/keybg_classic_psftoff.9.png
new file mode 100644
index 0000000..e287e7d
--- /dev/null
+++ b/res/drawable-hdpi/keybg_classic_psftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_classic_psfton.9.png b/res/drawable-hdpi/keybg_classic_psfton.9.png
new file mode 100644
index 0000000..c40a64f
--- /dev/null
+++ b/res/drawable-hdpi/keybg_classic_psfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_classic_sftoff.9.png b/res/drawable-hdpi/keybg_classic_sftoff.9.png
new file mode 100644
index 0000000..b8a79bb
--- /dev/null
+++ b/res/drawable-hdpi/keybg_classic_sftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_classic_sfton.9.png b/res/drawable-hdpi/keybg_classic_sfton.9.png
new file mode 100644
index 0000000..23d9fc1
--- /dev/null
+++ b/res/drawable-hdpi/keybg_classic_sfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_ice.9.png b/res/drawable-hdpi/keybg_ice.9.png
new file mode 100644
index 0000000..7a815d0
--- /dev/null
+++ b/res/drawable-hdpi/keybg_ice.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_ice_p.9.png b/res/drawable-hdpi/keybg_ice_p.9.png
new file mode 100644
index 0000000..5feea7d
--- /dev/null
+++ b/res/drawable-hdpi/keybg_ice_p.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_ice_psftoff.9.png b/res/drawable-hdpi/keybg_ice_psftoff.9.png
new file mode 100644
index 0000000..f5c707f
--- /dev/null
+++ b/res/drawable-hdpi/keybg_ice_psftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_ice_psfton.9.png b/res/drawable-hdpi/keybg_ice_psfton.9.png
new file mode 100644
index 0000000..8cc0edd
--- /dev/null
+++ b/res/drawable-hdpi/keybg_ice_psfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_ice_sftoff.9.png b/res/drawable-hdpi/keybg_ice_sftoff.9.png
new file mode 100644
index 0000000..e1b1b8f
--- /dev/null
+++ b/res/drawable-hdpi/keybg_ice_sftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_ice_sfton.9.png b/res/drawable-hdpi/keybg_ice_sfton.9.png
new file mode 100644
index 0000000..dca44fc
--- /dev/null
+++ b/res/drawable-hdpi/keybg_ice_sfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_kyoto.9.png b/res/drawable-hdpi/keybg_kyoto.9.png
new file mode 100644
index 0000000..d4dd8da
--- /dev/null
+++ b/res/drawable-hdpi/keybg_kyoto.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_kyoto_bg.png b/res/drawable-hdpi/keybg_kyoto_bg.png
new file mode 100644
index 0000000..e52d72b
--- /dev/null
+++ b/res/drawable-hdpi/keybg_kyoto_bg.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_kyoto_p.9.png b/res/drawable-hdpi/keybg_kyoto_p.9.png
new file mode 100644
index 0000000..17ac156
--- /dev/null
+++ b/res/drawable-hdpi/keybg_kyoto_p.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_kyoto_psftoff.9.png b/res/drawable-hdpi/keybg_kyoto_psftoff.9.png
new file mode 100644
index 0000000..d7cdefc
--- /dev/null
+++ b/res/drawable-hdpi/keybg_kyoto_psftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_kyoto_psfton.9.png b/res/drawable-hdpi/keybg_kyoto_psfton.9.png
new file mode 100644
index 0000000..6b9cb6e
--- /dev/null
+++ b/res/drawable-hdpi/keybg_kyoto_psfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_kyoto_sftoff.9.png b/res/drawable-hdpi/keybg_kyoto_sftoff.9.png
new file mode 100644
index 0000000..c334743
--- /dev/null
+++ b/res/drawable-hdpi/keybg_kyoto_sftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_kyoto_sfton.9.png b/res/drawable-hdpi/keybg_kyoto_sfton.9.png
new file mode 100644
index 0000000..7e64bae
--- /dev/null
+++ b/res/drawable-hdpi/keybg_kyoto_sfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_light.9.png b/res/drawable-hdpi/keybg_light.9.png
new file mode 100644
index 0000000..d778616
--- /dev/null
+++ b/res/drawable-hdpi/keybg_light.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_light_p.9.png b/res/drawable-hdpi/keybg_light_p.9.png
new file mode 100644
index 0000000..8c62ee7
--- /dev/null
+++ b/res/drawable-hdpi/keybg_light_p.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_light_psftoff.9.png b/res/drawable-hdpi/keybg_light_psftoff.9.png
new file mode 100644
index 0000000..2205548
--- /dev/null
+++ b/res/drawable-hdpi/keybg_light_psftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_light_psfton.9.png b/res/drawable-hdpi/keybg_light_psfton.9.png
new file mode 100644
index 0000000..a96d216
--- /dev/null
+++ b/res/drawable-hdpi/keybg_light_psfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_light_sftoff.9.png b/res/drawable-hdpi/keybg_light_sftoff.9.png
new file mode 100644
index 0000000..3bfbc8a
--- /dev/null
+++ b/res/drawable-hdpi/keybg_light_sftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_light_sfton.9.png b/res/drawable-hdpi/keybg_light_sfton.9.png
new file mode 100644
index 0000000..cac58cd
--- /dev/null
+++ b/res/drawable-hdpi/keybg_light_sfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_metal.png b/res/drawable-hdpi/keybg_metal.png
new file mode 100644
index 0000000..401177d
--- /dev/null
+++ b/res/drawable-hdpi/keybg_metal.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_metal_p.png b/res/drawable-hdpi/keybg_metal_p.png
new file mode 100644
index 0000000..4d9dd5d
--- /dev/null
+++ b/res/drawable-hdpi/keybg_metal_p.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_metal_psftoff.png b/res/drawable-hdpi/keybg_metal_psftoff.png
new file mode 100644
index 0000000..9d5a3ed
--- /dev/null
+++ b/res/drawable-hdpi/keybg_metal_psftoff.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_metal_psfton.png b/res/drawable-hdpi/keybg_metal_psfton.png
new file mode 100644
index 0000000..fb20e0c
--- /dev/null
+++ b/res/drawable-hdpi/keybg_metal_psfton.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_metal_sftoff.png b/res/drawable-hdpi/keybg_metal_sftoff.png
new file mode 100644
index 0000000..146d275
--- /dev/null
+++ b/res/drawable-hdpi/keybg_metal_sftoff.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_metal_sfton.png b/res/drawable-hdpi/keybg_metal_sfton.png
new file mode 100644
index 0000000..4f766f4
--- /dev/null
+++ b/res/drawable-hdpi/keybg_metal_sfton.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_simple.9.png b/res/drawable-hdpi/keybg_simple.9.png
new file mode 100644
index 0000000..55fb17c
--- /dev/null
+++ b/res/drawable-hdpi/keybg_simple.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_simple_bg.png b/res/drawable-hdpi/keybg_simple_bg.png
new file mode 100644
index 0000000..f4925c4
--- /dev/null
+++ b/res/drawable-hdpi/keybg_simple_bg.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_simple_p.9.png b/res/drawable-hdpi/keybg_simple_p.9.png
new file mode 100644
index 0000000..0abf360
--- /dev/null
+++ b/res/drawable-hdpi/keybg_simple_p.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_simple_psftoff.9.png b/res/drawable-hdpi/keybg_simple_psftoff.9.png
new file mode 100644
index 0000000..b61c2d0
--- /dev/null
+++ b/res/drawable-hdpi/keybg_simple_psftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_simple_psfton.9.png b/res/drawable-hdpi/keybg_simple_psfton.9.png
new file mode 100644
index 0000000..5015ae7
--- /dev/null
+++ b/res/drawable-hdpi/keybg_simple_psfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_simple_sftoff.9.png b/res/drawable-hdpi/keybg_simple_sftoff.9.png
new file mode 100644
index 0000000..3377b5b
--- /dev/null
+++ b/res/drawable-hdpi/keybg_simple_sftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_simple_sfton.9.png b/res/drawable-hdpi/keybg_simple_sfton.9.png
new file mode 100644
index 0000000..7676ca6
--- /dev/null
+++ b/res/drawable-hdpi/keybg_simple_sfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_wood.9.png b/res/drawable-hdpi/keybg_wood.9.png
new file mode 100644
index 0000000..f5924ba
--- /dev/null
+++ b/res/drawable-hdpi/keybg_wood.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_wood_bg.png b/res/drawable-hdpi/keybg_wood_bg.png
new file mode 100644
index 0000000..2134f07
--- /dev/null
+++ b/res/drawable-hdpi/keybg_wood_bg.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_wood_p.9.png b/res/drawable-hdpi/keybg_wood_p.9.png
new file mode 100644
index 0000000..1b1d227
--- /dev/null
+++ b/res/drawable-hdpi/keybg_wood_p.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_wood_psftoff.9.png b/res/drawable-hdpi/keybg_wood_psftoff.9.png
new file mode 100644
index 0000000..4c31234
--- /dev/null
+++ b/res/drawable-hdpi/keybg_wood_psftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_wood_psfton.9.png b/res/drawable-hdpi/keybg_wood_psfton.9.png
new file mode 100644
index 0000000..140bc83
--- /dev/null
+++ b/res/drawable-hdpi/keybg_wood_psfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_wood_sftoff.9.png b/res/drawable-hdpi/keybg_wood_sftoff.9.png
new file mode 100644
index 0000000..b3240a8
--- /dev/null
+++ b/res/drawable-hdpi/keybg_wood_sftoff.9.png
Binary files differ
diff --git a/res/drawable-hdpi/keybg_wood_sfton.9.png b/res/drawable-hdpi/keybg_wood_sfton.9.png
new file mode 100644
index 0000000..c43252f
--- /dev/null
+++ b/res/drawable-hdpi/keybg_wood_sfton.9.png
Binary files differ
diff --git a/res/drawable-hdpi/tutorial_12key_enter.png b/res/drawable-hdpi/tutorial_12key_enter.png
new file mode 100644
index 0000000..283883f
--- /dev/null
+++ b/res/drawable-hdpi/tutorial_12key_enter.png
Binary files differ
diff --git a/res/drawable-hdpi/tutorial_12key_key.png b/res/drawable-hdpi/tutorial_12key_key.png
new file mode 100644
index 0000000..c6d81a4
--- /dev/null
+++ b/res/drawable-hdpi/tutorial_12key_key.png
Binary files differ
diff --git a/res/drawable-hdpi/tutorial_12key_left.png b/res/drawable-hdpi/tutorial_12key_left.png
new file mode 100644
index 0000000..c25df43
--- /dev/null
+++ b/res/drawable-hdpi/tutorial_12key_left.png
Binary files differ
diff --git a/res/drawable-hdpi/tutorial_12key_mode.png b/res/drawable-hdpi/tutorial_12key_mode.png
new file mode 100644
index 0000000..05066f9
--- /dev/null
+++ b/res/drawable-hdpi/tutorial_12key_mode.png
Binary files differ
diff --git a/res/drawable-hdpi/tutorial_12key_right.png b/res/drawable-hdpi/tutorial_12key_right.png
new file mode 100644
index 0000000..be763a3
--- /dev/null
+++ b/res/drawable-hdpi/tutorial_12key_right.png
Binary files differ
diff --git a/res/drawable-hdpi/tutorial_12key_space_jp.png b/res/drawable-hdpi/tutorial_12key_space_jp.png
new file mode 100644
index 0000000..85a69b9
--- /dev/null
+++ b/res/drawable-hdpi/tutorial_12key_space_jp.png
Binary files differ
diff --git a/res/drawable-hdpi/tutorial_12key_toggle.png b/res/drawable-hdpi/tutorial_12key_toggle.png
new file mode 100644
index 0000000..03da7e8
--- /dev/null
+++ b/res/drawable-hdpi/tutorial_12key_toggle.png
Binary files differ
diff --git a/res/drawable-hdpi/tutorial_back.png b/res/drawable-hdpi/tutorial_back.png
new file mode 100644
index 0000000..aaf0686
--- /dev/null
+++ b/res/drawable-hdpi/tutorial_back.png
Binary files differ
diff --git a/res/drawable-hdpi/word_full_space.png b/res/drawable-hdpi/word_full_space.png
new file mode 100644
index 0000000..8822078
--- /dev/null
+++ b/res/drawable-hdpi/word_full_space.png
Binary files differ
diff --git a/res/drawable-hdpi/word_half_space.png b/res/drawable-hdpi/word_half_space.png
new file mode 100644
index 0000000..3a521ee
--- /dev/null
+++ b/res/drawable-hdpi/word_half_space.png
Binary files differ
diff --git a/res/drawable-ja/tutorial_12key_key.png b/res/drawable-ja/tutorial_12key_key.png
new file mode 100644
index 0000000..872f138
--- /dev/null
+++ b/res/drawable-ja/tutorial_12key_key.png
Binary files differ
diff --git a/res/drawable-ja/tutorial_12key_mode.png b/res/drawable-ja/tutorial_12key_mode.png
new file mode 100644
index 0000000..d287c13
--- /dev/null
+++ b/res/drawable-ja/tutorial_12key_mode.png
Binary files differ
diff --git a/res/drawable-ja/tutorial_12key_toggle.png b/res/drawable-ja/tutorial_12key_toggle.png
new file mode 100644
index 0000000..f9cbcb8
--- /dev/null
+++ b/res/drawable-ja/tutorial_12key_toggle.png
Binary files differ
diff --git a/res/layout/candidate_scale_up.xml b/res/layout/candidate_scale_up.xml
index 506144f..e1d52a1 100644
--- a/res/layout/candidate_scale_up.xml
+++ b/res/layout/candidate_scale_up.xml
@@ -19,12 +19,12 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="@color/candidate_back"
-   android:layout_width="fill_parent"
+   android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
   <TextView
      android:id="@+id/candidate_scale_up_text"
-     android:layout_width="fill_parent"
+     android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="@color/candidate_back"
      android:textSize="@dimen/candidate_delete_word_size"
@@ -33,26 +33,26 @@
      />
   <LinearLayout 
      android:orientation="horizontal"
-     android:layout_width="fill_parent" 
+     android:layout_width="match_parent" 
      android:layout_height="wrap_content"
      android:gravity="center"
      >
     <jp.co.omronsoft.openwnn.CandidateViewButton
        android:id="@+id/candidate_select"
-       android:layout_height="fill_parent"
+       android:layout_height="match_parent"
        android:layout_width="wrap_content" 
        android:text="@string/button_candidate_select"
        />
     <jp.co.omronsoft.openwnn.CandidateViewButton
        android:id="@+id/candidate_delete"
-       android:layout_height="fill_parent"
+       android:layout_height="match_parent"
        android:layout_width="wrap_content" 
        android:text="@string/button_candidate_delete"
        android:visibility="gone"
        />
     <jp.co.omronsoft.openwnn.CandidateViewButton
        android:id="@+id/candidate_cancel"
-       android:layout_height="fill_parent"
+       android:layout_height="match_parent"
        android:layout_width="wrap_content" 
        android:text="@string/button_candidate_cancel"
        />
diff --git a/res/layout/candidates.xml b/res/layout/candidates.xml
index a5b638c..dc26030 100644
--- a/res/layout/candidates.xml
+++ b/res/layout/candidates.xml
@@ -18,12 +18,12 @@
 <FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
-   android:layout_width="fill_parent"
+   android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >
   <ScrollView
      android:id="@+id/candview_scroll"
-     android:layout_width="fill_parent"
+     android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:fadingEdgeLength="0dip"
      android:scrollbars="vertical"
@@ -31,25 +31,25 @@
     <LinearLayout 
        android:id="@+id/candview_base"
        android:orientation="vertical"
-       android:layout_width="fill_parent" 
+       android:layout_width="match_parent" 
        android:layout_height="wrap_content"
        android:background="@color/candidate_back"
        >
       <!--View
          android:layout_height="wrap_content" 
-         android:layout_width="fill_parent" 
+         android:layout_width="match_parent" 
          android:background="@drawable/candidate_top"
          /-->
       <LinearLayout 
          android:id="@+id/candidates_1st_view"
          android:orientation="vertical"
-         android:layout_width="fill_parent" 
+         android:layout_width="match_parent" 
          android:layout_height="wrap_content"
          android:background="@color/candidate_back"
          />
-      <RelativeLayout 
+      <AbsoluteLayout
          android:id="@+id/candidates_2nd_view"
-         android:layout_width="fill_parent" 
+         android:layout_width="match_parent" 
          android:layout_height="wrap_content"
          android:background="@color/candidate_back"
          />
@@ -58,7 +58,7 @@
 
   <LinearLayout
      android:id="@+id/read_more"
-     android:layout_width="fill_parent"
+     android:layout_width="match_parent"
      android:layout_height="wrap_content" 
      android:fadingEdgeLength="0dip"
      android:orientation="vertical"
diff --git a/res/layout/keyboard_android_default.xml b/res/layout/keyboard_android_default.xml
index c49308e..3fd8738 100644
--- a/res/layout/keyboard_android_default.xml
+++ b/res/layout/keyboard_android_default.xml
@@ -18,7 +18,7 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboard"
    android:layout_alignParentBottom="true"
-   android:layout_width="fill_parent"
+   android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />
 
diff --git a/res/layout/keyboard_default_main.xml b/res/layout/keyboard_default_main.xml
index b1cc5c9..f93b7e8 100644
--- a/res/layout/keyboard_default_main.xml
+++ b/res/layout/keyboard_default_main.xml
@@ -16,7 +16,7 @@
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
           android:orientation="vertical"
-              android:layout_width="fill_parent"
+              android:layout_width="match_parent"
           android:layout_height="wrap_content"
 	      android:fadingEdge="vertical"
 	      android:fadingEdgeLength="5dip"
diff --git a/res/layout/keyboard_default_sub.xml b/res/layout/keyboard_default_sub.xml
index ab9dec3..2be1552 100644
--- a/res/layout/keyboard_default_sub.xml
+++ b/res/layout/keyboard_default_sub.xml
@@ -16,7 +16,7 @@
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:id="@+id/subview"
-              android:layout_width="fill_parent"
+              android:layout_width="match_parent"
               android:layout_height="wrap_content"
 	      android:background="@color/indicator_textbackground_default"
 	      android:paddingLeft="2dip"
diff --git a/res/layout/keyboard_metal.xml b/res/layout/keyboard_metal.xml
index 3154862..9acfa2c 100644
--- a/res/layout/keyboard_metal.xml
+++ b/res/layout/keyboard_metal.xml
@@ -18,7 +18,7 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboard"
    android:layout_alignParentBottom="true"
-   android:layout_width="fill_parent"
+   android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:keyBackground="@drawable/keybg_metal_def"
 />
diff --git a/res/layout/keyboard_simple.xml b/res/layout/keyboard_simple.xml
index d0c4845..befe34f 100644
--- a/res/layout/keyboard_simple.xml
+++ b/res/layout/keyboard_simple.xml
@@ -18,7 +18,7 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboard"
    android:layout_alignParentBottom="true"
-   android:layout_width="fill_parent"
+   android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:keyBackground="@drawable/keybg_simple_def"
    android:background="@drawable/keybg_simple_bg"
diff --git a/res/layout/user_dictionary_tools_edit.xml b/res/layout/user_dictionary_tools_edit.xml
index 8df045b..5886857 100644
--- a/res/layout/user_dictionary_tools_edit.xml
+++ b/res/layout/user_dictionary_tools_edit.xml
@@ -16,33 +16,33 @@
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
-    android:layout_width="fill_parent"
+    android:layout_width="match_parent"
     android:layout_height="wrap_content">
 
     <TextView
-        android:layout_width="fill_parent"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="5dip"
         android:text="@string/user_dictionary_title_read"
         android:textAppearance="?android:attr/textAppearanceLarge"/>
     <EditText android:id="@+id/editRead"
-        android:layout_width="fill_parent"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:maxLength="20"/>
 
     <TextView
-        android:layout_width="fill_parent"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="5dip"
         android:text="@string/user_dictionary_title_candidate"
         android:textAppearance="?android:attr/textAppearanceLarge"/>
     <EditText android:id="@+id/editCandidate"
-        android:layout_width="fill_parent"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:maxLength="20"/>
 
     <RelativeLayout
-        android:layout_width="fill_parent"
+        android:layout_width="match_parent"
         android:layout_height="?android:attr/listPreferredItemHeight"
         android:layout_marginTop="1dip"
         android:background="@android:drawable/bottom_bar">
diff --git a/res/layout/user_dictionary_tools_edit_header.xml b/res/layout/user_dictionary_tools_edit_header.xml
index 1d71b63..5e4c5d6 100644
--- a/res/layout/user_dictionary_tools_edit_header.xml
+++ b/res/layout/user_dictionary_tools_edit_header.xml
@@ -15,8 +15,8 @@
  limitations under the License.
 -->
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
     android:orientation="vertical">
     <TextView
         android:layout_width="wrap_content"
diff --git a/res/layout/user_dictionary_tools_list.xml b/res/layout/user_dictionary_tools_list.xml
index 22a99fb..4ebfbd8 100644
--- a/res/layout/user_dictionary_tools_list.xml
+++ b/res/layout/user_dictionary_tools_list.xml
@@ -17,12 +17,12 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:orientation="vertical"
               android:paddingTop="5sp"
-              android:layout_width="fill_parent"
+              android:layout_width="match_parent"
               android:layout_height="wrap_content">
     <LinearLayout
        android:orientation="horizontal"
        android:gravity="center"
-       android:layout_width="fill_parent"
+       android:layout_width="match_parent"
        android:layout_height="wrap_content">
       <Button
          android:id="@+id/user_dictionary_left_button" 
@@ -42,7 +42,7 @@
     </LinearLayout>
     <LinearLayout
         android:orientation="horizontal"
-        android:layout_width="fill_parent"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:padding="1dip"
         android:layout_gravity="left">
@@ -75,11 +75,11 @@
     </LinearLayout>
     <ScrollView
         android:id="@+id/user_dictionary_tools_scroll"
-        android:layout_width="fill_parent" 
+        android:layout_width="match_parent" 
         android:layout_height="wrap_content">
         <TableLayout
             android:id="@+id/user_dictionary_tools_table" 
-            android:layout_width="fill_parent" 
+            android:layout_width="match_parent" 
             android:layout_height="wrap_content"
             android:padding="1dip">
         </TableLayout>
diff --git a/res/layout/user_dictionary_tools_list_header.xml b/res/layout/user_dictionary_tools_list_header.xml
index cab5c08..3e5159c 100644
--- a/res/layout/user_dictionary_tools_list_header.xml
+++ b/res/layout/user_dictionary_tools_list_header.xml
@@ -15,8 +15,8 @@
  limitations under the License.
 -->
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
     android:orientation="vertical">
     <TextView
         android:layout_width="wrap_content"
diff --git a/res/layout/user_dictionary_tools_list_header_ja.xml b/res/layout/user_dictionary_tools_list_header_ja.xml
index 3ddf937..0db6f27 100644
--- a/res/layout/user_dictionary_tools_list_header_ja.xml
+++ b/res/layout/user_dictionary_tools_list_header_ja.xml
@@ -15,8 +15,8 @@
  limitations under the License.
 -->
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
     android:orientation="vertical">
     <TextView
         android:layout_width="wrap_content"
diff --git a/res/values-ja/string.xml b/res/values-ja/string.xml
index ccbbd98..296da5a 100644
--- a/res/values-ja/string.xml
+++ b/res/values-ja/string.xml
@@ -103,13 +103,13 @@
 
   <!-- IME dependency -->
     <!-- OpenWnn English -->
-    <string name="openwnn_english_copyright">Ver.1.3.1\nオムロン ソフトウェア(株)</string>
+    <string name="openwnn_english_copyright">Ver.1.3.5\nオムロン ソフトウェア(株)</string>
 
     <!-- OpenWnn Japanese -->
-    <string name="openwnn_japanese_copyright">Ver.1.3.1\nオムロン ソフトウェア(株)</string>
+    <string name="openwnn_japanese_copyright">Ver.1.3.5\nオムロン ソフトウェア(株)</string>
 
     <!-- OpenWnn Chinese -->
-    <string name="openwnn_china_copyright">Ver.1.3.1\nオムロン ソフトウェア(株)</string>
+    <string name="openwnn_china_copyright">Ver.1.3.5\nオムロン ソフトウェア(株)</string>
 
   <!-- Candidate Delete -->
       <string name="button_candidate_select">選　択</string>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 2d87471..d90f9aa 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -18,7 +18,7 @@
     <dimen name="key_height">50dip</dimen>
     <dimen name="key_height_landscape">34dip</dimen>
     <dimen name="candidate_font_size">20sp</dimen>
-    <dimen name="candidate_delete_word_size">32dip</dimen>
-    <dimen name="candidate_delete_word_size_landscape">28dip</dimen>
+    <dimen name="candidate_delete_word_size">28px</dimen>
+    <dimen name="candidate_delete_word_size_landscape">24px</dimen>
     <dimen name="bubble_pointer_offset">22dip</dimen>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 59f22ce..883a927 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -16,12 +16,6 @@
 -->
 <resources>
   <!-- common part -->
-    <!-- Engine -->
-    <string name="openwnn_system_dictionary_japanese">/data/data/jp.co.omronsoft.openwnn/lib/libWnnJpnDic.so</string>
-    <string name="openwnn_writable_dictionary_japanese">/data/data/jp.co.omronsoft.openwnn/writableJAJP.dic</string>
-    <string name="openwnn_system_dictionary_english">/data/data/jp.co.omronsoft.openwnn/lib/libWnnEngDic.so</string>
-    <string name="openwnn_writable_dictionary_english">/data/data/jp.co.omronsoft.openwnn/writableEN.dic</string>
-
     <!-- Preferences -->
     <string name="preference_ime_setting_app">Setting</string>
 
@@ -111,20 +105,20 @@
 
   <!-- IME dependency -->
     <!-- OpenWnn English -->
-    <string name="openwnn_english_copyright">Ver.1.3.1\nOMRON SOFTWARE Co., Ltd.</string>
+    <string name="openwnn_english_copyright">Ver.1.3.5\nOMRON SOFTWARE Co., Ltd.</string>
     <string name="openwnn_english">OpenWnn English</string>
     <string name="openwnn_english_system_dictionary">/data/data/jp.co.omronsoft.openwnn/lib/libWnnEngDic.so</string>
     <string name="openwnn_english_writable_dictionary">/data/data/jp.co.omronsoft.openwnn/writableEN.dic</string>
     <string name="en_word_separators">.,;:!?</string>
 
     <!-- OpenWnn Japanese -->
-    <string name="openwnn_japanese_copyright">Ver.1.3.1\nOMRON SOFTWARE Co., Ltd.</string>
+    <string name="openwnn_japanese_copyright">Ver.1.3.5\nOMRON SOFTWARE Co., Ltd.</string>
     <string name="openwnn_japanese">Japanese IME</string>
     <string name="openwnn_japanese_system_dictionary">/data/data/jp.co.omronsoft.openwnn/lib/libWnnJpnDic.so</string>
     <string name="openwnn_japanese_writable_dictionary">/data/data/jp.co.omronsoft.openwnn/writableJAJP.dic</string>
 
     <!-- OpenWnn Chinese -->
-    <string name="openwnn_china_copyright">Ver.1.3.1\nOMRON SOFTWARE Co., Ltd.</string>
+    <string name="openwnn_china_copyright">Ver.1.3.5\nOMRON SOFTWARE Co., Ltd.</string>
     <string name="openwnn_china">OpenWnn Chinese</string>
     <string name="openwnn_china_system_dictionary">/data/data/jp.co.omronsoft.openwnn/lib/libWnnZHCNDic.so</string>
 <!-- After Config Change -->
diff --git a/src/jp/co/omronsoft/openwnn/DefaultSoftKeyboard.java b/src/jp/co/omronsoft/openwnn/DefaultSoftKeyboard.java
index 0fa7e31..edb308c 100644
--- a/src/jp/co/omronsoft/openwnn/DefaultSoftKeyboard.java
+++ b/src/jp/co/omronsoft/openwnn/DefaultSoftKeyboard.java
@@ -538,10 +538,9 @@
 
         mMainView = (ViewGroup) parent.getLayoutInflater().inflate(R.layout.keyboard_default_main, null);
         mSubView = (ViewGroup) parent.getLayoutInflater().inflate(R.layout.keyboard_default_sub, null);
-        if (mDisplayMode == LANDSCAPE && !mHardKeyboardHidden) { 
+        if (mDisplayMode == LANDSCAPE || !mHardKeyboardHidden) { 
             mMainView.addView(mSubView);
-        }
-        if (mKeyboardView != null) {
+        } else if (mKeyboardView != null) {
             mMainView.addView(mKeyboardView);
         }
         
diff --git a/src/jp/co/omronsoft/openwnn/JAJP/DefaultSoftKeyboardJAJP.java b/src/jp/co/omronsoft/openwnn/JAJP/DefaultSoftKeyboardJAJP.java
index de9f431..8079d2f 100644
--- a/src/jp/co/omronsoft/openwnn/JAJP/DefaultSoftKeyboardJAJP.java
+++ b/src/jp/co/omronsoft/openwnn/JAJP/DefaultSoftKeyboardJAJP.java
@@ -440,7 +440,7 @@
     /** @see jp.co.omronsoft.openwnn.DefaultSoftKeyboard#changeKeyboard */
     @Override protected boolean changeKeyboard(Keyboard keyboard) {
         if (keyboard != null) {
-            if (mIsInputTypeNull) {
+            if (mIsInputTypeNull && mChangeModeKey != null) {
                 mChangeModeKey.popupResId = mPopupResId;
             }
 
@@ -449,7 +449,7 @@
                 ? KEY_INDEX_CHANGE_MODE_QWERTY : KEY_INDEX_CHANGE_MODE_12KEY;
             mChangeModeKey = keys.get(keyIndex);
 
-            if (mIsInputTypeNull) {
+            if (mIsInputTypeNull && mChangeModeKey != null) {
                 mPopupResId = mChangeModeKey.popupResId;
                 mChangeModeKey.popupResId = 0;
             }
@@ -696,15 +696,19 @@
             if (inputType == EditorInfo.TYPE_NULL) {
                 if (!mIsInputTypeNull) {
                     mIsInputTypeNull = true;
-                    mPopupResId = mChangeModeKey.popupResId;
-                    mChangeModeKey.popupResId = 0;
+                    if (mChangeModeKey != null) {
+                        mPopupResId = mChangeModeKey.popupResId;
+                        mChangeModeKey.popupResId = 0;
+                    }
                 }
                 return;
             }
             
             if (mIsInputTypeNull) {
                 mIsInputTypeNull = false;
-                mChangeModeKey.popupResId = mPopupResId;
+                if (mChangeModeKey != null) {
+                    mChangeModeKey.popupResId = mPopupResId;
+                }
             }
         }
 
@@ -734,12 +738,11 @@
             switch (inputType & EditorInfo.TYPE_MASK_VARIATION) {
 
             case EditorInfo.TYPE_TEXT_VARIATION_PASSWORD:
+            case EditorInfo.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD:
                 mLimitedKeyMode = new int[] {KEYMODE_JA_HALF_ALPHABET, KEYMODE_JA_HALF_NUMBER};
                 break;
 
             case EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS:
-                mLimitedKeyMode = new int[] {KEYMODE_JA_HALF_ALPHABET, KEYMODE_JA_HALF_NUMBER};
-                break;
             case EditorInfo.TYPE_TEXT_VARIATION_URI:
                 mPreferenceKeyMode = KEYMODE_JA_HALF_ALPHABET;
                 break;
diff --git a/src/jp/co/omronsoft/openwnn/JAJP/OpenWnnEngineJAJP.java b/src/jp/co/omronsoft/openwnn/JAJP/OpenWnnEngineJAJP.java
index 98b5a40..1181202 100644
--- a/src/jp/co/omronsoft/openwnn/JAJP/OpenWnnEngineJAJP.java
+++ b/src/jp/co/omronsoft/openwnn/JAJP/OpenWnnEngineJAJP.java
@@ -41,33 +41,33 @@
  * @author Copyright (C) 2009 OMRON SOFTWARE CO., LTD.  All Rights Reserved.
  */
 public class OpenWnnEngineJAJP implements WnnEngine {
-	/** Current dictionary type */
-	private int mDictType = DIC_LANG_INIT;
+    /** Current dictionary type */
+    private int mDictType = DIC_LANG_INIT;
     /** Dictionary type (default) */
-	public static final int DIC_LANG_INIT = 0;
+    public static final int DIC_LANG_INIT = 0;
     /** Dictionary type (Japanese standard) */
-	public static final int DIC_LANG_JP = 0;
+    public static final int DIC_LANG_JP = 0;
     /** Dictionary type (English standard) */
-	public static final int DIC_LANG_EN = 1;
+    public static final int DIC_LANG_EN = 1;
     /** Dictionary type (Japanese person's name) */
-	public static final int DIC_LANG_JP_PERSON_NAME = 2;
+    public static final int DIC_LANG_JP_PERSON_NAME = 2;
     /** Dictionary type (User dictionary) */
-	public static final int DIC_USERDIC = 3;
+    public static final int DIC_USERDIC = 3;
     /** Dictionary type (Japanese EISU-KANA conversion) */
-	public static final int DIC_LANG_JP_EISUKANA = 4;
+    public static final int DIC_LANG_JP_EISUKANA = 4;
     /** Dictionary type (e-mail/URI) */
-	public static final int DIC_LANG_EN_EMAIL_ADDRESS = 5;
+    public static final int DIC_LANG_EN_EMAIL_ADDRESS = 5;
     /** Dictionary type (Japanese postal address) */
-	public static final int DIC_LANG_JP_POSTAL_ADDRESS = 6;
+    public static final int DIC_LANG_JP_POSTAL_ADDRESS = 6;
 
     /** Type of the keyboard */
     private int mKeyboardType = KEYBOARD_UNDEF;
     /** Keyboard type (not defined) */
     public static final int KEYBOARD_UNDEF = 0;
     /** Keyboard type (12-keys) */
-	public static final int KEYBOARD_KEYPAD12 = 1;
+    public static final int KEYBOARD_KEYPAD12 = 1;
     /** Keyboard type (Qwerty) */
-	public static final int KEYBOARD_QWERTY = 2;
+    public static final int KEYBOARD_QWERTY = 2;
     
     /** Score(frequency value) of word in the learning dictionary */
     public static final int FREQ_LEARN = 600;
@@ -80,23 +80,23 @@
     public static final int PREDICT_LIMIT = 100;
    
     /** OpenWnn dictionary */
-	private WnnDictionary mDictionaryJP;
+    private WnnDictionary mDictionaryJP;
 
-	/** Word list */
+    /** Word list */
     private ArrayList<WnnWord> mConvResult;
 
     /** HashMap for checking duplicate word */
-	private HashMap<String, WnnWord> mCandTable;
+    private HashMap<String, WnnWord> mCandTable;
 
-	/** Input string (Hiragana) */
-	private String mInputHiragana;
-	
-	/** Input string (Romaji) */
-	private String mInputRomaji;
-	
-	/** Number of output candidates */
-	private int mOutputNum;
-	
+    /** Input string (Hiragana) */
+    private String mInputHiragana;
+    
+    /** Input string (Romaji) */
+    private String mInputRomaji;
+    
+    /** Number of output candidates */
+    private int mOutputNum;
+    
     /**
      * Where to get the next candidates from.<br>
      * (0:prefix search from the dictionary, 1:single clause converter, 2:Kana converter)
@@ -127,17 +127,17 @@
     /**
      * Constructor
      * 
-     * @param writableDictionaryName	Writable dictionary file name(null if not use)
+     * @param writableDictionaryName    Writable dictionary file name(null if not use)
      */
     public OpenWnnEngineJAJP(String writableDictionaryName) {
         /* load Japanese dictionary library */
         mDictionaryJP = new OpenWnnDictionaryImpl(
-        		"/data/data/jp.co.omronsoft.openwnn/lib/libWnnJpnDic.so",
-        		writableDictionaryName );
+                "/data/data/jp.co.omronsoft.openwnn/lib/libWnnJpnDic.so",
+                writableDictionaryName );
         if (!mDictionaryJP.isActive()) {
-        	mDictionaryJP = new OpenWnnDictionaryImpl(
-        			"/system/lib/libWnnJpnDic.so",
-        			writableDictionaryName );
+            mDictionaryJP = new OpenWnnDictionaryImpl(
+                    "/system/lib/libWnnJpnDic.so",
+                    writableDictionaryName );
         }
 
         /* clear dictionary settings */
@@ -157,7 +157,7 @@
     /**
      * Set dictionary for prediction.
      * 
-     * @param strlen		Length of input string
+     * @param strlen        Length of input string
      */
     private void setDictionaryForPrediction(int strlen) {
         WnnDictionary dict = mDictionaryJP;
@@ -191,13 +191,13 @@
     /**
      * Get a candidate.
      *
-     * @param index		Index of a candidate.
-     * @return			The candidate; {@code null} if there is no candidate.
+     * @param index     Index of a candidate.
+     * @return          The candidate; {@code null} if there is no candidate.
      */
     private WnnWord getCandidate(int index) {
-		WnnWord word;
+        WnnWord word;
 
-		if (mGetCandidateFrom == 0) {
+        if (mGetCandidateFrom == 0) {
             if (mDictType == OpenWnnEngineJAJP.DIC_LANG_JP_EISUKANA) {
                 /* skip to Kana conversion if EISU-KANA conversion mode */
                 mGetCandidateFrom = 2;
@@ -205,24 +205,24 @@
                 /* skip to single clause conversion if single clause conversion mode */
                 mGetCandidateFrom = 1;
             } else {
-            	if (mConvResult.size() < PREDICT_LIMIT) {
-            		/* get prefix matching words from the dictionaries */
-            		while (index >= mConvResult.size()) {
-            			if ((word = mDictionaryJP.getNextWord()) == null) {
-            				mGetCandidateFrom = 1;
-            				break;
-            			}
-            			if (!mExactMatchMode || mInputHiragana.equals(word.stroke)) {
-            				addCandidate(word);
-            				if (mConvResult.size() >= PREDICT_LIMIT) {
-            					mGetCandidateFrom = 1;
-            					break;
-            				}
-            			}
-            		}
-            	} else {
-            		mGetCandidateFrom = 1;
-            	}
+                if (mConvResult.size() < PREDICT_LIMIT) {
+                    /* get prefix matching words from the dictionaries */
+                    while (index >= mConvResult.size()) {
+                        if ((word = mDictionaryJP.getNextWord()) == null) {
+                            mGetCandidateFrom = 1;
+                            break;
+                        }
+                        if (!mExactMatchMode || mInputHiragana.equals(word.stroke)) {
+                            addCandidate(word);
+                            if (mConvResult.size() >= PREDICT_LIMIT) {
+                                mGetCandidateFrom = 1;
+                                break;
+                            }
+                        }
+                    }
+                } else {
+                    mGetCandidateFrom = 1;
+                }
             }
         }
 
@@ -240,13 +240,13 @@
         
         /* get candidates from Kana converter */
         if (mGetCandidateFrom == 2) {
-			List<WnnWord> addCandidateList
-			= mKanaConverter.createPseudoCandidateList(mInputHiragana, mInputRomaji, mKeyboardType);
-			
-			Iterator<WnnWord> it = addCandidateList.iterator();
-			while(it.hasNext()) {
-				addCandidate(it.next());
-			}
+            List<WnnWord> addCandidateList
+            = mKanaConverter.createPseudoCandidateList(mInputHiragana, mInputRomaji, mKeyboardType);
+            
+            Iterator<WnnWord> it = addCandidateList.iterator();
+            while(it.hasNext()) {
+                addCandidate(it.next());
+            }
 
             mGetCandidateFrom = 3;
         }
@@ -264,16 +264,16 @@
      * the same one in the buffer and the length of the candidate
      * string is not longer than {@code MAX_OUTPUT_LENGTH}.
      *
-     * @param word		A word to be add
-     * @return			{@code true} if the word added; {@code false} if not.
+     * @param word      A word to be add
+     * @return          {@code true} if the word added; {@code false} if not.
      */
     private boolean addCandidate(WnnWord word) {
         if (word.candidate == null || mCandTable.containsKey(word.candidate)
-				|| word.candidate.length() > MAX_OUTPUT_LENGTH) {
-			return false;
-		}
+                || word.candidate.length() > MAX_OUTPUT_LENGTH) {
+            return false;
+        }
         if (mFilter != null && !mFilter.isAllowed(word)) {
-        	return false;
+            return false;
         }
         mCandTable.put(word.candidate, word);
         mConvResult.add(word);
@@ -296,20 +296,20 @@
     /**
      * Set dictionary type.
      *
-     * @param type		Type of dictionary
-     * @return			{@code true} if the dictionary is changed; {@code false} if not.
+     * @param type      Type of dictionary
+     * @return          {@code true} if the dictionary is changed; {@code false} if not.
      */
     public boolean setDictionary(int type) {
-    	mDictType = type;
-     	return true;
+        mDictType = type;
+        return true;
     }
 
     /**
      * Set the search key and the search mode from {@link ComposingText}.
      *
-     * @param text		Input text
-     * @param maxLen	Maximum length to convert
-     * @return			Length of the search key
+     * @param text      Input text
+     * @param maxLen    Maximum length to convert
+     * @return          Length of the search key
      */
     private int setSearchKey(ComposingText text, int maxLen) {
         String input = text.toString(ComposingText.LAYER1);
@@ -342,7 +342,7 @@
     /**
      * Set keyboard type.
      * 
-     * @param keyboardType		Type of keyboard
+     * @param keyboardType      Type of keyboard
      */
     public void setKeyboardType(int keyboardType) {
         mKeyboardType = keyboardType;
@@ -351,11 +351,11 @@
     /**
      * Set the candidate filter
      * 
-     * @param filter	The candidate filter
+     * @param filter    The candidate filter
      */
     public void setFilter(CandidateFilter filter) {
-    	mFilter = filter;
-    	mClauseConverter.setFilter(filter);
+        mFilter = filter;
+        mClauseConverter.setFilter(filter);
     }
     
     /***********************************************************************
@@ -405,11 +405,11 @@
 
     /** @see jp.co.omronsoft.openwnn.WnnEngine#convert */
     public int convert(ComposingText text) {
-    	clearCandidates();
+        clearCandidates();
 
-    	if (text == null) {
-			return 0;
-		}
+        if (text == null) {
+            return 0;
+        }
 
         mDictionaryJP.setInUseState( true );
 
@@ -440,26 +440,26 @@
             sentence = new WnnSentence(head, sentence);
         }
         if (sentence == null) {
-    		return 0;
-    	}
+            return 0;
+        }
 
-    	StrSegmentClause[] ss = new StrSegmentClause[sentence.elements.size()];
-    	int pos = 0;
-    	int idx = 0;
-    	Iterator<WnnClause> it = sentence.elements.iterator();
-    	while(it.hasNext()) {
-    		WnnClause clause = (WnnClause)it.next();
-    		int len = clause.stroke.length();
-    		ss[idx] = new StrSegmentClause(clause, pos, pos + len - 1);
-    		pos += len;
-    		idx += 1;
-    	}
-    	text.setCursor(ComposingText.LAYER2, text.size(ComposingText.LAYER2));
-    	text.replaceStrSegment(ComposingText.LAYER2, ss, 
+        StrSegmentClause[] ss = new StrSegmentClause[sentence.elements.size()];
+        int pos = 0;
+        int idx = 0;
+        Iterator<WnnClause> it = sentence.elements.iterator();
+        while(it.hasNext()) {
+            WnnClause clause = (WnnClause)it.next();
+            int len = clause.stroke.length();
+            ss[idx] = new StrSegmentClause(clause, pos, pos + len - 1);
+            pos += len;
+            idx += 1;
+        }
+        text.setCursor(ComposingText.LAYER2, text.size(ComposingText.LAYER2));
+        text.replaceStrSegment(ComposingText.LAYER2, ss, 
                                text.getCursor(ComposingText.LAYER2));
         mConvertSentence = sentence;
 
-    	return 0;
+        return 0;
     }
     
     /** @see jp.co.omronsoft.openwnn.WnnEngine#searchWords */
@@ -524,6 +524,9 @@
     /** @see jp.co.omronsoft.openwnn.WnnEngine#addWord */
     public int addWord(WnnWord word) {
         mDictionaryJP.setInUseState( true );
+        if (word.partOfSpeech.right == 0) {
+            word.partOfSpeech = mDictionaryJP.getPOS(WnnDictionary.POS_TYPE_MEISI);
+        }
         mDictionaryJP.addWordToUserDictionary(word);
         mDictionaryJP.setInUseState( false );
         return 0;
@@ -580,7 +583,7 @@
 
     /** @see jp.co.omronsoft.openwnn.WnnEngine#initializeDictionary */
     public boolean initializeDictionary(int dictionary, int type) {
-    	return initializeDictionary(dictionary);
+        return initializeDictionary(dictionary);
     }
     
     /** @see jp.co.omronsoft.openwnn.WnnEngine#getUserDictionaryWords */
diff --git a/src/jp/co/omronsoft/openwnn/JAJP/Romkan.java b/src/jp/co/omronsoft/openwnn/JAJP/Romkan.java
index 59edf27..797b81e 100644
--- a/src/jp/co/omronsoft/openwnn/JAJP/Romkan.java
+++ b/src/jp/co/omronsoft/openwnn/JAJP/Romkan.java
@@ -119,20 +119,20 @@
         put("vu", "\u30f4");        put("va", "\u30f4\u3041");      put("vi", "\u30f4\u3043");
         put("vyi", "\u30f4\u3043");     put("ve", "\u30f4\u3047");      put("vye", "\u30f4\u3047");
         put("vo", "\u30f4\u3049");      put("vya", "\u30f4\u3083");     put("vyu", "\u30f4\u3085");
-        put("vyo", "\u30f4\u3087");	
-        put("bb", "\u3063b");	put("cc", "\u3063c");	put("dd", "\u3063d");
-        put("ff", "\u3063f");	put("gg", "\u3063g");	put("hh", "\u3063h");
-        put("jj", "\u3063j");	put("kk", "\u3063k");	put("ll", "\u3063l");
-        put("mm", "\u3063m");	put("pp", "\u3063p");	put("qq", "\u3063q");
-        put("rr", "\u3063r");	put("ss", "\u3063s");	put("tt", "\u3063t");
-        put("vv", "\u3063v");	put("ww", "\u3063w");	put("xx", "\u3063x");
-        put("yy", "\u3063y");	put("zz", "\u3063z");	put("nb", "\u3093b");
-        put("nc", "\u3093c");	put("nd", "\u3093d");	put("nf", "\u3093f");
-        put("ng", "\u3093g");	put("nh", "\u3093h");	put("nj", "\u3093j");
-        put("nk", "\u3093k");	put("nm", "\u3093m");	put("np", "\u3093p");
-        put("nq", "\u3093q");	put("nr", "\u3093r");	put("ns", "\u3093s");
-        put("nt", "\u3093t");	put("nv", "\u3093v");	put("nw", "\u3093w");
-        put("nx", "\u3093x");	put("nz", "\u3093z");	put("nl", "\u3093l");
+        put("vyo", "\u30f4\u3087");     
+        put("bb", "\u3063b");   put("cc", "\u3063c");   put("dd", "\u3063d");
+        put("ff", "\u3063f");   put("gg", "\u3063g");   put("hh", "\u3063h");
+        put("jj", "\u3063j");   put("kk", "\u3063k");   put("ll", "\u3063l");
+        put("mm", "\u3063m");   put("pp", "\u3063p");   put("qq", "\u3063q");
+        put("rr", "\u3063r");   put("ss", "\u3063s");   put("tt", "\u3063t");
+        put("vv", "\u3063v");   put("ww", "\u3063w");   put("xx", "\u3063x");
+        put("yy", "\u3063y");   put("zz", "\u3063z");   put("nb", "\u3093b");
+        put("nc", "\u3093c");   put("nd", "\u3093d");   put("nf", "\u3093f");
+        put("ng", "\u3093g");   put("nh", "\u3093h");   put("nj", "\u3093j");
+        put("nk", "\u3093k");   put("nm", "\u3093m");   put("np", "\u3093p");
+        put("nq", "\u3093q");   put("nr", "\u3093r");   put("ns", "\u3093s");
+        put("nt", "\u3093t");   put("nv", "\u3093v");   put("nw", "\u3093w");
+        put("nx", "\u3093x");   put("nz", "\u3093z");   put("nl", "\u3093l");
         put("-", "\u30fc"); put(".", "\u3002"); put(",", "\u3001"); put("?", "\uff1f"); put("/", "\u30fb");
         put("@", "\uff20"); put("#", "\uff03"); put("%", "\uff05"); put("&", "\uff06"); put("*", "\uff0a");
         put("+", "\uff0b"); put("=", "\uff1d"); put("(", "\uff08"); put(")", "\uff09");
@@ -144,6 +144,17 @@
         put("6", "\uff16"); put("7", "\uff17"); put("8", "\uff18"); put("9", "\uff19"); put("0", "\uff10");
     }};
 
+    /** Max length of the target text */
+    private static final int MAX_LENGTH = 4;
+
+
+    /**
+     * Default constructor
+     */
+    public Romkan() {
+        super();
+    }
+
     /***********************************************************************
      * LetterConverter's interface
      ***********************************************************************/
@@ -155,21 +166,17 @@
             return false;
         }
 
-        StrSegment[] str = new StrSegment[3];
-        int start = 2;
-        str[2] = text.getStrSegment(1, cursor - 1);
-        if (cursor >= 2) {
-            str[1] = text.getStrSegment(1, cursor - 2);
-            start = 1;
-            if (cursor >= 3) {
-                str[0] = text.getStrSegment(1, cursor - 3);
-                start = 0;
-            }
+        StrSegment[] str = new StrSegment[MAX_LENGTH];
+        int start = MAX_LENGTH;
+        int checkLength = Math.min(cursor, MAX_LENGTH);
+        for (int i = 1; i <= checkLength; i++) {
+            str[MAX_LENGTH - i] = text.getStrSegment(1, cursor - i);
+            start--;
         }
 
         StringBuffer key = new StringBuffer();
-        while (start < 3) {
-            for (int i = start; i < 3; i++) {
+        while (start < MAX_LENGTH) {
+            for (int i = start; i < MAX_LENGTH; i++) {
                 key.append(str[i].string);
             }
             boolean upper = Character.isUpperCase(key.charAt(key.length() - 1));
@@ -181,13 +188,15 @@
                 StrSegment[] out;
                 if (match.length() == 1) {
                     out = new StrSegment[1];
-                    out[0] = new StrSegment(match, str[start].from, str[2].to);
-                    text.replaceStrSegment(1, out, 3 - start);
+                    out[0] = new StrSegment(match, str[start].from, str[MAX_LENGTH - 1].to);
+                    text.replaceStrSegment(ComposingText.LAYER1, out, MAX_LENGTH - start);
                 } else {
                     out = new StrSegment[2];
-                    out[0] = new StrSegment(match.substring(0, match.length() - 1), str[start].from, str[2].to - 1);
-                    out[1] = new StrSegment(match.substring(match.length() - 1), str[2].to, str[2].to);
-                    text.replaceStrSegment(1, out, 3 - start);
+                    out[0] = new StrSegment(match.substring(0, match.length() - 1),
+                                            str[start].from, str[MAX_LENGTH - 1].to - 1);
+                    out[1] = new StrSegment(match.substring(match.length() - 1),
+                                            str[MAX_LENGTH - 1].to, str[MAX_LENGTH - 1].to);
+                    text.replaceStrSegment(1, out, MAX_LENGTH - start);
                 }
                 return true;
             }
diff --git a/src/jp/co/omronsoft/openwnn/JAJP/RomkanFullKatakana.java b/src/jp/co/omronsoft/openwnn/JAJP/RomkanFullKatakana.java
index d42a3c3..37fd6ed 100644
--- a/src/jp/co/omronsoft/openwnn/JAJP/RomkanFullKatakana.java
+++ b/src/jp/co/omronsoft/openwnn/JAJP/RomkanFullKatakana.java
@@ -21,8 +21,6 @@
 import jp.co.omronsoft.openwnn.StrSegment;
 import java.util.HashMap;
 import android.content.SharedPreferences;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
 
 /**
  * The Romaji to full-width Katakana converter class for Japanese IME.
@@ -42,6 +40,7 @@
         put("le", "\u30a7");        put("lye", "\u30a7");       put("xe", "\u30a7");
         put("xye", "\u30a7");       put("e", "\u30a8");         put("lo", "\u30a9");
         put("xo", "\u30a9");        put("o", "\u30aa");         put("ca", "\u30ab");
+        put("lka", "\u30f5");       put("xka", "\u30f5");
         put("ka", "\u30ab");        put("ga", "\u30ac");        put("ki", "\u30ad");
         put("kyi", "\u30ad\u30a3");     put("kye", "\u30ad\u30a7");     put("kya", "\u30ad\u30e3");
         put("kyu", "\u30ad\u30e5");     put("kyo", "\u30ad\u30e7");     put("gi", "\u30ae");
@@ -54,7 +53,8 @@
         put("qo", "\u30af\u30a9");      put("qwo", "\u30af\u30a9");     put("qya", "\u30af\u30e3");
         put("qyu", "\u30af\u30e5");     put("qyo", "\u30af\u30e7");     put("gu", "\u30b0");
         put("gwa", "\u30b0\u30a1");     put("gwi", "\u30b0\u30a3");     put("gwu", "\u30b0\u30a5");
-        put("gwe", "\u30b0\u30a7");     put("gwo", "\u30b0\u30a9");     put("ke", "\u30b1");
+        put("gwe", "\u30b0\u30a7");     put("gwo", "\u30b0\u30a9");
+        put("lke", "\u30f6");       put("xke", "\u30f6");       put("ke", "\u30b1");
         put("ge", "\u30b2");        put("co", "\u30b3");        put("ko", "\u30b3");
         put("go", "\u30b4");        put("sa", "\u30b5");        put("za", "\u30b6");
         put("ci", "\u30b7");        put("shi", "\u30b7");       put("si", "\u30b7");
@@ -123,23 +123,34 @@
         put("vu", "\u30f4");        put("va", "\u30f4\u30a1");      put("vi", "\u30f4\u30a3");
         put("vyi", "\u30f4\u30a3");     put("ve", "\u30f4\u30a7");      put("vye", "\u30f4\u30a7");
         put("vo", "\u30f4\u30a9");      put("vya", "\u30f4\u30e3");     put("vyu", "\u30f4\u30e5");
-        put("vyo", "\u30f4\u30e7");	
-        put("bb", "\u30c3b");	put("cc", "\u30c3c");	put("dd", "\u30c3d");
-        put("ff", "\u30c3f");	put("gg", "\u30c3g");	put("hh", "\u30c3h");
-        put("jj", "\u30c3j");	put("kk", "\u30c3k");	put("ll", "\u30c3l");
-        put("mm", "\u30c3m");	put("pp", "\u30c3p");	put("qq", "\u30c3q");
-        put("rr", "\u30c3r");	put("ss", "\u30c3s");	put("tt", "\u30c3t");
-        put("vv", "\u30c3v");	put("ww", "\u30c3w");	put("xx", "\u30c3x");
-        put("yy", "\u30c3y");	put("zz", "\u30c3z");	put("nb", "\u30f3b");
-        put("nc", "\u30f3c");	put("nd", "\u30f3d");	put("nf", "\u30f3f");
-        put("ng", "\u30f3g");	put("nh", "\u30f3h");	put("nj", "\u30f3j");
-        put("nk", "\u30f3k");	put("nm", "\u30f3m");	put("np", "\u30f3p");
-        put("nq", "\u30f3q");	put("nr", "\u30f3r");	put("ns", "\u30f3s");
-        put("nt", "\u30f3t");	put("nv", "\u30f3v");	put("nw", "\u30f3w");
-        put("nx", "\u30f3x");	put("nz", "\u30f3z");	put("nl", "\u30f3l");	
+        put("vyo", "\u30f4\u30e7");     
+        put("bb", "\u30c3b");   put("cc", "\u30c3c");   put("dd", "\u30c3d");
+        put("ff", "\u30c3f");   put("gg", "\u30c3g");   put("hh", "\u30c3h");
+        put("jj", "\u30c3j");   put("kk", "\u30c3k");   put("ll", "\u30c3l");
+        put("mm", "\u30c3m");   put("pp", "\u30c3p");   put("qq", "\u30c3q");
+        put("rr", "\u30c3r");   put("ss", "\u30c3s");   put("tt", "\u30c3t");
+        put("vv", "\u30c3v");   put("ww", "\u30c3w");   put("xx", "\u30c3x");
+        put("yy", "\u30c3y");   put("zz", "\u30c3z");   put("nb", "\u30f3b");
+        put("nc", "\u30f3c");   put("nd", "\u30f3d");   put("nf", "\u30f3f");
+        put("ng", "\u30f3g");   put("nh", "\u30f3h");   put("nj", "\u30f3j");
+        put("nk", "\u30f3k");   put("nm", "\u30f3m");   put("np", "\u30f3p");
+        put("nq", "\u30f3q");   put("nr", "\u30f3r");   put("ns", "\u30f3s");
+        put("nt", "\u30f3t");   put("nv", "\u30f3v");   put("nw", "\u30f3w");
+        put("nx", "\u30f3x");   put("nz", "\u30f3z");   put("nl", "\u30f3l");   
         put("-", "\u30fc"); put(".", "\u3002"); put(",", "\u3001"); put("?", "\uff1f"); put("/", "\u30fb");
     }};
 
+    /** Max length of the target text */
+    private static final int MAX_LENGTH = 4;
+
+
+    /**
+     * Default constructor
+     */
+    public RomkanFullKatakana() {
+        super();
+    }
+
     /** @see LetterConverter#convert */
     public boolean convert(ComposingText text) {
         return convert(text, mRomkanTable);
@@ -148,9 +159,9 @@
     /**
      * convert Romaji to Full Katakana
      *
-     * @param text		The input/output text
-     * @param table		HashMap for Romaji-to-Kana conversion
-     * @return			{@code true} if conversion is compleated; {@code false} if not
+     * @param text              The input/output text
+     * @param table             HashMap for Romaji-to-Kana conversion
+     * @return                  {@code true} if conversion is compleated; {@code false} if not
      */
     public static boolean convert(ComposingText text, HashMap<String, String> table) {
         int cursor = text.getCursor(1);
@@ -159,21 +170,17 @@
             return false;
         }
 
-        StrSegment[] str = new StrSegment[3];
-        int start = 2;
-        str[2] = text.getStrSegment(ComposingText.LAYER1, cursor - 1);
-        if (cursor >= 2) {
-            str[1] = text.getStrSegment(ComposingText.LAYER1, cursor - 2);
-            start = 1;
-            if (cursor >= 3) {
-                str[0] = text.getStrSegment(ComposingText.LAYER1, cursor - 3);
-                start = 0;
-            }
+        StrSegment[] str = new StrSegment[MAX_LENGTH];
+        int start = MAX_LENGTH;
+        int checkLength = Math.min(cursor, MAX_LENGTH);
+        for (int i = 1; i <= checkLength; i++) {
+            str[MAX_LENGTH - i] = text.getStrSegment(1, cursor - i);
+            start--;
         }
 
         StringBuffer key = new StringBuffer();
-        while (start < 3) {
-            for (int i = start; i < 3; i++) {
+        while (start < MAX_LENGTH) {
+            for (int i = start; i < MAX_LENGTH; i++) {
                 key.append(str[i].string);
             }
             boolean upper = Character.isUpperCase(key.charAt(key.length() - 1));
@@ -185,19 +192,15 @@
                 StrSegment[] out;
                 if (match.length() == 1) {
                     out = new StrSegment[1];
-                    out[0] = new StrSegment(match, str[start].from, str[2].to);
-                    text.replaceStrSegment(ComposingText.LAYER1, out, 3 - start);
+                    out[0] = new StrSegment(match, str[start].from, str[MAX_LENGTH - 1].to);
+                    text.replaceStrSegment(ComposingText.LAYER1, out, MAX_LENGTH - start);
                 } else {
                     out = new StrSegment[2];
-                    out[0] = new StrSegment(match.substring(0, match.length() - 1), str[start].from, str[2].to - 1);
-                    out[1] = new StrSegment(match.substring(match.length() - 1), str[2].to, str[2].to);
-                    text.replaceStrSegment(ComposingText.LAYER1, out, 3 - start);
-                }
-                String regex = ".*[a-zA-Z]$";
-                Pattern p = Pattern.compile(regex);
-                Matcher m = p.matcher(text.toString(ComposingText.LAYER1));
-                if (m.matches()) {
-                    text.moveCursor(ComposingText.LAYER1, -1);
+                    out[0] = new StrSegment(match.substring(0, match.length() - 1),
+                                            str[start].from, str[MAX_LENGTH - 1].to - 1);
+                    out[1] = new StrSegment(match.substring(match.length() - 1),
+                                            str[MAX_LENGTH - 1].to, str[MAX_LENGTH - 1].to);
+                    text.replaceStrSegment(1, out, MAX_LENGTH - start);
                 }
                 return true;
             }
diff --git a/src/jp/co/omronsoft/openwnn/JAJP/RomkanHalfKatakana.java b/src/jp/co/omronsoft/openwnn/JAJP/RomkanHalfKatakana.java
index 732f4b5..b119fe8 100644
--- a/src/jp/co/omronsoft/openwnn/JAJP/RomkanHalfKatakana.java
+++ b/src/jp/co/omronsoft/openwnn/JAJP/RomkanHalfKatakana.java
@@ -136,6 +136,13 @@
         put("-", "\uff70"); put(".", "\uff61"); put(",", "\uff64"); put("/", "\uff65");
     }};
 
+    /**
+     * Default constructor
+     */
+    public RomkanHalfKatakana() {
+        super();
+    }
+
     /** @see LetterConverter#convert */
     public boolean convert(ComposingText text) {
         return RomkanFullKatakana.convert(text, mRomkanTable);
diff --git a/src/jp/co/omronsoft/openwnn/OpenWnn.java b/src/jp/co/omronsoft/openwnn/OpenWnn.java
index a68ef74..fdc643b 100644
--- a/src/jp/co/omronsoft/openwnn/OpenWnn.java
+++ b/src/jp/co/omronsoft/openwnn/OpenWnn.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.view.View;
 import android.view.KeyEvent;
+import android.view.MotionEvent;
 import android.content.SharedPreferences;
 import android.preference.PreferenceManager;
 
@@ -30,7 +31,6 @@
 import android.content.res.Configuration;
 import android.graphics.*;
 import android.graphics.drawable.*;
-import android.view.MotionEvent;
 
 /**
  * The OpenWnn IME's base class.
@@ -140,7 +140,7 @@
     @Override public void onStartInput(EditorInfo attribute, boolean restarting) {
         super.onStartInput(attribute, restarting);
         mInputConnection = getCurrentInputConnection();
-        if (mComposingText != null) {
+        if (!restarting && mComposingText != null) {
             mComposingText.clear();
         }
     }
diff --git a/src/jp/co/omronsoft/openwnn/OpenWnnEN.java b/src/jp/co/omronsoft/openwnn/OpenWnnEN.java
index 9801849..028daec 100644
--- a/src/jp/co/omronsoft/openwnn/OpenWnnEN.java
+++ b/src/jp/co/omronsoft/openwnn/OpenWnnEN.java
@@ -520,8 +520,13 @@
             updateComposingText(1);
             ret = processKeyEvent(ev.keyEvent);
             if (!ret) {
-                mInputConnection.sendKeyEvent(ev.keyEvent);
-                mInputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, ev.keyEvent.getKeyCode()));
+            	int code = keyEvent.getKeyCode();
+            	if (code == KeyEvent.KEYCODE_ENTER) {
+                    sendKeyChar('\n');
+            	} else {
+                    mInputConnection.sendKeyEvent(keyEvent);
+                    mInputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, code));
+            	}
                 ret = true;
             }
             mPreviousEventCode = ev.code;
@@ -977,7 +982,7 @@
         case EditorInfo.TYPE_CLASS_TEXT:
             switch (info.inputType & EditorInfo.TYPE_MASK_VARIATION) {
             case EditorInfo.TYPE_TEXT_VARIATION_PASSWORD:
-                mEnableAutoHideKeyboard = true;
+            case EditorInfo.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD:
                 mOptLearning = false;
                 mOptPrediction = false;
                 break;
diff --git a/src/jp/co/omronsoft/openwnn/OpenWnnJAJP.java b/src/jp/co/omronsoft/openwnn/OpenWnnJAJP.java
index 91fff14..47df1ca 100644
--- a/src/jp/co/omronsoft/openwnn/OpenWnnJAJP.java
+++ b/src/jp/co/omronsoft/openwnn/OpenWnnJAJP.java
@@ -284,7 +284,7 @@
 
     /** Symbol lists to display when the symbol key is pressed */
     private static final String[] SYMBOL_LISTS = {
-    	SymbolList.SYMBOL_JAPANESE_FACE, SymbolList.SYMBOL_JAPANESE, SymbolList.SYMBOL_ENGLISH
+        SymbolList.SYMBOL_JAPANESE_FACE, SymbolList.SYMBOL_JAPANESE, SymbolList.SYMBOL_ENGLISH
     };
 
     /** Current symbol list */
@@ -392,6 +392,9 @@
     /** Whether there is a continued predicted candidate */
     private boolean mHasContinuedPrediction = false;
 
+    /** Whether text selection has started */
+    private boolean mHasStartedTextSelection = true;
+
     /** {@code Handler} for drawing candidates/displaying tutorial */
     Handler mHandler = new Handler() {
             @Override
@@ -481,30 +484,32 @@
     /** @see jp.co.omronsoft.openwnn.OpenWnn#onStartInputView */
     @Override public void onStartInputView(EditorInfo attribute, boolean restarting) {
 
-        EngineState state = new EngineState();
-        state.temporaryMode = EngineState.TEMPORARY_DICTIONARY_MODE_NONE;
-        updateEngineState(state);
+        if (restarting) {
+            super.onStartInputView(attribute, restarting);
+        } else {
+            EngineState state = new EngineState();
+            state.temporaryMode = EngineState.TEMPORARY_DICTIONARY_MODE_NONE;
+            updateEngineState(state);
 
-        mPrevCommitCount = 0;
-        clearCommitInfo();
+            mPrevCommitCount = 0;
+            clearCommitInfo();
+            
+            ((DefaultSoftKeyboard) mInputViewManager).resetCurrentKeyboard();
+            
+            super.onStartInputView(attribute, restarting);
+            
+            mCandidatesViewManager.clearCandidates();
+            mStatus = STATUS_INIT;
+            mExactMatchMode = false;       
 
-        ((DefaultSoftKeyboard) mInputViewManager).resetCurrentKeyboard();
-
-        super.onStartInputView(attribute, restarting);
-
-        /* initialize views */
-        mCandidatesViewManager.clearCandidates();
-        /* initialize status */
-        mStatus = STATUS_INIT;
-        mExactMatchMode = false;       
+            /* hardware keyboard support */
+            mHardShift = 0;
+            mHardAlt   = 0;
+            updateMetaKeyStateDisplay();
+        }
         /* load preferences */
         SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
 
-        /* hardware keyboard support */
-        mHardShift = 0;
-        mHardAlt   = 0;
-        updateMetaKeyStateDisplay();
-
         /* initialize the engine's state */
         fitInputType(pref, attribute);
 
@@ -535,8 +540,12 @@
 
         mComposingStartCursor = (candidatesStart < 0) ? newSelEnd : candidatesStart;
 
+        boolean prevSelection = mHasStartedTextSelection;
         if (newSelStart != newSelEnd) {
             clearCommitInfo();
+            mHasStartedTextSelection = true;
+        } else {
+            mHasStartedTextSelection = false;
         }
 
         if (mHasContinuedPrediction) {
@@ -567,7 +576,9 @@
                             mInputConnection.finishComposingText();
                         }
                     }
-                    initializeScreen();
+                    if ((prevSelection != mHasStartedTextSelection) || !mHasStartedTextSelection) {
+                        initializeScreen();
+                    }
                 }
             }
         }
@@ -689,10 +700,23 @@
         }
 
         if (mDirectInputMode) {
-            if (ev.code == OpenWnnEvent.INPUT_SOFT_KEY && mInputConnection != null) {
-                mInputConnection.sendKeyEvent(keyEvent);
-                mInputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP,
-                                                           keyEvent.getKeyCode()));
+            if (mInputConnection != null) {
+                switch (ev.code) {
+                case OpenWnnEvent.INPUT_SOFT_KEY:
+                    if (keyCode == KeyEvent.KEYCODE_ENTER) {
+                        sendKeyChar('\n');
+                    } else {
+                        mInputConnection.sendKeyEvent(keyEvent);
+                        mInputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP,
+                                                                   keyEvent.getKeyCode()));
+                    }
+                    break;
+                case OpenWnnEvent.INPUT_CHAR:
+                    sendKeyChar(ev.chars[0]);
+                    break;
+                default:
+                    break;
+                }
             }
 
             /* return if InputConnection is not active */
@@ -760,7 +784,7 @@
 
         case OpenWnnEvent.TOGGLE_REVERSE_CHAR:
             if (((mStatus & ~STATUS_CANDIDATE_FULL) == STATUS_INPUT)
-                && !(mEngineState.isConvertState())) {
+                && !(mEngineState.isConvertState()) && (ev.toggleTable != null)) {
 
                 int cursor = mComposingText.getCursor(ComposingText.LAYER1);
                 if (cursor > 0) {
@@ -833,8 +857,13 @@
         case OpenWnnEvent.INPUT_SOFT_KEY:
             ret = processKeyEvent(keyEvent);
             if (!ret) {
-                mInputConnection.sendKeyEvent(keyEvent);
-                mInputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, keyEvent.getKeyCode()));
+                int code = keyEvent.getKeyCode();
+                if (code == KeyEvent.KEYCODE_ENTER) {
+                    sendKeyChar('\n');
+                } else {
+                    mInputConnection.sendKeyEvent(keyEvent);
+                    mInputConnection.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, code));
+                }
                 ret = true;
             }
             break;
@@ -915,7 +944,7 @@
         if (ev.isPrintingKey()) {
             /* do nothing if the character is not able to display or the character is dead key */
             if ((mHardShift > 0 && mHardAlt > 0) ||
-                (ev.isAltPressed() == true && ev.isShiftPressed() == true)) {
+                (ev.isAltPressed() && ev.isShiftPressed())) {
                 int charCode = ev.getUnicodeChar(MetaKeyKeyListener.META_SHIFT_ON | MetaKeyKeyListener.META_ALT_ON);
                 if (charCode == 0 || (charCode & KeyCharacterMap.COMBINING_ACCENT) != 0 || charCode == PRIVATE_AREA_CODE) {
                     if(mHardShift == 1){
@@ -1022,7 +1051,8 @@
                                              mComposingText.toString(ComposingText.LAYER1).length());
                     mExactMatchMode = false;
                 } else {
-                    if (mComposingText.size(ComposingText.LAYER1) == 1) {
+                    if ((mComposingText.size(ComposingText.LAYER1) == 1)
+                        && mComposingText.getCursor(ComposingText.LAYER1) != 0) {
                         initializeScreen();
                         return true;
                     } else {
@@ -1095,6 +1125,8 @@
                 return true;
 
             case KeyEvent.KEYCODE_CALL:
+            case KeyEvent.KEYCODE_VOLUME_DOWN:
+            case KeyEvent.KEYCODE_VOLUME_UP:
                 return false;
 
             default:
@@ -1128,14 +1160,6 @@
                 }
             } else {
                 switch (key) {
-                case KeyEvent.KEYCODE_DPAD_CENTER:
-                case KeyEvent.KEYCODE_ENTER:
-                    if (mEnableAutoHideKeyboard) {
-                        mInputViewManager.closing();
-                        requestHideSelf(0);
-                        return true;
-                    }
-                    break;
                 case KeyEvent.KEYCODE_BACK:
                     /*
                      * If 'BACK' key is pressed when the SW-keyboard is shown
@@ -1249,7 +1273,11 @@
             }
 
             if (completed) {
-                commitText(false);
+                if (!mEngineState.isEnglish()) {
+                    commitTextWithoutLastAlphabet();
+                } else {
+                    commitText(false);
+                }
             } else {
                 updateViewStatus(ComposingText.LAYER1, false, true);
             }
@@ -1362,6 +1390,8 @@
             break;
             
         case KeyEvent.KEYCODE_CALL:
+        case KeyEvent.KEYCODE_VOLUME_DOWN:
+        case KeyEvent.KEYCODE_VOLUME_UP:
             return false;
             
         case KeyEvent.KEYCODE_DPAD_CENTER:
@@ -1473,7 +1503,9 @@
                 displayCursor = (cursor == 0) ?  0 : 1;
             } 
             /* update the composing text on the EditView */
-            mInputConnection.setComposingText(mDisplayText, displayCursor);
+            if ((mDisplayText.length() != 0) || !mHasStartedTextSelection) {
+                mInputConnection.setComposingText(mDisplayText, displayCursor);
+            }
         }
     }
 
@@ -1567,6 +1599,22 @@
     }
 
     /**
+     * Commit the composing text except the alphabet character at the tail.
+     */
+    private void commitTextWithoutLastAlphabet() {
+        int layer = mTargetLayer;
+        String tmp = mComposingText.getStrSegment(layer, -1).string;
+
+        if (isAlphabetLast(tmp)) {
+            mComposingText.moveCursor(ComposingText.LAYER1, -1);
+            commitText(false);
+            mComposingText.moveCursor(ComposingText.LAYER1, 1);
+        } else {
+            commitText(false);
+        }
+    }
+    
+    /**
      * Commit all uncommitted words.
      */
     private void commitAllText() {
@@ -1632,16 +1680,16 @@
             layer = 1; /* for connected prediction */
         }
 
-        boolean commited = autoCommitEnglish();
+        boolean committed = autoCommitEnglish();
         mEnableAutoDeleteSpace = true;
 
         if (layer == ComposingText.LAYER2) {
             EngineState state = new EngineState();
             state.convertType = EngineState.CONVERT_TYPE_RENBUN;
             updateEngineState(state);
-            updateViewStatus(layer, !commited, false);
+            updateViewStatus(layer, !committed, false);
         } else {
-            updateViewStatusForPrediction(!commited, false);
+            updateViewStatusForPrediction(!committed, false);
         }
 
         if (mComposingText.size(ComposingText.LAYER0) == 0) {
@@ -1955,10 +2003,7 @@
 
             String str = table[0];
             /* shift on */
-            if (mAutoCaps
-                && isEnglishPrediction()
-                && (getShiftKeyState(getCurrentInputEditorInfo()) == 1)) {
-
+            if (mAutoCaps && (getShiftKeyState(getCurrentInputEditorInfo()) == 1)) {
                 char top = table[0].charAt(0);
                 if (Character.isLowerCase(top)) {
                     str = Character.toString(Character.toUpperCase(top));
@@ -1991,7 +2036,7 @@
         } else {
             boolean completed = mPreConverter.convert(text);
             if (completed) {
-                commitText(false);
+                commitTextWithoutLastAlphabet();
             } else {
                 mStatus = STATUS_INPUT;
                 updateViewStatusForPrediction(true, true);
@@ -2254,17 +2299,15 @@
                 break;
                 
             case EditorInfo.TYPE_TEXT_VARIATION_PASSWORD:
+            case EditorInfo.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD:
                 mEnableLearning = false;
                 mEnableConverter = false;
                 mEnableSymbolListNonHalf = false;
                 mFilter.filter = CandidateFilter.FILTER_NON_ASCII; 
                 mDisableAutoCommitEnglishMask |= AUTO_COMMIT_ENGLISH_OFF;
-                mEnableAutoHideKeyboard = true;
                 break;
 
             case EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS:
-                mFilter.filter = CandidateFilter.FILTER_NON_ASCII; 
-                mEnableSymbolListNonHalf = false;
                 mEnableAutoInsertSpace = false;
                 mDisableAutoCommitEnglishMask |= AUTO_COMMIT_ENGLISH_OFF;
                 preferenceDictionary = EngineState.PREFERENCE_DICTIONARY_EMAIL_ADDRESS_URI;
@@ -2505,9 +2548,9 @@
         DefaultSoftKeyboardJAJP inputManager = ((DefaultSoftKeyboardJAJP) mInputViewManager);
         View v = inputManager.getKeyboardView();
         v.setOnTouchListener(new View.OnTouchListener() {
-				public boolean onTouch(View v, MotionEvent event) {
-					return true;
-				}});
+                public boolean onTouch(View v, MotionEvent event) {
+                    return true;
+                }});
         mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_START_TUTORIAL), 500);
     }
 
diff --git a/src/jp/co/omronsoft/openwnn/TextCandidatesViewManager.java b/src/jp/co/omronsoft/openwnn/TextCandidatesViewManager.java
index c8291f1..c84e845 100644
--- a/src/jp/co/omronsoft/openwnn/TextCandidatesViewManager.java
+++ b/src/jp/co/omronsoft/openwnn/TextCandidatesViewManager.java
@@ -45,7 +45,7 @@
 import android.widget.ScrollView;
 import android.widget.TextView;
 import android.widget.EditText;
-import android.widget.RelativeLayout;
+import android.widget.AbsoluteLayout;
 import android.widget.ImageView;
 import android.graphics.drawable.Drawable;
 
@@ -86,7 +86,7 @@
     /** Layout for the candidates list on normal view */
     private LinearLayout mViewCandidateList1st;
     /** Layout for the candidates list on full view */
-    private RelativeLayout mViewCandidateList2nd;
+    private AbsoluteLayout mViewCandidateList2nd;
     /** {@link OpenWnn} instance using this manager */
     private OpenWnn mWnn;
     /** View type (VIEW_TYPE_NORMAL or VIEW_TYPE_FULL or VIEW_TYPE_CLOSE) */
@@ -98,6 +98,11 @@
     private int mViewWidth;
     /** Height of the view */
     private int mViewHeight;
+    /** Minimum width of a candidate (density support) */
+    private int mCandidateMinimumWidth;
+    /** Maximum width of a candidate (density support) */
+    private int mCandidateMinimumHeight;
+
     /** Whether hide the view if there is no candidates */
     private boolean mAutoHideMode;
     /** The converter to be get candidates from and notice the selected candidate to. */
@@ -152,7 +157,7 @@
     /** Id of the top line view (in full view) */
     private int mFullViewPrevLineTopId;
     /** Layout of the previous candidate (in full view) */
-    private RelativeLayout.LayoutParams mFullViewPrevParams;
+    private ViewGroup.LayoutParams mFullViewPrevParams;
     /** Whether all candidates is displayed */
     private boolean mCreateCandidateDone;
     /** Number of lines in normal view */
@@ -260,6 +265,8 @@
         mWnn = parent;
         mViewWidth = width;
         mViewHeight = height;
+        mCandidateMinimumWidth = (int)(CANDIDATE_MINIMUM_WIDTH * mMetrics.density);
+        mCandidateMinimumHeight = (int)(CANDIDATE_MINIMUM_HEIGHT * mMetrics.density);
         mPortrait = 
             (parent.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE);
 
@@ -274,7 +281,7 @@
         mViewCandidateBase = (ViewGroup)mViewBody.findViewById(R.id.candview_base);
 
         createNormalCandidateView();
-        mViewCandidateList2nd = (RelativeLayout)mViewBody.findViewById(R.id.candidates_2nd_view);
+        mViewCandidateList2nd = (AbsoluteLayout)mViewBody.findViewById(R.id.candidates_2nd_view);
 
         mReadMoreButtonWidth = r.getDrawable(R.drawable.cand_up).getMinimumWidth();
 
@@ -361,7 +368,7 @@
             LinearLayout lineView = new LinearLayout(mViewBodyScroll.getContext());
             lineView.setOrientation(LinearLayout.HORIZONTAL);
             LinearLayout.LayoutParams layoutParams = 
-                new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
+                new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                                               ViewGroup.LayoutParams.WRAP_CONTENT);
             lineView.setLayoutParams(layoutParams);
             for (int j = 0; j < (width / getCandidateMinimumWidth()); j++) {
@@ -568,23 +575,13 @@
                 mLineCount++;
             }
 
-            RelativeLayout layout = mViewCandidateList2nd;
+            ViewGroup layout = mViewCandidateList2nd;
 
             int width = indentWidth * occupyCount;
             int height = getCandidateMinimumHeight();
-            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width, height);
 
-            if (mFullViewPrevLineTopId == 0) {
-                params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-            } else {
-                params.addRule(RelativeLayout.BELOW, mFullViewPrevLineTopId);
-            }
-            
-            if (mFullViewOccupyCount == 0) {
-                params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
-            } else {
-                params.addRule(RelativeLayout.RIGHT_OF, (mWordCount - 1));
-            }
+
+            ViewGroup.LayoutParams params = buildLayoutParams(mViewCandidateList2nd, width, height);
 
             textView = (TextView) layout.getChildAt(mFullViewWordCount);
             if (textView == null) {
@@ -680,6 +677,30 @@
     }
 
     /**
+     * Create AbsoluteLayout.LayoutParams
+     * @param layout AbsoluteLayout
+     * @param width
+     * @param height
+     * @return ViewGroup.LayoutParams
+     */
+    private ViewGroup.LayoutParams buildLayoutParams(AbsoluteLayout layout, int width, int height) {
+
+        int indentWidth = mViewWidth / FULL_VIEW_DIV;
+        int x         = indentWidth * mFullViewOccupyCount;
+        int nomalLine = (mPortrait) ? LINE_NUM_PORTRAIT : LINE_NUM_LANDSCAPE;
+        int y         = getCandidateMinimumHeight() * (mLineCount - nomalLine - 1);
+        ViewGroup.LayoutParams params
+              = new AbsoluteLayout.LayoutParams(width, height, x, y);
+
+        return params;
+    }
+
+
+
+            
+
+
+    /**
      * Create a view for a candidate.
      * @return the view
      */
@@ -743,7 +764,7 @@
     public void clearCandidates() {
         clearNormalViewCandidate();
 
-        RelativeLayout layout = mViewCandidateList2nd;
+        ViewGroup layout = mViewCandidateList2nd;
         int size = layout.getChildCount();
         for (int i = 0; i < size; i++) {
             View v = layout.getChildAt(i);
@@ -877,6 +898,10 @@
      * @return          The width of string to draw
      */ 
     public int measureText(CharSequence text, int start, int end) {
+        if (end - start < 3) {
+            return getCandidateMinimumWidth();
+        }
+
         TextPaint paint = mViewCandidateTemplate.getPaint();
         return (int)paint.measureText(text, start, end);
     }
@@ -956,13 +981,13 @@
      * @return the minimum width of a candidate view.
      */
     private int getCandidateMinimumWidth() {
-        return (int)(CANDIDATE_MINIMUM_WIDTH * mMetrics.density);
+        return mCandidateMinimumWidth;
     }
 
     /**
      * @return the minimum height of a candidate view.
      */
     private int getCandidateMinimumHeight() {
-        return (int)(CANDIDATE_MINIMUM_HEIGHT * mMetrics.density);
+        return mCandidateMinimumHeight;
     }
 }
diff --git a/src/jp/co/omronsoft/openwnn/UserDictionaryToolsEdit.java b/src/jp/co/omronsoft/openwnn/UserDictionaryToolsEdit.java
index a12496a..9a023e5 100644
--- a/src/jp/co/omronsoft/openwnn/UserDictionaryToolsEdit.java
+++ b/src/jp/co/omronsoft/openwnn/UserDictionaryToolsEdit.java
@@ -169,8 +169,9 @@
         if (keyCode == KeyEvent.KEYCODE_BACK) {
             /* go back to the word list view */
             screenTransition();
+            return true;
         }
-        return false;
+        return super.onKeyDown(keyCode, event);
     }
 
     /**
@@ -390,7 +391,7 @@
     private boolean inputDataCheck(View v) {
 
         /* return false if the length of the string exceeds the limit. */
-        if ((((TextView)v).getTextSize()) > MAX_TEXT_SIZE) {
+        if ((((TextView)v).getText().length()) > MAX_TEXT_SIZE) {
             showDialog(DIALOG_CONTROL_OVER_MAX_TEXT_SIZE);
             Log.e("OpenWnn", "inputDataCheck() : over max string length.");
             return false;
diff --git a/src/jp/co/omronsoft/openwnn/UserDictionaryToolsList.java b/src/jp/co/omronsoft/openwnn/UserDictionaryToolsList.java
index 0b9a2cd..15d1f4a 100644
--- a/src/jp/co/omronsoft/openwnn/UserDictionaryToolsList.java
+++ b/src/jp/co/omronsoft/openwnn/UserDictionaryToolsList.java
@@ -331,7 +331,7 @@
             openOptionsMenu();
             return true;
         }
-        return false;
+         return super.onKeyUp(keyCode, event);
     }
 
     /** @see android.app.Activity#onCreateDialog */
@@ -675,7 +675,7 @@
 
                 row.addView(stroke);
                 row.addView(candidate);
-                mTableLayout.addView(row, tableCreateParam(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+                mTableLayout.addView(row, tableCreateParam(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
             }
         }
 
