Browse Source

add videos to the list

AndyScherzinger 8 years ago
parent
commit
e5e68ac3e7

+ 6 - 0
src/main/java/com/owncloud/android/datamodel/MediaFolder.java

@@ -27,6 +27,10 @@ import java.util.List;
  * Business object representing a media folder with all information that are gathered via media queries.
  */
 public class MediaFolder {
+    public enum FOLDER_TYPE {
+        AUDIO, VIDEO, IMAGE, IMAGE_VIDEO, CUSTOM
+    }
+
     /** name of the folder. */
     public String folderName;
 
@@ -38,4 +42,6 @@ public class MediaFolder {
 
     /** total number of files in the media folder. */
     public long numberOfFiles;
+
+    public FOLDER_TYPE type;
 }

+ 3 - 1
src/main/java/com/owncloud/android/datamodel/MediaProvider.java

@@ -112,6 +112,7 @@ public class MediaProvider {
                 MediaFolder mediaFolder = new MediaFolder();
                 folderName = cursorFolders.getString(cursorFolders.getColumnIndex(
                         MediaStore.Images.Media.BUCKET_DISPLAY_NAME));
+                mediaFolder.type = MediaFolder.FOLDER_TYPE.IMAGE;
                 mediaFolder.folderName = folderName;
                 mediaFolder.filePaths = new ArrayList<>();
 
@@ -162,7 +163,7 @@ public class MediaProvider {
         return mediaFolders;
     }
 
-    public static List<MediaFolder> getMediaFolders(ContentResolver contentResolver, int itemLimit) {
+    public static List<MediaFolder> getVideoFolders(ContentResolver contentResolver, int itemLimit) {
         Cursor cursorFolders = contentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                 VIDEOS_FOLDER_PROJECTION, null, null, null);
         List<MediaFolder> mediaFolders = new ArrayList<>();
@@ -180,6 +181,7 @@ public class MediaProvider {
                 MediaFolder mediaFolder = new MediaFolder();
                 folderName = cursorFolders.getString(cursorFolders.getColumnIndex(
                         MediaStore.Video.Media.BUCKET_DISPLAY_NAME));
+                mediaFolder.type = MediaFolder.FOLDER_TYPE.VIDEO;
                 mediaFolder.folderName = folderName;
                 mediaFolder.filePaths = new ArrayList<>();
 

+ 8 - 1
src/main/java/com/owncloud/android/ui/activity/FolderSyncActivity.java

@@ -48,6 +48,7 @@ import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.datamodel.SyncedFolder;
 import com.owncloud.android.datamodel.SyncedFolderDisplayItem;
 import com.owncloud.android.datamodel.SyncedFolderProvider;
+import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.ui.adapter.FolderSyncAdapter;
 import com.owncloud.android.ui.decoration.MediaGridItemDecoration;
@@ -177,8 +178,14 @@ public class FolderSyncActivity extends FileActivity implements FolderSyncAdapte
         new Thread(new Runnable() {
             @Override
             public void run() {
-                final List<MediaFolder> mediaFolders = MediaProvider.getMediaFolders(getContentResolver(),
+                final List<MediaFolder> mediaFolders = MediaProvider.getImageFolders(getContentResolver(),
                         perFolderMediaItemLimit, FolderSyncActivity.this);
+                Log_OC.w(TAG, "Picture Folders: " + mediaFolders.size());
+                mediaFolders.addAll(MediaProvider.getVideoFolders(getContentResolver(),perFolderMediaItemLimit));
+                Log_OC.w(TAG, "Picture+Video Folders: " + mediaFolders.size());
+
+                //TODO properly merge image and video lists to remove duplicates
+
                 List<SyncedFolder> syncedFolderArrayList = mSyncedFolderProvider.getSyncedFolders();
                 List<SyncedFolder> currentAccountSyncedFoldersList = new ArrayList<>();
                 Account currentAccount = AccountUtils.getCurrentOwnCloudAccount(FolderSyncActivity.this);