Skip to content

Commit

Permalink
Use proper way to obtain filename
Browse files Browse the repository at this point in the history
Fix #2
  • Loading branch information
VegaBobo committed Feb 3, 2022
1 parent 4f8fe9b commit 4904801
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 48 deletions.
101 changes: 55 additions & 46 deletions app/src/main/java/vegabobo/dsusideloader/HomeFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import vegabobo.dsusideloader.checks.CompatibilityCheck
import vegabobo.dsusideloader.checks.OperationMode
import vegabobo.dsusideloader.dsuhelper.GsiDsuObject
import vegabobo.dsusideloader.dsuhelper.PrepareDsu
import vegabobo.dsusideloader.util.FilenameUtils
import vegabobo.dsusideloader.util.SPUtils
import vegabobo.dsusideloader.util.SetupStorageAccess
import vegabobo.dsusideloader.util.WorkspaceFilesUtils
Expand Down Expand Up @@ -73,7 +74,7 @@ class HomeFragment : Fragment() {
val uri = result.data!!.data
selectedGsi = uri!!
btnInstall.isEnabled = true
edGsiPath.setText(uri.lastPathSegment.toString())
edGsiPath.setText(FilenameUtils.queryName(requireContext().contentResolver, uri))
btnInstall.setTextColor(
ContextCompat.getColor(
requireActivity(),
Expand Down Expand Up @@ -268,61 +269,69 @@ class HomeFragment : Fragment() {
}

private fun beginInstall(selectedGsi: Uri, gsiDsuObject: GsiDsuObject) {
var selectedFile = selectedGsi.lastPathSegment.toString().split(":")[1]

if (selectedFile.contains("/"))
selectedFile = selectedFile.substring(selectedFile.lastIndexOf('/') + 1)
val selectedFile = FilenameUtils.queryName(requireActivity().contentResolver, selectedGsi)

when (selectedFile.substring(selectedFile.lastIndexOf("."))) {
".xz", ".gz", ".img" -> {
// file need to have a extension, if not, show error dialog.
if (selectedFile.contains(".")) {

MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.info)
.setMessage(getString(R.string.warning))
.setPositiveButton(getString(R.string.proceed)) { _, _ ->

MaterialAlertDialogBuilder(requireActivity())
.setTitle(getString(R.string.installation))
.setMessage(
getString(
R.string.installation_details,
selectedFile,
gsiDsuObject.userdataSize.toString(),
if (gsiDsuObject.fileSize == -1L) getString(R.string.auto) else gsiDsuObject.fileSize
when (selectedFile.substring(selectedFile.lastIndexOf("."))) {
".xz", ".gz", ".img" -> {

MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.info)
.setMessage(getString(R.string.warning))
.setPositiveButton(getString(R.string.proceed)) { _, _ ->

MaterialAlertDialogBuilder(requireActivity())
.setTitle(getString(R.string.installation))
.setMessage(
getString(
R.string.installation_details,
selectedFile,
gsiDsuObject.userdataSize.toString(),
if (gsiDsuObject.fileSize == -1L) getString(R.string.auto) else gsiDsuObject.fileSize
)
)
)
.setPositiveButton(getString(R.string.proceed)) { _, _ ->
WorkspaceFilesUtils.cleanWorkspaceFolder(requireActivity(), true)
Thread(
PrepareDsu(
.setPositiveButton(getString(R.string.proceed)) { _, _ ->
WorkspaceFilesUtils.cleanWorkspaceFolder(
requireActivity(),
selectedGsi,
gsiDsuObject
true
)
).start()
}
.setNegativeButton(getString(R.string.cancel), null)
.setCancelable(true)
.show()

}
.setNegativeButton(getString(R.string.cancel), null)
.show()


}

else -> {
MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.unsupported)
.setMessage(getString(R.string.file_unsupported))
.setPositiveButton(getString(R.string.got_it), null)
.setCancelable(true)
.show()
Thread(
PrepareDsu(
requireActivity(),
selectedGsi,
gsiDsuObject
)
).start()
}
.setNegativeButton(getString(R.string.cancel), null)
.setCancelable(true)
.show()

}
.setNegativeButton(getString(R.string.cancel), null)
.show()
}
else -> {
showUnsupportedDialog()
}
}
} else {
showUnsupportedDialog()
}
}

private fun showUnsupportedDialog() {
MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.unsupported)
.setMessage(getString(R.string.file_unsupported))
.setPositiveButton(getString(R.string.got_it), null)
.setCancelable(true)
.show()
}

private fun showNoAvaiableStorageDialog() {
MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.error)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ class PrepareDsu(
dialog.show()
}

val file =
uri.lastPathSegment.toString().split(":")[1]
val file = FilenameUtils.queryName(c.contentResolver, uri)

val dsu: GsiDsuObject? = when (file.substring(file.lastIndexOf("."))) {
".xz" -> {
Expand Down

0 comments on commit 4904801

Please sign in to comment.