fix #1400, allow toggling numeric sorting at numbers
This commit is contained in:
parent
7f03b85e1b
commit
4812dff077
3 changed files with 32 additions and 4 deletions
|
@ -21,11 +21,16 @@ class ChangeSortingDialog(val activity: BaseSimpleActivity, val isDirectorySorti
|
||||||
private var view: View
|
private var view: View
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
currSorting = if (isDirectorySorting) config.directorySorting else config.getFileSorting(pathToUse)
|
||||||
view = activity.layoutInflater.inflate(R.layout.dialog_change_sorting, null).apply {
|
view = activity.layoutInflater.inflate(R.layout.dialog_change_sorting, null).apply {
|
||||||
use_for_this_folder_divider.beVisibleIf(showFolderCheckbox)
|
use_for_this_folder_divider.beVisibleIf(showFolderCheckbox)
|
||||||
|
|
||||||
|
sorting_dialog_numeric_sorting.beVisibleIf(showFolderCheckbox)
|
||||||
|
sorting_dialog_numeric_sorting.isChecked = currSorting and SORT_USE_NUMERIC_VALUE != 0
|
||||||
|
|
||||||
sorting_dialog_use_for_this_folder.beVisibleIf(showFolderCheckbox)
|
sorting_dialog_use_for_this_folder.beVisibleIf(showFolderCheckbox)
|
||||||
sorting_dialog_bottom_note.beVisibleIf(!isDirectorySorting)
|
|
||||||
sorting_dialog_use_for_this_folder.isChecked = config.hasCustomSorting(pathToUse)
|
sorting_dialog_use_for_this_folder.isChecked = config.hasCustomSorting(pathToUse)
|
||||||
|
sorting_dialog_bottom_note.beVisibleIf(!isDirectorySorting)
|
||||||
}
|
}
|
||||||
|
|
||||||
AlertDialog.Builder(activity)
|
AlertDialog.Builder(activity)
|
||||||
|
@ -35,7 +40,6 @@ class ChangeSortingDialog(val activity: BaseSimpleActivity, val isDirectorySorti
|
||||||
activity.setupDialogStuff(view, this, R.string.sort_by)
|
activity.setupDialogStuff(view, this, R.string.sort_by)
|
||||||
}
|
}
|
||||||
|
|
||||||
currSorting = if (isDirectorySorting) config.directorySorting else config.getFileSorting(pathToUse)
|
|
||||||
setupSortRadio()
|
setupSortRadio()
|
||||||
setupOrderRadio()
|
setupOrderRadio()
|
||||||
}
|
}
|
||||||
|
@ -79,6 +83,10 @@ class ChangeSortingDialog(val activity: BaseSimpleActivity, val isDirectorySorti
|
||||||
sorting = sorting or SORT_DESCENDING
|
sorting = sorting or SORT_DESCENDING
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (view.sorting_dialog_numeric_sorting.isChecked) {
|
||||||
|
sorting = sorting or SORT_USE_NUMERIC_VALUE
|
||||||
|
}
|
||||||
|
|
||||||
if (isDirectorySorting) {
|
if (isDirectorySorting) {
|
||||||
config.directorySorting = sorting
|
config.directorySorting = sorting
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -287,8 +287,20 @@ class MediaFetcher(val context: Context) {
|
||||||
o1 as Medium
|
o1 as Medium
|
||||||
o2 as Medium
|
o2 as Medium
|
||||||
var result = when {
|
var result = when {
|
||||||
sorting and SORT_BY_NAME != 0 -> AlphanumericComparator().compare(o1.name.toLowerCase(), o2.name.toLowerCase())
|
sorting and SORT_BY_NAME != 0 -> {
|
||||||
sorting and SORT_BY_PATH != 0 -> AlphanumericComparator().compare(o1.path.toLowerCase(), o2.path.toLowerCase())
|
if (sorting and SORT_USE_NUMERIC_VALUE != 0) {
|
||||||
|
AlphanumericComparator().compare(o1.name.toLowerCase(), o2.name.toLowerCase())
|
||||||
|
} else {
|
||||||
|
o1.name.toLowerCase().compareTo(o2.name.toLowerCase())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sorting and SORT_BY_PATH != 0 -> {
|
||||||
|
if (sorting and SORT_USE_NUMERIC_VALUE != 0) {
|
||||||
|
AlphanumericComparator().compare(o1.path.toLowerCase(), o2.path.toLowerCase())
|
||||||
|
} else {
|
||||||
|
o1.path.toLowerCase().compareTo(o2.path.toLowerCase())
|
||||||
|
}
|
||||||
|
}
|
||||||
sorting and SORT_BY_SIZE != 0 -> o1.size.compareTo(o2.size)
|
sorting and SORT_BY_SIZE != 0 -> o1.size.compareTo(o2.size)
|
||||||
sorting and SORT_BY_DATE_MODIFIED != 0 -> o1.modified.compareTo(o2.modified)
|
sorting and SORT_BY_DATE_MODIFIED != 0 -> o1.modified.compareTo(o2.modified)
|
||||||
else -> o1.taken.compareTo(o2.taken)
|
else -> o1.taken.compareTo(o2.taken)
|
||||||
|
|
|
@ -101,6 +101,14 @@
|
||||||
android:id="@+id/use_for_this_folder_divider"
|
android:id="@+id/use_for_this_folder_divider"
|
||||||
layout="@layout/divider"/>
|
layout="@layout/divider"/>
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
|
||||||
|
android:id="@+id/sorting_dialog_numeric_sorting"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="@dimen/activity_margin"
|
||||||
|
android:paddingBottom="@dimen/activity_margin"
|
||||||
|
android:text="@string/sort_numeric_parts"/>
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
|
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
|
||||||
android:id="@+id/sorting_dialog_use_for_this_folder"
|
android:id="@+id/sorting_dialog_use_for_this_folder"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
Loading…
Reference in a new issue