Cancel transfers of an account when it detects that the account doesn't exist

This commit is contained in:
masensio 2015-02-02 14:51:46 +01:00
parent ab8bf56a15
commit aa7b7af721

View file

@ -327,7 +327,6 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
return false; // not accepting rebinding (default behaviour)
}
/**
* Binder to let client components to perform operations on the queue of
* uploads.
@ -357,15 +356,10 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
}
}
public void clearListeners() {
mBoundListeners.clear();
}
/**
* Returns True when the file described by 'file' is being uploaded to
* the ownCloud account 'account' or waiting for it
@ -548,6 +542,8 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
} else {
// Cancel the transfer
Log_OC.d(TAG, "Account " + mCurrentUpload.getAccount().toString() + " doesn't exist");
cancelUploadForAccount(mCurrentUpload.getAccount().name);
}
}
@ -887,4 +883,21 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
!localPath.endsWith(FILE_EXTENSION_PDF);
}
/**
* Remove uploads of an account
* @param accountName
*/
private void cancelUploadForAccount(String accountName){
// this can be slow if there are many uploads :(
Iterator<String> it = mPendingUploads.keySet().iterator();
Log_OC.d(TAG, "Number of pending updloads= " + mPendingUploads.size());
boolean found;
while (it.hasNext()) {
String key = it.next();
Log_OC.d(TAG, "mPendingUploads CANCELLED" + key);
if (key.startsWith(accountName)) {
mPendingUploads.remove(key);
}
}
}
}