浏览代码

Merge pull request #9858 from nextcloud/fix/preview-share

Fix UX issues with toolbar in preview media fragment when using the "share" option
Álvaro Brey 3 年之前
父节点
当前提交
cb9d9ff1a2

+ 14 - 4
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -107,11 +107,11 @@ import com.owncloud.android.ui.helpers.UriUploader;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
 import com.owncloud.android.ui.preview.PreviewImageFragment;
 import com.owncloud.android.ui.preview.PreviewImageFragment;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
-import com.owncloud.android.ui.preview.pdf.PreviewPdfFragment;
 import com.owncloud.android.ui.preview.PreviewTextFileFragment;
 import com.owncloud.android.ui.preview.PreviewTextFileFragment;
 import com.owncloud.android.ui.preview.PreviewTextFragment;
 import com.owncloud.android.ui.preview.PreviewTextFragment;
 import com.owncloud.android.ui.preview.PreviewTextStringFragment;
 import com.owncloud.android.ui.preview.PreviewTextStringFragment;
 import com.owncloud.android.ui.preview.PreviewVideoActivity;
 import com.owncloud.android.ui.preview.PreviewVideoActivity;
+import com.owncloud.android.ui.preview.pdf.PreviewPdfFragment;
 import com.owncloud.android.utils.DataHolderUtil;
 import com.owncloud.android.utils.DataHolderUtil;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ErrorMessageAdapter;
 import com.owncloud.android.utils.ErrorMessageAdapter;
@@ -1646,6 +1646,9 @@ public class FileDisplayActivity extends FileActivity
      */
      */
     public void showDetails(OCFile file, int activeTab) {
     public void showDetails(OCFile file, int activeTab) {
         User currentUser = getUser().orElseThrow(RuntimeException::new);
         User currentUser = getUser().orElseThrow(RuntimeException::new);
+
+        resetHeaderScrollingState();
+
         Fragment detailFragment = FileDetailFragment.newInstance(file, currentUser, activeTab);
         Fragment detailFragment = FileDetailFragment.newInstance(file, currentUser, activeTab);
         setLeftFragment(detailFragment);
         setLeftFragment(detailFragment);
 
 
@@ -1654,6 +1657,8 @@ public class FileDisplayActivity extends FileActivity
     }
     }
 
 
     private void resetHeaderScrollingState() {
     private void resetHeaderScrollingState() {
+        CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) findViewById(R.id.root_layout).getLayoutParams();
+        params.setBehavior(new AppBarLayout.ScrollingViewBehavior());
         AppBarLayout appBarLayout = findViewById(R.id.appbar);
         AppBarLayout appBarLayout = findViewById(R.id.appbar);
 
 
         if (appBarLayout != null) {
         if (appBarLayout != null) {
@@ -2225,9 +2230,7 @@ public class FileDisplayActivity extends FileActivity
             showSortListGroup(false);
             showSortListGroup(false);
             Fragment mediaFragment = PreviewMediaFragment.newInstance(file, user.get(), startPlaybackPosition, autoplay);
             Fragment mediaFragment = PreviewMediaFragment.newInstance(file, user.get(), startPlaybackPosition, autoplay);
             setLeftFragment(mediaFragment);
             setLeftFragment(mediaFragment);
-            binding.rightFragmentContainer.setVisibility(View.GONE);
-            ((CoordinatorLayout.LayoutParams) binding.rootLayout.getLayoutParams()).setBehavior(null);
-            super.updateActionBarTitleAndHomeButton(file);
+            configureToolbarForMediaPreview(file);
         } else {
         } else {
             Intent previewIntent = new Intent();
             Intent previewIntent = new Intent();
             previewIntent.putExtra(EXTRA_FILE, file);
             previewIntent.putExtra(EXTRA_FILE, file);
@@ -2240,6 +2243,13 @@ public class FileDisplayActivity extends FileActivity
         }
         }
     }
     }
 
 
+    public void configureToolbarForMediaPreview(OCFile file) {
+        showSortListGroup(false);
+        binding.rightFragmentContainer.setVisibility(View.GONE);
+        ((CoordinatorLayout.LayoutParams) binding.rootLayout.getLayoutParams()).setBehavior(null);
+        super.updateActionBarTitleAndHomeButton(file);
+    }
+
     /**
     /**
      * Starts the preview of a text file {@link OCFile}.
      * Starts the preview of a text file {@link OCFile}.
      *
      *

+ 5 - 1
src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java

@@ -64,6 +64,8 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.ui.activity.DrawerActivity;
 import com.owncloud.android.ui.activity.DrawerActivity;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileActivity;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.ui.activity.ToolbarActivity;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
@@ -180,7 +182,9 @@ public class PreviewMediaFragment extends FileFragment implements OnTouchListene
 
 
         emptyListView = binding.emptyView.emptyListView;
         emptyListView = binding.emptyView.emptyListView;
 
 
-        getActivity().findViewById(R.id.sort_list_button_group).setVisibility(View.GONE);
+        if(getActivity() instanceof FileDisplayActivity){
+            ((FileDisplayActivity) getActivity()).configureToolbarForMediaPreview(getFile());
+        }
 
 
         setLoadingView();
         setLoadingView();
         return view;
         return view;