Fix:Android:activate a newly downloaded map (works perfect now)
authorzoff99 <zoff99@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Fri, 18 Feb 2011 21:35:54 +0000 (21:35 +0000)
committerzoff99 <zoff99@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Fri, 18 Feb 2011 21:35:54 +0000 (21:35 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@4208 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/android/src/org/navitproject/navit/Navit.java
navit/navit/android/src/org/navitproject/navit/NavitMapDownloader.java

index 5f6ee7b..fa38d3c 100644 (file)
@@ -500,6 +500,7 @@ public class Navit extends Activity implements Handler.Callback
                switch (item.getItemId())\r
                {\r
                        case 1 :\r
+                               // zoom in\r
                                Message msg = new Message();\r
                                Bundle b = new Bundle();\r
                                b.putInt("Callback", 1);\r
@@ -513,6 +514,7 @@ public class Navit extends Activity implements Handler.Callback
                                Log.e("Navit", "onOptionsItemSelected -> zoom in");\r
                                break;\r
                        case 2 :\r
+                               // zoom out\r
                                msg = new Message();\r
                                b = new Bundle();\r
                                b.putInt("Callback", 2);\r
@@ -526,12 +528,14 @@ public class Navit extends Activity implements Handler.Callback
                                Log.e("Navit", "onOptionsItemSelected -> zoom out");\r
                                break;\r
                        case 3 :\r
-                               Intent foo2 = new Intent(this, NavitDownloadSelectMapActivity.class);\r
-                               foo2.putExtra("title", "bla bla");\r
-                               foo2.putExtra("some stuff", "bla bla");\r
-                               this.startActivityForResult(foo2, Navit.NavitDownloaderSelectMap_id);\r
+                               // map download menu\r
+                               Intent map_download_list_activity = new Intent(this,\r
+                                               NavitDownloadSelectMapActivity.class);\r
+                               this.startActivityForResult(map_download_list_activity,\r
+                                               Navit.NavitDownloaderSelectMap_id);\r
                                break;\r
                        case 99 :\r
+                               // exit\r
                                this.exit();\r
                                //                              msg = new Message();\r
                                //                              b = new Bundle();\r
@@ -595,14 +599,26 @@ public class Navit extends Activity implements Handler.Callback
                                                                                                                                // dismiss dialog, remove dialog\r
                                                                                                                                dismissDialog(msg.getData().getInt("dialog_num"));\r
                                                                                                                                removeDialog(msg.getData().getInt("dialog_num"));\r
-                                                                                                                               // try to use the new downloaded map (works only when there is now map yet!)\r
-                                                                                                                               // please fix me in the C-source !!\r
-                                                                                                                               // please fix me in the C-source !!\r
-                                                                                                                               Message msg2 = new Message();\r
-                                                                                                                               Bundle b2 = new Bundle();\r
-                                                                                                                               b2.putInt("Callback", 6);\r
-                                                                                                                               msg2.setData(b2);\r
-                                                                                                                               N_NavitGraphics.callback_handler.sendMessage(msg2);\r
+\r
+                                                                                                                               // exit_code=0 -> OK, map was downloaded fine\r
+                                                                                                                               if (msg.getData().getInt("exit_code") == 0)\r
+                                                                                                                               {\r
+                                                                                                                                       // try to use the new downloaded map (works fine now!)\r
+                                                                                                                                       Log.d("Navit", "instance count="\r
+                                                                                                                                                       + Navit.getInstanceCount());\r
+                                                                                                                                       onStop();\r
+                                                                                                                                       onCreate(getIntent().getExtras());\r
+\r
+                                                                                                                                       //Intent intent = this.getIntent();\r
+                                                                                                                                       //startActivity(intent);\r
+                                                                                                                                       //finish();\r
+\r
+                                                                                                                                       //Message msg2 = new Message();\r
+                                                                                                                                       //Bundle b2 = new Bundle();\r
+                                                                                                                                       //b2.putInt("Callback", 6);\r
+                                                                                                                                       //msg2.setData(b2);\r
+                                                                                                                                       //N_NavitGraphics.callback_handler.sendMessage(msg2);\r
+                                                                                                                               }\r
                                                                                                                                break;\r
                                                                                                                        case 1 :\r
                                                                                                                                // change progressbar values\r
index d3fe891..c5788a9 100644 (file)
@@ -106,13 +106,14 @@ public class NavitMapDownloader
                public void run()\r
                {\r
                        stop_me = false;\r
-                       download_osm_map(mHandler, map_values);\r
+                       int exit_code = download_osm_map(mHandler, map_values);\r
 \r
                        // ok, remove dialog\r
                        Message msg = mHandler.obtainMessage();\r
                        Bundle b = new Bundle();\r
                        msg.what = 0;\r
                        b.putInt("dialog_num", Navit.MAPDOWNLOAD_DIALOG);\r
+                       b.putInt("exit_code", exit_code);\r
                        msg.setData(b);\r
                        mHandler.sendMessage(msg);\r
                }\r
@@ -131,8 +132,10 @@ public class NavitMapDownloader
                this.navit_jmain = main;\r
        }\r
 \r
-       public void download_osm_map(Handler handler, osm_map_values map_values)\r
+       public int download_osm_map(Handler handler, osm_map_values map_values)\r
        {\r
+               int exit_code = 1;\r
+\r
                Message msg = handler.obtainMessage();\r
                Bundle b = new Bundle();\r
                msg.what = 1;\r
@@ -218,7 +221,7 @@ public class NavitMapDownloader
                                        Log.d("NavitMapDownloader", "stop_me 2");\r
                                        c.disconnect();\r
                                        Log.d("NavitMapDownloader", "stop_me 3");\r
-                                       return;\r
+                                       return 2;\r
                                }\r
                                already_read = already_read + len1;\r
                                alt_cur++;\r
@@ -301,6 +304,7 @@ public class NavitMapDownloader
                        handler.sendMessage(msg);\r
 \r
                        Log.d("NavitMapDownloader", "Error: " + e);\r
+                       exit_code = 3;\r
                }\r
                catch (Exception e)\r
                {\r
@@ -312,6 +316,7 @@ public class NavitMapDownloader
                        handler.sendMessage(msg);\r
 \r
                        Log.d("NavitMapDownloader", "gerneral Error: " + e);\r
+                       exit_code = 4;\r
                }\r
 \r
                msg = handler.obtainMessage();\r
@@ -326,5 +331,7 @@ public class NavitMapDownloader
 \r
 \r
                Log.d("NavitMapDownloader", "success");\r
+               exit_code = 0;\r
+               return exit_code;\r
        }\r
 }\r