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

show pending jobs in upload view
cancel pending jobs

tobiasKaminsky 8 жил өмнө
parent
commit
2b86d9912e

+ 13 - 0
src/com/owncloud/android/datamodel/UploadsStorageManager.java

@@ -401,6 +401,19 @@ public class UploadsStorageManager extends Observable {
         return list;
     }
 
+    public void cancelPendingJob(String accountName, String remotePath){
+        JobScheduler js = (JobScheduler) mContext.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+
+        for (JobInfo ji: js.getAllPendingJobs()) {
+            PersistableBundle extras = ji.getExtras();
+            if (remotePath.equalsIgnoreCase(extras.getString("remotePath")) &&
+                accountName.equalsIgnoreCase(extras.getString("account"))){
+                js.cancel(ji.getId());
+                break;
+            }
+        }
+    }
+
     /**
      * Get all failed uploads.
      */

+ 4 - 4
src/com/owncloud/android/files/services/FileUploader.java

@@ -677,10 +677,10 @@ public class FileUploader extends Service
                 upload.cancel();
                 // need to update now table in mUploadsStorageManager,
                 // since the operation will not get to be run by FileUploader#uploadFile
-                mUploadsStorageManager.removeUpload(
-                        accountName,
-                        remotePath
-                );
+                mUploadsStorageManager.removeUpload(accountName, remotePath);
+            } else {
+                // try to cancel job in jobScheduler
+                mUploadsStorageManager.cancelPendingJob(accountName, remotePath);
             }
         }
 

+ 1 - 1
src/com/owncloud/android/services/observer/SyncedFolderObserver.java

@@ -47,7 +47,7 @@ class SyncedFolderObserver extends RecursiveFileObserver {
             PersistableBundle bundle = new PersistableBundle();
             // TODO extract
             bundle.putString(SyncedFolderJobService.LOCAL_PATH, path);
-            bundle.putString(SyncedFolderJobService.REMOTE_PATH, syncedFolder.getRemotePath());
+            bundle.putString(SyncedFolderJobService.REMOTE_PATH, syncedFolder.getRemotePath() + "/" + temp.getName());
             bundle.putLong(SyncedFolderJobService.DATE_TAKEN, new Date().getTime());
             bundle.putString(SyncedFolderJobService.ACCOUNT, syncedFolder.getAccount());
             bundle.putInt(SyncedFolderJobService.UPLOAD_BEHAVIOUR, syncedFolder.getUploadAction());

+ 1 - 1
src/com/owncloud/android/ui/adapter/ExpandableUploadListAdapter.java

@@ -209,7 +209,7 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
             view = inflator.inflate(R.layout.upload_list_item, parent, false);
         }
 
-        if (uploadsItems != null && uploadsItems.length > position) {
+        if (uploadsItems != null && uploadsItems.length > position && uploadsItems[position] != null) {
             final OCUpload upload = uploadsItems[position];
 
             // local file name