Skip to content

Commit ec44a76

Browse files
tobiasKaminskybackportbot[bot]
authored andcommitted
Preview: obey sort order when favorites
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
1 parent fd3ef99 commit ec44a76

5 files changed

Lines changed: 40 additions & 8 deletions

File tree

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
@@ -1631,9 +1631,7 @@ private void updateLayout() {
16311631
switchToListView();
16321632
}
16331633

1634-
if (mSortButton != null) {
1635-
mSortButton.setText(DisplayUtils.getSortOrderStringId(preferences.getSortOrderByFolder(mFile)));
1636-
}
1634+
updateSortButton();
16371635
if (mSwitchGridViewButton != null) {
16381636
setGridSwitchButton();
16391637
}
@@ -1644,6 +1642,19 @@ private void updateLayout() {
16441642

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

16481659
private void invalidateActionMode() {
16491660
if (mActiveActionMode != null) {
@@ -1924,6 +1935,8 @@ protected void handleSearchEvent(SearchEvent event) {
19241935
}
19251936
};
19261937

1938+
updateSortButton();
1939+
19271940
new Handler(Looper.getMainLooper()).post(switchViewsRunnable);
19281941

19291942
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)