diff --git a/app/build.gradle b/app/build.gradle
index bd927d8d..e50aed0b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -58,7 +58,7 @@ android {
}
dependencies {
- implementation 'com.simplemobiletools:commons:5.28.24'
+ implementation 'com.simplemobiletools:commons:5.29.1'
implementation 'com.github.Stericson:RootTools:df729dcb13'
implementation 'com.github.Stericson:RootShell:1.6'
implementation 'com.alexvasilkov:gesture-views:2.5.2'
diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/dialogs/ChangeSortingDialog.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/dialogs/ChangeSortingDialog.kt
index ef1452a9..9ab985d6 100644
--- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/dialogs/ChangeSortingDialog.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/dialogs/ChangeSortingDialog.kt
@@ -1,7 +1,9 @@
package com.simplemobiletools.filemanager.pro.dialogs
+import android.view.View
import androidx.appcompat.app.AlertDialog
import com.simplemobiletools.commons.activities.BaseSimpleActivity
+import com.simplemobiletools.commons.extensions.beVisibleIf
import com.simplemobiletools.commons.extensions.setupDialogStuff
import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.filemanager.pro.R
@@ -11,25 +13,36 @@ import kotlinx.android.synthetic.main.dialog_change_sorting.view.*
class ChangeSortingDialog(val activity: BaseSimpleActivity, val path: String = "", val callback: () -> Unit) {
private var currSorting = 0
private var config = activity.config
- private var view = activity.layoutInflater.inflate(R.layout.dialog_change_sorting, null)
+ private var view: View
init {
- view.sorting_dialog_use_for_this_folder.isChecked = config.hasCustomSorting(path)
+ currSorting = config.getFolderSorting(path)
+ view = activity.layoutInflater.inflate(R.layout.dialog_change_sorting, null).apply {
+ sorting_dialog_use_for_this_folder.isChecked = config.hasCustomSorting(path)
+
+ sorting_dialog_numeric_sorting.beVisibleIf(currSorting and SORT_BY_NAME != 0)
+ sorting_dialog_numeric_sorting.isChecked = currSorting and SORT_USE_NUMERIC_VALUE != 0
+ }
AlertDialog.Builder(activity)
- .setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() }
- .setNegativeButton(R.string.cancel, null)
- .create().apply {
- activity.setupDialogStuff(view, this, R.string.sort_by)
- }
+ .setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() }
+ .setNegativeButton(R.string.cancel, null)
+ .create().apply {
+ activity.setupDialogStuff(view, this, R.string.sort_by)
+ }
- currSorting = config.getFolderSorting(path)
setupSortRadio()
setupOrderRadio()
}
private fun setupSortRadio() {
val sortingRadio = view.sorting_dialog_radio_sorting
+
+ sortingRadio.setOnCheckedChangeListener { group, checkedId ->
+ val isSortingByName = checkedId == sortingRadio.sorting_dialog_radio_name.id
+ view.sorting_dialog_numeric_sorting.beVisibleIf(isSortingByName)
+ }
+
val sortBtn = when {
currSorting and SORT_BY_SIZE != 0 -> sortingRadio.sorting_dialog_radio_size
currSorting and SORT_BY_DATE_MODIFIED != 0 -> sortingRadio.sorting_dialog_radio_last_modified
@@ -62,6 +75,10 @@ class ChangeSortingDialog(val activity: BaseSimpleActivity, val path: String = "
sorting = sorting or SORT_DESCENDING
}
+ if (view.sorting_dialog_numeric_sorting.isChecked) {
+ sorting = sorting or SORT_USE_NUMERIC_VALUE
+ }
+
if (view.sorting_dialog_use_for_this_folder.isChecked) {
config.saveCustomSorting(path, sorting)
} else {
diff --git a/app/src/main/res/layout/dialog_change_sorting.xml b/app/src/main/res/layout/dialog_change_sorting.xml
index cf08d0ac..475e7a96 100644
--- a/app/src/main/res/layout/dialog_change_sorting.xml
+++ b/app/src/main/res/layout/dialog_change_sorting.xml
@@ -83,12 +83,21 @@
android:id="@+id/use_for_this_folder_divider"
layout="@layout/divider" />
+
+
diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml
new file mode 100644
index 00000000..1ea0ea21
--- /dev/null
+++ b/app/src/main/res/values/integers.xml
@@ -0,0 +1,3 @@
+
+ 32769
+