Browse Source

Merge pull request #13255 from nextcloud/13035-only-pictures-are-enabled-but-videos-also-auto-synced

Check for right media type in auto upload
Alper Öztürk 11 months ago
parent
commit
dad6486a06

+ 8 - 2
app/src/main/java/com/owncloud/android/datamodel/SyncedFolder.java

@@ -12,7 +12,9 @@ package com.owncloud.android.datamodel;
 
 import com.nextcloud.client.preferences.SubFolderRule;
 import com.owncloud.android.files.services.NameCollisionPolicy;
+import com.owncloud.android.utils.MimeTypeUtil;
 
+import java.io.File;
 import java.io.Serializable;
 
 /**
@@ -274,8 +276,12 @@ public class SyncedFolder implements Serializable, Cloneable {
         this.excludeHidden = excludeHidden;
     }
 
-    public boolean containsFile(String filePath){
-        return filePath.contains(localPath);
+    public boolean containsTypedFile(String filePath){
+        boolean isCorrectMediaType =
+                (getType() == MediaFolderType.IMAGE && MimeTypeUtil.isImage(new File(filePath))) ||
+                (getType() == MediaFolderType.VIDEO && MimeTypeUtil.isVideo(new File(filePath))) ||
+                getType() == MediaFolderType.CUSTOM;
+        return filePath.contains(localPath) && isCorrectMediaType;
     }
 
     public long getLastScanTimestampMs() { return lastScanTimestampMs; }

+ 1 - 5
app/src/main/java/com/owncloud/android/utils/FilesSyncHelper.java

@@ -8,7 +8,6 @@
  */
 package com.owncloud.android.utils;
 
-import android.accounts.Account;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.Cursor;
@@ -16,7 +15,6 @@ import android.net.Uri;
 import android.provider.MediaStore;
 
 import com.nextcloud.client.account.UserAccountManager;
-import com.nextcloud.client.device.BatteryStatus;
 import com.nextcloud.client.device.PowerManagementService;
 import com.nextcloud.client.jobs.BackgroundJobManager;
 import com.nextcloud.client.jobs.upload.FileUploadHelper;
@@ -27,8 +25,6 @@ import com.owncloud.android.datamodel.MediaFolderType;
 import com.owncloud.android.datamodel.SyncedFolder;
 import com.owncloud.android.datamodel.SyncedFolderProvider;
 import com.owncloud.android.datamodel.UploadsStorageManager;
-import com.owncloud.android.db.OCUpload;
-import com.owncloud.android.db.UploadResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
 
 import org.lukhnos.nnio.file.FileVisitResult;
@@ -152,7 +148,7 @@ public final class FilesSyncHelper {
         final FilesystemDataProvider filesystemDataProvider = new FilesystemDataProvider(contentResolver);
         for (String changedFileURI : changedFiles){
             String changedFile = getFileFromURI(changedFileURI);
-            if (syncedFolder.isEnabled() && syncedFolder.containsFile(changedFile)){
+            if (syncedFolder.containsTypedFile(changedFile)){
                 File file = new File(changedFile);
                 filesystemDataProvider.storeOrUpdateFileValue(changedFile,
                                                               file.lastModified(),file.isDirectory(),