Skip to content

Commit a2922b1

Browse files
Merge pull request #15678 from nextcloud/backport/15584/stable-3.34
[stable-3.34] Preview: obey sort order when favorites
2 parents 68918f1 + ec44a76 commit a2922b1

File tree

5 files changed

+40
-8
lines changed

5 files changed

+40
-8
lines changed

app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,11 @@ public void setData(List<Object> objects,
996996
searchType == SearchType.RECENTLY_MODIFIED_SEARCH) {
997997
mFiles = FileStorageUtils.sortOcFolderDescDateModifiedWithoutFavoritesFirst(mFiles);
998998
} else if (searchType != SearchType.SHARED_FILTER) {
999-
sortOrder = preferences.getSortOrderByFolder(folder);
999+
if (searchType == SearchType.FAVORITE_SEARCH) {
1000+
sortOrder = preferences.getSortOrderByType(FileSortOrder.Type.favoritesListView);
1001+
} else {
1002+
sortOrder = preferences.getSortOrderByFolder(folder);
1003+
}
10001004
mFiles = sortOrder.sortCloudFiles(mFiles);
10011005
}
10021006

@@ -1128,7 +1132,12 @@ private void parseVirtuals(List<Object> objects, SearchType searchType) {
11281132
}
11291133

11301134
public void setSortOrder(@Nullable OCFile folder, FileSortOrder sortOrder) {
1131-
preferences.setSortOrder(folder, sortOrder);
1135+
if (searchType == SearchType.FAVORITE_SEARCH) {
1136+
preferences.setSortOrder(FileSortOrder.Type.favoritesListView, sortOrder);
1137+
} else {
1138+
preferences.setSortOrder(folder, sortOrder);
1139+
}
1140+
11321141
mFiles = sortOrder.sortCloudFiles(mFiles);
11331142
notifyDataSetChanged();
11341143

app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1632,9 +1632,7 @@ private void updateLayout() {
16321632
switchToListView();
16331633
}
16341634

1635-
if (mSortButton != null) {
1636-
mSortButton.setText(DisplayUtils.getSortOrderStringId(preferences.getSortOrderByFolder(mFile)));
1637-
}
1635+
updateSortButton();
16381636
if (mSwitchGridViewButton != null) {
16391637
setGridSwitchButton();
16401638
}
@@ -1645,6 +1643,19 @@ private void updateLayout() {
16451643

16461644
invalidateActionMode();
16471645
}
1646+
1647+
private void updateSortButton() {
1648+
if (mSortButton != null) {
1649+
FileSortOrder sortOrder;
1650+
if (currentSearchType == FAVORITE_SEARCH) {
1651+
sortOrder = preferences.getSortOrderByType(FileSortOrder.Type.favoritesListView, FileSortOrder.SORT_A_TO_Z);
1652+
} else {
1653+
sortOrder = preferences.getSortOrderByFolder(mFile);
1654+
}
1655+
1656+
mSortButton.setText(DisplayUtils.getSortOrderStringId(sortOrder));
1657+
}
1658+
}
16481659

16491660
private void invalidateActionMode() {
16501661
if (mActiveActionMode != null) {
@@ -1925,6 +1936,8 @@ protected void handleSearchEvent(SearchEvent event) {
19251936
}
19261937
};
19271938

1939+
updateSortButton();
1940+
19281941
new Handler(Looper.getMainLooper()).post(switchViewsRunnable);
19291942

19301943
final User currentUser = accountManager.getUser();

app/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,8 @@ class PreviewImageActivity :
169169
this,
170170
type,
171171
user,
172-
storageManager
172+
storageManager,
173+
preferences
173174
)
174175
} else {
175176
// get parent from path

app/src/main/java/com/owncloud/android/ui/preview/PreviewImagePagerAdapter.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.owncloud.android.datamodel.FileDataStorageManager
2020
import com.owncloud.android.datamodel.OCFile
2121
import com.owncloud.android.datamodel.VirtualFolderType
2222
import com.owncloud.android.ui.fragment.FileFragment
23+
import com.owncloud.android.utils.FileSortOrder
2324
import com.owncloud.android.utils.FileStorageUtils
2425

2526
/**
@@ -82,7 +83,8 @@ class PreviewImagePagerAdapter : FragmentStateAdapter {
8283
fragmentActivity: FragmentActivity,
8384
type: VirtualFolderType?,
8485
user: User,
85-
storageManager: FileDataStorageManager
86+
storageManager: FileDataStorageManager,
87+
preferences: AppPreferences
8688
) : super(fragmentActivity) {
8789
requireNotNull(type) { "NULL parent folder" }
8890
require(type != VirtualFolderType.NONE) { "NONE virtual folder type" }
@@ -97,6 +99,11 @@ class PreviewImagePagerAdapter : FragmentStateAdapter {
9799
imageFiles = mStorageManager.getVirtualFolderContent(type, true)
98100
}
99101

102+
if (type == VirtualFolderType.FAVORITE) {
103+
val sortOrder = preferences.getSortOrderByType(FileSortOrder.Type.favoritesListView)
104+
imageFiles = sortOrder.sortCloudFiles(imageFiles.toMutableList()).toMutableList()
105+
}
106+
100107
mObsoleteFragments = HashSet()
101108
mObsoletePositions = HashSet()
102109
mDownloadErrors = HashSet()

app/src/main/java/com/owncloud/android/utils/FileSortOrder.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ open class FileSortOrder(@JvmField var name: String, var isAscending: Boolean) {
2525
trashBinView,
2626

2727
@Suppress("ktlint:standard:enum-entry-name-case")
28-
localFileListView
28+
localFileListView,
29+
30+
favoritesListView
2931
}
3032

3133
enum class SortType {

0 commit comments

Comments
 (0)