diff --git a/.drone.yml b/.drone.yml
index 5e2447f26950..0e067f8e4329 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -1,6 +1,6 @@
pipeline:
test:
- image: nextcloudci/android:android-32
+ image: nextcloudci/android:android-35
commands:
# uncomment gplay for Gplay, Modified only
- sh -c "if [ '$FLAVOUR' != 'Generic' ]; then sed -i '/.*com.google.*/s/^.*\\/\\///g' build.gradle; fi"
diff --git a/src/main/java/com/owncloud/android/datamodel/UploadsStorageManager.java b/src/main/java/com/owncloud/android/datamodel/UploadsStorageManager.java
index b13cb6b1f9a4..d0ce5659ed6b 100644
--- a/src/main/java/com/owncloud/android/datamodel/UploadsStorageManager.java
+++ b/src/main/java/com/owncloud/android/datamodel/UploadsStorageManager.java
@@ -363,7 +363,7 @@ public OCUpload[] getCurrentAndPendingUploadsForCurrentAccount() {
* Get all failed uploads.
*/
public OCUpload[] getFailedUploads() {
- return getUploads(ProviderTableMeta.UPLOADS_STATUS + "== ?" +
+ return getUploads("(" + ProviderTableMeta.UPLOADS_STATUS + "== ?" +
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
"==" + UploadResult.DELAYED_FOR_WIFI.getValue() +
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
@@ -371,7 +371,9 @@ public OCUpload[] getFailedUploads() {
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
"==" + UploadResult.DELAYED_FOR_CHARGING.getValue() +
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
- "==" + UploadResult.DELAYED_IN_POWER_SAVE_MODE.getValue()
+ "==" + UploadResult.DELAYED_IN_POWER_SAVE_MODE.getValue() +
+ " ) AND " + ProviderTableMeta.UPLOADS_LAST_RESULT +
+ "!= " + UploadResult.VIRUS_DETECTED.getValue()
, new String[]{String.valueOf(UploadStatus.UPLOAD_FAILED.value)});
}
diff --git a/src/main/java/com/owncloud/android/db/UploadResult.java b/src/main/java/com/owncloud/android/db/UploadResult.java
index e9a1f57ef44a..2d81886f9fa0 100644
--- a/src/main/java/com/owncloud/android/db/UploadResult.java
+++ b/src/main/java/com/owncloud/android/db/UploadResult.java
@@ -38,7 +38,8 @@ public enum UploadResult {
MAINTENANCE_MODE(12),
LOCK_FAILED(13),
DELAYED_IN_POWER_SAVE_MODE(14),
- SSL_RECOVERABLE_PEER_UNVERIFIED(15);
+ SSL_RECOVERABLE_PEER_UNVERIFIED(15),
+ VIRUS_DETECTED(16);
private final int value;
@@ -86,6 +87,8 @@ public static UploadResult fromValue(int value) {
return DELAYED_IN_POWER_SAVE_MODE;
case 15:
return SSL_RECOVERABLE_PEER_UNVERIFIED;
+ case 16:
+ return VIRUS_DETECTED;
}
return null;
}
@@ -134,9 +137,10 @@ public static UploadResult fromOperationResult(RemoteOperationResult result) {
return UNKNOWN;
case LOCK_FAILED:
return LOCK_FAILED;
+ case VIRUS_DETECTED:
+ return VIRUS_DETECTED;
default:
return UNKNOWN;
}
-
}
}
diff --git a/src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java b/src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java
index 47803c655f09..4ef88ab7ba1a 100755
--- a/src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java
+++ b/src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java
@@ -488,6 +488,9 @@ private String getStatusText(OCUpload upload) {
status = mParentActivity.getString(
R.string.uploads_view_upload_status_waiting_exit_power_save_mode);
break;
+ case VIRUS_DETECTED:
+ status = mParentActivity.getString(R.string.uploads_view_upload_status_virus_detected);
+ break;
default:
status = "New fail result but no description for the user";
break;
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index b1e3414a3402..2a523ce4481a 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -783,4 +783,5 @@
Upload files
Upload content from other apps
Create new folder
+ Virus detected. Upload cannot be completed!