X-Git-Url: http://nitlanguage.org diff --git a/lib/android/NitActivity.java b/lib/android/NitActivity.java index 3744988..ca15d38 100644 --- a/lib/android/NitActivity.java +++ b/lib/android/NitActivity.java @@ -17,6 +17,7 @@ package nit.app; import android.app.Activity; import android.os.Bundle; +import android.view.KeyEvent; /* * Entry point to Nit applications on Android, redirect most calls to Nit @@ -24,29 +25,34 @@ import android.os.Bundle; public class NitActivity extends Activity { // Nit activity associated to `this` - protected int nitActivity = 0; + protected long nitActivity = 0; /* * Calls to Nit or to the C framework */ static { - System.loadLibrary("main"); + System.loadLibrary("nit_app"); } /* * Callbacks to Nit through C */ - protected native int nitRegisterActivity(); - protected native void nitOnCreate(int activity, Bundle savedInstanceState); - protected native void nitOnStart(int activity); - protected native void nitOnRestart(int activity); - protected native void nitOnResume(int activity); - protected native void nitOnPause(int activity); - protected native void nitOnStop(int activity); - protected native void nitOnDestroy(int activity); - protected native void nitOnSaveInstanceState(int activity, Bundle savedInstanceState); - protected native void nitOnRestoreInstanceState(int activity, Bundle savedInstanceState); + protected native long nitRegisterActivity(); + protected native void nitOnCreate(long activity, Bundle savedInstanceState); + protected native void nitOnStart(long activity); + protected native void nitOnRestart(long activity); + protected native void nitOnResume(long activity); + protected native void nitOnPause(long activity); + protected native void nitOnStop(long activity); + protected native void nitOnDestroy(long activity); + protected native void nitOnSaveInstanceState(long activity, Bundle savedInstanceState); + protected native void nitOnRestoreInstanceState(long activity, Bundle savedInstanceState); + protected native boolean nitOnBackPressed(long activity); + protected native boolean nitOnKeyDown(long activity, int keyCode, KeyEvent event); + protected native boolean nitOnKeyLongPress(long activity, int keyCode, KeyEvent event); + protected native boolean nitOnKeyMultiple(long activity, int keyCode, int count, KeyEvent event); + protected native boolean nitOnKeyUp(long activity, int keyCode, KeyEvent event); /* * Implementation of OS callbacks @@ -108,4 +114,34 @@ public class NitActivity extends Activity { super.onRestoreInstanceState(savedInstanceState); nitOnRestoreInstanceState(nitActivity, savedInstanceState); } + + @Override + public void onBackPressed() { + if (!nitOnBackPressed(nitActivity)) + super.onBackPressed(); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + return nitOnKeyDown(nitActivity, keyCode, event) + || super.onKeyDown(keyCode, event); + } + + @Override + public boolean onKeyLongPress(int keyCode, KeyEvent event) { + return nitOnKeyLongPress(nitActivity, keyCode, event) + || super.onKeyLongPress(keyCode, event); + } + + @Override + public boolean onKeyMultiple(int keyCode, int count, KeyEvent event) { + return nitOnKeyMultiple(nitActivity, keyCode, count, event) + || super.onKeyMultiple(keyCode, count, event); + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + return nitOnKeyUp(nitActivity, keyCode, event) + || super.onKeyUp(keyCode, event); + } }