Bladeren bron

beatufied code

AndyScherzinger 8 jaren geleden
bovenliggende
commit
624e222ad5
1 gewijzigde bestanden met toevoegingen van 26 en 20 verwijderingen
  1. 26 20
      src/com/owncloud/android/datamodel/MediaProvider.java

+ 26 - 20
src/com/owncloud/android/datamodel/MediaProvider.java

@@ -35,7 +35,22 @@ import java.util.List;
  */
 public class MediaProvider {
     private static final String TAG = MediaProvider.class.getSimpleName();
+
+    // fixed query parameters
     private static final Uri MEDIA_URI = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
+    private static final String[] FOLDER_PROJECTION = new String[] {
+            "Distinct " + MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
+            MediaStore.MediaColumns.DATA, MediaStore.Images.Media.DATE_TAKEN
+    };
+    private static final String[] FILE_PROJECTION = new String[] {
+            MediaStore.MediaColumns.DATA
+    };
+    private static final String FOLDER_SELECTION = MediaStore.Images.Media.BUCKET_DISPLAY_NAME +
+            " IS NOT NULL) GROUP BY (" + MediaStore.Images.Media.BUCKET_DISPLAY_NAME;
+    private static final String FILE_SELECTION = MediaStore.MediaColumns.DATA + " LIKE ";
+    private static final String FOLDER_SORT_ORDER = "MAX(" + MediaStore.MediaColumns.DATA + ") DESC";
+    private static final String SEPARATOR = "/";
+    private static final String WILDCARD = "%";
 
     /**
      * Getting All Images Paths.
@@ -51,19 +66,9 @@ public class MediaProvider {
         String absolutePathOfImage;
         String folderName;
 
-        // TODO rewrite/beautify
-
-        String[] folderProjection = new String[]{"Distinct " + MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore
-                .MediaColumns.DATA, MediaStore.Images.Media.DATE_TAKEN};
-        String[] fileProjection = new String[]{MediaStore.MediaColumns.DATA};
-        String folderSelection = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " IS NOT NULL) GROUP BY (" + MediaStore
-                .Images.Media
-                .BUCKET_DISPLAY_NAME;
-        String fileSelection = MediaStore.MediaColumns.DATA + " LIKE ";
-        String folderSortOrder = "MAX(" + MediaStore.MediaColumns.DATA + ") DESC";
-        String fileSortOrder = MediaStore.Images.Media.DATE_TAKEN + " DESC LIMIT "+ itemLimit;
+        String fileSortOrder = MediaStore.Images.Media.DATE_TAKEN + " DESC LIMIT " + itemLimit;
 
-        cursor = contentResolver.query(MEDIA_URI, folderProjection, folderSelection, null, folderSortOrder);
+        cursor = contentResolver.query(MEDIA_URI, FOLDER_PROJECTION, FOLDER_SELECTION, null, FOLDER_SORT_ORDER);
 
         if (cursor == null) {
             return mediaFolders;
@@ -76,8 +81,9 @@ public class MediaProvider {
         while (cursor.moveToNext()) {
             absolutePathOfImage = cursor.getString(column_index_data);
 
-            cursorImages = contentResolver.query(MEDIA_URI, fileProjection, fileSelection + "'" +
-                            absolutePathOfImage.substring(0, absolutePathOfImage.lastIndexOf("/")) + "/%'", null,
+            cursorImages = contentResolver.query(MEDIA_URI, FILE_PROJECTION, FILE_SELECTION + "'" +
+                            absolutePathOfImage.substring(0, absolutePathOfImage.lastIndexOf(SEPARATOR)) + SEPARATOR +
+                            WILDCARD + "'", null,
                     fileSortOrder);
 
             if (cursorImages != null) {
@@ -85,9 +91,8 @@ public class MediaProvider {
                 MediaFolder mediaFolder = new MediaFolder();
                 folderName = cursor.getString(column_index_folder_name);
                 mediaFolder.folderName = folderName;
-                mediaFolder.absolutePath = absolutePathOfImage.substring(0, absolutePathOfImage.lastIndexOf(folderName) +
-                        folderName
-                                .length());
+                mediaFolder.absolutePath = absolutePathOfImage.substring(0, absolutePathOfImage.lastIndexOf(folderName)
+                        + folderName.length());
                 mediaFolder.filePaths = new ArrayList<>();
 
                 column_index_data_image = cursorImages.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
@@ -99,9 +104,10 @@ public class MediaProvider {
 
                 mediaFolder.numberOfFiles = contentResolver.query(
                         MEDIA_URI,
-                        fileProjection,
-                        fileSelection + "'"
-                                + absolutePathOfImage.substring(0, absolutePathOfImage.lastIndexOf("/")) + "/%'",
+                        FILE_PROJECTION,
+                        FILE_SELECTION + "'"
+                                + absolutePathOfImage.substring(0, absolutePathOfImage.lastIndexOf(SEPARATOR)) +
+                                SEPARATOR + WILDCARD + "'",
                         null,
                         null).getCount();