summaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/android')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt22
-rw-r--r--src/android/app/src/main/res/values/strings.xml1
2 files changed, 23 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
index b455b7d35..c03c28aa1 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
@@ -180,6 +180,10 @@ class MainActivity : AppCompatActivity() {
180 windowInsets 180 windowInsets
181 } 181 }
182 182
183 private fun hasExtension(path: String, extension: String): Boolean {
184 return path.substring(path.lastIndexOf(".") + 1).contains(extension)
185 }
186
183 val getGamesDirectory = 187 val getGamesDirectory =
184 registerForActivityResult(ActivityResultContracts.OpenDocumentTree()) { result -> 188 registerForActivityResult(ActivityResultContracts.OpenDocumentTree()) { result ->
185 if (result == null) 189 if (result == null)
@@ -212,6 +216,15 @@ class MainActivity : AppCompatActivity() {
212 if (result == null) 216 if (result == null)
213 return@registerForActivityResult 217 return@registerForActivityResult
214 218
219 if (!hasExtension(result.toString(), "keys")) {
220 Toast.makeText(
221 applicationContext,
222 R.string.invalid_keys_file,
223 Toast.LENGTH_SHORT
224 ).show()
225 return@registerForActivityResult
226 }
227
215 val takeFlags = 228 val takeFlags =
216 Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION 229 Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION
217 contentResolver.takePersistableUriPermission( 230 contentResolver.takePersistableUriPermission(
@@ -243,6 +256,15 @@ class MainActivity : AppCompatActivity() {
243 if (result == null) 256 if (result == null)
244 return@registerForActivityResult 257 return@registerForActivityResult
245 258
259 if (!hasExtension(result.toString(), "bin")) {
260 Toast.makeText(
261 applicationContext,
262 R.string.invalid_keys_file,
263 Toast.LENGTH_SHORT
264 ).show()
265 return@registerForActivityResult
266 }
267
246 val takeFlags = 268 val takeFlags =
247 Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION 269 Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION
248 contentResolver.takePersistableUriPermission( 270 contentResolver.takePersistableUriPermission(
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 916f516c0..92fe67bf0 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -35,6 +35,7 @@
35 <string name="install_prod_keys_description">Required to decrypt retail games</string> 35 <string name="install_prod_keys_description">Required to decrypt retail games</string>
36 <string name="install_amiibo_keys">Install Amiibo Keys</string> 36 <string name="install_amiibo_keys">Install Amiibo Keys</string>
37 <string name="install_amiibo_keys_description">Required to use Amiibo in game</string> 37 <string name="install_amiibo_keys_description">Required to use Amiibo in game</string>
38 <string name="invalid_keys_file">Invalid keys file selected</string>
38 <string name="install_keys_success">Keys successfully installed</string> 39 <string name="install_keys_success">Keys successfully installed</string>
39 <string name="install_keys_failure">Keys file (prod.keys) is invalid</string> 40 <string name="install_keys_failure">Keys file (prod.keys) is invalid</string>
40 <string name="install_amiibo_keys_failure">Keys file (key_retail.bin) is invalid</string> 41 <string name="install_amiibo_keys_failure">Keys file (key_retail.bin) is invalid</string>