public override Android.Views.InputMethods.IInputConnection OnCreateInputConnection(Android.Views.InputMethods.EditorInfo outAttrs)
        {
            IInputConnection conn = base.OnCreateInputConnection(outAttrs);

            outAttrs.ImeOptions &= ~(ImeFlags.NoEnterAction);
            return(conn);
        }
예제 #2
0
        public static void ActionChosen(InputAction action, IInputConnection inputConnection)
        {
            //Java.Lang.String str = new Java.Lang.String(e.Key.ToString());
            //CurrentInputConnection.CommitText(str, 1);
            switch (action.Type)
            {
            case InputAction.ActionType.TypeCharacter:
                /*
                 * mString += letter;
                 *
                 * mString = ModifyInput(mString);
                 *
                 * bool forceUpperNext = mString.Length == 0 || mString.EndsWith(". ");
                 * // Switch to lower case after each letter (unless we're in capslock. Don't ever switch away from CapsLock until the user manually switches)
                 * if (mMode != ArrangementMode.CapsLock)
                 * {
                 *  mMode = forceUpperNext ? ArrangementMode.UpperCase : ArrangementMode.LowerCase;
                 * }
                 */
                inputConnection.CommitText(action.Character.ToString(), 1);
                break;

            case InputAction.ActionType.Backspace:
                // Backspace
                inputConnection.SendKeyEvent(new KeyEvent(KeyEventActions.Down, Android.Views.Keycode.Del));
                break;

            case InputAction.ActionType.DeleteWord:
                // Delete whole word
                // First remove any trailing spaces

                /*
                 * while (mString.Length > 0 && mString[mString.Length - 1] == ' ')
                 * {
                 *  mString = mString.Remove(mString.Length - 1);
                 * }
                 *
                 * if (mString.Length > 0)
                 * {
                 *  int lastSpace = mString.LastIndexOf(' ');
                 *  if (lastSpace == -1)
                 *  {
                 *      mString = string.Empty;
                 *  }
                 *  else
                 *  {
                 *      mString = mString.Substring(0, lastSpace) + ' ';
                 *  }
                 * }
                 */
                break;
            }
            //KeyEvent ke = new KeyEvent(KeyEventActions.Down, e.Keycode);
            //CurrentInputConnection.SendKeyEvent(ke);
        }
예제 #3
0
        public void ComitAutofill()
        {
            ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(ApplicationContext);
            string             value = prefs.GetString("Passw0rd", "No_Autofill");

            if (value != "No_Autofill")
            {
                ic = CurrentInputConnection;
                ic.CommitText(value, value.Length);
            }

            ISharedPreferencesEditor editor = prefs.Edit();

            editor.PutString("Passw0rd", "No_Autofill");
            editor.Apply();
        }
예제 #4
0
파일: VitaIME.cs 프로젝트: zer0nka/VitaMote
        public void OnKey([GeneratedEnum] Android.Views.Keycode primaryCode, [GeneratedEnum] Android.Views.Keycode [] keyCodes)
        {
            IInputConnection ic = CurrentInputConnection;

            switch ((int)primaryCode)
            {
            case (int)Android.Views.Keycode.Del:
                //ic.SendKeyEvent(new KeyEvent(KeyEventActions.Down,Android.Views.Keycode.Del));
                ic.DeleteSurroundingText(1, 0);
                break;

            case -1:
                caps = !caps;
                keyboard.SetShifted(caps);
                kv.InvalidateAllKeys();
                break;

            case (int)Android.Views.Keycode.Enter:
                ic.SendKeyEvent(new KeyEvent(KeyEventActions.Down, Android.Views.Keycode.Enter));
                break;

            case (int)Android.Views.Keycode.Button9:
                try {
                    onREC();
                }
                catch (System.Exception ex) {
                    Toast.MakeText(this, "PSVITA Connected", ToastLength.Long).Show();
                    Log.Info("Exception: ", ex.ToString());
                }

                break;

            default:
                char code = (char)primaryCode;
                if (Character.IsLetter(code) && caps)
                {
                    code = Character.ToUpperCase(code);
                }
                ic.CommitText(Java.Lang.String.ValueOf(code), 1);
                break;
            }
        }
예제 #5
0
        public void OnKey([GeneratedEnum] Android.Views.Keycode primaryCode, [GeneratedEnum] Android.Views.Keycode[] keyCodes)
        {
            ic = CurrentInputConnection;

            if (ic == null)
            {
                return;
            }

            switch (primaryCode)
            {
            case Android.Views.Keycode.Del:
                string selectedText = ic.GetSelectedText(GetTextFlags.None);

                if (string.IsNullOrEmpty(selectedText))
                {
                    ic.DeleteSurroundingText(1, 0);
                }
                else
                {
                    ic.CommitText("", 1);
                }

                break;

            case Android.Views.Keycode.Unknown:
                TextData.LastText = string.Empty;
                Intent intent = new Intent();
                intent.SetClass(this, typeof(CameraActivity));
                intent.SetFlags(ActivityFlags.NewTask);
                StartActivity(intent);
                break;

            default:
                char code = (char)primaryCode;
                ic.CommitText(code.ToString(), 1);
                break;
            }
        }
예제 #6
0
 public TextBoxInputConnection(TextBoxView targetView, IInputConnection editableInputConnection) : base(targetView, fullEditor: true)
 {
     _textBoxView             = targetView;
     _editableInputConnection = editableInputConnection as BaseInputConnection;
 }
예제 #7
0
 public ZanyInputConnection(IInputConnection target, bool mutable) : base(target, mutable)
 {
 }
예제 #8
0
 public CustomInputConnectionWrapper(IInputConnection target, bool mutable) : base(target, mutable)
 {
 }
예제 #9
0
파일: VitaIME.cs 프로젝트: zer0nka/VitaMote
        private void keySystem(int a, int b, int c, int d, int e, int f, int g, int h)
        {
            ic = CurrentInputConnection;
            //DPAD + SEL STA
            if (a == btnU)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bUp);
                ic.SendKeyEvent(ks);
            }
            else
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Up, bUp);
                ic.SendKeyEvent(ks);
            }
            if (a == btnR)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bRi);
                ic.SendKeyEvent(ks);
            }
            else
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Up, bRi);
                ic.SendKeyEvent(ks);
            }
            if (a == btnD)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bDo);
                ic.SendKeyEvent(ks);
            }
            else
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Up, bDo);
                ic.SendKeyEvent(ks);
            }
            if (a == btnL)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLe);
                ic.SendKeyEvent(ks);
            }
            else
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Up, bLe);
                ic.SendKeyEvent(ks);
            }
            if (a == btnSel)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(ks);
            }
            else
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Up, bSe);
                ic.SendKeyEvent(ks);
            }
            if (a == btnSta)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(ks);
            }
            else
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Up, bSt);
                ic.SendKeyEvent(ks);
            }
            //Combos (Dpad & Dpad + Sel or Sta)
            if (a == btnLU)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLe);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bUp);
                ic.SendKeyEvent(kd);
            }
            if (a == btnLD)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLe);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bDo);
                ic.SendKeyEvent(kd);
            }
            if (a == btnRU)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bRi);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bUp);
                ic.SendKeyEvent(kd);
            }
            if (a == btnRD)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bRi);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bDo);
                ic.SendKeyEvent(kd);
            }
            if (a == btnUSt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bUp);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(kd);
            }
            if (a == btnUSe)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bUp);
                ic.SendKeyEvent(kd);
            }
            if (a == btnDSt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bDo);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(kd);
            }
            if (a == btnDSe)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bDo);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(kd);
            }
            if (a == btnLSt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLe);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(kd);
            }
            if (a == btnLSe)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLe);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(kd);
            }
            if (a == btnRSt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bRi);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(kd);
            }
            if (a == btnRSe)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bRi);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(kd);
            }

            if (a == btnSeSt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(kd);
            }
            //Triple (Dpad + Sel or Sta)
            if (a == btnLUSt)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bLe);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bUp);
                ic.SendKeyEvent(kd);
            }
            if (a == btnLUSe)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bLe);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bUp);
                ic.SendKeyEvent(kd);
            }
            if (a == btnLDSt)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bLe);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bDo);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(kd);
            }
            if (a == btnLDSe)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bLe);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bDo);
                ic.SendKeyEvent(kd);
            }

            if (a == btnRUSt)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bRi);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bUp);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(kd);
            }
            if (a == btnRUSe)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bRi);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bUp);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(kd);
            }
            if (a == btnRDSt)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bRi);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bDo);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSt);
                ic.SendKeyEvent(kd);
            }
            if (a == btnRDSe)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bRi);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bDo);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bSe);
                ic.SendKeyEvent(kd);
            }

            //TCXS + L R
            if (b == 16)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bT);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, bT);
                ic.SendKeyEvent(ka);
            }
            if (b == 32)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bC);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, bC);
                ic.SendKeyEvent(ka);
            }
            if (b == 64)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bX);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, bX);
                ic.SendKeyEvent(ka);
            }
            if (b == 128)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bS);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, bS);
                ic.SendKeyEvent(ka);
            }
            if (b == 1)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, bLt);
                ic.SendKeyEvent(ka);
            }
            if (b == 2)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, bRt);
                ic.SendKeyEvent(ka);
            }
            if (b == btnXC)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bX);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bC);
                ic.SendKeyEvent(kd);
            }
            if (b == btnXS)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bX);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bS);
                ic.SendKeyEvent(kd);
            }
            if (b == btnCT)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bC);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bT);
                ic.SendKeyEvent(kd);
            }
            if (b == btnTS)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bT);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bS);
                ic.SendKeyEvent(kd);
            }
            if (b == btnXLt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bX);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnXRt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bX);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnCLt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bC);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnCRt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bC);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnTLt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bT);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnTRt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bT);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnSLt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bS);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnSRt)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bS);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnLR)
            {
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnLRC)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bC);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnLRT)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bT);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnLRS)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bS);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(kd);
            }
            if (b == btnLRX)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, bX);
                ic.SendKeyEvent(ka);
                KeyEvent ks = new KeyEvent(KeyEventActions.Down, bLt);
                ic.SendKeyEvent(ks);
                KeyEvent kd = new KeyEvent(KeyEventActions.Down, bRt);
                ic.SendKeyEvent(kd);
            }
            //Analogs
            if (e <= 50 && e >= 0)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, aLl);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, aLl);
                ic.SendKeyEvent(ka);
            }
            if (e >= 200 && e <= 255)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, aLr);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, aLr);
                ic.SendKeyEvent(ka);
            }

            if (f <= 50 && f >= 0)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, aLu);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, aLu);
                ic.SendKeyEvent(ka);
            }
            if (f >= 200 && f <= 255)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, aLd);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, aLd);
                ic.SendKeyEvent(ka);
            }


            //Analogs
            if (g <= 50 && g >= 0)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, aRl);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, aRl);
                ic.SendKeyEvent(ka);
            }
            if (g >= 200 && g <= 255)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, aRr);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, aRr);
                ic.SendKeyEvent(ka);
            }

            if (h <= 50 && g >= 0)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, aRu);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, aRu);
                ic.SendKeyEvent(ka);
            }
            if (h >= 200 && h <= 255)
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Down, aRd);
                ic.SendKeyEvent(ka);
            }
            else
            {
                KeyEvent ka = new KeyEvent(KeyEventActions.Up, aRd);
                ic.SendKeyEvent(ka);
            }
        }
 public KeyStrokeListener(EditorField view, IInputConnection target) : base(target, true)
 {
     this.view = view;
 }
예제 #11
0
 public CustomInputConnection(IInputConnection target, bool mutable,
                              NoCursorMovingEditText noCursorMovingEditText) : base(target, mutable)
 {
     this.noCursorMovingEditText = noCursorMovingEditText;
 }
예제 #12
0
        public void OnKey([GeneratedEnum] Android.Views.Keycode primaryCode, [GeneratedEnum] Android.Views.Keycode[] keyCodes) //Main keyboard input method
        {
            ic = CurrentInputConnection;                                                                                       //to get current input connection

            switch (primaryCode)
            {
            case (Android.Views.Keycode.Del):
                selectedText = ic.GetSelectedText(0);
                if (string.IsNullOrEmpty(selectedText))
                {
                    ic.DeleteSurroundingText(1, 0);
                }
                else
                {
                    ic.CommitText(string.Empty, 1);
                }
                break;

            case (Android.Views.Keycode.CapsLock):    //To toggle caps lock


                if (!CapsFlag)    //caps lock was off
                {
                    CapsKeyboard = new Keyboard(this, Resource.Xml.caps_qwerty);
                    kv.Keyboard  = CapsKeyboard;
                    kv.OnKeyboardActionListener = this;

                    CapsFlag = true;
                }
                else    //caps lock was already onon
                {
                    kv.Keyboard = keyboard;
                    kv.OnKeyboardActionListener = this;
                    CapsFlag = false;
                }
                break;

            case (Android.Views.Keycode.S):    //this is because ASCII value 115 for s is same as android enum for caps lock
            {
                ic.CommitText("s", 1);

                break;
            }

            case (Android.Views.Keycode.ButtonA):    //this is because ASCII value 115 for s is same as android enum for caps lock
            {
                ic.CommitText("/", 1);

                break;
            }

            case (Android.Views.Keycode.C):    //this is because ASCII value 115 for C (caps) is same as android enum for backspace
            {
                ic.CommitText("C", 1);

                break;
            }

            case (Android.Views.Keycode.Num3):    //actually this is done sbutton handling , as i am using Code=10 for my done button, which is code for unused num3
            {
                ic.PerformEditorAction(ImeAction.Send);
                ic.PerformEditorAction(ImeAction.Go);
                ic.PerformEditorAction(ImeAction.Done);


                SplSession.Close();        //closing spell check session

                break;
            }



            default:

                if ((int)primaryCode == 1115)
                {
                    if (!SymbolsFlag)    //symbol view was off
                    {
                        SymbolsKeyboard             = new Keyboard(this, Resource.Xml.Symbols);
                        kv.Keyboard                 = SymbolsKeyboard;
                        kv.OnKeyboardActionListener = this;
                        SymbolsFlag                 = true;
                    }
                    else    //Symbol view was on
                    {
                        kv.Keyboard = keyboard;
                        kv.OnKeyboardActionListener = this;
                        SymbolsFlag = false;
                    }
                    break;
                }

                char code = (char)(primaryCode);



                ic.CommitText(code.ToString(), 1);    // to provides the keystroke to input area according to ascai value of code



                break;
            }
        }
 public CustomInputConnection(IInputConnection target, bool mutable,
     NoCursorMovingEditText noCursorMovingEditText) : base(target, mutable)
 {
     this.noCursorMovingEditText = noCursorMovingEditText;
 }