From: martin-s Date: Tue, 8 Dec 2009 20:24:32 +0000 (+0000) Subject: Add:Android:Callback on activity change X-Git-Url: http://git.maemo.org/git/?p=navit-package;a=commitdiff_plain;h=940f2f6537aa6b178369bb0eb48fb9caafba45ec Add:Android:Callback on activity change git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit@2858 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- diff --git a/navit/android.c b/navit/android.c index ac58d38..51c7982 100644 --- a/navit/android.c +++ b/navit/android.c @@ -8,6 +8,7 @@ JNIEnv *jnienv; jobject *android_activity; +struct callback_list *android_activity_cbl; int @@ -50,6 +51,7 @@ Java_org_navitproject_navit_Navit_NavitMain( JNIEnv* env, jobject thiz, jobject char *strings[]={"/data/data/org.navitproject.navit/bin/navit",NULL}; char *langstr; __android_log_print(ANDROID_LOG_ERROR,"test","called"); + android_activity_cbl=callback_list_new(); jnienv=env; android_activity=activity; (*jnienv)->NewGlobalRef(jnienv, activity); @@ -61,6 +63,13 @@ Java_org_navitproject_navit_Navit_NavitMain( JNIEnv* env, jobject thiz, jobject } JNIEXPORT void JNICALL +Java_org_navitproject_navit_Navit_NavitActivity( JNIEnv* env, jobject thiz, int param) +{ + dbg(0,"enter %d\n",param); + callback_list_call_1(android_activity_cbl, param); +} + +JNIEXPORT void JNICALL Java_org_navitproject_navit_NavitGraphics_SizeChangedCallback( JNIEnv* env, jobject thiz, int id, int w, int h) { dbg(0,"enter %p %d %d\n",(struct callback *)id,w,h); diff --git a/navit/android.h b/navit/android.h index aa34718..83432a2 100644 --- a/navit/android.h +++ b/navit/android.h @@ -1,6 +1,7 @@ #include extern JNIEnv *jnienv; extern jobject *android_activity; +extern struct callback_list *android_activity_cbl; int android_find_class_global(char *name, jclass *ret); int android_find_method(jclass class, char *name, char *args, jmethodID *ret); int android_find_static_method(jclass class, char *name, char *args, jmethodID *ret); diff --git a/navit/android/src/org/navitproject/navit/Navit.java b/navit/android/src/org/navitproject/navit/Navit.java index 348bbe3..d182a9f 100644 --- a/navit/android/src/org/navitproject/navit/Navit.java +++ b/navit/android/src/org/navitproject/navit/Navit.java @@ -149,36 +149,43 @@ public class Navit extends Activity implements Handler.Callback } // Debug.startMethodTracing("calc"); NavitMain(this, langu); + NavitActivity(3); } @Override public void onStart() { super.onStart(); Log.e("Navit","OnStart"); + NavitActivity(2); } @Override public void onRestart() { super.onRestart(); Log.e("Navit","OnRestart"); + NavitActivity(0); } @Override public void onResume() { super.onResume(); Log.e("Navit","OnResume"); + NavitActivity(1); } @Override public void onPause() { super.onPause(); Log.e("Navit","OnPause"); + NavitActivity(-1); } @Override public void onStop() { super.onStop(); Log.e("Navit","OnStop"); + NavitActivity(-2); } @Override public void onDestroy() { super.onDestroy(); Log.e("Navit","OnDestroy"); + NavitActivity(-3); } public void disableSuspend() @@ -202,6 +209,7 @@ public class Navit extends Activity implements Handler.Callback * with this application. */ public native void NavitMain(Navit x, String lang); + public native void NavitActivity(int activity); /* this is used to load the 'hello-jni' library on application * startup. The library has already been unpacked into