OSDN Git Service

Handle partial clip files by showing a failure notification.
authorGarfield, Tan <xutan@google.com>
Thu, 21 Jul 2016 18:10:44 +0000 (11:10 -0700)
committerGarfield Tan <xutan@google.com>
Thu, 21 Jul 2016 23:47:20 +0000 (23:47 +0000)
Bug: 30221384
Change-Id: Ib32b6b5ca5b8f7be887b8f35b80daeeb33770cbe

packages/DocumentsUI/src/com/android/documentsui/services/CopyJob.java
packages/DocumentsUI/src/com/android/documentsui/services/DeleteJob.java

index c8f6a64..8eabbe4 100644 (file)
@@ -273,6 +273,8 @@ class CopyJob extends Job {
         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 @@ class CopyJob extends Job {
                 } 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);
index 64bc1a7..5a36818 100644 (file)
@@ -120,6 +120,10 @@ final class DeleteJob extends Job {
 
                 ++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);