summaryrefslogtreecommitdiff
path: root/navit
diff options
context:
space:
mode:
authormdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220>2015-03-31 17:57:47 +0000
committermdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220>2015-03-31 17:57:47 +0000
commit55d8d0fda881b03647dd50c0dcb9b2427a82705a (patch)
tree5388452f6eb67f335f5a74ea716791c91ca2085f /navit
parent0d9dc6b7a902088d2cbf93f1857b7876b81a2f4f (diff)
downloadnavit-svn-55d8d0fda881b03647dd50c0dcb9b2427a82705a.tar.gz
Fix:port_android:Do not show estimated time and percent value as "NaN" in map download progress info
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@6037 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit')
-rw-r--r--navit/android/src/org/navitproject/navit/NavitMapDownloader.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/navit/android/src/org/navitproject/navit/NavitMapDownloader.java b/navit/android/src/org/navitproject/navit/NavitMapDownloader.java
index 7475ee5b..421758fd 100644
--- a/navit/android/src/org/navitproject/navit/NavitMapDownloader.java
+++ b/navit/android/src/org/navitproject/navit/NavitMapDownloader.java
@@ -345,7 +345,7 @@ public class NavitMapDownloader extends Thread
retry_counter = 0;
Log.v(TAG, "start download " + map_values.map_name);
- updateProgress(0, 20, Navit._("downloading") + ": " + map_values.map_name);
+ updateProgress(0, map_values.est_size_bytes, Navit._("downloading") + ": " + map_values.map_name);
boolean success;
do {
@@ -435,8 +435,12 @@ public class NavitMapDownloader extends Thread
c.setRequestProperty("Range", "bytes=" + old_download_size + "-");
already_read = old_download_size;
}
+ try {
+ real_size_bytes=Long.parseLong(c.getHeaderField("Content-Length")) + already_read;
+ } catch(Exception e) {
+ real_size_bytes=-1;
+ }
- real_size_bytes = c.getContentLength() + already_read;
long fileTime = c.getLastModified();
if (!resume) {
@@ -638,7 +642,7 @@ public class NavitMapDownloader extends Thread
protected void updateProgress(long startTime, long offsetBytes, long readBytes, long maxBytes) {
long currentTime = System.nanoTime();
- if (currentTime > uiLastUpdated + UPDATE_PROGRESS_TIME_NS) {
+ if ((currentTime > uiLastUpdated + UPDATE_PROGRESS_TIME_NS) && startTime!=currentTime) {
float per_second_overall = (readBytes - offsetBytes) / ((currentTime - startTime) / 1000000000f);
long bytes_remaining = maxBytes - readBytes;
int eta_seconds = (int) (bytes_remaining / per_second_overall);