From bc8e15513eb9727643a582ca90b654b514fc8f68 Mon Sep 17 00:00:00 2001 From: Eemil Lagerspetz Date: Mon, 13 Nov 2017 22:13:03 +0200 Subject: [PATCH] Sample progress reporting improved. --- caratApp/build.gradle | 4 ++-- .../android/protocol/CommunicationManager.java | 14 +++++++++++--- .../carat/android/protocol/SampleSender.java | 8 +++++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/caratApp/build.gradle b/caratApp/build.gradle index 2ef7029e..6081c5a5 100644 --- a/caratApp/build.gradle +++ b/caratApp/build.gradle @@ -5,8 +5,8 @@ android { buildToolsVersion "25.0.2" defaultConfig { - versionCode 126 - versionName "2.17.12" + versionCode 127 + versionName "2.17.13" applicationId "edu.berkeley.cs.amplab.carat.android" minSdkVersion 10 //noinspection OldTargetApi diff --git a/caratApp/src/main/java/edu/berkeley/cs/amplab/carat/android/protocol/CommunicationManager.java b/caratApp/src/main/java/edu/berkeley/cs/amplab/carat/android/protocol/CommunicationManager.java index fd8dc010..8ffddf1f 100644 --- a/caratApp/src/main/java/edu/berkeley/cs/amplab/carat/android/protocol/CommunicationManager.java +++ b/caratApp/src/main/java/edu/berkeley/cs/amplab/carat/android/protocol/CommunicationManager.java @@ -109,7 +109,14 @@ private void registerMe(CaratService.Client instance, String uuId, String os, St instance.registerMe(registration); } - public int uploadSamples(Collection samples) { + /** + * Upload the given collection of Samples. + * @param samples + * @param countSoFar number of samples that have been sent so far this time around. + * @param sampleCount The total number of samples in the database to be sent this time around. + * @return Number of samples out out samples that were successfully sent. + */ + public int uploadSamples(Collection samples, double countSoFar, double sampleCount) { int successCount = 0; registerLocal(); if(rpcService == null){ @@ -130,10 +137,11 @@ public int uploadSamples(Collection samples) { try { if(rpcService.uploadSample(sample)){ successCount++; - int progress = (int)(successCount*100.0 / batchSize); + // This is only progress in batch + // int progress = (int)(successCount*100.0 / batchSize); + long progress = Math.round((successCount+countSoFar)*100.0/sampleCount); String progressString = progress + "% " + CaratApplication.getAppContext().getString(R.string.samplesreported); CaratApplication.setStatus(progressString); - } } catch (Throwable th) { Logger.e(TAG, "Error uploading sample", th); diff --git a/caratApp/src/main/java/edu/berkeley/cs/amplab/carat/android/protocol/SampleSender.java b/caratApp/src/main/java/edu/berkeley/cs/amplab/carat/android/protocol/SampleSender.java index 929fccdc..bd5f151f 100644 --- a/caratApp/src/main/java/edu/berkeley/cs/amplab/carat/android/protocol/SampleSender.java +++ b/caratApp/src/main/java/edu/berkeley/cs/amplab/carat/android/protocol/SampleSender.java @@ -45,7 +45,7 @@ public static boolean sendSamples(CaratApplication app) { return false; } int sampleCount = db.countSamples(); - String progressString = "0 of "+sampleCount +" "+ app.getString(R.string.samplesreported); + String progressString = "0% of "+sampleCount +" "+ app.getString(R.string.samplesreported); CaratApplication.setStatus(progressString); int successSum = 0; int failures = 0; @@ -53,14 +53,16 @@ public static boolean sendSamples(CaratApplication app) { Logger.d(Constants.SF, "Queried a batch of samples of size: " + batch.size()); sendingSamples = true; while(batch.size() > 0 && failures <= 3){ - int sent = commManager.uploadSamples(batch.values()); + int sent = commManager.uploadSamples(batch.values(), successSum, sampleCount); if(sent > 0){ failures = 0; // Reset tries successSum += sent; + /* + Report this within uploadSamples for better granularity int progress = (int)(successSum*100.0 / sampleCount); progressString = progress + "% " + app.getString(R.string.samplesreported); CaratApplication.setStatus(progressString); - + */ // Delete samples that were sent successfully Set sentRowIds = Util.firstEntries(sent, batch).keySet(); db.deleteSamples(sentRowIds);