diff --git a/android/app/src/main/java/io/github/kichikuou/xsystem35/Launcher.kt b/android/app/src/main/java/io/github/kichikuou/xsystem35/Launcher.kt index 4cafee9..adecc2c 100644 --- a/android/app/src/main/java/io/github/kichikuou/xsystem35/Launcher.kt +++ b/android/app/src/main/java/io/github/kichikuou/xsystem35/Launcher.kt @@ -253,6 +253,14 @@ class Launcher private constructor(private val rootDir: File) { } } } + + fun clearSaveData(): Boolean { + var success = true + File(rootDir, SAVE_DIR).listFiles()?.forEach { file -> + if (!file.deleteRecursively()) success = false + } + return success + } } private fun forEachZipEntry(input: InputStream, action: (ZipEntry, ZipInputStream) -> Unit): Boolean { diff --git a/android/app/src/main/java/io/github/kichikuou/xsystem35/LauncherActivity.kt b/android/app/src/main/java/io/github/kichikuou/xsystem35/LauncherActivity.kt index 8d66738..675870f 100644 --- a/android/app/src/main/java/io/github/kichikuou/xsystem35/LauncherActivity.kt +++ b/android/app/src/main/java/io/github/kichikuou/xsystem35/LauncherActivity.kt @@ -82,7 +82,7 @@ class LauncherActivity : Activity(), LauncherObserver { } private fun onItemLongClick(position: Int): Boolean { - AlertDialog.Builder(this).setTitle(R.string.uninstall_dialog_title) + AlertDialog.Builder(this).setTitle(R.string.confirm) .setMessage(getString(R.string.uninstall_dialog_message, launcher.games[position].title)) .setPositiveButton(R.string.ok) {_, _ -> uninstall(position)} .setNegativeButton(R.string.cancel) {_, _ -> } @@ -117,6 +117,21 @@ class LauncherActivity : Activity(), LauncherObserver { SAVEDATA_IMPORT_REQUEST) true } + R.id.clear_savedata -> { + AlertDialog.Builder(this) + .setTitle(R.string.confirm) + .setMessage(R.string.clear_save_data_confirm) + .setPositiveButton(R.string.ok) { _, _ -> + if (launcher.clearSaveData()) { + Toast.makeText(this, R.string.save_data_clear_success, Toast.LENGTH_SHORT).show() + } else { + errorDialog(R.string.save_data_clear_error) + } + } + .setNegativeButton(R.string.cancel, null) + .show() + true + } R.id.help -> { AlertDialog.Builder(this) .setMessage(Html.fromHtml(getString(R.string.usage))) diff --git a/android/app/src/main/res/menu/launcher_menu.xml b/android/app/src/main/res/menu/launcher_menu.xml index 684b112..772b388 100644 --- a/android/app/src/main/res/menu/launcher_menu.xml +++ b/android/app/src/main/res/menu/launcher_menu.xml @@ -9,6 +9,9 @@ + diff --git a/android/app/src/main/res/values-ja/strings.xml b/android/app/src/main/res/values-ja/strings.xml index 0a9fb42..9958a9f 100644 --- a/android/app/src/main/res/values-ja/strings.xml +++ b/android/app/src/main/res/values-ja/strings.xml @@ -6,9 +6,12 @@ セーブデータをインポート ZIPからインストール オープンソースライセンス + セーブデータをクリア キャンセル System 3.x のファイル (*.ald) が見つかりません。 ファイルを選択 + セーブデータをすべて削除します。元には戻せません。本当によろしいですか? + 確認 エラー インストール中… %s を展開中 @@ -16,8 +19,9 @@ セーブデータのエクスポートに失敗しました。 エクスポートに成功しました。 インポートに成功しました。 + セーブデータをクリアしました。 + セーブデータのクリアに失敗しました。 「%s」をアンインストールしますか? - 確認 この形式の ZIP はサポートしていません。 ZIP の展開に失敗しました。 diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index a0bb677..5913347 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ xsystem35 + Clear Save Files Export Save Files Help Import Save Files @@ -8,16 +9,19 @@ Cancel Cannot find System 3.x game files (*.ald). Choose a file + Are you sure you want to clear all save files? This cannot be undone. + Confirm Error Installing… Extracting %s No save/ folder in the ZIP archive. OK + Failed to clear save files. + Save files cleared. Failed to export save files. Imported successfully. Exported successfully. Uninstall \"%s\"? - Confirm This type of ZIP is not supported. Failed to extract ZIP.