11package org.fossify.gallery.dialogs
22
33import android.graphics.Color
4- import android.view.KeyEvent.ACTION_UP
5- import android.view.KeyEvent.KEYCODE_BACK
64import android.view.inputmethod.EditorInfo
75import android.widget.Toast
6+ import androidx.activity.addCallback
87import androidx.appcompat.app.AlertDialog
98import androidx.recyclerview.widget.RecyclerView
109import org.fossify.commons.activities.BaseSimpleActivity
1110import org.fossify.commons.dialogs.FilePickerDialog
12- import org.fossify.commons.extensions.*
11+ import org.fossify.commons.extensions.beGone
12+ import org.fossify.commons.extensions.beInvisible
13+ import org.fossify.commons.extensions.beVisibleIf
14+ import org.fossify.commons.extensions.getAlertDialogBuilder
15+ import org.fossify.commons.extensions.getDefaultCopyDestinationPath
16+ import org.fossify.commons.extensions.getProperPrimaryColor
17+ import org.fossify.commons.extensions.handleHiddenFolderPasswordProtection
18+ import org.fossify.commons.extensions.handleLockedFolderOpening
19+ import org.fossify.commons.extensions.hideKeyboard
20+ import org.fossify.commons.extensions.isGone
21+ import org.fossify.commons.extensions.isInDownloadDir
22+ import org.fossify.commons.extensions.isRestrictedWithSAFSdk30
23+ import org.fossify.commons.extensions.setupDialogStuff
24+ import org.fossify.commons.extensions.toast
1325import org.fossify.commons.helpers.VIEW_TYPE_GRID
1426import org.fossify.commons.views.MyGridLayoutManager
1527import org.fossify.commons.views.MySearchMenu
1628import org.fossify.gallery.R
1729import org.fossify.gallery.adapters.DirectoryAdapter
1830import org.fossify.gallery.databinding.DialogDirectoryPickerBinding
19- import org.fossify.gallery.extensions.*
31+ import org.fossify.gallery.extensions.addTempFolderIfNeeded
32+ import org.fossify.gallery.extensions.config
33+ import org.fossify.gallery.extensions.getCachedDirectories
34+ import org.fossify.gallery.extensions.getDirsToShow
35+ import org.fossify.gallery.extensions.getDistinctPath
36+ import org.fossify.gallery.extensions.getSortedDirectories
2037import org.fossify.gallery.models.Directory
2138
2239class PickDirectoryDialog (
@@ -54,14 +71,6 @@ class PickDirectoryDialog(
5471 val builder = activity.getAlertDialogBuilder()
5572 .setPositiveButton(org.fossify.commons.R .string.ok, null )
5673 .setNegativeButton(org.fossify.commons.R .string.cancel, null )
57- .setOnKeyListener { dialogInterface, i, keyEvent ->
58- return @setOnKeyListener if (keyEvent.action == ACTION_UP && i == KEYCODE_BACK ) {
59- backPressed()
60- true
61- } else {
62- false
63- }
64- }
6574
6675 if (showOtherFolderButton) {
6776 builder.setNeutralButton(R .string.other_folder) { dialogInterface, i -> showOtherFolder() }
@@ -78,6 +87,24 @@ class PickDirectoryDialog(
7887 fetchDirectories(true )
7988 }
8089 }
90+
91+ alertDialog.onBackPressedDispatcher.addCallback(alertDialog) {
92+ if (searchView.isSearchOpen) {
93+ searchView.closeSearch()
94+ } else if (activity.config.groupDirectSubfolders) {
95+ if (currentPathPrefix.isEmpty()) {
96+ isEnabled = false
97+ alertDialog.onBackPressedDispatcher.onBackPressed()
98+ } else {
99+ openedSubfolders.removeAt(openedSubfolders.lastIndex)
100+ currentPathPrefix = openedSubfolders.last()
101+ gotDirectories(allDirectories)
102+ }
103+ } else {
104+ isEnabled = false
105+ alertDialog.onBackPressedDispatcher.onBackPressed()
106+ }
107+ }
81108 }
82109 }
83110
@@ -233,20 +260,4 @@ class PickDirectoryDialog(
233260 directoriesFastscroller.setScrollVertically(! scrollHorizontally)
234261 }
235262 }
236-
237- private fun backPressed () {
238- if (searchView.isSearchOpen) {
239- searchView.closeSearch()
240- } else if (activity.config.groupDirectSubfolders) {
241- if (currentPathPrefix.isEmpty()) {
242- dialog?.dismiss()
243- } else {
244- openedSubfolders.removeAt(openedSubfolders.lastIndex)
245- currentPathPrefix = openedSubfolders.last()
246- gotDirectories(allDirectories)
247- }
248- } else {
249- dialog?.dismiss()
250- }
251- }
252263}
0 commit comments