private static Intent startup_intent = null;\r
private static long startup_intent_timestamp = 0L;\r
public static String my_display_density = "mdpi";\r
- private boolean parseErrorShown = false;\r
+ private boolean searchBoxShown = false;\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
}\r
else\r
{\r
- if (unparsable_info_box)\r
+ if (unparsable_info_box && !searchBoxShown )\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
+ \r
+ searchBoxShown = true;\r
+ String searchString = intent_data.split("q=")[1];\r
+ searchString = searchString.split("&")[0];\r
+ String[] searchArray = searchString.split("%"); // replace URL codes like %20 for space.\r
+ searchString = searchArray[0];\r
+ for(int i = 1; i< searchArray.length; i++)\r
{\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
- alertbox.show();\r
- parseErrorShown = true;\r
+ searchString += " " + searchArray[i].substring(2);\r
}\r
+ Log.e("Navit","Search String :" + searchString);\r
+ executeSearch(searchString);\r
}\r
}\r
}\r
{\r
System.loadLibrary("navit");\r
}\r
+ \r
+ /*\r
+ * Show a search activity with the string "search" filled in\r
+ */\r
+ private void executeSearch(String search)\r
+ {\r
+ Intent search_intent = new Intent(this, NavitAddressSearchActivity.class);\r
+ search_intent.putExtra("title", "Enter: City and Street");\r
+ search_intent.putExtra("address_string", search);\r
+ String pm_temp = "0";\r
+ if (Navit_last_address_partial_match)\r
+ {\r
+ pm_temp = "1";\r
+ }\r
+ search_intent.putExtra("partial_match", pm_temp);\r
+ this.startActivityForResult(search_intent, NavitAddressSearch_id);\r
+ }\r
}\r