From 94613de7f482d161fc00a159a040675c4f1a3ef3 Mon Sep 17 00:00:00 2001 From: zoff99 Date: Fri, 18 Feb 2011 21:35:54 +0000 Subject: [PATCH] Fix:Android:activate a newly downloaded map (works perfect now) git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@4208 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- .../android/src/org/navitproject/navit/Navit.java | 40 +++++++++++++++------- .../org/navitproject/navit/NavitMapDownloader.java | 13 +++++-- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/navit/navit/android/src/org/navitproject/navit/Navit.java b/navit/navit/android/src/org/navitproject/navit/Navit.java index 5f6ee7b..fa38d3c 100644 --- a/navit/navit/android/src/org/navitproject/navit/Navit.java +++ b/navit/navit/android/src/org/navitproject/navit/Navit.java @@ -500,6 +500,7 @@ public class Navit extends Activity implements Handler.Callback switch (item.getItemId()) { case 1 : + // zoom in Message msg = new Message(); Bundle b = new Bundle(); b.putInt("Callback", 1); @@ -513,6 +514,7 @@ public class Navit extends Activity implements Handler.Callback Log.e("Navit", "onOptionsItemSelected -> zoom in"); break; case 2 : + // zoom out msg = new Message(); b = new Bundle(); b.putInt("Callback", 2); @@ -526,12 +528,14 @@ public class Navit extends Activity implements Handler.Callback Log.e("Navit", "onOptionsItemSelected -> zoom out"); break; case 3 : - Intent foo2 = new Intent(this, NavitDownloadSelectMapActivity.class); - foo2.putExtra("title", "bla bla"); - foo2.putExtra("some stuff", "bla bla"); - this.startActivityForResult(foo2, Navit.NavitDownloaderSelectMap_id); + // map download menu + Intent map_download_list_activity = new Intent(this, + NavitDownloadSelectMapActivity.class); + this.startActivityForResult(map_download_list_activity, + Navit.NavitDownloaderSelectMap_id); break; case 99 : + // exit this.exit(); // msg = new Message(); // b = new Bundle(); @@ -595,14 +599,26 @@ public class Navit extends Activity implements Handler.Callback // dismiss dialog, remove dialog dismissDialog(msg.getData().getInt("dialog_num")); removeDialog(msg.getData().getInt("dialog_num")); - // try to use the new downloaded map (works only when there is now map yet!) - // please fix me in the C-source !! - // please fix me in the C-source !! - Message msg2 = new Message(); - Bundle b2 = new Bundle(); - b2.putInt("Callback", 6); - msg2.setData(b2); - N_NavitGraphics.callback_handler.sendMessage(msg2); + + // exit_code=0 -> OK, map was downloaded fine + if (msg.getData().getInt("exit_code") == 0) + { + // try to use the new downloaded map (works fine now!) + Log.d("Navit", "instance count=" + + Navit.getInstanceCount()); + onStop(); + onCreate(getIntent().getExtras()); + + //Intent intent = this.getIntent(); + //startActivity(intent); + //finish(); + + //Message msg2 = new Message(); + //Bundle b2 = new Bundle(); + //b2.putInt("Callback", 6); + //msg2.setData(b2); + //N_NavitGraphics.callback_handler.sendMessage(msg2); + } break; case 1 : // change progressbar values diff --git a/navit/navit/android/src/org/navitproject/navit/NavitMapDownloader.java b/navit/navit/android/src/org/navitproject/navit/NavitMapDownloader.java index d3fe891..c5788a9 100644 --- a/navit/navit/android/src/org/navitproject/navit/NavitMapDownloader.java +++ b/navit/navit/android/src/org/navitproject/navit/NavitMapDownloader.java @@ -106,13 +106,14 @@ public class NavitMapDownloader public void run() { stop_me = false; - download_osm_map(mHandler, map_values); + int exit_code = download_osm_map(mHandler, map_values); // ok, remove dialog Message msg = mHandler.obtainMessage(); Bundle b = new Bundle(); msg.what = 0; b.putInt("dialog_num", Navit.MAPDOWNLOAD_DIALOG); + b.putInt("exit_code", exit_code); msg.setData(b); mHandler.sendMessage(msg); } @@ -131,8 +132,10 @@ public class NavitMapDownloader this.navit_jmain = main; } - public void download_osm_map(Handler handler, osm_map_values map_values) + public int download_osm_map(Handler handler, osm_map_values map_values) { + int exit_code = 1; + Message msg = handler.obtainMessage(); Bundle b = new Bundle(); msg.what = 1; @@ -218,7 +221,7 @@ public class NavitMapDownloader Log.d("NavitMapDownloader", "stop_me 2"); c.disconnect(); Log.d("NavitMapDownloader", "stop_me 3"); - return; + return 2; } already_read = already_read + len1; alt_cur++; @@ -301,6 +304,7 @@ public class NavitMapDownloader handler.sendMessage(msg); Log.d("NavitMapDownloader", "Error: " + e); + exit_code = 3; } catch (Exception e) { @@ -312,6 +316,7 @@ public class NavitMapDownloader handler.sendMessage(msg); Log.d("NavitMapDownloader", "gerneral Error: " + e); + exit_code = 4; } msg = handler.obtainMessage(); @@ -326,5 +331,7 @@ public class NavitMapDownloader Log.d("NavitMapDownloader", "success"); + exit_code = 0; + return exit_code; } } -- 2.7.4