public override bool OnKeyPreIme(Android.Views.Keycode keyCode, Android.Views.KeyEvent e) { if (keyCode == Android.Views.Keycode.Back) { this.ClearFocus(); } return(base.OnKeyPreIme(keyCode, e)); }
public override bool OnKeyUp(Android.Views.Keycode keyCode, Android.Views.KeyEvent e) { if ((keyCode == Android.Views.Keycode.F1 || keyCode == Android.Views.Keycode.Menu || keyCode == Android.Views.Keycode.VolumeUp || keyCode == Android.Views.Keycode.VolumeDown || keyCode == Android.Views.Keycode.VolumeMute) && UXDivers.Gorilla.Coordinator.Instance != null) { UXDivers.Gorilla.ActionManager.ShowMenu(); return(true); } return(base.OnKeyUp(keyCode, e)); }
public override bool OnKeyDown(Android.Views.Keycode keyCode, Android.Views.KeyEvent e) { if (e.KeyCode == Android.Views.Keycode.Back) { if (Intent.Categories != null && Intent.Categories.Contains("Progress")) { return false; } } return base.OnKeyDown(keyCode, e); }
public override bool OnKeyPreIme(Android.Views.Keycode keyCode, Android.Views.KeyEvent e) { if (e.KeyCode == Android.Views.Keycode.Back) { if (OnBackPressed != null) { OnBackPressed(); return(true); } } return(base.OnKeyPreIme(keyCode, e)); }
private void Pressed(Android.Views.Keycode keycode) { if (keyboardOpened) { if (keycode == Android.Views.Keycode.Del) { DeleteCharacter(); } else { if (Text.Length > 20) { return; } char c = GetKey(keycode); AddCharacter(c.ToString()); } } }
public override bool OnKeyDown(Android.Views.Keycode keyCode, Android.Views.KeyEvent e) { return(helper.OnKeyDown(keyCode, e) || base.OnKeyDown(keyCode, e)); }
private char GetKey(Android.Views.Keycode keycode) { switch (keycode) { case Android.Views.Keycode.A: return('A'); case Android.Views.Keycode.B: return('B'); case Android.Views.Keycode.C: return('C'); case Android.Views.Keycode.D: return('D'); case Android.Views.Keycode.E: return('E'); case Android.Views.Keycode.F: return('F'); case Android.Views.Keycode.G: return('G'); case Android.Views.Keycode.H: return('H'); case Android.Views.Keycode.I: return('I'); case Android.Views.Keycode.J: return('J'); case Android.Views.Keycode.K: return('K'); case Android.Views.Keycode.L: return('L'); case Android.Views.Keycode.M: return('M'); case Android.Views.Keycode.N: return('N'); case Android.Views.Keycode.O: return('O'); case Android.Views.Keycode.P: return('P'); case Android.Views.Keycode.Q: return('Q'); case Android.Views.Keycode.R: return('R'); case Android.Views.Keycode.S: return('S'); case Android.Views.Keycode.T: return('T'); case Android.Views.Keycode.U: return('U'); case Android.Views.Keycode.V: return('V'); case Android.Views.Keycode.W: return('W'); case Android.Views.Keycode.X: return('X'); case Android.Views.Keycode.Y: return('Y'); case Android.Views.Keycode.Z: return('Z'); case Android.Views.Keycode.Space: return(' '); default: return(' '); } }
public static bool OnKeyDown(Android.Views.Keycode keyCode, Android.Views.KeyEvent e) { /* * //System.Diagnostics.Debug.WriteLine("HardwareKeyPageListener.OnKeyDown[" + keyCode + "] dispLabel=[" + (e.DisplayLabel == 0 ? "" : "" + e.DisplayLabel) + "] number=[" + (e.Number == 0 ? "" : "" + e.Number) + "] [" + (char)e.UnicodeChar == null + "] [" + e + "] "); * System.Diagnostics.Debug.WriteLine("HardwareKeyPageListener.OnKeyDown:"); * System.Diagnostics.Debug.WriteLine("\t\t keyCode=[" + keyCode + "]"); * System.Diagnostics.Debug.WriteLine("\t\t DisplayLabel=[" + (e.DisplayLabel == 0 ? "" : "" + e.DisplayLabel) + "]"); * System.Diagnostics.Debug.WriteLine("\t\t Number=[" + (e.Number == 0 ? "" : "" + e.Number) + "]"); * System.Diagnostics.Debug.WriteLine("\t\t UnicodeChar=[" + (e.UnicodeChar == 0 ? "" : ((char)e.UnicodeChar).ToString()) + "]"); */ var element = HardwareKeyPage.FocusedElement ?? HardwareKeyPage.DefaultFocusedElement; if (element == null) { return(false); } var keyInput = ("" + Convert.ToChar(e.UnicodeChar)).ToUpper(); var modifiers = HardwareKeyModifierKeys.None; bool useShift = true; switch (keyCode) { case Android.Views.Keycode.Numpad0: keyInput = "0"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.Numpad1: keyInput = "1"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.Numpad2: keyInput = "2"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.Numpad3: keyInput = "3"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.Numpad4: keyInput = "4"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.Numpad5: keyInput = "5"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.Numpad6: keyInput = "6"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.Numpad7: keyInput = "7"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.Numpad8: keyInput = "8"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.Numpad9: keyInput = "9"; modifiers = HardwareKeyModifierKeys.NumericPadKey; useShift = false; break; case Android.Views.Keycode.NumpadAdd: keyInput = "+"; useShift = false; break; case Android.Views.Keycode.NumpadComma: keyInput = ","; useShift = false; break; case Android.Views.Keycode.NumpadDivide: keyInput = "/"; useShift = false; break; case Android.Views.Keycode.NumpadDot: keyInput = "."; useShift = false; break; case Android.Views.Keycode.NumpadEnter: keyInput = HardwareKey.EnterReturnKeyInput; break; case Android.Views.Keycode.NumpadEquals: keyInput = "="; useShift = false; break; case Android.Views.Keycode.NumpadLeftParen: keyInput = "("; useShift = false; break; case Android.Views.Keycode.NumpadRightParen: keyInput = ")"; useShift = false; break; case Android.Views.Keycode.NumpadSubtract: keyInput = "-"; useShift = false; break; case Android.Views.Keycode.DpadDown: keyInput = HardwareKey.DownArrowKeyInput; break; case Android.Views.Keycode.DpadUp: keyInput = HardwareKey.UpArrowKeyInput; break; case Android.Views.Keycode.DpadLeft: keyInput = HardwareKey.LeftArrowKeyInput; break; case Android.Views.Keycode.DpadRight: keyInput = HardwareKey.RightArrowKeyInput; break; case Android.Views.Keycode.Escape: keyInput = HardwareKey.EscapeKeyInput; break; case Android.Views.Keycode.Enter: keyInput = HardwareKey.EnterReturnKeyInput; break; case Android.Views.Keycode.F1: keyInput = HardwareKey.F1KeyInput; break; case Android.Views.Keycode.F2: keyInput = HardwareKey.F2KeyInput; break; case Android.Views.Keycode.F3: keyInput = HardwareKey.F3KeyInput; break; case Android.Views.Keycode.F4: keyInput = HardwareKey.F4KeyInput; break; case Android.Views.Keycode.F5: keyInput = HardwareKey.F5KeyInput; break; case Android.Views.Keycode.F6: keyInput = HardwareKey.F6KeyInput; break; case Android.Views.Keycode.F7: keyInput = HardwareKey.F7KeyInput; break; case Android.Views.Keycode.F8: keyInput = HardwareKey.F8KeyInput; break; case Android.Views.Keycode.F9: keyInput = HardwareKey.F9KeyInput; break; case Android.Views.Keycode.F10: keyInput = HardwareKey.F10KeyInput; break; case Android.Views.Keycode.F11: keyInput = HardwareKey.F11KeyInput; break; case Android.Views.Keycode.F12: keyInput = HardwareKey.F12KeyInput; break; case Android.Views.Keycode.PageUp: keyInput = HardwareKey.PageUpKeyInput; break; case Android.Views.Keycode.PageDown: keyInput = HardwareKey.PageDownKeyInput; break; case Android.Views.Keycode.Insert: keyInput = HardwareKey.InsertKeyInput; break; case Android.Views.Keycode.Del: keyInput = HardwareKey.BackspaceDeleteKeyInput; break; case Android.Views.Keycode.ForwardDel: keyInput = HardwareKey.ForwardDeleteKeyInput; break; case Android.Views.Keycode.Home: keyInput = HardwareKey.HomeKeyInput; break; case Android.Views.Keycode.Endcall: keyInput = HardwareKey.EndKeyInput; break; /* * case Android.Views.Keycode.Num0: * keyInput = "0"; * break; * case Android.Views.Keycode.Num1: * keyInput = "1"; * break; * case Android.Views.Keycode.Num2: * keyInput = "2"; * break; * case Android.Views.Keycode.Num3: * keyInput = "3"; * break; * case Android.Views.Keycode.Num4: * keyInput = "4"; * break; * case Android.Views.Keycode.Num5: * keyInput = "5"; * break; * case Android.Views.Keycode.Num6: * keyInput = "6"; * break; * case Android.Views.Keycode.Num7: * keyInput = "7"; * break; * case Android.Views.Keycode.Num8: * keyInput = "8"; * break; * case Android.Views.Keycode.Num9: * keyInput = "9"; * break; */ default: if (e.UnicodeChar == 0) { return(false); } useShift = keyInput.Length > 0 && char.IsLetter(keyInput[0]); break; } /* * if ((e.Modifiers & Android.Views.MetaKeyStates.CapsLockOn) > 0) * modifiers |= HardwareKeyModifierKeys.CapsLock; * if ((e.Modifiers & Android.Views.MetaKeyStates.AltMask) > 0) * modifiers |= HardwareKeyModifierKeys.Alternate; * if ((e.Modifiers & Android.Views.MetaKeyStates.CtrlMask) > 0) * modifiers |= HardwareKeyModifierKeys.Control; * if ((e.Modifiers & Android.Views.MetaKeyStates.FunctionOn) > 0) * modifiers |= HardwareKeyModifierKeys.FunctionKey; * if ((e.Modifiers & Android.Views.MetaKeyStates.SymOn) > 0) * modifiers |= HardwareKeyModifierKeys.PlatformKey; * if (keyInput.Length > 0 && char.IsLetter(keyInput[0]) && (e.Modifiers & Android.Views.MetaKeyStates.ShiftMask) > 0) * modifiers |= HardwareKeyModifierKeys.Shift; */ modifiers |= GetModifierKeys(e.Modifiers, useShift); var listeners = element.GetHardwareKeyListeners(); for (int i = 0; i < listeners.Count; i++) { var listener = listeners[i]; if (string.IsNullOrEmpty(listener?.HardwareKey?.KeyInput)) { continue; } if (listener.HardwareKey.KeyInput == keyInput.ToUpper() && (listener.HardwareKey.ModifierKeys == modifiers || listener.HardwareKey.ModifierKeys.HasFlag(HardwareKeyModifierKeys.Any))) { if (listener.Command != null && listener.Command.CanExecute(listener.CommandParameter)) { listener.Command.Execute(listener.CommandParameter); } var observedHardwareKey = new HardwareKey(keyInput.ToUpper(), modifiers); listener.Pressed?.Invoke(element, new HardwareKeyEventArgs(observedHardwareKey, element)); //System.Diagnostics.Debug.WriteLine("SUCCESS!!!"); return(true); } } return(false); }
public void OnRelease(Android.Views.Keycode primaryCode) { ReleaseEvent?.Invoke(primaryCode); }
public void OnPress(Android.Views.Keycode primaryCode) { PressEvent?.Invoke(primaryCode); }
public void OnKey(Android.Views.Keycode primaryCode, Android.Views.Keycode[] keyCodes) { KeyEvent?.Invoke(primaryCode, keyCodes); }