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.