diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java index b58c9dd399..631727e7a8 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -144,6 +144,7 @@ import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Stack; import javax.inject.Inject; @@ -233,7 +234,7 @@ public class FileDisplayActivity extends FileActivity private PlayerServiceConnection mPlayerConnection; private Optional lastDisplayedUser = Optional.empty(); private int menuItemId = -1; - + private Stack previousSortGroupState; @Inject AppPreferences preferences; @@ -622,7 +623,7 @@ public class FileDisplayActivity extends FileActivity //clear the subtitle while navigating to any other screen from Media screen clearToolbarSubtitle(); - showSortListGroup(showSortListGroup); + setSortListGroup(sortListGroupVisibility(), showSortListGroup); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.addToBackStack(null); transaction.replace(R.id.left_fragment_container, fragment, TAG_LIST_OF_FILES); @@ -1027,9 +1028,9 @@ public class FileDisplayActivity extends FileActivity } private void popBack() { - // pop back + // pop back fragment resetScrolling(true); - showSortListGroup(true); + popSortListGroupVisibility(); super.onBackPressed(); } @@ -1038,7 +1039,6 @@ public class FileDisplayActivity extends FileActivity setFile(listOfFiles.getCurrentFile()); listOfFiles.setFabVisible(true); listOfFiles.registerFabListener(); - showSortListGroup(true); resetTitleBarAndScrolling(); setDrawerAllFiles(); } @@ -1058,9 +1058,10 @@ public class FileDisplayActivity extends FileActivity hideSearchView(getCurrentDir()); setDrawerIndicatorEnabled(isDrawerIndicatorAvailable()); } - } - if (leftFragment instanceof UnifiedSearchFragment) { - super.onBackPressed(); + if (leftFragment instanceof UnifiedSearchFragment) { + popSortListGroupVisibility(); + super.onBackPressed(); + } } } @@ -2611,4 +2612,13 @@ public class FileDisplayActivity extends FileActivity } } + private void setSortListGroup(boolean currentListGroupVisibility, boolean show) { + previousSortGroupState.push(currentListGroupVisibility); + showSortListGroup(show); + } + + private void popSortListGroupVisibility() { + boolean popped = previousSortGroupState.pop(); + showSortListGroup(popped); + } } diff --git a/app/src/main/java/com/owncloud/android/ui/activity/ToolbarActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/ToolbarActivity.java index bc2618a73f..3e6c52fbdd 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/ToolbarActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/ToolbarActivity.java @@ -197,7 +197,6 @@ public abstract class ToolbarActivity extends BaseActivity implements Injectable /** * checks if the given file is the root folder. * - * * @param file file to be checked if it is the root folder * @return true if it is null or the root folder, else returns false */ @@ -243,6 +242,9 @@ public abstract class ToolbarActivity extends BaseActivity implements Injectable findViewById(R.id.sort_list_button_group).setVisibility(show ? View.VISIBLE : View.GONE); } + public boolean sortListGroupVisibility(){ + return findViewById(R.id.sort_list_button_group).getVisibility() == View.VISIBLE; + } /** * Change the bitmap for the toolbar's preview image. * diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java b/app/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java index 79ecee98d9..89e19f1f45 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java +++ b/app/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java @@ -144,12 +144,12 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, /** * Public factory method to create new FileDetailFragment instances. - * + *

* When 'fileToDetail' or 'ocAccount' are null, creates a dummy layout (to use when a file wasn't tapped before). * - * @param fileToDetail An {@link OCFile} to show in the fragment - * @param user Currently active user - * @param activeTab to be active tab + * @param fileToDetail An {@link OCFile} to show in the fragment + * @param user Currently active user + * @param activeTab to be active tab * @return New fragment with arguments set */ public static FileDetailFragment newInstance(OCFile fileToDetail, User user, int activeTab) { @@ -224,7 +224,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, user = savedInstanceState.getParcelable(ARG_USER); } - binding = FileDetailsFragmentBinding.inflate(inflater,container,false); + binding = FileDetailsFragmentBinding.inflate(inflater, container, false); view = binding.getRoot(); if (getFile() == null || user == null) { @@ -373,8 +373,6 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, super.onResume(); if (toolbarActivity != null) { - toolbarActivity.showSortListGroup(false); - if (previewLoaded) { toolbarActivity.setPreviewImageVisibility(true); } @@ -477,7 +475,8 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, } /** - * Check if the fragment was created with an empty layout. An empty fragment can't show file details, must be replaced. + * Check if the fragment was created with an empty layout. An empty fragment can't show file details, must be + * replaced. * * @return True when the fragment was created with the empty layout. */ @@ -498,11 +497,11 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, /** * Updates the view with all relevant details about that file. - * + *

* TODO Remove parameter when the transferring state of files is kept in database. * - * @param transferring Flag signaling if the file should be considered as downloading or uploading, - * although {@link FileDownloaderBinder#isDownloading(User, OCFile)} and + * @param transferring Flag signaling if the file should be considered as downloading or uploading, although + * {@link FileDownloaderBinder#isDownloading(User, OCFile)} and * {@link FileUploaderBinder#isUploading(User, OCFile)} return false. * @param refresh If 'true', try to refresh the whole file from the database */ @@ -537,8 +536,8 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, FileDownloaderBinder downloaderBinder = containerActivity.getFileDownloaderBinder(); FileUploaderBinder uploaderBinder = containerActivity.getFileUploaderBinder(); if (transferring - || (downloaderBinder != null && downloaderBinder.isDownloading(user, file)) - || (uploaderBinder != null && uploaderBinder.isUploading(user, file))) { + || (downloaderBinder != null && downloaderBinder.isDownloading(user, file)) + || (uploaderBinder != null && uploaderBinder.isUploading(user, file))) { setButtonsForTransferring(); } else if (file.isDown()) { @@ -567,7 +566,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, binding.lastModificationTimestamp.setText(DisplayUtils.unixTimeToHumanReadable(file.getModificationTimestamp())); } else { binding.lastModificationTimestamp.setText(DisplayUtils.getRelativeTimestamp(getContext(), - file.getModificationTimestamp())); + file.getModificationTimestamp())); } } @@ -576,8 +575,8 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, binding.favorite.setImageDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.ic_star, null)); } else { binding.favorite.setImageDrawable(ResourcesCompat.getDrawable(getResources(), - R.drawable.ic_star_outline, - null)); + R.drawable.ic_star_outline, + null)); } } @@ -618,7 +617,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, // generate new resized image if (ThumbnailsCacheManager.cancelPotentialThumbnailWork(getFile(), toolbarActivity.getPreviewImageView()) && - containerActivity.getStorageManager() != null) { + containerActivity.getStorageManager() != null) { final ThumbnailsCacheManager.ResizedImageGenerationTask task = new ThumbnailsCacheManager.ResizedImageGenerationTask(this, toolbarActivity.getPreviewImageView(), @@ -635,11 +634,11 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, } final ThumbnailsCacheManager.AsyncResizedImageDrawable asyncDrawable = - new ThumbnailsCacheManager.AsyncResizedImageDrawable( - MainApp.getAppContext().getResources(), - resizedImage, - task - ); + new ThumbnailsCacheManager.AsyncResizedImageDrawable( + MainApp.getAppContext().getResources(), + resizedImage, + task + ); toolbarActivity.setPreviewImageDrawable(asyncDrawable); previewLoaded = true; @@ -664,8 +663,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, //if (getFile().isDownloading()) { if (downloaderBinder != null && downloaderBinder.isDownloading(user, getFile())) { binding.progressText.setText(R.string.downloader_download_in_progress_ticker); - } - else { + } else { if (uploaderBinder != null && uploaderBinder.isUploading(user, getFile())) { binding.progressText.setText(R.string.uploader_upload_in_progress_ticker); } @@ -701,7 +699,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, } if (containerActivity.getFileUploaderBinder() != null) { containerActivity.getFileUploaderBinder(). - addDatatransferProgressListener(progressListener, user, getFile()); + addDatatransferProgressListener(progressListener, user, getFile()); } } else { Log_OC.d(TAG, "progressListener == null"); @@ -716,7 +714,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, } if (containerActivity.getFileUploaderBinder() != null) { containerActivity.getFileUploaderBinder(). - removeDatatransferProgressListener(progressListener, user, getFile()); + removeDatatransferProgressListener(progressListener, user, getFile()); } } } @@ -733,6 +731,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, /** * open the sharing process fragment for creating new share + * * @param shareeName * @param shareType */ @@ -749,6 +748,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, /** * method will handle the views need to be hidden when sharing process fragment shows + * * @param isFragmentReplaced */ public void showHideFragmentView(boolean isFragmentReplaced) { @@ -765,6 +765,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, /** * open the new sharing screen process to modify the created share + * * @param share * @param screenTypePermission * @param isReshareShown @@ -816,7 +817,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener, @Override public void onTransferProgress(long progressRate, long totalTransferredSoFar, long totalToTransfer, String filename) { - int percent = (int)(100.0*((double)totalTransferredSoFar)/((double)totalToTransfer)); + int percent = (int) (100.0 * ((double) totalTransferredSoFar) / ((double) totalToTransfer)); if (percent != lastPercent) { ProgressBar pb = progressBarReference.get(); if (pb != null) {