summaryrefslogtreecommitdiff
path: root/navit/android.c
diff options
context:
space:
mode:
authorrikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-04-27 18:38:33 +0000
committerrikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-04-27 18:38:33 +0000
commite1de57c4143af5d52f701fde0da33622bc5e4155 (patch)
tree0e873ffbacb3c286b54bd067046ed64f8704755c /navit/android.c
parentf89218706d2fcd44953b1334a0fc6ce040ca2b05 (diff)
downloadnavit-e1de57c4143af5d52f701fde0da33622bc5e4155.tar.gz
Add:Android:Download more than one map; user may delete old maps; map activation/deactivation at runtime; simplify android menu
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5045 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/android.c')
-rw-r--r--navit/android.c44
1 files changed, 43 insertions, 1 deletions
diff --git a/navit/android.c b/navit/android.c
index 6458c8cd8..9e85d814d 100644
--- a/navit/android.c
+++ b/navit/android.c
@@ -259,7 +259,49 @@ Java_org_navitproject_navit_NavitGraphics_CallbackMessageChannel( JNIEnv* env, j
navit_draw(attr.u.navit);
break;
case 6:
- break;
+ {
+ struct mapset *ms = navit_get_mapset(attr.u.navit);
+ struct attr type, name, data, flags, *attrs[5];
+ char *map_location=(*env)->GetStringUTFChars(env, str, NULL);
+ dbg(0,"*****string=%s\n",map_location);
+ type.type=attr_type;
+ type.u.str="binfile";
+
+ data.type=attr_data;
+ data.u.str=g_strdup(map_location);
+
+ name.type=attr_name;
+ name.u.str=g_strdup(map_location);
+
+ flags.type=attr_flags;
+ flags.u.num=1;
+
+ attrs[0]=&type; attrs[1]=&data; attrs[2]=&name; attrs[3]=&flags; attrs[4]=NULL;
+
+ struct map * new_map = map_new(NULL, attrs);
+ struct attr map_a;
+ map_a.type=attr_map;
+ map_a.u.map=new_map;
+ mapset_add_attr(ms, &map_a);
+ navit_draw(attr.u.navit);
+ (*env)->ReleaseStringUTFChars(env, str, map_location);
+ }
+ break;
+ case 7:
+ {
+ struct mapset *ms = navit_get_mapset(attr.u.navit);
+ struct attr map_r;
+ char *map_location=(*env)->GetStringUTFChars(env, str, NULL);
+ struct map * delete_map = mapset_get_map_by_name(ms, map_location);
+
+ dbg(0,"delete map %s (%p)", map_location, delete_map);
+ map_r.type=attr_map;
+ map_r.u.map=delete_map;
+ mapset_remove_attr(ms, &map_r);
+ navit_draw(attr.u.navit);
+ (*env)->ReleaseStringUTFChars(env, str, map_location);
+ }
+ break;
case 5:
// call a command (like in gui)
s=(*env)->GetStringUTFChars(env, str, NULL);