Merge pull request #268 from owncloud/fix_fails_in_uploads_after_fall_and_rise_of_net...
authormasensio <masensio@solidgear.es>
Wed, 16 Oct 2013 12:26:02 +0000 (05:26 -0700)
committermasensio <masensio@solidgear.es>
Wed, 16 Oct 2013 12:26:02 +0000 (05:26 -0700)
Fix fails in uploads after fall and rise of network connection

1  2 
src/com/owncloud/android/files/services/FileUploader.java

@@@ -271,8 -271,7 +271,8 @@@ public class FileUploader extends Servi
                  if (isInstant) {
                      newUpload.setRemoteFolderToBeCreated();
                  }
 -                mPendingUploads.putIfAbsent(uploadKey, newUpload);
 +                mPendingUploads.putIfAbsent(uploadKey, newUpload); // Grants that the file only upload once time
 +
                  newUpload.addDatatransferProgressListener(this);
                  newUpload.addDatatransferProgressListener((FileUploaderBinder)mBinder);
                  requestedUploads.add(uploadKey);
                      mPendingUploads.remove(uploadKey);
                      Log_OC.i(TAG, "Remove CurrentUploadItem from pending upload Item Map.");
                  }
+                 if (uploadResult.isException()) {
+                     // enforce the creation of a new client object for next uploads; this grant that a new socket will 
+                     // be created in the future if the current exception is due to an abrupt lose of network connection
+                     mUploadClient = null;
+                 }
              }
              
              /// notify result
          mNotification.contentView.setImageViewResource(R.id.status_icon, R.drawable.icon);
          
          /// includes a pending intent in the notification showing the details view of the file
 -        Intent showDetailsIntent = null;
 -        if (PreviewImageFragment.canBePreviewed(upload.getFile())) {
 -            showDetailsIntent = new Intent(this, PreviewImageActivity.class);
 -        } else {
 -            showDetailsIntent = new Intent(this, FileDisplayActivity.class);
 -        }
 +        Intent showDetailsIntent = new Intent(this, FileDisplayActivity.class);
          showDetailsIntent.putExtra(FileActivity.EXTRA_FILE, upload.getFile());
          showDetailsIntent.putExtra(FileActivity.EXTRA_ACCOUNT, upload.getAccount());
          showDetailsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);