Fix:Android:search dialog and navigate to for Android (more stuff) [but need build...
authorzoff99 <zoff99@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 27 Feb 2011 15:52:02 +0000 (15:52 +0000)
committerzoff99 <zoff99@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 27 Feb 2011 15:52:02 +0000 (15:52 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@4253 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/android/src/org/navitproject/navit/Navit.java
navit/navit/android/src/org/navitproject/navit/NavitAddressResultListActivity.java
navit/navit/android/src/org/navitproject/navit/NavitDownloadSelectMapActivity.java
navit/navit/android/src/org/navitproject/navit/NavitGraphics.java

index b4a1a37..0d46750 100644 (file)
@@ -79,11 +79,14 @@ public class Navit extends Activity implements Handler.Callback
        private static long                                                                             startup_intent_timestamp                                        = 0L;\r
        public static String                                                                            my_display_density                                                      = "mdpi";\r
        private boolean                                                                                 parseErrorShown                                                         = false;\r
-       //private static NavitMapDownloader     map_download                                                    = null;\r
        public static final int                                                                 MAPDOWNLOAD_PRI_DIALOG                                          = 1;\r
        public static final int                                                                 MAPDOWNLOAD_SEC_DIALOG                                          = 2;\r
+       public static final int                                                                 SEARCHRESULTS_WAIT_DIALOG                                       = 3;\r
+       public static final int                                                                 ADDRESS_RESULTS_DIALOG_MAX                                      = 10;\r
        public ProgressDialog                                                                   mapdownloader_dialog_pri                                        = null;\r
        public ProgressDialog                                                                   mapdownloader_dialog_sec                                        = null;\r
+       public ProgressDialog                                                                   search_results_wait                                                     = null;\r
+       public static Handler                                                                   Navit_progress_h                                                                = null;\r
        public static NavitMapDownloader                                                mapdownloader_pri                                                               = null;\r
        public static NavitMapDownloader                                                mapdownloader_sec                                                               = null;\r
        public static final int                                                                 NavitDownloaderPriSelectMap_id                  = 967;\r
@@ -91,6 +94,9 @@ public class Navit extends Activity implements Handler.Callback
        public static int                                                                                       download_map_id                                                         = 0;\r
        ProgressThread                                                                                          progressThread_pri                                                      = null;\r
        ProgressThread                                                                                          progressThread_sec                                                      = null;\r
+       SearchResultsThread                                                                             searchresultsThread                                                     = null;\r
+       SearchResultsThreadSpinnerThread                                                spinner_thread                                                                  = null;\r
+       public static Boolean                                                                   NavitAddressSearchSpinnerActive                 = false;\r
        public static final int                                                                 MAP_NUM_PRIMARY                                                         = 11;\r
        public static final int                                                                 NavitAddressSearch_id                                           = 70;\r
        public static final int                                                                 NavitAddressResultList_id                                       = 71;\r
@@ -512,6 +518,8 @@ public class Navit extends Activity implements Handler.Callback
                 * show info box for first time users\r
                 */\r
 \r
+               // make handler statically available for use in "msg_to_msg_handler"\r
+               Navit_progress_h = this.progress_handler;\r
 \r
                Display display_ = getWindowManager().getDefaultDisplay();\r
                int width_ = display_.getWidth();\r
@@ -658,9 +666,11 @@ public class Navit extends Activity implements Handler.Callback
                        // better use regex later, but for now to test this feature its ok :-)\r
                        // better use regex later, but for now to test this feature its ok :-)\r
 \r
+                       // d: google.navigation:q=blabla-strasse # (this happens when you are offline, or from contacts)\r
                        // a: google.navigation:ll=48.25676,16.643&q=blabla-strasse\r
-                       // b: google.navigation:q=48.25676,16.643\r
                        // c: google.navigation:ll=48.25676,16.643\r
+                       // b: google.navigation:q=48.25676,16.643\r
+\r
                        String lat;\r
                        String lon;\r
                        String q;\r
@@ -669,25 +679,57 @@ public class Navit extends Activity implements Handler.Callback
                        String temp2 = null;\r
                        String temp3 = null;\r
                        boolean parsable = false;\r
-\r
+                       boolean unparsable_info_box = true;\r
+\r
+                       // DEBUG\r
+                       // DEBUG\r
+                       // DEBUG\r
+                       // intent_data = "google.navigation:q=Wien Burggasse 27";\r
+                       // intent_data = "google.navigation:q=48.25676,16.643";\r
+                       // intent_data = "google.navigation:ll=48.25676,16.643&q=blabla-strasse";\r
+                       // intent_data = "google.navigation:ll=48.25676,16.643";\r
+                       // DEBUG\r
+                       // DEBUG\r
+                       // DEBUG\r
+\r
+                       Log.e("Navit", "found DEBUG 1: " + intent_data.substring(0, 20));\r
+                       Log.e("Navit", "found DEBUG 2: " + intent_data.substring(20, 22));\r
+                       Log.e("Navit", "found DEBUG 3: " + intent_data.substring(20, 21));\r
+\r
+                       // if d: then start target search\r
+                       if ((intent_data.substring(0, 20).equals("google.navigation:q="))\r
+                                       && ((!intent_data.substring(20, 21).equals('+'))\r
+                                                       && (!intent_data.substring(20, 21).equals('-')) && (!intent_data.substring(20,\r
+                                                       22).matches("[0-9][0-9]"))))\r
+                       {\r
+                               Log.e("Navit", "target found (d): " + intent_data.split("q=", -1)[1]);\r
+                               start_targetsearch_from_intent(intent_data.split("q=", -1)[1]);\r
+                               // dont use this here, already starting search, so set to "false"\r
+                               parsable = false;\r
+                               unparsable_info_box = false;\r
+                       }\r
                        // if b: then remodel the input string to look like a:\r
-                       if (intent_data.substring(0, 20).equals("google.navigation:q="))\r
+                       else if (intent_data.substring(0, 20).equals("google.navigation:q="))\r
                        {\r
                                intent_data = "ll=" + intent_data.split("q=", -1)[1] + "&q=Target";\r
+                               Log.e("Navit", "target found (b): " + intent_data);\r
                                parsable = true;\r
                        }\r
                        // if c: then remodel the input string to look like a:\r
                        else if ((intent_data.substring(0, 21).equals("google.navigation:ll="))\r
-                                       && (intent_data.split("&q=").length == 0))\r
+                                       && (intent_data.split("&q=").length < 2))\r
                        {\r
                                intent_data = intent_data + "&q=Target";\r
+                               Log.e("Navit", "target found (c): " + intent_data);\r
                                parsable = true;\r
                        }\r
                        // already looks like a: just set flag\r
                        else if ((intent_data.substring(0, 21).equals("google.navigation:ll="))\r
-                                       && (intent_data.split("&q=").length > 0))\r
+                                       && (intent_data.split("&q=").length > 1))\r
                        {\r
                                // dummy, just set the flag\r
+                               Log.e("Navit", "target found (a): " + intent_data);\r
+                               Log.e("Navit", "target found (a): " + intent_data.split("&q=").length);\r
                                parsable = true;\r
                        }\r
 \r
@@ -730,31 +772,34 @@ public class Navit extends Activity implements Handler.Callback
                        }\r
                        else\r
                        {\r
-                               // string not parsable, display alert and continue w/o string\r
-                               AlertDialog.Builder alertbox = new AlertDialog.Builder(this);\r
-                               alertbox.setMessage("Navit recieved the query " + intent_data\r
-                                               + "\nThis is not yet parsable.");\r
-                               alertbox.setPositiveButton("Ok", new DialogInterface.OnClickListener()\r
+                               if (unparsable_info_box)\r
                                {\r
-                                       public void onClick(DialogInterface arg0, int arg1)\r
+                                       // string not parsable, display alert and continue w/o string\r
+                                       AlertDialog.Builder alertbox = new AlertDialog.Builder(this);\r
+                                       alertbox.setMessage("Navit recieved the query " + intent_data\r
+                                                       + "\nThis is not yet parsable.");\r
+                                       alertbox.setPositiveButton("Ok", new DialogInterface.OnClickListener()\r
                                        {\r
-                                               Log.e("Navit", "Accepted non-parsable string");\r
-                                       }\r
-                               });\r
-                               alertbox.setNeutralButton("More info", new DialogInterface.OnClickListener()\r
-                               {\r
-                                       public void onClick(DialogInterface arg0, int arg1)\r
+                                               public void onClick(DialogInterface arg0, int arg1)\r
+                                               {\r
+                                                       Log.e("Navit", "Accepted non-parsable string");\r
+                                               }\r
+                                       });\r
+                                       alertbox.setNeutralButton("More info", new DialogInterface.OnClickListener()\r
+                                       {\r
+                                               public void onClick(DialogInterface arg0, int arg1)\r
+                                               {\r
+                                                       String url = "http://wiki.navit-project.org/index.php/Navit_on_Android#Parse_error";\r
+                                                       Intent i = new Intent(Intent.ACTION_VIEW);\r
+                                                       i.setData(Uri.parse(url));\r
+                                                       startActivity(i);\r
+                                               }\r
+                                       });\r
+                                       if (!parseErrorShown)\r
                                        {\r
-                                               String url = "http://wiki.navit-project.org/index.php/Navit_on_Android#Parse_error";\r
-                                               Intent i = new Intent(Intent.ACTION_VIEW);\r
-                                               i.setData(Uri.parse(url));\r
-                                               startActivity(i);\r
+                                               alertbox.show();\r
+                                               parseErrorShown = true;\r
                                        }\r
-                               });\r
-                               if (!parseErrorShown)\r
-                               {\r
-                                       alertbox.show();\r
-                                       parseErrorShown = true;\r
                                }\r
                        }\r
                }\r
@@ -844,6 +889,30 @@ public class Navit extends Activity implements Handler.Callback
 \r
        //public native void KeypressCallback(int id, String s);\r
 \r
+       public void start_targetsearch_from_intent(String target_address)\r
+       {\r
+               Navit_last_address_partial_match = false;\r
+               Navit_last_address_search_string = target_address;\r
+\r
+               // clear results\r
+               Navit.NavitAddressResultList_foundItems.clear();\r
+\r
+               if (Navit_last_address_search_string.equals(""))\r
+               {\r
+                       // empty search string entered\r
+                       Toast.makeText(getApplicationContext(), "No address found", Toast.LENGTH_LONG).show();\r
+               }\r
+               else\r
+               {\r
+                       // show dialog\r
+                       Message msg = progress_handler.obtainMessage();\r
+                       Bundle b = new Bundle();\r
+                       msg.what = 11;\r
+                       b.putInt("dialog_num", Navit.SEARCHRESULTS_WAIT_DIALOG);\r
+                       msg.setData(b);\r
+                       progress_handler.sendMessage(msg);\r
+               }\r
+       }\r
 \r
        @Override\r
        public boolean onOptionsItemSelected(MenuItem item)\r
@@ -1028,34 +1097,30 @@ public class Navit extends Activity implements Handler.Callback
                                                {\r
                                                        String addr = data.getStringExtra("address_string");\r
                                                        Boolean partial_match = data.getStringExtra("partial_match").equals("1");\r
-                                                       int partial_match_i = 0;\r
-                                                       if (partial_match)\r
-                                                       {\r
-                                                               partial_match_i = 1;\r
-                                                       }\r
+\r
                                                        Navit_last_address_partial_match = partial_match;\r
                                                        Navit_last_address_search_string = addr;\r
 \r
                                                        // clear results\r
                                                        Navit.NavitAddressResultList_foundItems.clear();\r
 \r
-                                                       // start the search, this could take a long time!!\r
-                                                       N_NavitGraphics.SearchResultList(2, partial_match_i, addr);\r
-\r
-                                                       if (Navit.NavitAddressResultList_foundItems.size() > 0)\r
+                                                       if (addr.equals(""))\r
                                                        {\r
-                                                               // open result list\r
-                                                               Intent address_result_list_activity = new Intent(this,\r
-                                                                               NavitAddressResultListActivity.class);\r
-                                                               this.startActivityForResult(address_result_list_activity,\r
-                                                                               Navit.NavitAddressResultList_id);\r
+                                                               // empty search string entered\r
+                                                               Toast.makeText(getApplicationContext(), "No search string entered",\r
+                                                                               Toast.LENGTH_LONG).show();\r
                                                        }\r
                                                        else\r
                                                        {\r
-                                                               Toast\r
-                                                               .makeText(\r
-                                                                               getApplicationContext(),\r
-                                                                               "No Results found!", Toast.LENGTH_LONG).show();\r
+                                                               // show dialog, and start search for the results\r
+                                                               // make it indirect, to give our activity a chance to startup\r
+                                                               // (remember we come straight from another activity and ours is still paused!)\r
+                                                               Message msg = progress_handler.obtainMessage();\r
+                                                               Bundle b = new Bundle();\r
+                                                               msg.what = 11;\r
+                                                               b.putInt("dialog_num", Navit.SEARCHRESULTS_WAIT_DIALOG);\r
+                                                               msg.setData(b);\r
+                                                               progress_handler.sendMessage(msg);\r
                                                        }\r
                                                }\r
                                                catch (NumberFormatException e)\r
@@ -1126,6 +1191,155 @@ public class Navit extends Activity implements Handler.Callback
                                break;\r
                }\r
        }\r
+\r
+       public class SearchResultsThreadSpinnerThread extends Thread\r
+       {\r
+               int                                     dialog_num;\r
+               int                                     spinner_current_value;\r
+               private Boolean running;\r
+               Handler                         mHandler;\r
+               SearchResultsThreadSpinnerThread(Handler h, int dialog_num)\r
+               {\r
+                       this.dialog_num = dialog_num;\r
+                       this.mHandler = h;\r
+                       this.spinner_current_value = 0;\r
+                       this.running = true;\r
+                       Log.e("Navit", "SearchResultsThreadSpinnerThread created");\r
+               }\r
+               public void run()\r
+               {\r
+                       Log.e("Navit", "SearchResultsThreadSpinnerThread started");\r
+                       while (this.running)\r
+                       {\r
+                               if (Navit.NavitAddressSearchSpinnerActive == false)\r
+                               {\r
+                                       this.running = false;\r
+                               }\r
+                               else\r
+                               {\r
+                                       Message msg = mHandler.obtainMessage();\r
+                                       Bundle b = new Bundle();\r
+                                       msg.what = 10;\r
+                                       b.putInt("dialog_num", this.dialog_num);\r
+                                       b.putInt("max", Navit.ADDRESS_RESULTS_DIALOG_MAX);\r
+                                       b.putInt("cur", this.spinner_current_value % (Navit.ADDRESS_RESULTS_DIALOG_MAX + 1));\r
+                                       b.putString("title", "getting search results");\r
+                                       b.putString("text", "searching ...");\r
+                                       msg.setData(b);\r
+                                       mHandler.sendMessage(msg);\r
+                                       try\r
+                                       {\r
+                                               Thread.sleep(700);\r
+                                       }\r
+                                       catch (InterruptedException e)\r
+                                       {\r
+                                               // e.printStackTrace();\r
+                                       }\r
+                                       this.spinner_current_value++;\r
+                               }\r
+                       }\r
+                       Log.e("Navit", "SearchResultsThreadSpinnerThread ended");\r
+               }\r
+       }\r
+\r
+\r
+       public class SearchResultsThread extends Thread\r
+       {\r
+               private Boolean running;\r
+               Handler                         mHandler;\r
+               int                                     my_dialog_num;\r
+\r
+               SearchResultsThread(Handler h, int dialog_num)\r
+               {\r
+                       this.running = true;\r
+                       this.mHandler = h;\r
+                       this.my_dialog_num = dialog_num;\r
+                       Log.e("Navit", "SearchResultsThread created");\r
+               }\r
+\r
+               public void stop_me()\r
+               {\r
+                       this.running = false;\r
+               }\r
+\r
+               public void run()\r
+               {\r
+                       Log.e("Navit", "SearchResultsThread started");\r
+\r
+                       // initialize the dialog with sane values\r
+                       Message msg = mHandler.obtainMessage();\r
+                       Bundle b = new Bundle();\r
+                       msg.what = 10;\r
+                       b.putInt("dialog_num", this.my_dialog_num);\r
+                       b.putInt("max", Navit.ADDRESS_RESULTS_DIALOG_MAX);\r
+                       b.putInt("cur", 0);\r
+                       b.putString("title", "getting search results");\r
+                       b.putString("text", "searching ...");\r
+                       msg.setData(b);\r
+                       mHandler.sendMessage(msg);\r
+\r
+                       int partial_match_i = 0;\r
+                       if (Navit_last_address_partial_match)\r
+                       {\r
+                               partial_match_i = 1;\r
+                       }\r
+\r
+                       // start the search, this could take a long time!!\r
+                       Log.e("Navit", "SearchResultsThread run1");\r
+                       N_NavitGraphics.SearchResultList(2, partial_match_i, Navit_last_address_search_string);\r
+                       Log.e("Navit", "SearchResultsThread run2");\r
+\r
+                       Navit.NavitAddressSearchSpinnerActive = false;\r
+\r
+                       if (Navit.NavitAddressResultList_foundItems.size() > 0)\r
+                       {\r
+                               open_search_result_list();\r
+                       }\r
+                       else\r
+                       {\r
+                               //Toast.makeText(getApplicationContext(), "No Results found!", Toast.LENGTH_LONG).show();\r
+                               // not results found, show toast\r
+                               msg = mHandler.obtainMessage();\r
+                               b = new Bundle();\r
+                               msg.what = 3;\r
+                               b.putString("text", "No Results found!");\r
+                               msg.setData(b);\r
+                               mHandler.sendMessage(msg);\r
+                       }\r
+\r
+                       // ok, remove dialog\r
+                       msg = mHandler.obtainMessage();\r
+                       b = new Bundle();\r
+                       msg.what = 99;\r
+                       b.putInt("dialog_num", this.my_dialog_num);\r
+                       msg.setData(b);\r
+                       mHandler.sendMessage(msg);\r
+\r
+                       Log.e("Navit", "SearchResultsThread ended");\r
+               }\r
+       }\r
+\r
+       public static void msg_to_msg_handler(Bundle b, int id)\r
+       {\r
+               Message msg = Navit_progress_h.obtainMessage();\r
+               msg.what = id;\r
+               b.putInt("dialog_num", Navit.SEARCHRESULTS_WAIT_DIALOG);\r
+               b.putInt("max", Navit.ADDRESS_RESULTS_DIALOG_MAX);\r
+               b.putInt("cur", Navit.NavitAddressResultList_foundItems.size()\r
+                               % Navit.ADDRESS_RESULTS_DIALOG_MAX);\r
+               b.putString("title", "getting search results");\r
+               b.putString("text", "searching ...");\r
+               msg.setData(b);\r
+               Navit_progress_h.sendMessage(msg);\r
+       }\r
+\r
+       public void open_search_result_list()\r
+       {\r
+               // open result list\r
+               Intent address_result_list_activity = new Intent(this, NavitAddressResultListActivity.class);\r
+               this.startActivityForResult(address_result_list_activity, Navit.NavitAddressResultList_id);\r
+       }\r
+\r
        public Handler  progress_handler        = new Handler()\r
                                                                                                {\r
                                                                                                        public void handleMessage(Message msg)\r
@@ -1189,6 +1403,36 @@ public class Navit extends Activity implements Handler.Callback
                                                                                                                                                msg.getData().getString("text"),\r
                                                                                                                                                Toast.LENGTH_SHORT).show();\r
                                                                                                                                break;\r
+                                                                                                                       case 3 :\r
+                                                                                                                               Toast.makeText(getApplicationContext(),\r
+                                                                                                                                               msg.getData().getString("text"),\r
+                                                                                                                                               Toast.LENGTH_LONG).show();\r
+                                                                                                                               break;\r
+                                                                                                                       case 10 :\r
+                                                                                                                               // change values - generic\r
+                                                                                                                               int what_dialog_generic = msg.getData().getInt(\r
+                                                                                                                                               "dialog_num");\r
+                                                                                                                               if (what_dialog_generic == SEARCHRESULTS_WAIT_DIALOG)\r
+                                                                                                                               {\r
+                                                                                                                                       search_results_wait.setMax(msg.getData().getInt(\r
+                                                                                                                                                       "max"));\r
+                                                                                                                                       search_results_wait.setProgress(msg.getData()\r
+                                                                                                                                                       .getInt("cur"));\r
+                                                                                                                                       search_results_wait.setTitle(msg.getData()\r
+                                                                                                                                                       .getString("title"));\r
+                                                                                                                                       search_results_wait.setMessage(msg.getData()\r
+                                                                                                                                                       .getString("text"));\r
+                                                                                                                               }\r
+                                                                                                                               break;\r
+                                                                                                                       case 11 :\r
+                                                                                                                               // show dialog - generic\r
+                                                                                                                               showDialog(msg.getData().getInt("dialog_num"));\r
+                                                                                                                               break;\r
+                                                                                                                       case 99 :\r
+                                                                                                                               // dismiss dialog, remove dialog - generic\r
+                                                                                                                               dismissDialog(msg.getData().getInt("dialog_num"));\r
+                                                                                                                               removeDialog(msg.getData().getInt("dialog_num"));\r
+                                                                                                                               break;\r
                                                                                                                }\r
                                                                                                        }\r
                                                                                                };\r
@@ -1197,6 +1441,35 @@ public class Navit extends Activity implements Handler.Callback
        {\r
                switch (id)\r
                {\r
+                       case Navit.SEARCHRESULTS_WAIT_DIALOG :\r
+                               search_results_wait = new ProgressDialog(this);\r
+                               search_results_wait.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);\r
+                               search_results_wait.setTitle("--");\r
+                               search_results_wait.setMessage("--");\r
+                               search_results_wait.setCancelable(false);\r
+                               search_results_wait.setProgress(0);\r
+                               search_results_wait.setMax(10);\r
+                               DialogInterface.OnDismissListener mOnDismissListener3 = new DialogInterface.OnDismissListener()\r
+                               {\r
+                                       public void onDismiss(DialogInterface dialog)\r
+                                       {\r
+                                               Log.e("Navit", "onDismiss: search_results_wait");\r
+                                               dialog.dismiss();\r
+                                               dialog.cancel();\r
+                                               searchresultsThread.stop_me();\r
+                                       }\r
+                               };\r
+                               search_results_wait.setOnDismissListener(mOnDismissListener3);\r
+                               searchresultsThread = new SearchResultsThread(progress_handler,\r
+                                               Navit.SEARCHRESULTS_WAIT_DIALOG);\r
+                               searchresultsThread.start();\r
+\r
+                               NavitAddressSearchSpinnerActive = true;\r
+                               spinner_thread = new SearchResultsThreadSpinnerThread(progress_handler,\r
+                                               Navit.SEARCHRESULTS_WAIT_DIALOG);\r
+                               spinner_thread.start();\r
+\r
+                               return search_results_wait;\r
                        case Navit.MAPDOWNLOAD_PRI_DIALOG :\r
                                mapdownloader_dialog_pri = new ProgressDialog(this);\r
                                mapdownloader_dialog_pri.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);\r
@@ -1249,6 +1522,7 @@ public class Navit extends Activity implements Handler.Callback
                // should never get here!!\r
                return null;\r
        }\r
+\r
        public void disableSuspend()\r
        {\r
                wl.acquire();\r
@@ -1266,18 +1540,13 @@ public class Navit extends Activity implements Handler.Callback
                return true;\r
        }\r
 \r
-       /*\r
-        * A native method that is implemented by the\r
-        * 'hello-jni' native library, which is packaged\r
-        * with this application.\r
-        */\r
        public native void NavitMain(Navit x, String lang, int version, String display_density_string);\r
+\r
        public native void NavitActivity(int activity);\r
 \r
        /*\r
-        * this is used to load the 'hello-jni' library on application\r
-        * startup. The library has already been unpacked into\r
-        * /data/data/com.example.Navit/lib/libhello-jni.so at\r
+        * this is used to load the 'navit' native library on\r
+        * application startup. The library has already been unpacked at\r
         * installation time by the package manager.\r
         */\r
        static\r
index e9d3c0a..cb0b25d 100644 (file)
@@ -59,6 +59,7 @@ public class NavitAddressResultListActivity extends ListActivity
                setListAdapter(adapter);\r
                is_empty = true;\r
        }\r
+\r
        public void add_item_(String item)\r
        {\r
                if (item == null)\r
index b1b75b2..d639bb1 100644 (file)
@@ -39,8 +39,26 @@ public class NavitDownloadSelectMapActivity extends ListActivity
                super.onCreate(savedInstanceState);\r
                Log.e("Navit", "all ok");\r
 \r
+               /*\r
+                * \r
+                * seems not to work with this kind of view, strange\r
+                * \r
+                * // make the nice thumb scroll thingy :-)\r
+                * ListView v = this.getListView();\r
+                * v.setFastScrollEnabled(false);\r
+                * v.setVerticalFadingEdgeEnabled(true);\r
+                * v.setFadingEdgeLength(25);\r
+                * this.setContentView(v);\r
+                * \r
+                * TextView text_v = new TextView(this);\r
+                * text_v.setText("Select destination");\r
+                * \r
+                * v.addHeaderView(text_v);\r
+                */\r
+\r
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,\r
-                               android.R.layout.simple_list_item_1, NavitMapDownloader.OSM_MAP_NAME_LIST_inkl_SIZE_ESTIMATE);\r
+                               android.R.layout.simple_list_item_1,\r
+                               NavitMapDownloader.OSM_MAP_NAME_LIST_inkl_SIZE_ESTIMATE);\r
                setListAdapter(adapter);\r
        }\r
 \r
index d5758c0..03d17c3 100644 (file)
@@ -33,6 +33,7 @@ import android.graphics.Paint;
 import android.graphics.Path;
 import android.graphics.PointF;
 import android.graphics.Rect;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.util.FloatMath;
@@ -1230,6 +1231,8 @@ public class NavitGraphics
        public void fillStringArray(String s)
        {
                Log.e("NavitGraphics", "**** fillStringArray s=" + s);
+               // deactivate the spinner
+               Navit.NavitAddressSearchSpinnerActive = false;
 
                Navit.Navit_Address_Result_Struct tmp_addr = new Navit_Address_Result_Struct();
                String[] tmp_s = s.split(":");
@@ -1238,6 +1241,16 @@ public class NavitGraphics
                // the rest ist address
                tmp_addr.addr = s.substring(2 + tmp_s[0].length() + tmp_s[1].length(), s.length());
                Navit.NavitAddressResultList_foundItems.add(tmp_addr);
+
+               // make the dialog move its bar ...
+               Bundle b = new Bundle();
+               b.putInt("dialog_num", Navit.SEARCHRESULTS_WAIT_DIALOG);
+               b.putInt("max", Navit.ADDRESS_RESULTS_DIALOG_MAX);
+               b.putInt("cur", Navit.NavitAddressResultList_foundItems.size()
+                               % (Navit.ADDRESS_RESULTS_DIALOG_MAX + 1));
+               b.putString("title", "loading search results");
+               b.putString("text", "found " + Navit.NavitAddressResultList_foundItems.size());
+               Navit.msg_to_msg_handler(b, 10);
        }
        public void SearchResultList(int i, int partial_match, String text)
        {