@@ -82,7 +82,13 @@ private void sendProgress(final String id, int progressPercent) {
82
82
}
83
83
}
84
84
85
- private void sendSuccess (final String id , final String response , int statusCode , long uploadDuration , long finishUploadTime ) {
85
+ private void sendSuccess (HashMap <String , Object > uploadData ) {
86
+ String id = (String ) uploadData .get ("outputId" );
87
+ String response = (String ) uploadData .get ("response" );
88
+ int statusCode = (int ) uploadData .get ("statusCode" );
89
+ long uploadDuration = (long ) uploadData .get ("uploadDuration" );
90
+ long finishUploadTime = (long ) uploadData .get ("finishUploadTime" );
91
+
86
92
if (response != null && !response .isEmpty ()) {
87
93
logMessage ("eventLabel='Uploader onSuccess' uploadId='" + id + "' response='" + response .substring (0 , Math .min (2000 , response .length () - 1 )) + "'" );
88
94
} else {
@@ -195,8 +201,11 @@ private void initManager(String options, final CallbackContext callbackContext)
195
201
196
202
int ackDelay = 0 ;
197
203
for (UploadEvent ack : uploadEvents ) {
204
+ long startUploadTime = ack .getOutputData ().getLong ("output_upload_start_time" , 0 );
205
+ long endUploadTime = ack .getOutputData ().getLong ("output_upload_end_time" , 0 );
206
+ long uploadDuration = endUploadTime - startUploadTime ;
198
207
executorService .schedule (() -> {
199
- handleAck (ack .getOutputData (), ack . calculateUploadDuration (), ack . getFinishUploadTime () );
208
+ handleAck (ack .getOutputData (), uploadDuration , endUploadTime );
200
209
}, ackDelay , TimeUnit .MILLISECONDS );
201
210
ackDelay += 200 ;
202
211
}
@@ -230,7 +239,10 @@ private void initManager(String options, final CallbackContext callbackContext)
230
239
// The corresponding ACK is already in the DB, if it not, the task is just a leftover
231
240
String id = info .getOutputData ().getString (UploadTask .KEY_OUTPUT_ID );
232
241
if (ackDatabase .uploadEventDao ().exists (id )) {
233
- handleAck (info .getOutputData (), ackDatabase .uploadEventDao ().getById (id ).calculateUploadDuration (), ackDatabase .uploadEventDao ().getById (id ).getFinishUploadTime ());
242
+ long startUploadTime = info .getOutputData ().getLong ("output_upload_start_time" , 0 );
243
+ long endUploadTime = info .getOutputData ().getLong ("output_upload_end_time" , 0 );
244
+ long uploadDuration = endUploadTime - startUploadTime ;
245
+ handleAck (info .getOutputData (), uploadDuration , endUploadTime );
234
246
}
235
247
}, 0 , TimeUnit .MILLISECONDS );
236
248
break ;
@@ -412,14 +424,14 @@ private void handleAck(final Data ackData, final long uploadDuration, final long
412
424
response = readFileToStringNoThrow (ackData .getString (UploadTask .KEY_OUTPUT_RESPONSE_FILE ));
413
425
}
414
426
415
- sendSuccess (
416
- ackData .getString (UploadTask .KEY_OUTPUT_ID ),
417
- response ,
418
- ackData .getInt (UploadTask .KEY_OUTPUT_STATUS_CODE , -1 /* If this is sent, something is really wrong */ ),
419
- uploadDuration ,
420
- finishUploadTime
421
- );
427
+ HashMap <String , Object > uploadData = new HashMap <>();
428
+ uploadData .put ("outputId" , ackData .getString (UploadTask .KEY_OUTPUT_ID ));
429
+ uploadData .put ("response" , response );
430
+ uploadData .put ("statusCode" , ackData .getInt (UploadTask .KEY_OUTPUT_STATUS_CODE , -1 ));
431
+ uploadData .put ("uploadDuration" , uploadDuration );
432
+ uploadData .put ("finishUploadTime" , finishUploadTime );
422
433
434
+ sendSuccess (uploadData );
423
435
} else {
424
436
// The upload was a failure
425
437
sendError (
0 commit comments