Skip to content

Commit 485097c

Browse files
committed
fix: migrate away from deprecated onBackPressed()
1 parent 0e61b98 commit 485097c

File tree

1 file changed

+39
-28
lines changed

1 file changed

+39
-28
lines changed

app/src/main/kotlin/org/fossify/gallery/dialogs/PickDirectoryDialog.kt

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,39 @@
11
package org.fossify.gallery.dialogs
22

33
import android.graphics.Color
4-
import android.view.KeyEvent.ACTION_UP
5-
import android.view.KeyEvent.KEYCODE_BACK
64
import android.view.inputmethod.EditorInfo
75
import android.widget.Toast
6+
import androidx.activity.addCallback
87
import androidx.appcompat.app.AlertDialog
98
import androidx.recyclerview.widget.RecyclerView
109
import org.fossify.commons.activities.BaseSimpleActivity
1110
import 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
1325
import org.fossify.commons.helpers.VIEW_TYPE_GRID
1426
import org.fossify.commons.views.MyGridLayoutManager
1527
import org.fossify.commons.views.MySearchMenu
1628
import org.fossify.gallery.R
1729
import org.fossify.gallery.adapters.DirectoryAdapter
1830
import 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
2037
import org.fossify.gallery.models.Directory
2138

2239
class 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

Comments
 (0)