Add:Android:Callback on activity change
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Tue, 8 Dec 2009 20:24:32 +0000 (20:24 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Tue, 8 Dec 2009 20:24:32 +0000 (20:24 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit@2858 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/android.c
navit/android.h
navit/android/src/org/navitproject/navit/Navit.java

index ac58d38..51c7982 100644 (file)
@@ -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);
index aa34718..83432a2 100644 (file)
@@ -1,6 +1,7 @@
 #include <jni.h>
 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);
index 348bbe3..d182a9f 100644 (file)
@@ -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