Handle partial clip files by showing a failure notification.
Bug: 30221384
Change-Id: Ib32b6b5ca5b8f7be887b8f35b80daeeb33770cbe
diff --git a/packages/DocumentsUI/src/com/android/documentsui/services/CopyJob.java b/packages/DocumentsUI/src/com/android/documentsui/services/CopyJob.java
index c8f6a64..8eabbe4 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/services/CopyJob.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/services/CopyJob.java
@@ -273,6 +273,8 @@
try {
final ContentResolver resolver = appContext.getContentResolver();
final Iterable<Uri> uris = srcs.getUris(appContext);
+
+ int docProcessed = 0;
for (Uri uri : uris) {
DocumentInfo doc = DocumentInfo.fromUri(resolver, uri);
if (canCopy(doc, stack.root)) {
@@ -280,11 +282,16 @@
} else {
onFileFailed(doc);
}
+ ++docProcessed;
if (isCanceled()) {
return;
}
}
+
+ // If docProcessed is different than the count claimed by UrisSupplier, add the number
+ // to failedFileCount.
+ failedFileCount += (srcs.getItemCount() - docProcessed);
} catch(IOException e) {
failedFileCount += srcs.getItemCount();
throw new ResourceException("Failed to open the list of docs to copy.", e);
diff --git a/packages/DocumentsUI/src/com/android/documentsui/services/DeleteJob.java b/packages/DocumentsUI/src/com/android/documentsui/services/DeleteJob.java
index 64bc1a7..5a36818 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/services/DeleteJob.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/services/DeleteJob.java
@@ -120,6 +120,10 @@
++mDocsProcessed;
}
+
+ // If mDocProcessed is different than the count claimed by UrisSupplier, add the number
+ // to failedFileCount.
+ failedFileCount += (this.srcs.getItemCount() - mDocsProcessed);
Metrics.logFileOperation(service, operationType, srcs, null);
} catch(IOException e) {
Log.e(TAG, "Failed to get list of docs or parent source.", e);