public override void OnUnhandledKeyEvent(Android.Webkit.WebView view, Android.Views.KeyEvent e) { if (_originalClient != null) { _originalClient.OnUnhandledKeyEvent(view, e); } }
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 ShouldOverrideKeyEvent(Android.Webkit.WebView view, Android.Views.KeyEvent e) { if (_originalClient != null) { return(_originalClient.ShouldOverrideKeyEvent(view, e)); } return(false); }
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)); }
public override bool OnKeyDown(Android.Views.Keycode keyCode, Android.Views.KeyEvent e) { return(helper.OnKeyDown(keyCode, e) || base.OnKeyDown(keyCode, e)); }
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); }