Эх сурвалжийг харах

update db when retrying upload
allow LATER upload to be cancelled

Luke Owncloud 10 жил өмнө
parent
commit
3dacd2436d

+ 6 - 0
src/com/owncloud/android/files/services/FileUploadService.java

@@ -464,6 +464,12 @@ public class FileUploadService extends IntentService implements OnDatatransferPr
             String remotePath = intent.getStringExtra(KEY_RETRY_REMOTE_PATH);
             list.add(remotePath);
             it = list.iterator();
+            // update db status for upload
+            UploadDbObject uploadDbObject = mPendingUploads.get(remotePath);
+            uploadDbObject.setUploadStatus(UploadStatus.UPLOAD_LATER);
+            uploadDbObject.setLastResult(null);
+            mDb.updateUpload(uploadDbObject);
+
             Log_OC.d(TAG, "Start uploading " + remotePath);
         } else {
             it = mPendingUploads.keySet().iterator();

+ 13 - 4
src/com/owncloud/android/ui/fragment/UploadListFragment.java

@@ -34,7 +34,6 @@ import android.widget.ExpandableListView.ExpandableListContextMenuInfo;
 import android.widget.ListView;
 
 import com.owncloud.android.R;
-import com.owncloud.android.db.UploadDbHandler.UploadStatus;
 import com.owncloud.android.db.UploadDbObject;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.activity.FileActivity;
@@ -112,14 +111,14 @@ public class UploadListFragment extends ExpandableListFragment {
         int childPosition = ExpandableListView.getPackedPositionChild(info.packedPosition);
         int groupPosition = ExpandableListView.getPackedPositionGroup(info.packedPosition);
         UploadDbObject uploadFile = (UploadDbObject) mAdapter.getChild(groupPosition, childPosition);
-        if (uploadFile.getUploadStatus() != UploadStatus.UPLOAD_IN_PROGRESS) {
-            MenuItem item = menu.findItem(R.id.action_cancel_upload);
+        if (userCanCancelUpload(uploadFile)) {
+            MenuItem item = menu.findItem(R.id.action_remove_upload);
             if (item != null) {
                 item.setVisible(false);
                 item.setEnabled(false);
             }
         } else {
-            MenuItem item = menu.findItem(R.id.action_remove_upload);
+            MenuItem item = menu.findItem(R.id.action_cancel_upload);
             if (item != null) {
                 item.setVisible(false);
                 item.setEnabled(false);
@@ -134,6 +133,16 @@ public class UploadListFragment extends ExpandableListFragment {
         }
     }
     
+    private boolean userCanCancelUpload(UploadDbObject uploadFile) {
+        switch (uploadFile.getUploadStatus()) {
+        case UPLOAD_IN_PROGRESS:
+        case UPLOAD_LATER:
+            return true;
+        default:
+            return false;
+        }
+    }
+
     /**
      * Returns true when user can choose to retry this upload.
      *