Merge: SharedPreferences: Nit API wrapping android SharedPreferences class
[nit.git] / lib / mnit_android / android_app.nit
index c070c6c..3819c25 100644 (file)
@@ -159,7 +159,7 @@ class AndroidPointerEvent
 
        redef fun y: Float do return extern_y(motion_event.inner_event, pointer_id)
        private fun extern_y(motion_event: InnerAndroidMotionEvent, pointer_id: Int): Float is extern `{
-               return ((int) AMotionEvent_getY(motion_event, pointer_id) * mnit_zoom) + 32;
+               return ((int) AMotionEvent_getY(motion_event, pointer_id) * mnit_zoom);
        `}
 
        fun pressure: Float do return extern_pressure(motion_event.inner_event, pointer_id)
@@ -199,7 +199,7 @@ extern class AndroidKeyEvent in "C" `{AInputEvent *`}
                return 0;
        `}
 
-       fun is_back_key: Bool do return key_code == 2
+       fun is_back_key: Bool do return key_code == 4
        fun is_menu_key: Bool do return key_code == 82
        fun is_search_key: Bool do return key_code == 84
 end
@@ -243,106 +243,3 @@ redef class App
 
        redef fun generate_input do poll_looper 0
 end
-
-extern class JavaClassLoader in "Java" `{java.lang.ClassLoader`}
-       super JavaObject
-end
-
-redef class Sys
-       # Get the running JVM
-       redef fun create_default_jvm
-       do
-               var jvm = app.native_app_glue.ndk_native_activity.vm
-               var jni_env = jvm.attach_current_thread
-               if jni_env.address_is_null then jni_env = jvm.env
-
-               self.jvm = jvm
-               self.jni_env = jni_env
-       end
-
-       #protected fun ndk_jvm: JavaVM do`{ return mnit_java_app->activity->vm; `}
-
-       private var class_loader: nullable JavaObject = null
-       private var class_loader_method: nullable JMethodID = null
-       redef fun load_jclass(name)
-       do
-               var class_loader = self.class_loader
-               if class_loader == null then
-                       find_class_loader(app.native_app_glue.ndk_native_activity.java_native_activity)
-                       class_loader = self.class_loader
-                       assert class_loader != null
-               end
-
-               var class_loader_method = self.class_loader_method
-               assert class_loader_method != null
-
-               return load_jclass_intern(class_loader, class_loader_method, name)
-       end
-
-       private fun find_class_loader(native_activity: NativeActivity) import jni_env, class_loader=, JavaObject.as nullable, class_loader_method=, JMethodID.as nullable `{
-               JNIEnv *env = Sys_jni_env(recv);
-
-               // Retrieve main activity
-               jclass class_activity = (*env)->GetObjectClass(env, native_activity);
-               if (class_activity == NULL) {
-                       __android_log_print(ANDROID_LOG_ERROR, "Nit", "retreiving activity class");
-                       (*env)->ExceptionDescribe(env);
-                       exit(1);
-               }
-
-               jmethodID class_activity_getClassLoader = (*env)->GetMethodID(env, class_activity, "getClassLoader", "()Ljava/lang/ClassLoader;");
-               if (class_activity_getClassLoader == NULL) {
-                       __android_log_print(ANDROID_LOG_ERROR, "Nit", "retreiving 'getClassLoader' method");
-                       (*env)->ExceptionDescribe(env);
-                       exit(1);
-               }
-
-               // Call activity.getClassLoader
-               jobject instance_class_loader = (*env)->CallObjectMethod(env, native_activity, class_activity_getClassLoader);
-               if (instance_class_loader == NULL) {
-                       __android_log_print(ANDROID_LOG_ERROR, "Nit", "retreiving class loader instance");
-                       (*env)->ExceptionDescribe(env);
-                       exit(1);
-               }
-
-               jclass class_class_loader = (*env)->GetObjectClass(env, instance_class_loader);
-               if (class_class_loader == NULL) {
-                       __android_log_print(ANDROID_LOG_ERROR, "Nit", "retreiving class of class loader");
-                       (*env)->ExceptionDescribe(env);
-                       exit(1);
-               }
-
-               // Get the method ClassLoader.findClass
-               jmethodID class_class_loader_findClass = (*env)->GetMethodID(env, class_class_loader, "findClass", "(Ljava/lang/String;)Ljava/lang/Class;");
-               if (class_class_loader_findClass == NULL) {
-                       __android_log_print(ANDROID_LOG_ERROR, "Nit", "retreiving 'findClass' method");
-                       (*env)->ExceptionDescribe(env);
-                       exit(1);
-               }
-
-               // Return the values to Nit
-               Sys_class_loader__assign(recv, JavaObject_as_nullable((*env)->NewGlobalRef(env, instance_class_loader)));
-               Sys_class_loader_method__assign(recv, JMethodID_as_nullable(class_class_loader_findClass));
-
-               // Clean up
-               (*env)->DeleteLocalRef(env, class_activity);
-               (*env)->DeleteLocalRef(env, instance_class_loader);
-               (*env)->DeleteLocalRef(env, class_class_loader);
-       `}
-
-       private fun load_jclass_intern(instance_class_loader: JavaObject, class_loader_findClass: JMethodID, name: NativeString): JClass import jni_env `{
-               JNIEnv *env = Sys_jni_env(recv);
-               jobject class_name = (*env)->NewStringUTF(env, name);
-
-               jclass java_class = (*env)->CallObjectMethod(env, instance_class_loader, class_loader_findClass, class_name);
-               if (java_class == NULL) {
-                       __android_log_print(ANDROID_LOG_ERROR, "Nit", "loading targetted class");
-                       (*env)->ExceptionDescribe(env);
-                       exit(1);
-               }
-
-               (*env)->DeleteLocalRef(env, class_name);
-
-               return java_class;
-       `}
-end