2 * Navit, a modular navigation system.
\r
3 * Copyright (C) 2005-2008 Navit Team
\r
5 * This program is free software; you can redistribute it and/or
\r
6 * modify it under the terms of the GNU General Public License
\r
7 * version 2 as published by the Free Software Foundation.
\r
9 * This program is distributed in the hope that it will be useful,
\r
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
12 * GNU General Public License for more details.
\r
14 * You should have received a copy of the GNU General Public License
\r
15 * along with this program; if not, write to the
\r
16 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
\r
17 * Boston, MA 02110-1301, USA.
\r
20 package org.navitproject.navit;
\r
22 import java.io.BufferedInputStream;
\r
23 import java.io.BufferedOutputStream;
\r
24 import java.io.File;
\r
25 import java.io.FileOutputStream;
\r
26 import java.io.IOException;
\r
27 import java.io.InputStream;
\r
28 import java.net.HttpURLConnection;
\r
29 import java.net.URL;
\r
30 import java.text.DecimalFormat;
\r
31 import java.text.NumberFormat;
\r
33 import android.os.Bundle;
\r
34 import android.os.Handler;
\r
35 import android.os.Message;
\r
36 import android.util.Log;
\r
38 public class NavitMapDownloader
\r
40 public static class osm_map_values
\r
46 String map_name = "";
\r
47 long est_size_bytes = 0;
\r
49 public osm_map_values(String mapname, String lon_1, String lat_1, String lon_2, String lat_2,
\r
52 this.map_name = mapname;
\r
57 this.est_size_bytes = bytes_est;
\r
62 * coords for predefined maps:
\r
64 * <a onclick='predefined(5.18,46.84,15.47,55.64)'>Germany</a>
\r
65 * <a onclick='predefined(2.08,48.87,7.78,54.52)'>BeNeLux</a>
\r
66 * <a onclick='predefined(9.4,46.32,17.21,49.1)'>Austria</a> 209 MBytes = 219152384 Bytes
\r
69 // define the maps here
\r
70 // name , lon1 , lat1 , lon2 , lat2, est. size in bytes
\r
72 * public static osm_map_values austria = new osm_map_values("Austria",
\r
73 * "9.4", "46.32", "17.21",
\r
74 * "49.1", 222000000);
\r
75 * public static osm_map_values benelux = new osm_map_values("BeNeLux",
\r
76 * "2.08", "48.87", "7.78",
\r
77 * "54.52", 530000000);
\r
78 * public static osm_map_values germany = new osm_map_values("Germany",
\r
79 * "5.18", "46.84", "15.47",
\r
80 * "55.64", 943000000);
\r
84 public static osm_map_values Whole_Planet = new osm_map_values(
\r
85 "Whole Planet", "-180",
\r
88 public static osm_map_values Africa = new osm_map_values("Africa",
\r
92 public static osm_map_values Angola = new osm_map_values("Angola",
\r
93 "11.4", "-18.1", "24.2",
\r
95 public static osm_map_values Burundi = new osm_map_values(
\r
97 "-4.5", "30.9", "-2.2",
\r
99 public static osm_map_values Democratic_Republic_of_the_Congo = new osm_map_values(
\r
100 "Democratic Republic of the Congo",
\r
101 "11.7", "-13.6", "31.5",
\r
103 public static osm_map_values Kenya = new osm_map_values("Kenya",
\r
104 "33.8", "-5.2", "42.4",
\r
106 public static osm_map_values Lesotho = new osm_map_values(
\r
109 "-28.4", 54791041L);
\r
110 public static osm_map_values Madagascar = new osm_map_values(
\r
111 "Madagascar", "43.0",
\r
113 "-11.8", 56801099L);
\r
114 public static osm_map_values Nambia_Botswana = new osm_map_values(
\r
116 "11.4", "-29.1", "29.5",
\r
117 "-16.9", 61807049L);
\r
118 public static osm_map_values Reunion = new osm_map_values(
\r
121 "-20.9", 58537419L);
\r
122 public static osm_map_values Rwanda = new osm_map_values("Rwanda",
\r
123 "28.8", "-2.9", "30.9",
\r
124 "-1.0", 56313710L);
\r
125 public static osm_map_values South_Africa = new osm_map_values(
\r
126 "South Africa", "15.6",
\r
128 "-21.9", 73545245L);
\r
129 public static osm_map_values Uganda = new osm_map_values("Uganda",
\r
130 "29.3", "-1.6", "35.1",
\r
132 public static osm_map_values Asia = new osm_map_values("Asia",
\r
133 "23.8", "0.1", "195.0",
\r
134 "82.4", 797725952L);
\r
135 public static osm_map_values China = new osm_map_values("China",
\r
136 "67.3", "5.3", "135.0",
\r
137 "54.5", 259945160L);
\r
138 public static osm_map_values Cyprus = new osm_map_values("Cyprus",
\r
139 "32.0", "34.5", "34.9",
\r
140 "35.8", 58585278L);
\r
141 public static osm_map_values India_Nepal = new osm_map_values(
\r
142 "India+Nepal", "67.9",
\r
143 "5.5", "89.6", "36.0",
\r
145 public static osm_map_values Indonesia = new osm_map_values(
\r
146 "Indonesia", "93.7",
\r
147 "-17.3", "155.5", "7.6",
\r
149 public static osm_map_values Iran = new osm_map_values("Iran",
\r
150 "43.5", "24.4", "63.6",
\r
151 "40.4", 69561312L);
\r
152 public static osm_map_values Iraq = new osm_map_values("Iraq",
\r
153 "38.7", "28.5", "49.2",
\r
154 "37.4", 59146383L);
\r
155 public static osm_map_values Israel = new osm_map_values("Israel",
\r
159 public static osm_map_values Japan_Korea_Taiwan = new osm_map_values(
\r
160 "Japan+Korea+Taiwan",
\r
164 public static osm_map_values Malasia_Singapore = new osm_map_values(
\r
165 "Malasia+Singapore",
\r
166 "94.3", "-5.9", "108.6",
\r
168 public static osm_map_values Mongolia = new osm_map_values(
\r
169 "Mongolia", "87.5",
\r
170 "41.4", "120.3", "52.7",
\r
172 public static osm_map_values Thailand = new osm_map_values(
\r
173 "Thailand", "97.5",
\r
174 "5.7", "105.2", "19.7",
\r
176 public static osm_map_values Turkey = new osm_map_values("Turkey",
\r
177 "25.1", "35.8", "46.4",
\r
178 "42.8", 81758047L);
\r
179 public static osm_map_values UAE_Other = new osm_map_values(
\r
180 "UAE+Other", "51.5",
\r
181 "22.6", "56.7", "26.5",
\r
183 public static osm_map_values Australia = new osm_map_values(
\r
184 "Australia", "110.5",
\r
186 "-9.2", 128502185L);
\r
187 public static osm_map_values Tasmania = new osm_map_values(
\r
188 "Tasmania", "144.0",
\r
190 "-24.8", 103573989L);
\r
191 public static osm_map_values Victoria_New_South_Wales = new osm_map_values(
\r
192 "Victoria+New South Wales",
\r
196 public static osm_map_values New_Zealand = new osm_map_values(
\r
197 "New Zealand", "165.2",
\r
199 "-33.7", 64757454L);
\r
200 public static osm_map_values Europe = new osm_map_values("Europe",
\r
204 public static osm_map_values Western_Europe = new osm_map_values(
\r
206 "-17.6", "34.5", "42.9",
\r
207 "70.9", 2832986851L);
\r
208 public static osm_map_values Austria = new osm_map_values(
\r
211 "49.1", 222359992L);
\r
212 public static osm_map_values BeNeLux = new osm_map_values(
\r
215 "54.52", 533865194L);
\r
216 public static osm_map_values Faroe_Islands = new osm_map_values(
\r
217 "Faroe Islands", "-7.8",
\r
218 "61.3", "-6.1", "62.5",
\r
220 public static osm_map_values France = new osm_map_values("France",
\r
224 public static osm_map_values Germany = new osm_map_values(
\r
227 "55.64", 944716238L);
\r
228 public static osm_map_values Bavaria = new osm_map_values(
\r
230 "47.8", "13.6", "49.7",
\r
232 public static osm_map_values Saxonia = new osm_map_values(
\r
234 "50.1", "15.0", "51.7",
\r
236 public static osm_map_values Germany_Austria_Switzerland = new osm_map_values(
\r
237 "Germany+Austria+Switzerland",
\r
238 "3.4", "44.5", "18.6",
\r
239 "55.1", 1385785353L);
\r
240 public static osm_map_values Iceland = new osm_map_values(
\r
241 "Iceland", "-25.3",
\r
242 "62.8", "-11.4", "67.5",
\r
244 public static osm_map_values Ireland = new osm_map_values(
\r
245 "Ireland", "-11.17",
\r
247 "55.9", 70186936L);
\r
248 public static osm_map_values Italy = new osm_map_values("Italy",
\r
252 public static osm_map_values Spain_Portugal = new osm_map_values(
\r
257 public static osm_map_values Mallorca = new osm_map_values(
\r
259 "38.8", "4.7", "40.2",
\r
261 public static osm_map_values Galicia = new osm_map_values(
\r
262 "Galicia", "-10.0",
\r
263 "41.7", "-6.3", "44.1",
\r
265 public static osm_map_values Scandinavia = new osm_map_values(
\r
266 "Scandinavia", "4.0",
\r
267 "54.4", "32.1", "71.5",
\r
269 public static osm_map_values Finland = new osm_map_values(
\r
271 "59.2", "32.3", "70.3",
\r
273 public static osm_map_values Denmark = new osm_map_values(
\r
276 "57.88", 120025875L);
\r
277 public static osm_map_values Switzerland = new osm_map_values(
\r
278 "Switzerland", "5.79",
\r
280 "47.84", 162616817L);
\r
281 public static osm_map_values UK = new osm_map_values("UK",
\r
282 "-9.7", "49.6", "2.2",
\r
283 "61.2", 245161510L);
\r
284 public static osm_map_values Bulgaria = new osm_map_values(
\r
285 "Bulgaria", "24.7",
\r
286 "42.1", "24.8", "42.1",
\r
288 public static osm_map_values Czech_Republic = new osm_map_values(
\r
293 public static osm_map_values Croatia = new osm_map_values(
\r
295 "42.1", "19.4", "46.9",
\r
297 public static osm_map_values Estonia = new osm_map_values(
\r
299 "57.5", "28.2", "59.6",
\r
301 public static osm_map_values Greece = new osm_map_values("Greece",
\r
302 "28.9", "37.8", "29.0",
\r
303 "37.8", 55486527L);
\r
304 public static osm_map_values Crete = new osm_map_values("Crete",
\r
305 "23.3", "34.5", "26.8",
\r
306 "36.0", 57032630L);
\r
307 public static osm_map_values Hungary = new osm_map_values(
\r
308 "Hungary", "16.08",
\r
310 "48.39", 109831319L);
\r
311 public static osm_map_values Latvia = new osm_map_values("Latvia",
\r
312 "20.7", "55.6", "28.3",
\r
313 "58.1", 71490706L);
\r
314 public static osm_map_values Lithuania = new osm_map_values(
\r
315 "Lithuania", "20.9",
\r
316 "53.8", "26.9", "56.5",
\r
318 public static osm_map_values Poland = new osm_map_values("Poland",
\r
319 "13.6", "48.8", "24.5",
\r
320 "55.0", 266136768L);
\r
321 public static osm_map_values Romania = new osm_map_values(
\r
323 "43.5", "29.9", "48.4",
\r
325 public static osm_map_values North_America = new osm_map_values(
\r
330 public static osm_map_values Alaska = new osm_map_values("Alaska",
\r
334 public static osm_map_values Canada = new osm_map_values("Canada",
\r
338 public static osm_map_values Hawaii = new osm_map_values("Hawaii",
\r
339 "-161.07", "18.49",
\r
340 "-154.45", "22.85",
\r
342 public static osm_map_values USA__except_Alaska_and_Hawaii_ = new osm_map_values(
\r
343 "USA (except Alaska and Hawaii)",
\r
347 public static osm_map_values Nevada = new osm_map_values("Nevada",
\r
351 public static osm_map_values Oregon = new osm_map_values("Oregon",
\r
355 public static osm_map_values Washington_State = new osm_map_values(
\r
356 "Washington State",
\r
360 public static osm_map_values South_Middle_America = new osm_map_values(
\r
361 "South+Middle America",
\r
365 public static osm_map_values Argentina = new osm_map_values(
\r
366 "Argentina", "-73.9",
\r
368 "-21.0", 87516152L);
\r
369 public static osm_map_values Argentina_Chile = new osm_map_values(
\r
374 public static osm_map_values Bolivia = new osm_map_values(
\r
375 "Bolivia", "-70.5",
\r
377 "-9.3", 58242168L);
\r
378 public static osm_map_values Brazil = new osm_map_values("Brazil",
\r
382 public static osm_map_values Cuba = new osm_map_values("Cuba",
\r
386 public static osm_map_values Colombia = new osm_map_values(
\r
387 "Colombia", "-79.1",
\r
388 "-4.0", "-66.7", "12.6",
\r
390 public static osm_map_values Ecuador = new osm_map_values(
\r
391 "Ecuador", "-82.6",
\r
392 "-5.4", "-74.4", "2.3",
\r
394 public static osm_map_values Guyana_Suriname_Guyane_Francaise = new osm_map_values(
\r
395 "Guyana+Suriname+Guyane Francaise",
\r
396 "-62.0", "1.0", "-51.2",
\r
398 public static osm_map_values Haiti_Republica_Dominicana = new osm_map_values(
\r
399 "Haiti+Republica Dominicana",
\r
403 public static osm_map_values Jamaica = new osm_map_values(
\r
404 "Jamaica", "-78.6",
\r
405 "17.4", "-75.9", "18.9",
\r
407 public static osm_map_values Mexico = new osm_map_values("Mexico",
\r
411 public static osm_map_values Paraguay = new osm_map_values(
\r
412 "Paraguay", "-63.8",
\r
414 "-18.8", 57188715L);
\r
415 public static osm_map_values Peru = new osm_map_values("Peru",
\r
419 public static osm_map_values Uruguay = new osm_map_values(
\r
420 "Uruguay", "-59.2",
\r
422 "-29.7", 63542225L);
\r
423 public static osm_map_values Venezuela = new osm_map_values(
\r
424 "Venezuela", "-73.6",
\r
425 "0.4", "-59.7", "12.8",
\r
428 public static osm_map_values[] OSM_MAPS = new osm_map_values[]{
\r
429 Whole_Planet, Africa, Angola, Burundi, Democratic_Republic_of_the_Congo, Kenya, Lesotho,
\r
430 Madagascar, Nambia_Botswana, Reunion, Rwanda, South_Africa, Uganda, Asia, China, Cyprus,
\r
431 India_Nepal, Indonesia, Iran, Iraq, Israel, Japan_Korea_Taiwan, Malasia_Singapore,
\r
432 Mongolia, Nambia_Botswana, Thailand, Turkey, UAE_Other, Australia, Tasmania,
\r
433 Victoria_New_South_Wales, New_Zealand, Europe, Western_Europe, Austria, BeNeLux,
\r
434 Faroe_Islands, France, Germany, Bavaria, Saxonia, Germany_Austria_Switzerland, Iceland,
\r
435 Ireland, Italy, Spain_Portugal, Mallorca, Galicia, Scandinavia, Finland, Denmark,
\r
436 Switzerland, UK, Bulgaria, Czech_Republic, Croatia, Estonia, Greece, Crete, Hungary,
\r
437 Latvia, Lithuania, Poland, Romania, North_America, Alaska, Canada, Hawaii,
\r
438 USA__except_Alaska_and_Hawaii_, Nevada, Oregon, Washington_State, South_Middle_America,
\r
439 Argentina, Argentina_Chile, Bolivia, Brazil, Cuba, Colombia, Ecuador,
\r
440 Guyana_Suriname_Guyane_Francaise, Haiti_Republica_Dominicana, Jamaica, Mexico, Paraguay,
\r
441 Peru, Uruguay, Venezuela };
\r
442 public static String[] OSM_MAP_NAME_LIST = new String[]{
\r
443 Whole_Planet.map_name, Africa.map_name, Angola.map_name, Burundi.map_name,
\r
444 Democratic_Republic_of_the_Congo.map_name, Kenya.map_name, Lesotho.map_name,
\r
445 Madagascar.map_name, Nambia_Botswana.map_name, Reunion.map_name, Rwanda.map_name,
\r
446 South_Africa.map_name, Uganda.map_name, Asia.map_name, China.map_name, Cyprus.map_name,
\r
447 India_Nepal.map_name, Indonesia.map_name, Iran.map_name, Iraq.map_name, Israel.map_name,
\r
448 Japan_Korea_Taiwan.map_name, Malasia_Singapore.map_name, Mongolia.map_name,
\r
449 Nambia_Botswana.map_name, Thailand.map_name, Turkey.map_name, UAE_Other.map_name,
\r
450 Australia.map_name, Tasmania.map_name, Victoria_New_South_Wales.map_name,
\r
451 New_Zealand.map_name, Europe.map_name, Western_Europe.map_name, Austria.map_name,
\r
452 BeNeLux.map_name, Faroe_Islands.map_name, France.map_name, Germany.map_name,
\r
453 Bavaria.map_name, Saxonia.map_name, Germany_Austria_Switzerland.map_name,
\r
454 Iceland.map_name, Ireland.map_name, Italy.map_name, Spain_Portugal.map_name,
\r
455 Mallorca.map_name, Galicia.map_name, Scandinavia.map_name, Finland.map_name,
\r
456 Denmark.map_name, Switzerland.map_name, UK.map_name, Bulgaria.map_name,
\r
457 Czech_Republic.map_name, Croatia.map_name, Estonia.map_name, Greece.map_name,
\r
458 Crete.map_name, Hungary.map_name, Latvia.map_name, Lithuania.map_name, Poland.map_name,
\r
459 Romania.map_name, North_America.map_name, Alaska.map_name, Canada.map_name,
\r
460 Hawaii.map_name, USA__except_Alaska_and_Hawaii_.map_name, Nevada.map_name,
\r
461 Oregon.map_name, Washington_State.map_name, South_Middle_America.map_name,
\r
462 Argentina.map_name, Argentina_Chile.map_name, Bolivia.map_name, Brazil.map_name,
\r
463 Cuba.map_name, Colombia.map_name, Ecuador.map_name,
\r
464 Guyana_Suriname_Guyane_Francaise.map_name, Haiti_Republica_Dominicana.map_name,
\r
465 Jamaica.map_name, Mexico.map_name, Paraguay.map_name, Peru.map_name, Uruguay.map_name,
\r
466 Venezuela.map_name };
\r
468 public Boolean stop_me = false;
\r
469 static final int SOCKET_CONNECT_TIMEOUT = 6000;
\r
470 static final int SOCKET_READ_TIMEOUT = 6000;
\r
471 static final int MAP_WRITE_FILE_BUFFER = 1024 * 64;
\r
472 static final int MAP_WRITE_MEM_BUFFER = 1024 * 64;
\r
473 static final int MAP_READ_FILE_BUFFER = 1024 * 64;
\r
474 static final int UPDATE_PROGRESS_EVERY_CYCLE = 8;
\r
477 public class ProgressThread extends Thread
\r
480 osm_map_values map_values;
\r
482 ProgressThread(Handler h, osm_map_values map_values)
\r
485 this.map_values = map_values;
\r
491 int exit_code = download_osm_map(mHandler, map_values);
\r
493 // ok, remove dialog
\r
494 Message msg = mHandler.obtainMessage();
\r
495 Bundle b = new Bundle();
\r
497 b.putInt("dialog_num", Navit.MAPDOWNLOAD_DIALOG);
\r
498 b.putInt("exit_code", exit_code);
\r
500 mHandler.sendMessage(msg);
\r
503 public void stop_thread()
\r
506 Log.d("NavitMapDownloader", "stop_me -> true");
\r
510 public Navit navit_jmain = null;
\r
512 public NavitMapDownloader(Navit main)
\r
514 this.navit_jmain = main;
\r
517 public int download_osm_map(Handler handler, osm_map_values map_values)
\r
521 Message msg = handler.obtainMessage();
\r
522 Bundle b = new Bundle();
\r
524 b.putInt("max", 20); // use a dummy number here
\r
525 b.putInt("cur", 0);
\r
526 b.putString("title", "Mapdownload");
\r
527 b.putString("text", "downloading: " + map_values.map_name);
\r
529 handler.sendMessage(msg);
\r
532 // little pause here
\r
535 catch (InterruptedException e1)
\r
540 String fileName = "navitmap.tmp";
\r
541 String final_fileName = "navitmap.bin";
\r
542 // output path for output filename
\r
543 // String PATH = Environment.getExternalStorageDirectory() + "/download/";
\r
544 String PATH = "/sdcard/";
\r
545 Log.v("log_tag", "mapfilename tmp: " + PATH + fileName);
\r
549 URL url = new URL("http://maps.navit-project.org/api/map/?bbox=" + map_values.lon1 + ","
\r
550 + map_values.lat1 + "," + map_values.lon2 + "," + map_values.lat2);
\r
551 HttpURLConnection c = (HttpURLConnection) url.openConnection();
\r
552 c.setRequestMethod("GET");
\r
553 c.setDoOutput(true);
\r
554 c.setReadTimeout(SOCKET_READ_TIMEOUT);
\r
555 c.setConnectTimeout(SOCKET_CONNECT_TIMEOUT);
\r
556 long real_size_bytes = c.getContentLength();
\r
559 Log.d("NavitMapDownloader", "real size in bytes: " + real_size_bytes);
\r
560 if (real_size_bytes > 20)
\r
562 // change the estimated filesize to reported filesize
\r
563 map_values.est_size_bytes = real_size_bytes;
\r
565 Log.d("NavitMapDownloader", "size in bytes: " + map_values.est_size_bytes);
\r
567 File file = new File(PATH);
\r
568 File outputFile = new File(file, fileName);
\r
569 File final_outputFile = new File(file, final_fileName);
\r
570 // tests have shown that deleting the file first is sometimes faster -> so we delete it (who knows)
\r
571 outputFile.delete();
\r
572 // seems this command overwrites the output file anyway
\r
573 FileOutputStream fos = new FileOutputStream(outputFile);
\r
574 BufferedOutputStream buf = new BufferedOutputStream(fos, MAP_WRITE_FILE_BUFFER); // buffer
\r
576 InputStream is = c.getInputStream();
\r
577 BufferedInputStream bif = new BufferedInputStream(is, MAP_READ_FILE_BUFFER); // buffer
\r
579 byte[] buffer = new byte[MAP_WRITE_MEM_BUFFER]; // buffer
\r
581 int already_read = 0;
\r
582 int alt = UPDATE_PROGRESS_EVERY_CYCLE; // show progress about every xx cylces
\r
584 String kbytes_per_second = "";
\r
585 long start_timestamp = System.currentTimeMillis();
\r
586 NumberFormat formatter = new DecimalFormat("00000.0");
\r
587 String eta_string = "";
\r
588 float per_second_overall = 0f;
\r
589 long bytes_remaining = 0;
\r
590 int eta_seconds = 0;
\r
591 while ((len1 = bif.read(buffer)) != -1)
\r
595 // ok we need to be stopped! close all files and end
\r
604 already_read = already_read + len1;
\r
610 msg = handler.obtainMessage();
\r
613 b.putInt("max", (int) (map_values.est_size_bytes / 1024));
\r
614 b.putInt("cur", (int) (already_read / 1024));
\r
615 b.putString("title", "Map download");
\r
616 per_second_overall = (float) already_read
\r
617 / (float) ((System.currentTimeMillis() - start_timestamp) / 1000);
\r
618 kbytes_per_second = formatter.format((per_second_overall / 1024f));
\r
619 bytes_remaining = map_values.est_size_bytes - already_read;
\r
620 eta_seconds = (int) ((float) bytes_remaining / (float) per_second_overall);
\r
621 if (eta_seconds > 60)
\r
623 eta_string = (int) (eta_seconds / 60f) + " m";
\r
627 eta_string = eta_seconds + " s";
\r
629 b.putString("text", "downloading: " + map_values.map_name + "\n" + " "
\r
630 + (int) (already_read / 1024f / 1024f) + "Mb / "
\r
631 + (int) (map_values.est_size_bytes / 1024f / 1024f) + "Mb" + "\n" + " "
\r
632 + kbytes_per_second + "kb/s" + " ETA: " + eta_string);
\r
634 handler.sendMessage(msg);
\r
637 // // little pause here
\r
638 // Thread.sleep(20);
\r
640 // catch (InterruptedException e1)
\r
644 buf.write(buffer, 0, len1);
\r
656 // delete an already final filename, first
\r
657 final_outputFile.delete();
\r
658 // rename file to final name
\r
659 outputFile.renameTo(final_outputFile);
\r
661 catch (IOException e)
\r
663 msg = handler.obtainMessage();
\r
666 b.putString("text", "Error downloading map!");
\r
668 handler.sendMessage(msg);
\r
670 Log.d("NavitMapDownloader", "Error: " + e);
\r
673 catch (Exception e)
\r
675 msg = handler.obtainMessage();
\r
678 b.putString("text", "Error downloading map!");
\r
680 handler.sendMessage(msg);
\r
682 Log.d("NavitMapDownloader", "gerneral Error: " + e);
\r
686 msg = handler.obtainMessage();
\r
689 b.putInt("max", (int) (map_values.est_size_bytes / 1024));
\r
690 b.putInt("cur", (int) (map_values.est_size_bytes / 1024));
\r
691 b.putString("title", "Mapdownload");
\r
692 b.putString("text", map_values.map_name + " ready");
\r
694 handler.sendMessage(msg);
\r
697 Log.d("NavitMapDownloader", "success");
\r