diff --git a/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java b/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java index 26f06af..9270bdb 100644 --- a/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java +++ b/{{ cookiecutter.format }}/app/src/main/java/org/beeware/android/MainActivity.java @@ -4,6 +4,7 @@ import android.content.res.Configuration; import android.os.Bundle; import android.util.Log; +import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.widget.LinearLayout; @@ -178,6 +179,17 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in Log.d(TAG, "onRequestPermissionsResult() complete"); } + public boolean dispatchKeyEvent(KeyEvent event) { + Log.d(TAG, "dispatchKeyEvent() start"); + PyObject pyResult = userCode("dispatchKeyEvent", event); + boolean result = (pyResult == null) ? false : pyResult.toBoolean(); + if (!result) { + result = super.dispatchKeyEvent(event); + } + Log.d(TAG, "dispatchKeyEvent() complete"); + return result; + } + private PyObject userCode(String methodName, Object... args) { if (pythonApp == null) { // Could be a non-graphical app such as Python-support-testbed.