Эх сурвалжийг харах

Background shimmer size on grid image is the same as the downloaded pictures

Signed-off-by: Abdourahamane Boinaidi <abdourahamane.boinaidi@infomaniak.com>
Abdourahamane Boinaidi 5 жил өмнө
parent
commit
679e513d52

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

@@ -673,7 +673,7 @@ public final class ThumbnailsCacheManager {
          *
          * @return int
          */
-        private int getThumbnailDimension() {
+        public int getThumbnailDimension() {
             // Converts dp to pixel
             Resources r = MainApp.getAppContext().getResources();
             Double d = Math.pow(2, Math.floor(Math.log(r.getDimension(R.dimen.file_icon_size_grid)) / Math.log(2)));

+ 24 - 6
src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

@@ -43,6 +43,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Filter;
+import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.ProgressBar;
@@ -658,12 +659,12 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
 
                             if (shimmerFrameLayout != null){
                                 if (!shimmerFrameLayout.isShimmerStarted()){
-                                    Shimmer.AlphaHighlightBuilder shimmerBuilder = new Shimmer.AlphaHighlightBuilder();
-                                    shimmerBuilder.setRepeatCount(ValueAnimator.INFINITE);
-                                    shimmerBuilder.setRepeatMode(ValueAnimator.RESTART);
-                                    shimmerFrameLayout.setShimmer(shimmerBuilder.build());
-                                    thumbnailView.setVisibility(View.GONE);
-                                    shimmerThumbnail.setVisibility(View.VISIBLE);
+                                    if (shimmerThumbnail instanceof ImageView){
+                                        ImageView mShimmerThumbnail = (ImageView) shimmerThumbnail;
+                                        int size = task.getThumbnailDimension();
+                                        configShimmerGridImageSize(mShimmerThumbnail, size);
+                                    }
+                                    startShimmer(shimmerFrameLayout, shimmerThumbnail, thumbnailView);
                                 }
                             }
 
@@ -712,6 +713,17 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
         }
     }
 
+    private static void startShimmer(ShimmerFrameLayout shimmerFrameLayout,
+                                     View shimmerThumbnail,
+                                     ImageView thumbnailView) {
+        Shimmer.AlphaHighlightBuilder shimmerBuilder = new Shimmer.AlphaHighlightBuilder();
+        shimmerBuilder.setRepeatCount(ValueAnimator.INFINITE);
+        shimmerBuilder.setRepeatMode(ValueAnimator.RESTART);
+        shimmerFrameLayout.setShimmer(shimmerBuilder.build());
+        thumbnailView.setVisibility(View.GONE);
+        shimmerThumbnail.setVisibility(View.VISIBLE);
+    }
+
     private static void stopShimmer(ShimmerFrameLayout shimmerFrameLayout, View shimmerThumbnail, ImageView thumbnailView) {
         if (shimmerFrameLayout != null) {
             Shimmer.AlphaHighlightBuilder builder = new Shimmer.AlphaHighlightBuilder();
@@ -723,6 +735,12 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
         }
     }
 
+    private static void configShimmerGridImageSize(ImageView shimmerThumbnail, int size){
+        shimmerThumbnail.setImageResource(R.drawable.background);
+        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(size,size);
+        shimmerThumbnail.setLayoutParams(params);
+    }
+
     private String getFooterText() {
         int filesCount = 0;
         int foldersCount = 0;

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

@@ -38,11 +38,11 @@
             app:shimmer_base_alpha="1"
             android:clipChildren="true">
 
-            <View
+            <ImageView
                 android:id="@+id/thumbnail_shimmer"
                 android:layout_width="match_parent"
-                android:layout_height="@dimen/standard_list_item_size"
-                android:background="@drawable/shimmer_background"
+                android:layout_height="match_parent"
+                android:background="@color/grey_200"
                 android:padding="@dimen/standard_eigth_padding"
                 android:visibility="gone" />