Pārlūkot izejas kodu

custom different radius for icons on the grid view and the list view

Signed-off-by: Abdourahamane BOINAIDI <abdourahamane.boinaidi@infomaniak.com>
Abdourahamane BOINAIDI 5 gadi atpakaļ
vecāks
revīzija
89b20d61ed

+ 12 - 0
src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java

@@ -428,6 +428,7 @@ public final class ThumbnailsCacheManager {
         private FileDataStorageManager mStorageManager;
         private GetMethod getMethod;
         private Listener mListener;
+        private Boolean isGridView = false;
 
         public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager, Account account)
                 throws IllegalArgumentException {
@@ -447,6 +448,13 @@ public final class ThumbnailsCacheManager {
             mAsyncTasks = asyncTasks;
         }
 
+        public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager,
+                                       Account account, List<ThumbnailGenerationTask> asyncTasks, Boolean isGridView)
+            throws IllegalArgumentException {
+            this(imageView, storageManager, account, asyncTasks);
+            this.isGridView = isGridView;
+        }
+
         public GetMethod getGetMethod() {
             return getMethod;
         }
@@ -532,7 +540,11 @@ public final class ThumbnailsCacheManager {
                         tagId = String.valueOf(((TrashbinFile) mFile).getRemoteId());
                     }
                     if (String.valueOf(imageView.getTag()).equals(tagId)) {
+                        if (isGridView){
+                            BitmapUtils.setRoundedBitmapForGridMode(bitmap, imageView);
+                        } else {
                         BitmapUtils.setRoundedBitmap(bitmap, imageView);
+                        }
                     }
                 }
             }

+ 16 - 10
src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

@@ -642,7 +642,11 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
                         Bitmap withOverlay = ThumbnailsCacheManager.addVideoOverlay(thumbnail);
                         thumbnailView.setImageBitmap(withOverlay);
                     } else {
-                        BitmapUtils.setRoundedBitmap(thumbnail, thumbnailView);
+                        if (gridView) {
+                            BitmapUtils.setRoundedBitmapForGridMode(thumbnail, thumbnailView);
+                        } else {
+                            BitmapUtils.setRoundedBitmap(thumbnail, thumbnailView);
+                        }
                     }
                 } else {
                     // generate new thumbnail
@@ -652,7 +656,8 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
                                 new ThumbnailsCacheManager.ThumbnailGenerationTask(thumbnailView,
                                                                                    storageManager,
                                                                                    user.toPlatformAccount(),
-                                                                                   asyncTasks);
+                                                                                   asyncTasks,
+                                                                                   gridView);
                             if (thumbnail == null) {
                                 thumbnail = BitmapUtils.drawableToBitmap(
                                     MimeTypeUtil.getFileTypeIcon(file.getMimeType(),
@@ -716,6 +721,15 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
         }
     }
 
+    private static void configShimmerGridImageSize(LoaderImageView thumbnailShimmer, int size){
+        final int width = FrameLayout.LayoutParams.MATCH_PARENT;
+        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, size);
+        FrameLayout.LayoutParams targetLayoutParams = (FrameLayout.LayoutParams) thumbnailShimmer.getLayoutParams();
+        params.setMargins(targetLayoutParams.leftMargin, targetLayoutParams.topMargin,
+                          targetLayoutParams.rightMargin, targetLayoutParams.bottomMargin);
+        thumbnailShimmer.setLayoutParams(params);
+    }
+
     private static void startShimmer(LoaderImageView thumbnailShimmer, ImageView thumbnailView) {
         thumbnailShimmer.setImageResource(R.drawable.background);
         thumbnailShimmer.resetLoader();
@@ -730,14 +744,6 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
         }
     }
 
-    private static void configShimmerGridImageSize(LoaderImageView thumbnailShimmer, int size){
-        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,size);
-        FrameLayout.LayoutParams targetLayoutParams = (FrameLayout.LayoutParams) thumbnailShimmer.getLayoutParams();
-        params.setMargins(targetLayoutParams.leftMargin, targetLayoutParams.topMargin,
-                          targetLayoutParams.rightMargin, targetLayoutParams.bottomMargin);
-        thumbnailShimmer.setLayoutParams(params);
-    }
-
     private String getFooterText() {
         int filesCount = 0;
         int foldersCount = 0;

+ 12 - 3
src/main/java/com/owncloud/android/utils/BitmapUtils.java

@@ -430,11 +430,20 @@ public final class BitmapUtils {
     }
 
     public static void setRoundedBitmap(Bitmap thumbnail, ImageView imageView) {
-        Resources resources = MainApp.getAppContext().getResources();
+        BitmapUtils.setRoundedBitmap(getResources(),
+                                     thumbnail,
+                                     getResources().getDimension(R.dimen.file_icon_rounded_corner_radius),
+                                     imageView);
+    }
 
-        BitmapUtils.setRoundedBitmap(resources,
+    public static void setRoundedBitmapForGridMode(Bitmap thumbnail, ImageView imageView){
+        BitmapUtils.setRoundedBitmap(getResources(),
                                      thumbnail,
-                                     resources.getDimension(R.dimen.file_icon_rounded_corner_radius),
+                                     getResources().getDimension(R.dimen.file_icon_rounded_corner_radius_for_grid_mode),
                                      imageView);
     }
+
+    private static Resources getResources(){
+        return MainApp.getAppContext().getResources();
+    }
 }

+ 1 - 1
src/main/res/layout/grid_image.xml

@@ -44,7 +44,7 @@
                 android:contentDescription="@null"
                 android:scaleType="centerCrop"
                 android:visibility="gone"
-                app:corners="16"
+                app:corners="3"
                 app:height_weight="0.6"
                 app:width_weight="0.4" />
 

+ 1 - 0
src/main/res/values/dims.xml

@@ -32,6 +32,7 @@
     <dimen name="file_icon_size">40dp</dimen>
     <dimen name="file_icon_size_grid">128dp</dimen>
     <dimen name="file_icon_rounded_corner_radius">8dp</dimen>
+    <dimen name="file_icon_rounded_corner_radius_for_grid_mode">3dp</dimen>
     <dimen name="file_avatar_size">128dp</dimen>
     <dimen name="standard_padding">16dp</dimen>
     <dimen name="standard_double_padding">32dp</dimen>