浏览代码

load center cropped preview image, hide type icon

AndyScherzinger 7 年之前
父节点
当前提交
60a497a9af

+ 38 - 4
src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -26,6 +26,7 @@ import android.graphics.Bitmap;
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.LayerDrawable;
 import android.graphics.drawable.LayerDrawable;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.NonNull;
 import android.support.design.widget.Snackbar;
 import android.support.design.widget.Snackbar;
@@ -83,6 +84,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
     private int layout;
     private int layout;
     private View view;
     private View view;
     private ImageView previewImage;
     private ImageView previewImage;
+    private ProgressBar toolbarProgressBar;
     private boolean previewLoaded;
     private boolean previewLoaded;
     private Account account;
     private Account account;
 
 
@@ -139,10 +141,18 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         }
         }
 
 
         if (previewImage != null && MimeTypeUtil.isImage(getFile()) && previewLoaded) {
         if (previewImage != null && MimeTypeUtil.isImage(getFile()) && previewLoaded) {
-            previewImage.setVisibility(View.VISIBLE);
+            activatePreviewImage();
         }
         }
     }
     }
 
 
+    private void activatePreviewImage() {
+        previewImage.setVisibility(View.VISIBLE);
+        toolbarProgressBar.setVisibility(View.GONE);
+        ((ToolbarActivity) getActivity()).getSupportActionBar().setTitle(null);
+        ((ToolbarActivity) getActivity()).getSupportActionBar().setBackgroundDrawable(null);
+        makeStatusBarBlack();
+    }
+
     @Override
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
         super.onActivityCreated(savedInstanceState);
@@ -161,6 +171,8 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             account = savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT);
             account = savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT);
         }
         }
 
 
+        toolbarProgressBar = getActivity().findViewById(R.id.progressBar);
+
         if (getFile() != null && account != null) {
         if (getFile() != null && account != null) {
             layout = R.layout.file_details_fragment;
             layout = R.layout.file_details_fragment;
         }
         }
@@ -176,7 +188,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             view.findViewById(R.id.overflow_menu).setOnClickListener(this);
             view.findViewById(R.id.overflow_menu).setOnClickListener(this);
             previewImage = getActivity().findViewById(R.id.preview_image);
             previewImage = getActivity().findViewById(R.id.preview_image);
             if (getFile() != null && account != null && MimeTypeUtil.isImage(getFile())) {
             if (getFile() != null && account != null && MimeTypeUtil.isImage(getFile())) {
-                setHeaderImage();
+                //setHeaderImage();
             }
             }
         }
         }
 
 
@@ -203,12 +215,14 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
                         previewImage.setVisibility(View.VISIBLE);
                         previewImage.setVisibility(View.VISIBLE);
                         ((ToolbarActivity) getActivity()).getSupportActionBar().setTitle(null);
                         ((ToolbarActivity) getActivity()).getSupportActionBar().setTitle(null);
                         ((ToolbarActivity) getActivity()).getSupportActionBar().setBackgroundDrawable(null);
                         ((ToolbarActivity) getActivity()).getSupportActionBar().setBackgroundDrawable(null);
+                        toolbarProgressBar.setVisibility(View.GONE);
                         previewLoaded = true;
                         previewLoaded = true;
                     }
                     }
 
 
                     @Override
                     @Override
                     public void onLoadFailed(Exception e, Drawable errorDrawable) {
                     public void onLoadFailed(Exception e, Drawable errorDrawable) {
                         previewImage.setVisibility(View.GONE);
                         previewImage.setVisibility(View.GONE);
+                        toolbarProgressBar.setVisibility(View.VISIBLE);
                     }
                     }
                 };
                 };
 
 
@@ -222,6 +236,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             } else {
             } else {
                 // hide image
                 // hide image
                 previewImage.setVisibility(View.GONE);
                 previewImage.setVisibility(View.GONE);
+                toolbarProgressBar.setVisibility(View.VISIBLE);
             }
             }
         }
         }
 }
 }
@@ -287,6 +302,10 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         leaveTransferProgress();
         leaveTransferProgress();
         if (previewImage != null) {
         if (previewImage != null) {
             previewImage.setVisibility(View.GONE);
             previewImage.setVisibility(View.GONE);
+            toolbarProgressBar.setVisibility(View.VISIBLE);
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                getActivity().getWindow().setStatusBarColor(ThemeUtils.primaryDarkColor(getContext()));
+            }
         }
         }
 
 
         super.onStop();
         super.onStop();
@@ -527,6 +546,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
      */
      */
     private void setFiletype(OCFile file) {
     private void setFiletype(OCFile file) {
         ImageView iv = getView().findViewById(R.id.fdIcon);
         ImageView iv = getView().findViewById(R.id.fdIcon);
+        View v = getView().findViewById(R.id.fdIcon_divider);
 
 
         if (iv != null) {
         if (iv != null) {
             iv.setTag(file.getFileId());
             iv.setTag(file.getFileId());
@@ -541,7 +561,11 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
                 resizedImage = ThumbnailsCacheManager.getBitmapFromDiskCache(tagId);
                 resizedImage = ThumbnailsCacheManager.getBitmapFromDiskCache(tagId);
 
 
                 if (resizedImage != null && !file.needsUpdateThumbnail()) {
                 if (resizedImage != null && !file.needsUpdateThumbnail()) {
-                    iv.setImageBitmap(resizedImage);
+                    iv.setVisibility(View.GONE);
+                    v.setVisibility(View.GONE);
+                    previewImage.setImageBitmap(resizedImage);
+                    activatePreviewImage();
+                    previewLoaded = true;
                 } else {
                 } else {
                     // show thumbnail while loading resized image
                     // show thumbnail while loading resized image
                     Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(
                     Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(
@@ -570,7 +594,11 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
                                         resizedImage,
                                         resizedImage,
                                         task
                                         task
                                 );
                                 );
-                        iv.setImageDrawable(asyncDrawable);
+                        iv.setVisibility(View.GONE);
+                        v.setVisibility(View.GONE);
+                        previewImage.setImageBitmap(resizedImage);
+                        activatePreviewImage();
+                        previewLoaded = true;
                         task.execute(getFile());
                         task.execute(getFile());
                     }
                     }
                 }
                 }
@@ -581,6 +609,12 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
         }
         }
     }
     }
 
 
+    private void makeStatusBarBlack() {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            getActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.black));
+        }
+    }
+
     /**
     /**
      * Updates the file size in view
      * Updates the file size in view
      *
      *

+ 1 - 0
src/main/res/layout/file_details_fragment.xml

@@ -38,6 +38,7 @@
             android:src="@drawable/file" />
             android:src="@drawable/file" />
 
 
         <View
         <View
+            android:id="@+id/fdIcon_divider"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
             android:layout_height="1dp"
             android:layout_height="1dp"
             android:background="@color/list_divider_background" />
             android:background="@color/list_divider_background" />

+ 6 - 12
src/main/res/layout/toolbar_standard.xml

@@ -34,32 +34,26 @@
             android:id="@+id/preview_image"
             android:id="@+id/preview_image"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
             android:layout_height="@dimen/nav_drawer_header_height"
             android:layout_height="@dimen/nav_drawer_header_height"
-            android:visibility="gone"/>
+            android:scaleType="centerCrop"
+            android:visibility="gone" />
 
 
         <android.support.v7.widget.Toolbar
         <android.support.v7.widget.Toolbar
             android:id="@id/toolbar"
             android:id="@id/toolbar"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
             android:layout_height="?attr/actionBarSize"
-            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:gravity="bottom"
-            android:orientation="vertical">
+            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
 
 
         <ProgressBar
         <ProgressBar
             android:id="@+id/progressBar"
             android:id="@+id/progressBar"
             style="@style/Widget.ownCloud.TopProgressBar"
             style="@style/Widget.ownCloud.TopProgressBar"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
             android:layout_height="@dimen/standard_quarter_margin"
             android:layout_height="@dimen/standard_quarter_margin"
+            android:layout_below="@+id/toolbar"
             android:layout_margin="@dimen/zero"
             android:layout_margin="@dimen/zero"
             android:indeterminate="false"
             android:indeterminate="false"
             android:indeterminateOnly="false"
             android:indeterminateOnly="false"
             android:padding="@dimen/zero"
             android:padding="@dimen/zero"
-            android:visibility="visible"/>
-
-        </LinearLayout>
+            android:visibility="visible" />
     </RelativeLayout>
     </RelativeLayout>
 
 
-</android.support.design.widget.AppBarLayout>
+</android.support.design.widget.AppBarLayout>