android: Fixed crash on Google Play when selecting user dir on SD card

This commit is contained in:
OpenSauce04 2026-01-08 23:38:34 +00:00
parent 8e8cb3d97a
commit def69abc11
3 changed files with 21 additions and 14 deletions

View file

@ -25,6 +25,7 @@ import androidx.fragment.app.DialogFragment
import androidx.preference.PreferenceManager
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.citra.citra_emu.activities.EmulationActivity
import org.citra.citra_emu.utils.BuildUtil
import org.citra.citra_emu.utils.FileUtil
import org.citra.citra_emu.utils.Log
import org.citra.citra_emu.utils.RemovableStorageHelper
@ -637,6 +638,8 @@ object NativeLibrary {
@Keep
@JvmStatic
fun getUserDirectory(uriOverride: Uri? = null): String {
BuildUtil.assertNotGooglePlay()
val preferences: SharedPreferences =
PreferenceManager.getDefaultSharedPreferences(CitraApplication.appContext)

View file

@ -568,6 +568,7 @@ class SetupFragment : Fragment() {
return@registerForActivityResult
}
if (BuildConfig.FLAVOR != "googlePlay") {
if (NativeLibrary.getUserDirectory(result) == "") {
SelectUserDirectoryDialogFragment.newInstance(
mainActivity,
@ -576,6 +577,7 @@ class SetupFragment : Fragment() {
).show(mainActivity.supportFragmentManager, SelectUserDirectoryDialogFragment.TAG)
return@registerForActivityResult
}
}
CitraDirectoryHelper(requireActivity(), true).showCitraDirectoryDialog(result, pageButtonCallback, checkForButtonState)
}

View file

@ -364,6 +364,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
return@registerForActivityResult
}
if (BuildConfig.FLAVOR != "googlePlay") {
if (NativeLibrary.getUserDirectory(result) == "") {
SelectUserDirectoryDialogFragment.newInstance(
this,
@ -372,6 +373,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
).show(supportFragmentManager, SelectUserDirectoryDialogFragment.TAG)
return@registerForActivityResult
}
}
CitraDirectoryHelper(this@MainActivity, permissionsLost)
.showCitraDirectoryDialog(result, buttonState = {})