OSDN Git Service

トグル入力以外のフリック完成(ガイドはまだ)
[nicownn/NicoWnn.git] / src / com / hiroshica / android / input / nicownn2 / JAJP / DefaultSoftKeyboardJAJP.java
index bafa98a..c8d7a24 100644 (file)
@@ -96,8 +96,8 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
        /** Key code for EISU-KANA conversion */
        private static final int KEYCODE_EISU_KANA = -305;
 
-       /** Key code for switching to full-width Nikotouch mode */
-       private static final int KEYCODE_SWITCH_FULL_NIKO = -400;
+       /** Key code for switching to full-width Nicotouch mode */
+       private static final int KEYCODE_SWITCH_FULL_NICO = -400;
 
        /** Key code for NOP (no-operation) */
        private static final int KEYCODE_NOP = -310;
@@ -105,7 +105,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
 
        /** Input mode toggle cycle table */
        private static final int[] JP_MODE_CYCLE_TABLE = {
-               KEYMODE_JA_FULL_NIKO, KEYMODE_JA_FULL_HIRAGANA, KEYMODE_JA_HALF_ALPHABET, KEYMODE_JA_HALF_NUMBER,
+               KEYMODE_JA_FULL_HIRAGANA, KEYMODE_JA_HALF_ALPHABET, KEYMODE_JA_HALF_NUMBER,
        };
 
        /** Definition for {@code mInputType} (toggle) */
@@ -284,109 +284,8 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        put("u", "U"); put("v", "V"); put("w", "W"); put("x", "X"); put("y", "Y"); 
                        put("Z", "z"); 
                        put("z", "Z"); 
-               }};
-
-       /** Toggle cycle table for full-width Nikotouch */
-       private static final String[][] JP_FULL_NIKO_CYCLE_TABLE = {
-               {"\u3042"}, {"\u3044"}, {"\u3046"}, {"\u3048"}, {"\u304a"},      {"."},      {"-"},      {"@"},      {"_"}, {"1"},
-               {"\u304b"}, {"\u304d"}, {"\u304f"}, {"\u3051"}, {"\u3053"},      {" "},      {"a"},      {"b"},      {"c"}, {"2"},
-               {"\u3055"}, {"\u3057"}, {"\u3059"}, {"\u305b"}, {"\u305d"},      {"/"},      {"d"},      {"e"},      {"f"}, {"3"},
-               {"\u305f"}, {"\u3061"}, {"\u3064"}, {"\u3066"}, {"\u3068"}, {"\u3063"},      {"g"},      {"h"},      {"i"}, {"4"},
-               {"\u306a"}, {"\u306b"}, {"\u306c"}, {"\u306d"}, {"\u306e"},      {"("},      {"j"},      {"k"},      {"l"}, {"5"},
-               {"\u306f"}, {"\u3072"}, {"\u3075"}, {"\u3078"}, {"\u307b"},      {")"},      {"m"},      {"n"},      {"o"}, {"6"},
-               {"\u307e"}, {"\u307f"}, {"\u3080"}, {"\u3081"}, {"\u3082"},      {"p"},      {"q"},      {"r"},      {"s"}, {"7"},
-               {"\u3084"}, {"\u3086"}, {"\u3088"}, {"\u3083"}, {"\u3085"}, {"\u3087"},      {"t"},      {"u"},      {"v"}, {"8"},
-               {"\u3089"}, {"\u308a"}, {"\u308b"}, {"\u308c"}, {"\u308d"},      {"w"},      {"x"},      {"y"},      {"z"}, {"9"},
-               {"\u308f"}, {"\u3092"}, {"\u3093"}, {"\u3001"}, {"\u3002"}, {"\u30fc"}, {"\u30fb"}, {"\uff01"}, {"\uff1f"}, {"0"},
-       };
-       /** Toggle cycle table for full-width belltouch */
-       private static final String[][] JP_FULL_BELL_CYCLE_TABLE = {
-               {"\u3042"}, {"\u3044"}, {"\u3046"}, {"\u3048"}, {"\u304a"},      {"a"},      {"b"},      {"c"},      {"d"}, {"e"},
-               {"\u304b"}, {"\u304d"}, {"\u304f"}, {"\u3051"}, {"\u3053"},      {"f"},      {"g"},      {"h"},      {"i"}, {"j"},
-               {"\u3055"}, {"\u3057"}, {"\u3059"}, {"\u305b"}, {"\u305d"},      {"k"},      {"l"},      {"m"},      {"n"}, {"o"},
-               {"\u305f"}, {"\u3061"}, {"\u3064"}, {"\u3066"}, {"\u3068"},      {"p"},      {"q"},      {"r"},      {"s"}, {"t"},
-               {"\u306a"}, {"\u306b"}, {"\u306c"}, {"\u306d"}, {"\u306e"},      {"u"},      {"v"},      {"w"},      {"x"}, {"y"},
-               {"\u306f"}, {"\u3072"}, {"\u3075"}, {"\u3078"}, {"\u307b"},      {"z"},      {" "},      {" "},      {" "}, {" "},
-               {"\u307e"}, {"\u307f"}, {"\u3080"}, {"\u3081"}, {"\u3082"},      {" "},      {" "},      {" "},      {" "}, {" "},
-               {"\u3084"},      {" "}, {"\u3086"},      {" "}, {"\u3088"}, {"\u30fc"}, {"\u30fb"}, {"\uff01"}, {"\uff1f"}, {" "},
-               {"\u3089"}, {"\u308a"}, {"\u308b"}, {"\u308c"}, {"\u308d"},      {"1"},      {"2"},      {"3"},      {"4"}, {"5"},
-               {"\u308f"}, {"\u3092"}, {"\u3093"}, {"\u3001"}, {"\u3002"},      {"6"},      {"7"},      {"8"},      {"9"}, {"0"},
-       };
-
-       /** Toggle cycle table for full-width Nikotouch */
-       private static final String[][] JP_FULL_NIKO_CYCLE_TABLE_BIG = {
-               {"\u3042"}, {"\u3044"}, {"\u3046"}, {"\u3048"}, {"\u304a"},      {"."},      {"-"},      {"@"},      {"_"}, {"1"},
-               {"\u304b"}, {"\u304d"}, {"\u304f"}, {"\u3051"}, {"\u3053"},      {" "},      {"A"},      {"B"},      {"C"}, {"2"},
-               {"\u3055"}, {"\u3057"}, {"\u3059"}, {"\u305b"}, {"\u305d"},      {"/"},      {"D"},      {"E"},      {"F"}, {"3"},
-               {"\u305f"}, {"\u3061"}, {"\u3064"}, {"\u3066"}, {"\u3068"}, {"\u3063"},      {"G"},      {"H"},      {"I"}, {"4"},
-               {"\u306a"}, {"\u306b"}, {"\u306c"}, {"\u306d"}, {"\u306e"},      {"("},      {"J"},      {"K"},      {"L"}, {"5"},
-               {"\u306f"}, {"\u3072"}, {"\u3075"}, {"\u3078"}, {"\u307b"},      {")"},      {"M"},      {"N"},      {"O"}, {"6"},
-               {"\u307e"}, {"\u307f"}, {"\u3080"}, {"\u3081"}, {"\u3082"},      {"P"},      {"Q"},      {"R"},      {"S"}, {"7"},
-               {"\u3084"}, {"\u3086"}, {"\u3088"}, {"\u3083"}, {"\u3085"}, {"\u3087"},      {"T"},      {"U"},      {"V"}, {"8"},
-               {"\u3089"}, {"\u308a"}, {"\u308b"}, {"\u308c"}, {"\u308d"},      {"W"},      {"X"},      {"Y"},      {"Z"}, {"9"},
-               {"\u308f"}, {"\u3092"}, {"\u3093"}, {"\u3001"}, {"\u3002"}, {"\u30fc"}, {"\u30fb"}, {"\uff01"}, {"\uff1f"}, {"0"},
-       };
-       /** Toggle cycle table for full-width belltouch */
-       private static final String[][] JP_FULL_BELL_CYCLE_TABLE_BIG = {
-               {"\u3042"}, {"\u3044"}, {"\u3046"}, {"\u3048"}, {"\u304a"},      {"A"},      {"B"},      {"C"},      {"D"}, {"E"},
-               {"\u304b"}, {"\u304d"}, {"\u304f"}, {"\u3051"}, {"\u3053"},      {"F"},      {"G"},      {"H"},      {"I"}, {"J"},
-               {"\u3055"}, {"\u3057"}, {"\u3059"}, {"\u305b"}, {"\u305d"},      {"K"},      {"L"},      {"M"},      {"N"}, {"O"},
-               {"\u305f"}, {"\u3061"}, {"\u3064"}, {"\u3066"}, {"\u3068"},      {"P"},      {"Q"},      {"R"},      {"S"}, {"T"},
-               {"\u306a"}, {"\u306b"}, {"\u306c"}, {"\u306d"}, {"\u306e"},      {"U"},      {"V"},      {"W"},      {"X"}, {"Y"},
-               {"\u306f"}, {"\u3072"}, {"\u3075"}, {"\u3078"}, {"\u307b"},      {"Z"},      {" "},      {" "},      {" "}, {" "},
-               {"\u307e"}, {"\u307f"}, {"\u3080"}, {"\u3081"}, {"\u3082"},      {" "},      {" "},      {" "},      {" "}, {" "},
-               {"\u3084"},      {" "}, {"\u3086"},      {" "}, {"\u3088"}, {"\u30fc"}, {"\u30fb"}, {"\uff01"}, {"\uff1f"}, {" "},
-               {"\u3089"}, {"\u308a"}, {"\u308b"}, {"\u308c"}, {"\u308d"},      {"1"},      {"2"},      {"3"},      {"4"}, {"5"},
-               {"\u308f"}, {"\u3092"}, {"\u3093"}, {"\u3001"}, {"\u3002"},      {"6"},      {"7"},      {"8"},      {"9"}, {"0"},
-       };
-
-       /** Replace table for full-width Nikotouch */
-       private static final HashMap<String, String> JP_FULL_NIKO_REPLACE_TABLE = new HashMap<String, String>() {{
-                       put("\u3042", "\u3041"); put("\u3044", "\u3043"); put("\u3046", "\u3045"); put("\u3048", "\u3047"); put("\u304a", "\u3049"); // A
-                       put("\u3041", "\u3042"); put("\u3043", "\u3044"); put("\u3045", "\u30f4"); put("\u3047", "\u3048"); put("\u3049", "\u304a"); // a
-                       put("\u304b", "\u304c"); put("\u304d", "\u304e"); put("\u304f", "\u3050"); put("\u3051", "\u3052"); put("\u3053", "\u3054"); // K
-                       put("\u304c", "\u304b"); put("\u304e", "\u304d"); put("\u3050", "\u304f"); put("\u3052", "\u3051"); put("\u3054", "\u3053"); // k
-                       put("\u3055", "\u3056"); put("\u3057", "\u3058"); put("\u3059", "\u305a"); put("\u305b", "\u305c"); put("\u305d", "\u305e"); // S
-                       put("\u3056", "\u3055"); put("\u3058", "\u3057"); put("\u305a", "\u3059"); put("\u305c", "\u305b"); put("\u305e", "\u305d"); // s
-                       put("\u305f", "\u3060"); put("\u3061", "\u3062"); put("\u3064", "\u3065"); put("\u3066", "\u3067"); put("\u3068", "\u3069"); // T
-                       put("\u3060", "\u305f"); put("\u3062", "\u3061"); put("\u3065", "\u3063"); put("\u3067", "\u3066"); put("\u3069", "\u3068"); // t
-                       put("\u3063", "\u3064"); put("\u30f4", "\u3046");
-                       put("\u306f", "\u3070"); put("\u3072", "\u3073"); put("\u3075", "\u3076"); put("\u3078", "\u3079"); put("\u307b", "\u307c"); // H
-                       put("\u3070", "\u3071"); put("\u3073", "\u3074"); put("\u3076", "\u3077"); put("\u3079", "\u307a"); put("\u307c", "\u307d"); // h
-                       put("\u3071", "\u306f"); put("\u3074", "\u3072"); put("\u3077", "\u3075"); put("\u307a", "\u3078"); put("\u307d", "\u307b"); // h.
-                       put("\u3084", "\u3083"); put("\u3086", "\u3085"); put("\u3088", "\u3087"); // Y
-                       put("\u3083", "\u3084"); put("\u3085", "\u3086"); put("\u3087", "\u3088"); // y
-                       put("\u308f", "\u308e");
-                       put("\u308e", "\u308f");
-                       put("\u309b", "\u309c");
-                       put("\u309c", "\u309b");
-
-                       put("a", "A"); put("b", "B"); put("c", "C"); put("d", "D"); put("e", "E"); put("f", "F"); put("g", "G"); put("h", "H"); put("i", "I"); put("j", "J");
-                       put("k", "K"); put("l", "L"); put("m", "M"); put("n", "N"); put("o", "O"); put("p", "P"); put("q", "Q"); put("r", "R"); put("s", "S"); put("t", "T");
-                       put("u", "U"); put("v", "V"); put("w", "W"); put("x", "X"); put("y", "Y"); put("z", "Z");
-                       put("A", "a"); put("B", "b"); put("C", "c"); put("D", "d"); put("E", "e"); put("F", "f"); put("G", "g"); put("H", "h"); put("I", "i"); put("J", "j");
-                       put("K", "k"); put("L", "l"); put("M", "m"); put("N", "n"); put("O", "o"); put("P", "p"); put("Q", "q"); put("R", "r"); put("S", "s"); put("T", "t");
-                       put("U", "u"); put("V", "v"); put("W", "w"); put("X", "x"); put("Y", "y"); put("Z", "z");
-
-                       put("1", "\uff11"); put("2", "\uff12"); put("3", "\uff13"); put("4", "\uff14"); put("5", "\uff15");
-                       put("6", "\uff16"); put("7", "\uff17"); put("8", "\uff18"); put("9", "\uff19"); put("0", "\uff10");
-                       put("\uff11", "1"); put("\uff12", "2"); put("\uff13", "3"); put("\uff14", "4"); put("\uff15", "5");
-                       put("\uff16", "6"); put("\uff17", "7"); put("\uff18", "8"); put("\uff19", "9"); put("\uff10", "0");
-
-                       put(".", "\uff0e"); put("-", "\u2015"); put("@", "\uff20"); put("_", "\uff3f");
-                       put("\uff0e", "."); put("\u2015", "-"); put("\uff20", "@"); put("\uff3f", "_");
-
-                       put("\uff01", "!"); put("\uff1f", "?");
-                       put("!", "\uff01"); put("?", "\uff1f");
-
-                       put("\u3000", " "); put(" ", "\u3000");
-
-                       put("(", "["); put("[", "\u300c"); put("\u300c", "\u300e"); put("\u300e", "\u3010"); put("\u3010", "(");
-                       put(")", "]"); put("]", "\u300d"); put("\u300d", "\u300f"); put("\u300f", "\u3011"); put("\u3011", ")");
-               }};
-       
-
-       
+       }};
+               
        /** Character table for full-width number */
        private static final char[] INSTANT_CHAR_CODE_FULL_NUMBER = 
                "\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19\uff10\uff03\uff0a".toCharArray();
@@ -407,26 +306,30 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
        /** Type of input mode */
        private int mInputType = INPUT_TYPE_TOGGLE;
 
-       /** Previous input character code */
-       private int mPrevInputKeyCode = 0;
-
-       /** flick nicoinput **/
-       private static final int NICOFLICK_NONE       = 0;
-       private static final int NICOFLICK_1STROKE    = 1;
-       private static final int NICOFLICK_NICOSTROKE = 2;
-
-       private int mFlickNicoInput = 0;
-       private boolean mNicoFlick = false;
-       private static final HashMap<String, Integer> flickModeTable = new HashMap<String, Integer>() {{
-                       put("none_flick", 0);
-                       put("normal_stroke", 1);
-                       put("nico_stroke", 2);
-               }};
-
        /** **/
        private int mFlickLimitX;
        private int mFlickLimitY;
        
+
+       private static final NicoWnnEvent mEventTouchOtherKey    = new NicoWnnEvent(NicoWnnEvent.TOUCH_OTHER_KEY);
+       private static final NicoWnnEvent mEventCommitText       = new NicoWnnEvent(NicoWnnEvent.COMMIT_COMPOSING_TEXT);
+       private static final NicoWnnEvent mEventConvert          = new NicoWnnEvent(NicoWnnEvent.CONVERT);
+
+       private static final NicoWnnEvent mEventChangeMode12Key    = new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_OPT_TYPE_12KEY);
+       private static final NicoWnnEvent mEventChangeModeQwerty   = new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_OPT_TYPE_QWERTY);
+       private static final NicoWnnEvent mEventChangeModeSymbol   = new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_SYMBOL);
+       private static final NicoWnnEvent mEventChangeModeDocomo   = new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_DOCOMOSYMBOL);
+       private static final NicoWnnEvent mEventChangeModeEisuKana = new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_EISU_KANA);
+
+       private static final NicoWnnEvent mEventInputShiftLeft   = new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SHIFT_LEFT));
+
+       private static final NicoWnnEvent mEventInputKeyDel      = new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));
+       private static final NicoWnnEvent mEventInputEnter       = new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));
+       private static final NicoWnnEvent mEventInputBack        = new NicoWnnEvent(NicoWnnEvent.INPUT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
+       private static final NicoWnnEvent mEventInputDpadLeft    = new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT));
+       private static final NicoWnnEvent mEventInputDpadRight   = new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT));
+
+
        /**
         * Character table to input when mInputType becomes INPUT_TYPE_INSTANT.
         * (Either INSTANT_CHAR_CODE_FULL_NUMBER or INSTANT_CHAR_CODE_HALF_NUMBER)
@@ -457,11 +360,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
        /** "Moji" key (this is used for canceling long-press) */
        private Keyboard.Key mChangeModeKey = null;
     
-       private boolean mNikoFirst = false;
-
-       private Keyboard[][] mNikoKeyboard;
-       private Keyboard[][] mYBellKeyboard;
-       private Keyboard[][] mBellKeyboard;
+       private boolean mNicoFirst = false;
 
        private boolean mGetNoFlipScreen = false;
        private boolean mNoFlipScreen = false;
@@ -476,10 +375,6 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
        private final int[] m12keyTable = {
                KEYBOARD_12KEY,  KEYBOARD_12KEY, KEYBOARD_QWERTY, KEYBOARD_QWERTY,  KEYBOARD_12KEY, KEYBOARD_QWERTY, KEYBOARD_QWERTY,  KEYBOARD_12KEY,  KEYBOARD_12KEY
        };
-       /** option bell type **/
-       private boolean mChangeYLineBellMode = false;
-       private boolean mChangeBellMode = false;
-       private boolean mChangeAlphaBigMode = false;
 
        /** Default constructor */
        public DefaultSoftKeyboardJAJP() {
@@ -487,8 +382,8 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                mCurrentKeyboardType = KEYBOARD_12KEY;
                mHookStockKeyType    = KEYBOARD_12KEY;
                mShiftOn             = KEYBOARD_SHIFT_OFF;
-               mCurrentKeyMode      = KEYMODE_JA_FULL_NIKO;
-               mCurrentSlide        = NIKO_SLIDE_MODE_TOP;
+               mCurrentKeyMode      = KEYMODE_JA_FULL_HIRAGANA;
+               mCurrentSlide        = NICO_SLIDE_MODE_TOP;
        }
 
        /** @see com.hiroshica.android.input.nicownn2.DefaultSoftKeyboard#createKeyboards */
@@ -499,11 +394,9 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
 
                SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(parent);
                mChange12keyQwertyMode = pref.getBoolean("change_12key_qwerty", false);
-               mChangeYLineBellMode   = pref.getBoolean("change_y_bellmode", false);
-               mChangeBellMode        = pref.getBoolean("change_bellmode", false);
-               mChangeAlphaBigMode    = pref.getBoolean("change_alphamode", false);
                mGetNoFlipScreen       = pref.getBoolean("no_flip_screen", false);
                mFlickNicoInput        = flickModeTable.get(pref.getString("nicoflick_mode", "none_flick"));
+               //mHiddenSoftKeyboard    = pref.getBoolean("hidden_softkeyboard", false);
                //if ((true == mGetNoFlipScreen) && (NICOFLICK_NONE != mFlickNicoInput)) {
                if (true == mGetNoFlipScreen) {
                        mNoFlipScreen = true;
@@ -526,21 +419,26 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                }
                        
                if (mCurrentKeyboardType == KEYBOARD_12KEY) {
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE,
-                                                                                 NicoWnnJAJP.ENGINE_MODE_OPT_TYPE_12KEY));
+                       mWnn.onEvent(mEventChangeMode12Key);
                } else {
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE,
-                                                                                 NicoWnnJAJP.ENGINE_MODE_OPT_TYPE_QWERTY));
+                       mWnn.onEvent(mEventChangeModeQwerty);
                }
        }
 
        /**
+        *
+        */
+       @Override public void checkHiddenKeyboard() {
+               super.checkHiddenKeyboard();
+       }
+
+       /**
         * Commit the pre-edit string for committing operation that is not explicit
         * (ex. when a candidate is selected)
         */
        private void commitText() {
                if (!mNoInput) {
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.COMMIT_COMPOSING_TEXT));
+                       mWnn.onEvent(mEventCommitText);
                }
        }
 
@@ -558,9 +456,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                commitText();
 
                if (mCapsLock) {
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY,
-                                                                                 new KeyEvent(KeyEvent.ACTION_UP,
-                                                                                                          KeyEvent.KEYCODE_SHIFT_LEFT)));
+                       mWnn.onEvent(mEventInputShiftLeft);
                        mCapsLock = false;
                }
                mShiftOn = KEYBOARD_SHIFT_OFF;
@@ -614,13 +510,6 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        mode = NicoWnnJAJP.ENGINE_MODE_HALF_KATAKANA;
                        break;
             
-               case KEYMODE_JA_FULL_NIKO:
-                       mInputType = INPUT_TYPE_TOGGLE;
-                       mode = NicoWnnEvent.Mode.DEFAULT;
-                       mNikoFirst = false;
-                       mNicoFlick = false;
-                       break;
-
                default:
                        break;
                }
@@ -637,6 +526,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
        @Override public View initView(NicoWnn parent, int width, int height) {
                View view = super.initView(parent, width, height);
                SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(parent);
+
                changeKeyboard(mKeyboard[mCurrentLanguage][mDisplayMode][mCurrentKeyboardType][mShiftOn][mCurrentKeyMode][0]);
                return view;
        }
@@ -673,9 +563,9 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        changeKeyboard(kbd);
                }
                if (type == KEYBOARD_12KEY) {
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_OPT_TYPE_12KEY));
+                       mWnn.onEvent(mEventChangeMode12Key);
                } else {
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_OPT_TYPE_QWERTY));
+                       mWnn.onEvent(mEventChangeModeQwerty);
                }
        }
        /** @see com.hiroshica.android.input.nicownn2.DefaultSoftKeyboard#setPreferences */
@@ -713,10 +603,6 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                mCapsLock = false;
 
                mOnOffKeitaiMode = pref.getBoolean("change_keitaimode", false);
-               if (true == mOnOffKeitaiMode) {
-                       // off keitai hiragana mode
-                       mLimitedKeyMode = new int[] {KEYMODE_JA_FULL_NIKO, KEYMODE_JA_HALF_ALPHABET, KEYMODE_JA_HALF_NUMBER};
-               }
                switch (inputType & EditorInfo.TYPE_MASK_CLASS) {
 
                case EditorInfo.TYPE_CLASS_NUMBER:
@@ -726,11 +612,9 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
 
                case EditorInfo.TYPE_CLASS_PHONE:
                        if (mHardKeyboardHidden) {
-                               //mLimitedKeyMode = new int[] {KEYMODE_JA_FULL_NIKO};
-                               mPreferenceKeyMode = KEYMODE_JA_FULL_NIKO;
+                               mPreferenceKeyMode = KEYMODE_JA_FULL_HIRAGANA;
                        } else {
-                               //mLimitedKeyMode = new int[] {KEYMODE_JA_HALF_ALPHABET};
-                               mPreferenceKeyMode = KEYMODE_JA_FULL_NIKO;
+                               mPreferenceKeyMode = KEYMODE_JA_HALF_ALPHABET;
                        }
                        break;
 
@@ -738,15 +622,14 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        switch (inputType & EditorInfo.TYPE_MASK_VARIATION) {
 
                        case EditorInfo.TYPE_TEXT_VARIATION_PASSWORD:
-                               //mLimitedKeyMode = new int[] {KEYMODE_JA_HALF_ALPHABET, KEYMODE_JA_HALF_NUMBER};
+                               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};
+                               mLimitedKeyMode = new int[] {KEYMODE_JA_HALF_ALPHABET, KEYMODE_JA_HALF_NUMBER};
                                break;
                        case EditorInfo.TYPE_TEXT_VARIATION_URI:
-                               //mPreferenceKeyMode = KEYMODE_JA_HALF_ALPHABET;
-                               mPreferenceKeyMode = KEYMODE_JA_FULL_NIKO;
+                               mPreferenceKeyMode = KEYMODE_JA_HALF_ALPHABET;
                                break;
 
                        default:
@@ -760,14 +643,12 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
 
                boolean restartkey = false;
                boolean old12keyqwerty = mChange12keyQwertyMode;
-               boolean oldnicobell    = mChangeBellMode;
 
                mChange12keyQwertyMode = pref.getBoolean("change_12key_qwerty", false);
-               mChangeYLineBellMode   = pref.getBoolean("change_y_bellmode", false);
-               mChangeBellMode        = pref.getBoolean("change_bellmode", false);
-               mChangeAlphaBigMode    = pref.getBoolean("change_alphamode", false);
                mGetNoFlipScreen       = pref.getBoolean("no_flip_screen", false);
                mFlickNicoInput        = flickModeTable.get(pref.getString("nicoflick_mode", "none_flick"));
+               //mHiddenSoftKeyboard    = pref.getBoolean("hidden_softkeyboard", false);
+
                //if ((true == mGetNoFlipScreen) && (NICOFLICK_NONE != mFlickNicoInput)) {
                if (true == mGetNoFlipScreen) {
                        mNoFlipScreen = true;
@@ -782,17 +663,11 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                                mCurrentKeyboardType = mHookStockKeyType; // change last keyboard type.
                        }
                }
-               if (oldnicobell != mChangeBellMode) {
-                       restartkey = true;
-               }
-
                if (inputType != mLastInputType) {
-                       changeNicoBellLayout();
                        setDefaultKeyboard();
                        mLastInputType = inputType;
                }
                else if (true == restartkey) {
-                       changeNicoBellLayout();
                        setDefaultKeyboard();
                }
 
@@ -805,17 +680,17 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                super.onUpdateState(parent);
                if (!mCapsLock) {
                        setShiftByEditorInfo();
-                       if (true == mNoInput && true == mNikoFirst) {
-                               resetNikoKeyboard();
+                       if (true == mNoInput && true == mNicoFirst) {
+                               resetNicoKeyboard();
                        }
                }
        }
        /**
         * Change the keyboard to default
         */
-       public void setDefaultKeyboard() {
+       @Override public void setDefaultKeyboard() {
                Locale locale = Locale.getDefault();
-               int keymode = KEYMODE_JA_FULL_NIKO;
+               int keymode = KEYMODE_JA_FULL_HIRAGANA;
 
 
                if (mPreferenceKeyMode != INVALID_KEYMODE) {
@@ -835,7 +710,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
        /**
         * Change to the next input mode
         */
-       public void nextKeyMode() {
+       @Override public void nextKeyMode() {
                /* Search the current mode in the toggle table */
                boolean found = false;
                int index;
@@ -885,7 +760,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                keyList[KEYMODE_JA_HALF_NUMBER][0]   = new Keyboard(parent, R.xml.keyboard_qwerty_jp_half_symbols);
                keyList[KEYMODE_JA_HALF_KATAKANA][0] = new Keyboard(parent, R.xml.keyboard_qwerty_jp_half_katakana);
                keyList[KEYMODE_JA_HALF_PHONE][0]    = new Keyboard(parent, R.xml.keyboard_12key_phone);
-               keyList[KEYMODE_JA_FULL_NIKO][0]     = keyList[KEYMODE_JA_FULL_HIRAGANA][0];
+               keyList[KEYMODE_JA_FULL_NICO][0]     = keyList[KEYMODE_JA_FULL_HIRAGANA][0];
 
                /* qwerty shift_on (portrait) */
                keyList = mKeyboard[LANG_JA][PORTRAIT][KEYBOARD_QWERTY][KEYBOARD_SHIFT_ON];
@@ -897,7 +772,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                keyList[KEYMODE_JA_HALF_NUMBER][0]   = new Keyboard(parent, R.xml.keyboard_qwerty_jp_half_symbols_shift);
                keyList[KEYMODE_JA_HALF_KATAKANA][0] = new Keyboard(parent, R.xml.keyboard_qwerty_jp_half_katakana_shift);
                keyList[KEYMODE_JA_HALF_PHONE][0]    = mKeyboard[LANG_JA][PORTRAIT][KEYBOARD_QWERTY][KEYBOARD_SHIFT_OFF][KEYMODE_JA_HALF_PHONE][0];
-               keyList[KEYMODE_JA_FULL_NIKO][0]     = keyList[KEYMODE_JA_FULL_HIRAGANA][0];
+               keyList[KEYMODE_JA_FULL_NICO][0]     = keyList[KEYMODE_JA_FULL_HIRAGANA][0];
 
                /* 12-keys shift_off (portrait) */
                keyList = mKeyboard[LANG_JA][PORTRAIT][KEYBOARD_12KEY][KEYBOARD_SHIFT_OFF];
@@ -927,86 +802,6 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                keyList[KEYMODE_JA_FULL_NUMBER]   = mKeyboard[LANG_JA][PORTRAIT][KEYBOARD_12KEY][KEYBOARD_SHIFT_OFF][KEYMODE_JA_FULL_NUMBER];
                keyList[KEYMODE_JA_HALF_ALPHABET] = mKeyboard[LANG_JA][PORTRAIT][KEYBOARD_12KEY][KEYBOARD_SHIFT_OFF][KEYMODE_JA_HALF_ALPHABET];;
                keyList[KEYMODE_JA_HALF_NUMBER]   = mKeyboard[LANG_JA][PORTRAIT][KEYBOARD_12KEY][KEYBOARD_SHIFT_OFF][KEYMODE_JA_HALF_NUMBER];
-
-               // nikotouch slide
-               mNikoKeyboard = new Keyboard[11][2];
-               mNikoKeyboard[NIKO_SLIDE_MODE_TOP][0]   = new Keyboard(parent, R.xml.keyboard_12key_full_niko_top);
-               mNikoKeyboard[NIKO_SLIDE_MODE_A][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_a);
-               mNikoKeyboard[NIKO_SLIDE_MODE_K][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_k);
-               mNikoKeyboard[NIKO_SLIDE_MODE_S][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_s);
-               mNikoKeyboard[NIKO_SLIDE_MODE_T][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_t);
-               mNikoKeyboard[NIKO_SLIDE_MODE_N][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_n);
-               mNikoKeyboard[NIKO_SLIDE_MODE_H][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_h);
-               mNikoKeyboard[NIKO_SLIDE_MODE_M][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_m);
-               mNikoKeyboard[NIKO_SLIDE_MODE_Y][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_y);
-               mNikoKeyboard[NIKO_SLIDE_MODE_R][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_r);
-               mNikoKeyboard[NIKO_SLIDE_MODE_W][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_w);
-
-               mNikoKeyboard[NIKO_SLIDE_MODE_TOP][1]   = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_top);
-               mNikoKeyboard[NIKO_SLIDE_MODE_A][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_a);
-               mNikoKeyboard[NIKO_SLIDE_MODE_K][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_k);
-               mNikoKeyboard[NIKO_SLIDE_MODE_S][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_s);
-               mNikoKeyboard[NIKO_SLIDE_MODE_T][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_t);
-               mNikoKeyboard[NIKO_SLIDE_MODE_N][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_n);
-               mNikoKeyboard[NIKO_SLIDE_MODE_H][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_h);
-               mNikoKeyboard[NIKO_SLIDE_MODE_M][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_m);
-               mNikoKeyboard[NIKO_SLIDE_MODE_Y][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_y);
-               mNikoKeyboard[NIKO_SLIDE_MODE_R][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_r);
-               mNikoKeyboard[NIKO_SLIDE_MODE_W][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_w);
-
-               // belltouch slide(Y)
-               mYBellKeyboard = new Keyboard[11][2];
-               mYBellKeyboard[NIKO_SLIDE_MODE_TOP][0]   = mNikoKeyboard[NIKO_SLIDE_MODE_TOP][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_A][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_A][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_K][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_K][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_S][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_S][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_T][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_T][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_N][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_N][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_H][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_H][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_M][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_M][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_Y][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_ybell_y);
-               mYBellKeyboard[NIKO_SLIDE_MODE_R][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_R][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_W][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_W][0];
-
-               mYBellKeyboard[NIKO_SLIDE_MODE_TOP][1]   = mNikoKeyboard[NIKO_SLIDE_MODE_TOP][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_A][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_A][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_K][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_K][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_S][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_S][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_T][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_T][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_N][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_N][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_H][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_H][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_M][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_M][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_Y][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_ybell_input_y);
-               mYBellKeyboard[NIKO_SLIDE_MODE_R][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_R][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_W][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_W][1];
-
-               // belltouch slide
-               mBellKeyboard = new Keyboard[11][2];
-               mBellKeyboard[NIKO_SLIDE_MODE_TOP][0]   = new Keyboard(parent, R.xml.keyboard_12key_full_bell_top);
-               mBellKeyboard[NIKO_SLIDE_MODE_A][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_a);
-               mBellKeyboard[NIKO_SLIDE_MODE_K][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_k);
-               mBellKeyboard[NIKO_SLIDE_MODE_S][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_s);
-               mBellKeyboard[NIKO_SLIDE_MODE_T][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_t);
-               mBellKeyboard[NIKO_SLIDE_MODE_N][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_n);
-               mBellKeyboard[NIKO_SLIDE_MODE_H][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_h);
-               mBellKeyboard[NIKO_SLIDE_MODE_M][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_m);
-               mBellKeyboard[NIKO_SLIDE_MODE_Y][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_y);
-               mBellKeyboard[NIKO_SLIDE_MODE_R][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_r);
-               mBellKeyboard[NIKO_SLIDE_MODE_W][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_w);
-
-               mBellKeyboard[NIKO_SLIDE_MODE_TOP][1]   = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_top);
-               mBellKeyboard[NIKO_SLIDE_MODE_A][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_a);
-               mBellKeyboard[NIKO_SLIDE_MODE_K][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_k);
-               mBellKeyboard[NIKO_SLIDE_MODE_S][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_s);
-               mBellKeyboard[NIKO_SLIDE_MODE_T][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_t);
-               mBellKeyboard[NIKO_SLIDE_MODE_N][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_n);
-               mBellKeyboard[NIKO_SLIDE_MODE_H][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_h);
-               mBellKeyboard[NIKO_SLIDE_MODE_M][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_m);
-               mBellKeyboard[NIKO_SLIDE_MODE_Y][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_y);
-               mBellKeyboard[NIKO_SLIDE_MODE_R][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_r);
-               mBellKeyboard[NIKO_SLIDE_MODE_W][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_w);
-
-               changeNicoBellLayout();
        }
 
        /**
@@ -1015,6 +810,11 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
         * @param parent  The context
         */
        private void createKeyboardsLandscape(NicoWnn parent) {
+               //if ((true == isHardQwertyOnLandscape()) && (true == mHiddenSoftKeyboard)) {
+               if (true == isHardQwertyOnLandscape()) {
+                       return;                         // not create soft keyboard
+               }
+
                Keyboard[][] keyList;
                /* qwerty shift_off (landscape) */
                keyList = mKeyboard[LANG_JA][LANDSCAPE][KEYBOARD_QWERTY][KEYBOARD_SHIFT_OFF];
@@ -1026,12 +826,8 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                keyList[KEYMODE_JA_HALF_NUMBER][0]   = new Keyboard(parent, R.xml.keyboard_qwerty_jp_half_symbols_land);
                keyList[KEYMODE_JA_HALF_KATAKANA][0] = new Keyboard(parent, R.xml.keyboard_qwerty_jp_half_katakana_land);
                keyList[KEYMODE_JA_HALF_PHONE][0]    = new Keyboard(parent, R.xml.keyboard_12key_phone_land);
-               if (false == mChangeBellMode) {
-                       keyList[KEYMODE_JA_FULL_NIKO][0]     = new Keyboard(parent, R.xml.keyboard_qwerty_jp_niko_land);
-               }
-               else{
-                       keyList[KEYMODE_JA_FULL_NIKO][0]     = new Keyboard(parent, R.xml.keyboard_qwerty_jp_bell_land);
-               }
+               keyList[KEYMODE_JA_FULL_NICO][0]     = keyList[KEYMODE_JA_FULL_HIRAGANA][0];
+
                /* qwerty shift_on (landscape) */
                keyList = mKeyboard[LANG_JA][LANDSCAPE][KEYBOARD_QWERTY][KEYBOARD_SHIFT_ON];
                keyList[KEYMODE_JA_FULL_HIRAGANA][0] = new Keyboard(parent, R.xml.keyboard_qwerty_jp_shift_land);
@@ -1042,12 +838,8 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                keyList[KEYMODE_JA_HALF_NUMBER][0]   = new Keyboard(parent, R.xml.keyboard_qwerty_jp_half_symbols_shift_land);
                keyList[KEYMODE_JA_HALF_KATAKANA][0] = new Keyboard(parent, R.xml.keyboard_qwerty_jp_half_katakana_shift_land);
                keyList[KEYMODE_JA_HALF_PHONE][0]    = mKeyboard[LANG_JA][LANDSCAPE][KEYBOARD_QWERTY][KEYBOARD_SHIFT_OFF][KEYMODE_JA_HALF_PHONE][0];
-               if (false == mChangeBellMode) {
-                       keyList[KEYMODE_JA_FULL_NIKO][0]     = new Keyboard(parent, R.xml.keyboard_qwerty_jp_niko_shift_land);
-               }
-               else{
-                       keyList[KEYMODE_JA_FULL_NIKO][0]     = new Keyboard(parent, R.xml.keyboard_qwerty_jp_bell_shift_land);
-               }
+               keyList[KEYMODE_JA_FULL_NICO][0]     = keyList[KEYMODE_JA_FULL_HIRAGANA][0];
+
                /* 12-keys shift_off (landscape) */
                keyList = mKeyboard[LANG_JA][LANDSCAPE][KEYBOARD_12KEY][KEYBOARD_SHIFT_OFF];
                keyList[KEYMODE_JA_FULL_HIRAGANA][0] = new Keyboard(parent, R.xml.keyboard_12keyjp_land);
@@ -1074,86 +866,6 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                keyList[KEYMODE_JA_HALF_NUMBER]   = mKeyboard[LANG_JA][LANDSCAPE][KEYBOARD_12KEY][KEYBOARD_SHIFT_OFF][KEYMODE_JA_HALF_NUMBER];
                keyList[KEYMODE_JA_HALF_KATAKANA] = mKeyboard[LANG_JA][LANDSCAPE][KEYBOARD_12KEY][KEYBOARD_SHIFT_OFF][KEYMODE_JA_HALF_KATAKANA];
                keyList[KEYMODE_JA_HALF_PHONE]    = mKeyboard[LANG_JA][LANDSCAPE][KEYBOARD_12KEY][KEYBOARD_SHIFT_OFF][KEYMODE_JA_HALF_PHONE];
-
-               // nikotouch slide
-               mNikoKeyboard = new Keyboard[11][2];
-               mNikoKeyboard[NIKO_SLIDE_MODE_TOP][0]   = new Keyboard(parent, R.xml.keyboard_12key_full_niko_top_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_A][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_a_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_K][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_k_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_S][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_s_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_T][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_t_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_N][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_n_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_H][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_h_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_M][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_m_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_Y][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_y_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_R][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_r_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_W][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_w_land);
-
-               mNikoKeyboard[NIKO_SLIDE_MODE_TOP][1]   = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_top_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_A][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_a_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_K][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_k_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_S][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_s_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_T][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_t_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_N][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_n_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_H][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_h_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_M][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_m_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_Y][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_y_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_R][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_r_land);
-               mNikoKeyboard[NIKO_SLIDE_MODE_W][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_niko_input_w_land);
-
-               // belltouch slide(Y)
-               mYBellKeyboard = new Keyboard[11][2];
-               mYBellKeyboard[NIKO_SLIDE_MODE_TOP][0]   = mNikoKeyboard[NIKO_SLIDE_MODE_TOP][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_A][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_A][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_K][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_K][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_S][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_S][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_T][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_T][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_N][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_N][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_H][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_H][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_M][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_M][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_Y][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_ybell_y_land);
-               mYBellKeyboard[NIKO_SLIDE_MODE_R][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_R][0];
-               mYBellKeyboard[NIKO_SLIDE_MODE_W][0]     = mNikoKeyboard[NIKO_SLIDE_MODE_W][0];
-
-               mYBellKeyboard[NIKO_SLIDE_MODE_TOP][1]   = mNikoKeyboard[NIKO_SLIDE_MODE_TOP][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_A][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_A][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_K][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_K][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_S][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_S][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_T][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_T][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_N][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_N][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_H][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_H][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_M][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_M][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_Y][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_ybell_input_y_land);
-               mYBellKeyboard[NIKO_SLIDE_MODE_R][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_R][1];
-               mYBellKeyboard[NIKO_SLIDE_MODE_W][1]     = mNikoKeyboard[NIKO_SLIDE_MODE_W][1];
-
-               // belltouch slide
-               mBellKeyboard = new Keyboard[11][2];
-               mBellKeyboard[NIKO_SLIDE_MODE_TOP][0]   = new Keyboard(parent, R.xml.keyboard_12key_full_bell_top_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_A][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_a_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_K][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_k_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_S][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_s_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_T][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_t_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_N][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_n_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_H][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_h_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_M][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_m_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_Y][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_y_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_R][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_r_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_W][0]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_w_land);
-
-               mBellKeyboard[NIKO_SLIDE_MODE_TOP][1]   = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_top_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_A][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_a_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_K][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_k_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_S][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_s_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_T][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_t_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_N][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_n_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_H][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_h_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_M][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_m_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_Y][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_y_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_R][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_r_land);
-               mBellKeyboard[NIKO_SLIDE_MODE_W][1]     = new Keyboard(parent, R.xml.keyboard_12key_full_bell_input_w_land);
-
-               changeNicoBellLayout();
        }
 
        /**
@@ -1162,7 +874,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
         * @param index     The key code
         * @return          The index of the toggle table for input
         */
-       private int getTableIndex(int keyCode) {
+       @Override public int getTableIndex(int keyCode) {
                int index =
                        (keyCode == KEYCODE_JP12_1)     ?  0 :
                        (keyCode == KEYCODE_JP12_2)     ?  1 :
@@ -1214,25 +926,6 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        cycleTable = JP_HALF_KATAKANA_CYCLE_TABLE;
                        break;
 
-               case KEYMODE_JA_FULL_NIKO:
-                       if (false == mChangeBellMode) {
-                               if (false == mChangeAlphaBigMode) {
-                                       cycleTable = JP_FULL_NIKO_CYCLE_TABLE;
-                               }
-                               else{
-                                       cycleTable = JP_FULL_NIKO_CYCLE_TABLE_BIG;
-                               }
-                       }
-                       else{
-                               if (false == mChangeAlphaBigMode) {
-                                       cycleTable = JP_FULL_BELL_CYCLE_TABLE;
-                               }
-                               else{
-                                       cycleTable = JP_FULL_BELL_CYCLE_TABLE_BIG;
-                               }
-                       }
-                       break;
-
                default:
                        break;
                }
@@ -1271,10 +964,6 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        hashTable = JP_HALF_KATAKANA_REPLACE_TABLE;
                        break;
 
-               case KEYMODE_JA_FULL_NIKO:
-                       hashTable = JP_FULL_NIKO_REPLACE_TABLE;
-                       break;
-
                default:
                        break;
                }
@@ -1310,9 +999,6 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                case KEYMODE_JA_HALF_PHONE:
                        icon = R.drawable.immodeic_half_number;
                        break;
-               case KEYMODE_JA_FULL_NIKO:
-                       icon = R.drawable.immodeic_niko;
-                       break;
 
                default:
                        break;
@@ -1350,16 +1036,15 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
        }
 
        /** @see com.hiroshica.android.input.nicownn2.DefaultSoftKeyboard#setHardKeyboardHidden */
-       @Override public void setHardKeyboardHidden(boolean hidden) {
+       @Override public void setHardKeyboardHidden(boolean hidden, boolean qwerty) {
                if (mWnn != null) {
                        if (!hidden) {
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE,
-                                                                                         NicoWnnJAJP.ENGINE_MODE_OPT_TYPE_QWERTY));
+                               mWnn.onEvent(mEventChangeModeQwerty);
                        }
 
                        if (mHardKeyboardHidden != hidden) {
                                if ((mLimitedKeyMode != null)
-                                   || ((mCurrentKeyMode != KEYMODE_JA_FULL_NIKO) && (mCurrentKeyMode != KEYMODE_JA_FULL_HIRAGANA) && (mCurrentKeyMode != KEYMODE_JA_HALF_ALPHABET))) {
+                                   || ((mCurrentKeyMode != KEYMODE_JA_FULL_NICO) && (mCurrentKeyMode != KEYMODE_JA_FULL_HIRAGANA) && (mCurrentKeyMode != KEYMODE_JA_HALF_ALPHABET))) {
                                        
                                        mLastInputType = EditorInfo.TYPE_NULL;
                                        if (mWnn.isInputViewShown()) {
@@ -1368,7 +1053,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                                }
                        }
                }
-               super.setHardKeyboardHidden(hidden);
+               super.setHardKeyboardHidden(hidden, qwerty);
        }
 
        /**
@@ -1381,28 +1066,29 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                int targetMode = keyMode;
                int[] limits = mLimitedKeyMode;
 
-               if (!mHardKeyboardHidden) { /* for hardware keyboard */
-                       if ((targetMode != KEYMODE_JA_FULL_NIKO) && (targetMode != KEYMODE_JA_FULL_HIRAGANA) && (targetMode != KEYMODE_JA_HALF_ALPHABET)) {
+/*
+               if (!mHardKeyboardHidden) { // for hardware keyboard
+                       if ((targetMode != KEYMODE_JA_FULL_NICO) && (targetMode != KEYMODE_JA_FULL_HIRAGANA) && (targetMode != KEYMODE_JA_HALF_ALPHABET)) {
                                Locale locale = Locale.getDefault();
                                int keymode = KEYMODE_JA_HALF_ALPHABET;
                                if (locale.getLanguage().equals(Locale.JAPANESE.getLanguage())) {
                                        switch (targetMode) {
-                                       case KEYMODE_JA_FULL_NIKO:
+                                       case KEYMODE_JA_FULL_NICO:
                                        case KEYMODE_JA_FULL_HIRAGANA:
                                        case KEYMODE_JA_FULL_KATAKANA:
                                        case KEYMODE_JA_HALF_KATAKANA:
                                                // hiromitsu-s!!! 2009-09-23 12:47:08
-                                               //keymode = KEYMODE_JA_FULL_NIKO;
+                                               //keymode = KEYMODE_JA_FULL_NICO;
                                                break;
                                        default:
-                                               /* half-alphabet */
+                                               // half-alphabet
                                                break;
                                        }
                                }
                                targetMode = keymode;
                        }
                } 
-
+*/
                /* restrict by the type of the text field */
                if (limits != null) {
                        boolean hasAccepted = false;
@@ -1444,20 +1130,6 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        return;
                }
 
-               if (mCurrentKeyMode == KEYMODE_JA_FULL_NIKO) {
-                       if (true == onKeyNiko(primaryCode, keyCodes)) {
-                               /* update shift key's state */
-                               if (!mCapsLock && (primaryCode != DefaultSoftKeyboard.KEYCODE_QWERTY_SHIFT)) {
-                                       setShiftByEditorInfo();
-                               }
-                               return;
-                       }
-               }
-               if (true == mIsEnableFlick) {
-                       onkeyFlick(primaryCode, keyCodes);
-                       return;
-               }
-
                switch (primaryCode) {
                case KEYCODE_JP12_TOGGLE_MODE:
                case KEYCODE_QWERTY_TOGGLE_MODE:
@@ -1468,8 +1140,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
 
                case DefaultSoftKeyboard.KEYCODE_QWERTY_BACKSPACE:
                case KEYCODE_JP12_BACKSPACE:
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY,
-                                                                                 new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL)));
+                       mWnn.onEvent(mEventInputKeyDel);
                        break;
 
                case DefaultSoftKeyboard.KEYCODE_QWERTY_SHIFT:
@@ -1482,8 +1153,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
 
                case KEYCODE_QWERTY_ENTER:
                case KEYCODE_JP12_ENTER:
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY,
-                                                                                 new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)));
+                       mWnn.onEvent(mEventInputEnter);
                        break;
 
                case KEYCODE_JP12_REVERSE:
@@ -1505,7 +1175,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                case KEYCODE_JP12_EMOJI:
                case KEYCODE_QWERTY_EMOJI:
                        commitText();
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_SYMBOL));
+                       mWnn.onEvent(mEventChangeModeSymbol);
                        break;
 
                case KEYCODE_JP12_1:
@@ -1523,11 +1193,10 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        if (mInputType == INPUT_TYPE_INSTANT) {
                                /* Send a input character directly if instant input type is selected */
                                commitText();
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_CHAR,
-                                                                                         mCurrentInstantTable[getTableIndex(primaryCode)]));
+                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_CHAR, mCurrentInstantTable[getTableIndex(primaryCode)]));
                        } else {
                                if ((mPrevInputKeyCode != primaryCode)) {
-                                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.TOUCH_OTHER_KEY));
+                                       mWnn.onEvent(mEventTouchOtherKey);
                                        if ((mCurrentKeyMode == KEYMODE_JA_HALF_ALPHABET)
                                            && (primaryCode == KEYCODE_JP12_SHARP)) {
                                                /* Commit text by symbol character (',' '.') when alphabet input mode is selected */
@@ -1551,8 +1220,7 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                case KEYCODE_JP12_ASTER:
                        if (mInputType == INPUT_TYPE_INSTANT) {
                                commitText();
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_CHAR,
-                                                                                         mCurrentInstantTable[getTableIndex(primaryCode)]));
+                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_CHAR, mCurrentInstantTable[getTableIndex(primaryCode)]));
                        } else {
                                if (!mNoInput) {
                                        /* Processing to toggle Dakuten, Handakuten, and capital */
@@ -1602,9 +1270,9 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        changeKeyMode(KEYMODE_JA_HALF_NUMBER);
                        break;
 
-               case KEYCODE_SWITCH_FULL_NIKO:
-                       /* Change mode to Full width nikotouch */
-                       changeKeyMode(KEYMODE_JA_FULL_NIKO);
+               case KEYCODE_SWITCH_FULL_NICO:
+                       /* Change mode to Full width nicotouch */
+                       changeKeyMode(KEYMODE_JA_FULL_HIRAGANA);
                        break;
 
                case KEYCODE_SELECT_CASE:
@@ -1618,31 +1286,26 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
 
                case KEYCODE_JP12_SPACE:
                        if ((mCurrentKeyMode == KEYMODE_JA_FULL_HIRAGANA) && !mNoInput) {
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CONVERT));
+                               mWnn.onEvent(mEventConvert);
                        } else {
                                mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_CHAR, ' '));
                        }
                        break;
 
                case KEYCODE_EISU_KANA:
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_EISU_KANA));
+                       mWnn.onEvent(mEventChangeModeEisuKana);
                        break;
 
                case KEYCODE_JP12_CLOSE:
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_KEY,
-                                                                                 new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)));
+                       mWnn.onEvent(mEventInputBack);
                        break;
             
                case KEYCODE_JP12_LEFT:
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY,
-                                                                                 new KeyEvent(KeyEvent.ACTION_DOWN,
-                                                                                                          KeyEvent.KEYCODE_DPAD_LEFT)));
+                       mWnn.onEvent(mEventInputDpadLeft);
                        break;
             
                case KEYCODE_JP12_RIGHT:
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY,
-                                                                                 new KeyEvent(KeyEvent.ACTION_DOWN,
-                                                                                                          KeyEvent.KEYCODE_DPAD_RIGHT)));
+                       mWnn.onEvent(mEventInputDpadRight);
                        break;
                case KEYCODE_NOP:
                        break;
@@ -1662,200 +1325,19 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                        setShiftByEditorInfo();
                }
        }
-
-
-       /*****************************************
-        * onkey nikotouch
-        */
-       private boolean onKeyNiko(int primaryCode, int[] keyCodes) {
-               Keyboard newKeyboard = null;
-               boolean retcode = false;
-
-               Log.v("key", "onkey event!!\n");
-
-               switch (primaryCode) {
-               case DefaultSoftKeyboard.KEYCODE_QWERTY_BACKSPACE:
-               case KEYCODE_JP12_BACKSPACE:
-                       if (mNikoFirst == true) {
-                               resetNikoKeyboard();
-                       }
-                       else {
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL)));
-                       }
-                       retcode = true;
-                       break;
-               case KEYCODE_QWERTY_ENTER:
-               case KEYCODE_JP12_ENTER:
-                       if (mNikoFirst == false) {
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)));
-                       }
-                       retcode = true;
-                       break;
-
-               case KEYCODE_JP12_REVERSE:
-                       if (mNikoFirst == true) {
-                               resetNikoKeyboard();
-                       }
-                       //mWnn.mushup();
-                       retcode = true;
-                       break;
-
-               case KEYCODE_QWERTY_KBD:
-               case KEYCODE_JP12_KBD:
-                       resetNikoKeyboard();
-                       break;
-
-               case KEYCODE_JP12_EMOJI:
-               case KEYCODE_QWERTY_EMOJI:
-                       if (mNikoFirst == false) {
-                               commitText();
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_SYMBOL));
-                       }
-                       retcode = true;
-                       break;
-
-               case KEYCODE_JP12_SHARP:
-                       if (mNikoFirst == false) {
-                               commitText();
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_DOCOMOSYMBOL));
-                       }
-                       retcode = true;
-                       break;
-
-               case KEYCODE_JP12_1:
-               case KEYCODE_JP12_2:
-               case KEYCODE_JP12_3:
-               case KEYCODE_JP12_4:
-               case KEYCODE_JP12_5:
-               case KEYCODE_JP12_6:
-               case KEYCODE_JP12_7:
-               case KEYCODE_JP12_8:
-               case KEYCODE_JP12_9:
-               case KEYCODE_JP12_0:
-                       if ((NICOFLICK_1STROKE == mFlickNicoInput) && (false == mNikoFirst)) {
-                               retcode = true;
-                               break;
-                       }
-                       if ((NICOFLICK_NICOSTROKE == mFlickNicoInput) && (true == mNicoFlick) && (mPrevInputKeyCode == primaryCode)) {
-                               mNicoFlick = false;
-                               retcode = true;
-                               break;
-                       }
-
-                       if (mNikoFirst == false) {
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.TOUCH_OTHER_KEY));
-                               /* change keymap */
-                               int index = getTableIndex(primaryCode);
-                               Keyboard[][] keyList = mKeyboard[LANG_JA][mDisplayMode][KEYBOARD_12KEY][KEYBOARD_SHIFT_ON];
-                               if (false == mChangeBellMode) {
-                                       if (false == mChangeYLineBellMode) {
-                                               keyList[KEYMODE_JA_FULL_NIKO]     = mNikoKeyboard[index+1];
-                                       }
-                                       else{
-                                               keyList[KEYMODE_JA_FULL_NIKO]     = mYBellKeyboard[index+1];
-                                       }
-                               }
-                               else{
-                                       keyList[KEYMODE_JA_FULL_NIKO]     = mBellKeyboard[index+1];
-                               }
-                               if (false == mNoFlipScreen) {
-                                       newKeyboard = getShiftChangeKeyboard(KEYBOARD_SHIFT_ON);
-                                       if (newKeyboard != null) {
-                                               mShiftOn = KEYBOARD_SHIFT_ON;
-                                               changeKeyboard(newKeyboard);
-                                       }
-                               }
-                               mPrevInputKeyCode = primaryCode;
-                               mNikoFirst = true;
-                       }
-                       else{
-                               int col = getTableIndex(mPrevInputKeyCode);
-                               int row = getTableIndex(primaryCode);
-                               String[][] cycleTable = getCycleTable();
-                               if (cycleTable == null) {
-                                       Log.e("NicoWnn", "not founds cycle table");
-                               }
-                               else{
-                                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.TOGGLE_CHAR, cycleTable[col * 10 + row]));
-                               }
-                               if (false == mNoFlipScreen) {
-                                       newKeyboard = getShiftChangeKeyboard(KEYBOARD_SHIFT_OFF);
-                                       if (newKeyboard != null) {
-                                               mShiftOn = KEYBOARD_SHIFT_OFF;
-                                               changeKeyboard(newKeyboard);
-                                       }
-                               }
-                               mNikoFirst = false;
-                               mNicoFlick = false;
-                       }
-                       retcode = true;
-                       break;
-
-               case KEYCODE_JP12_ASTER:
-                       if (mNikoFirst == false && !mNoInput) {
-                               /* Processing to toggle Dakuten, Handakuten, and capital */
-                               HashMap replaceTable = getReplaceTable();
-                               if (replaceTable == null) {
-                                       Log.e("NicoWnn", "not founds replace table");
-                               } else {
-                                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.REPLACE_CHAR, replaceTable));
-                                       mPrevInputKeyCode = primaryCode;
-                               }
-                       }
-                       retcode = true;
-                       break;
-
-               case KEYCODE_JP12_SPACE:
-                       if (mNikoFirst == false) {
-                               if ((mCurrentKeyMode == KEYMODE_JA_FULL_HIRAGANA) && !mNoInput) {
-                                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CONVERT));
-                               } else {
-                                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_CHAR, ' '));
-                               }
-                       }
-                       retcode = true;
-                       break;
-
-               case KEYCODE_EISU_KANA:
-                       if (mNikoFirst == false) {
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.CHANGE_MODE, NicoWnnJAJP.ENGINE_MODE_EISU_KANA));
-                       }
-                       retcode = true;
-                       break;
-
-               case KEYCODE_JP12_CLOSE:
-                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)));
-                       retcode = true;
-                       break;
-            
-               case KEYCODE_JP12_LEFT:
-                       if (mNikoFirst == false) {
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT)));
-                       }
-                       retcode = true;
-                       break;
-               case KEYCODE_JP12_RIGHT:
-                       if (mNikoFirst == false) {
-                               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.INPUT_SOFT_KEY, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT)));
-                       }
-                       retcode = true;
-                       break;
-               }
-               return retcode;
-       } // onKeyNiko
        /*
-        * reset nikotouch keyboard
+        * reset nicotouch keyboard
         */
-       @Override public void resetNikoKeyboard() {
+       @Override public void resetNicoKeyboard() {
                Keyboard newKeyboard = getShiftChangeKeyboard(KEYBOARD_SHIFT_OFF);
                if (newKeyboard != null) {
                        mShiftOn = KEYBOARD_SHIFT_OFF;
                        changeKeyboard(newKeyboard);
                }
-               mNikoFirst = false;
+               mNicoFirst = false;
                mNicoFlick = false;
-       } // resetNikoKeyboard
-       private void setLastNikoChar(int keycode) {
+       } // resetNicoKeyboard
+       private void setLastNicoChar(int keycode) {
                int col = getTableIndex(keycode);
                String[][] cycleTable = getCycleTable();
                if (cycleTable == null) {
@@ -1864,147 +1346,13 @@ public class DefaultSoftKeyboardJAJP extends DefaultSoftKeyboard {
                else{
                        mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.TOGGLE_CHAR, cycleTable[col * 10]));
                }
-               mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.TOUCH_OTHER_KEY));
-       } // setLastNikoChar
-
-       private void changeNicoBellLayout() {
-               Keyboard[][] keyList, keyListOn;
-               keyList   = mKeyboard[LANG_JA][mDisplayMode][KEYBOARD_12KEY][KEYBOARD_SHIFT_OFF];
-               keyListOn = mKeyboard[LANG_JA][mDisplayMode][KEYBOARD_12KEY][KEYBOARD_SHIFT_ON];
-               if (false == mChangeBellMode) {
-                       keyList[KEYMODE_JA_FULL_NIKO]     = mNikoKeyboard[NIKO_SLIDE_MODE_TOP];
-                       if (false == mChangeYLineBellMode) {
-                               keyListOn[KEYMODE_JA_FULL_NIKO]     = mNikoKeyboard[NIKO_SLIDE_MODE_A];
-                       }
-                       else{
-                               keyListOn[KEYMODE_JA_FULL_NIKO]     = mYBellKeyboard[NIKO_SLIDE_MODE_A];
-                       }
-               }
-               else{
-                       keyList[KEYMODE_JA_FULL_NIKO]     = mBellKeyboard[NIKO_SLIDE_MODE_TOP];
-                       keyListOn[KEYMODE_JA_FULL_NIKO]     = mBellKeyboard[NIKO_SLIDE_MODE_A];
-               }
-       
-       }
+               mWnn.onEvent(mEventTouchOtherKey);
+       } // setLastNicoChar
 
-       /*************************************************
-        * flick mode
-        */
-       private void onkeyFlick(int primaryCode, int[] keyCodes) {
-               switch (primaryCode) {
-               case KEYCODE_JP12_TOGGLE_MODE:
-               case KEYCODE_QWERTY_TOGGLE_MODE:
-                       if (!mIsInputTypeNull) {
-                               nextKeyMode();
-                       }
-                       break;
-               case KEYCODE_SWITCH_FULL_HIRAGANA:
-                       /* Change mode to Full width hiragana */
-                       changeKeyMode(KEYMODE_JA_FULL_HIRAGANA);
-                       break;
-                       
-               case KEYCODE_SWITCH_FULL_KATAKANA:
-                       /* Change mode to Full width katakana */
-                       changeKeyMode(KEYMODE_JA_FULL_KATAKANA);
-                       break;
-
-               case KEYCODE_SWITCH_FULL_ALPHABET:
-                       /* Change mode to Full width alphabet */
-                       changeKeyMode(KEYMODE_JA_FULL_ALPHABET);
-                       break;
-
-               case KEYCODE_SWITCH_FULL_NUMBER:
-                       /* Change mode to Full width numeric */
-                       changeKeyMode(KEYMODE_JA_FULL_NUMBER);
-                       break;
-
-               case KEYCODE_SWITCH_HALF_KATAKANA:
-                       /* Change mode to Half width katakana */
-                       changeKeyMode(KEYMODE_JA_HALF_KATAKANA);
-                       break;
-
-               case KEYCODE_SWITCH_HALF_ALPHABET: 
-                       /* Change mode to Half width alphabet */
-                       changeKeyMode(KEYMODE_JA_HALF_ALPHABET);
-                       break;
-
-               case KEYCODE_SWITCH_HALF_NUMBER:
-                       /* Change mode to Half width numeric */
-                       changeKeyMode(KEYMODE_JA_HALF_NUMBER);
-                       break;
-
-               case KEYCODE_SWITCH_FULL_NIKO:
-                       /* Change mode to Full width nikotouch */
-                       changeKeyMode(KEYMODE_JA_FULL_NIKO);
-                       break;
-               case KEYCODE_SELECT_CASE:
-                       int shifted = (mShiftOn == 0) ? 1 : 0;
-                       Keyboard newKeyboard = getShiftChangeKeyboard(shifted);
-                       if (newKeyboard != null) {
-                               mShiftOn = shifted;
-                               changeKeyboard(newKeyboard);
-                       }
-                       break;
-               case KEYCODE_NOP:
-                       break;
-               }
-               /* update shift key's state */
-               if (!mCapsLock && (primaryCode != DefaultSoftKeyboard.KEYCODE_QWERTY_SHIFT)) {
-                       setShiftByEditorInfo();
-               }
-       }
        /**
         */
        @Override public void onPress(int primaryCode) {
                super.onPress(primaryCode);
-               Keyboard newKeyboard = null;
-
-               mStockFlickCode = primaryCode;
-               if (mCurrentKeyMode == KEYMODE_JA_FULL_NIKO) {
-                       if (NICOFLICK_NONE == mFlickNicoInput) {
-                               return;
-                       }
-                       switch (primaryCode) {
-                       case KEYCODE_JP12_1:
-                       case KEYCODE_JP12_2:
-                       case KEYCODE_JP12_3:
-                       case KEYCODE_JP12_4:
-                       case KEYCODE_JP12_5:
-                       case KEYCODE_JP12_6:
-                       case KEYCODE_JP12_7:
-                       case KEYCODE_JP12_8:
-                       case KEYCODE_JP12_9:
-                       case KEYCODE_JP12_0:
-                               if ((false == mNikoFirst) && (false == mNicoFlick)) {
-                                       mWnn.onEvent(new NicoWnnEvent(NicoWnnEvent.TOUCH_OTHER_KEY));
-                                       /* change keymap */
-                                       int index = getTableIndex(primaryCode);
-                                       Keyboard[][] keyList = mKeyboard[LANG_JA][mDisplayMode][KEYBOARD_12KEY][KEYBOARD_SHIFT_ON];
-                                       if (false == mChangeBellMode) {
-                                               if (false == mChangeYLineBellMode) {
-                                                       keyList[KEYMODE_JA_FULL_NIKO]     = mNikoKeyboard[index+1];
-                                               }
-                                               else{
-                                                       keyList[KEYMODE_JA_FULL_NIKO]     = mYBellKeyboard[index+1];
-                                               }
-                                       }
-                                       else{
-                                               keyList[KEYMODE_JA_FULL_NIKO]     = mBellKeyboard[index+1];
-                                       }
-                                       if (false == mNoFlipScreen) {
-                                               newKeyboard = getShiftChangeKeyboard(KEYBOARD_SHIFT_ON);
-                                               if (newKeyboard != null) {
-                                                       mShiftOn = KEYBOARD_SHIFT_ON;
-                                                       changeKeyboard(newKeyboard);
-                                               }
-                                       }
-                                       mPrevInputKeyCode = primaryCode;
-                                       mNikoFirst = true;
-                                       mNicoFlick = true;
-                               }
-                               break;
-                       }
-               }
        }
        /**
         */