summaryrefslogtreecommitdiff
path: root/navit/traffic/traff_android/traffic_traff_android.c
diff options
context:
space:
mode:
Diffstat (limited to 'navit/traffic/traff_android/traffic_traff_android.c')
-rw-r--r--navit/traffic/traff_android/traffic_traff_android.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/navit/traffic/traff_android/traffic_traff_android.c b/navit/traffic/traff_android/traffic_traff_android.c
index 266f51a0c..788dd3708 100644
--- a/navit/traffic/traff_android/traffic_traff_android.c
+++ b/navit/traffic/traff_android/traffic_traff_android.c
@@ -54,9 +54,24 @@ struct traffic_priv {
jobject NavitTraff; /**< An instance of `NavitTraff` */
};
+void traffic_traff_android_destroy(struct traffic_priv * this_);
struct traffic_message ** traffic_traff_android_get_messages(struct traffic_priv * this_);
/**
+ * @brief Destructor.
+ */
+void traffic_traff_android_destroy(struct traffic_priv * this_) {
+ jmethodID cid;
+
+ cid = (*jnienv)->GetMethodID(jnienv, this_->NavitTraffClass, "close", "()V");
+ if (cid == NULL) {
+ dbg(lvl_error,"no method found");
+ return; /* exception thrown */
+ }
+ (*jnienv)->CallVoidMethod(jnienv, this_->NavitTraff, cid);
+}
+
+/**
* @brief Returns an empty traffic report.
*
* @return Always `NULL`
@@ -70,6 +85,7 @@ struct traffic_message ** traffic_traff_android_get_messages(struct traffic_priv
*/
static struct traffic_methods traffic_traff_android_meth = {
traffic_traff_android_get_messages,
+ traffic_traff_android_destroy,
};