Merge: contracts: fix usage of contract with `--erasure`
[nit.git] / lib / android / activities.nit
index c037d7b..76e3f07 100644 (file)
@@ -37,4 +37,19 @@ extern class NativeActivity in "Java" `{ android.app.Activity `}
                JNIEnv *env = Sys_jni_env(sys);
                return (*env)->NewGlobalRef(env, self);
        `}
+
+       # Notify the OS that this activity is done and should be closed
+       fun finish in "Java" `{ self.finish(); `}
+
+       # Execute `task.main` on the UI thread when possible
+       fun run_on_ui_thread(task: Task) import Task.main in "Java" `{
+               final nit.app.NitObject final_task = task;
+               Runnable runnable = new Runnable() {
+                       @Override
+                       public void run() {
+                               Task_main(final_task);
+                       }
+               };
+               self.runOnUiThread(runnable);
+       `}
 end