[Download] Callback should be called asynchronously
authorPiotr Kosko <p.kosko@samsung.com>
Tue, 22 Sep 2015 09:11:55 +0000 (11:11 +0200)
committerPiotr Kosko <p.kosko@samsung.com>
Tue, 22 Sep 2015 09:12:53 +0000 (11:12 +0200)
[Verification] Code compiles, application WallpapersHD work fine.

Change-Id: I8b1c0206fa11bab5b8f667e449e2079963eacca1
Signed-off-by: Piotr Kosko <p.kosko@samsung.com>
src/download/download_api.js

index 8b6c0c4..841423e 100755 (executable)
@@ -34,36 +34,33 @@ extension.setMessageListener(function(json) {
     console.logd('Ignoring unknown callback: ' + result.callbackId);
     return;
   }
-
-  if (result.status == 'progress') {
-    if (callback.onprogress) {
-      var receivedSize = result.receivedSize;
-      var totalSize = result.totalSize;
-      callback.onprogress(result.callbackId, receivedSize, totalSize);
-    }
-  }
-  else if (result.status == 'paused') {
-    if (callback.onpaused) {
-      callback.onpaused(result.callbackId);
-    }
-  }
-  else if (result.status == 'canceled') {
-    if (callback.oncanceled) {
-      callback.oncanceled(result.callbackId);
+  setTimeout(function() {
+    if (result.status == 'progress') {
+      if (callback.onprogress) {
+        var receivedSize = result.receivedSize;
+        var totalSize = result.totalSize;
+        callback.onprogress(result.callbackId, receivedSize, totalSize);
+      }
+    } else if (result.status == 'paused') {
+      if (callback.onpaused) {
+        callback.onpaused(result.callbackId);
+      }
+    } else if (result.status == 'canceled') {
+      if (callback.oncanceled) {
+        callback.oncanceled(result.callbackId);
+      }
+    } else if (result.status == 'completed') {
+      if (callback.oncompleted) {
+        var fullPath = result.fullPath;
+        callback.oncompleted(result.callbackId, fullPath);
+      }
+    } else if (result.status == 'error') {
+      if (callback.onfailed) {
+        callback.onfailed(result.callbackId,
+            new WebAPIException(result.error));
+      }
     }
-  }
-  else if (result.status == 'completed') {
-    if (callback.oncompleted) {
-      var fullPath = result.fullPath;
-      callback.oncompleted(result.callbackId, fullPath);
-    }
-  }
-  else if (result.status == 'error') {
-    if (callback.onfailed) {
-      callback.onfailed(result.callbackId,
-              new WebAPIException(result.error));
-    }
-  }
+  }, 0);
 });
 
 function nextCallbackId() {