From 317bdf5438756dbceeba81a31ee768c31a88ff12 Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Fri, 4 Apr 2014 18:01:00 +0900 Subject: [PATCH 1/2] Guesstimate installation progress. --- lib/roles/device/plugins/install.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/roles/device/plugins/install.js b/lib/roles/device/plugins/install.js index a2b119e0..7da0ca7d 100644 --- a/lib/roles/device/plugins/install.js +++ b/lib/roles/device/plugins/install.js @@ -58,8 +58,8 @@ module.exports = syrup.serial() // Progress 0% to 70% sendProgress( 'pushing_app' - , 70 * Math.max(0, Math.min( - 70 + , 50 * Math.max(0, Math.min( + 50 , stats.bytesTransferred / contentLength )) ) @@ -90,9 +90,22 @@ module.exports = syrup.serial() sendProgress('pushing_app', 0) pushApp() .then(function(apk) { - // Progress 80% - sendProgress('installing_app', 80) - return adb.installRemote(options.serial, apk) + var start = 50 + , end = 90 + , guesstimate = start + + sendProgress('installing_app', guesstimate) + return promiseutil.periodicNotify( + adb.installRemote(options.serial, apk) + , 1000 + ) + .progressed(function() { + guesstimate = Math.min( + end + , guesstimate + 5 * (end - guesstimate) / (end - start) + ) + sendProgress('installing_app', guesstimate) + }) }) .timeout(30000) .then(function() { From c45da05e28c375883925091837461da82f83b1dd Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Fri, 4 Apr 2014 18:02:46 +0900 Subject: [PATCH 2/2] Add missing require and remove unnecessary require. --- lib/roles/device/plugins/install.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/roles/device/plugins/install.js b/lib/roles/device/plugins/install.js index 7da0ca7d..ca456548 100644 --- a/lib/roles/device/plugins/install.js +++ b/lib/roles/device/plugins/install.js @@ -1,5 +1,4 @@ var stream = require('stream') -var util = require('util') var syrup = require('syrup') var request = require('request') @@ -8,6 +7,7 @@ var Promise = require('bluebird') var logger = require('../../../util/logger') var wire = require('../../../wire') var wireutil = require('../../../wire/util') +var promiseutil = require('../../../util/promiseutil') module.exports = syrup.serial() .dependency(require('../support/adb'))