diff options
Diffstat (limited to 'src')
3 files changed, 28 insertions, 11 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 124f62f08..3fca0a7e6 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 | |||
| @@ -284,10 +284,10 @@ class MainActivity : AppCompatActivity(), ThemeProvider { | |||
| 284 | if (result == null) | 284 | if (result == null) |
| 285 | return@registerForActivityResult | 285 | return@registerForActivityResult |
| 286 | 286 | ||
| 287 | if (!FileUtil.hasExtension(result.toString(), "keys")) { | 287 | if (!FileUtil.hasExtension(result, "keys")) { |
| 288 | MessageDialogFragment.newInstance( | 288 | MessageDialogFragment.newInstance( |
| 289 | R.string.reading_keys_failure, | 289 | R.string.reading_keys_failure, |
| 290 | R.string.install_keys_failure_extension_description | 290 | R.string.install_prod_keys_failure_extension_description |
| 291 | ).show(supportFragmentManager, MessageDialogFragment.TAG) | 291 | ).show(supportFragmentManager, MessageDialogFragment.TAG) |
| 292 | return@registerForActivityResult | 292 | return@registerForActivityResult |
| 293 | } | 293 | } |
| @@ -379,10 +379,10 @@ class MainActivity : AppCompatActivity(), ThemeProvider { | |||
| 379 | if (result == null) | 379 | if (result == null) |
| 380 | return@registerForActivityResult | 380 | return@registerForActivityResult |
| 381 | 381 | ||
| 382 | if (!FileUtil.hasExtension(result.toString(), "bin")) { | 382 | if (!FileUtil.hasExtension(result, "bin")) { |
| 383 | MessageDialogFragment.newInstance( | 383 | MessageDialogFragment.newInstance( |
| 384 | R.string.reading_keys_failure, | 384 | R.string.reading_keys_failure, |
| 385 | R.string.install_keys_failure_extension_description | 385 | R.string.install_amiibo_keys_failure_extension_description |
| 386 | ).show(supportFragmentManager, MessageDialogFragment.TAG) | 386 | ).show(supportFragmentManager, MessageDialogFragment.TAG) |
| 387 | return@registerForActivityResult | 387 | return@registerForActivityResult |
| 388 | } | 388 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt index 593dad8d3..492b1ad91 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt | |||
| @@ -7,7 +7,9 @@ import android.content.Context | |||
| 7 | import android.database.Cursor | 7 | import android.database.Cursor |
| 8 | import android.net.Uri | 8 | import android.net.Uri |
| 9 | import android.provider.DocumentsContract | 9 | import android.provider.DocumentsContract |
| 10 | import android.provider.OpenableColumns | ||
| 10 | import androidx.documentfile.provider.DocumentFile | 11 | import androidx.documentfile.provider.DocumentFile |
| 12 | import org.yuzu.yuzu_emu.YuzuApplication | ||
| 11 | import org.yuzu.yuzu_emu.model.MinimalDocumentFile | 13 | import org.yuzu.yuzu_emu.model.MinimalDocumentFile |
| 12 | import java.io.BufferedInputStream | 14 | import java.io.BufferedInputStream |
| 13 | import java.io.File | 15 | import java.io.File |
| @@ -324,7 +326,25 @@ object FileUtil { | |||
| 324 | } | 326 | } |
| 325 | } | 327 | } |
| 326 | 328 | ||
| 327 | fun hasExtension(path: String, extension: String): Boolean { | 329 | fun hasExtension(path: String, extension: String): Boolean = |
| 328 | return path.substring(path.lastIndexOf(".") + 1).contains(extension) | 330 | path.substring(path.lastIndexOf(".") + 1).contains(extension) |
| 331 | |||
| 332 | fun hasExtension(uri: Uri, extension: String): Boolean { | ||
| 333 | val fileName: String? | ||
| 334 | val cursor = YuzuApplication.appContext.contentResolver.query(uri, null, null, null, null) | ||
| 335 | val nameIndex = cursor?.getColumnIndex(OpenableColumns.DISPLAY_NAME) | ||
| 336 | cursor?.moveToFirst() | ||
| 337 | |||
| 338 | if (nameIndex == null) { | ||
| 339 | return false | ||
| 340 | } | ||
| 341 | |||
| 342 | fileName = cursor.getString(nameIndex) | ||
| 343 | cursor.close() | ||
| 344 | |||
| 345 | if (fileName == null) { | ||
| 346 | return false | ||
| 347 | } | ||
| 348 | return fileName.substring(fileName.lastIndexOf(".") + 1).contains(extension) | ||
| 329 | } | 349 | } |
| 330 | } | 350 | } |
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 0ae69afb4..6e9d47557 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml | |||
| @@ -65,11 +65,8 @@ | |||
| 65 | <string name="invalid_keys_file">Invalid keys file selected</string> | 65 | <string name="invalid_keys_file">Invalid keys file selected</string> |
| 66 | <string name="install_keys_success">Keys successfully installed</string> | 66 | <string name="install_keys_success">Keys successfully installed</string> |
| 67 | <string name="reading_keys_failure">Error reading encryption keys</string> | 67 | <string name="reading_keys_failure">Error reading encryption keys</string> |
| 68 | <string name="install_keys_failure_extension_description"> | 68 | <string name="install_prod_keys_failure_extension_description">Verify your keys file has a .keys extension and try again.</string> |
| 69 | 1. Verify your keys have the .keys extension.\n\n | 69 | <string name="install_amiibo_keys_failure_extension_description">Verify your keys file has a .bin extension and try again.</string> |
| 70 | 2. Keys must not be stored in the Downloads folder.\n\n | ||
| 71 | Resolve the issue(s) and try again. | ||
| 72 | </string> | ||
| 73 | <string name="invalid_keys_error">Invalid encryption keys</string> | 70 | <string name="invalid_keys_error">Invalid encryption keys</string> |
| 74 | <string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string> | 71 | <string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string> |
| 75 | <string name="install_keys_failure_description">The selected file is incorrect or corrupt. Please redump your keys.</string> | 72 | <string name="install_keys_failure_description">The selected file is incorrect or corrupt. Please redump your keys.</string> |