mirror of
https://github.com/nacabaro/vbhelper.git
synced 2026-10-01 07:31:37 +00:00
Compare commits
19
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c8e035aee1 | ||
|
|
5787069761 | ||
|
|
c67dc4bd02 | ||
|
|
8aa31e819b | ||
|
|
bd8883e5d1 | ||
|
|
b094d6ccd3 | ||
|
|
6c257b2080 | ||
|
|
04ea584c4f | ||
|
|
1a83527590 | ||
|
|
431be5faea | ||
|
|
9aa62f0d81 | ||
|
|
8fd4f6c414 | ||
|
|
f829efae68 | ||
|
|
895b704c8d | ||
|
|
d40428ccfd | ||
|
|
cd9a6d5d80 | ||
|
|
e0a086d9aa | ||
|
|
e787ea4a19 | ||
|
|
5273bae7b6 |
@@ -17,3 +17,5 @@ app/src/main/assets/battle_sprites
|
||||
app/src/main/assets/extracted_audio
|
||||
|
||||
API-ACR122USAM-2.01.pdf
|
||||
|
||||
build/
|
||||
|
||||
@@ -4,7 +4,7 @@ plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.compose)
|
||||
id("com.google.devtools.ksp") version "2.3.0"
|
||||
id("com.google.devtools.ksp") version "2.3.2"
|
||||
id("com.google.protobuf")
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,7 @@ import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
@@ -88,15 +89,18 @@ fun ScanScreen(
|
||||
}
|
||||
)
|
||||
} else {
|
||||
val secretsNotInitialized = stringResource(id = R.string.scan_secrets_not_initialized)
|
||||
val secretsNotImported = stringResource(id = R.string.scan_secrets_not_imported)
|
||||
|
||||
ChooseConnectOption(
|
||||
onClickRead = when {
|
||||
!launchedFromHomeScreen -> null
|
||||
else -> {
|
||||
{
|
||||
if(secrets == null) {
|
||||
Toast.makeText(context, context.getString(R.string.scan_secrets_not_initialized), Toast.LENGTH_SHORT).show()
|
||||
} else if(secrets?.isMissingSecrets() == true) {
|
||||
Toast.makeText(context, context.getString(R.string.scan_secrets_not_imported), Toast.LENGTH_SHORT).show()
|
||||
if (secrets == null) {
|
||||
Toast.makeText(context, secretsNotInitialized, Toast.LENGTH_SHORT).show()
|
||||
} else if (secrets?.isMissingSecrets() == true) {
|
||||
Toast.makeText(context, secretsNotImported, Toast.LENGTH_SHORT).show()
|
||||
} else {
|
||||
readingScreen = true // kicks off nfc adapter in DisposableEffect
|
||||
}
|
||||
@@ -107,10 +111,10 @@ fun ScanScreen(
|
||||
nfcCharacter == null -> null
|
||||
else -> {
|
||||
{
|
||||
if(secrets == null) {
|
||||
Toast.makeText(context, context.getString(R.string.scan_secrets_not_initialized), Toast.LENGTH_SHORT).show()
|
||||
} else if(secrets?.isMissingSecrets() == true) {
|
||||
Toast.makeText(context, context.getString(R.string.scan_secrets_not_imported), Toast.LENGTH_SHORT).show()
|
||||
if (secrets == null) {
|
||||
Toast.makeText(context, secretsNotInitialized, Toast.LENGTH_SHORT).show()
|
||||
} else if (secrets?.isMissingSecrets() == true) {
|
||||
Toast.makeText(context, secretsNotImported, Toast.LENGTH_SHORT).show()
|
||||
} else {
|
||||
writingScreen = true // kicks off nfc adapter in DisposableEffect
|
||||
}
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">VBHelper</string>
|
||||
<string name="beta_warning_button_dismiss">閉じる</string>
|
||||
<string name="nav_scan">スキャン</string>
|
||||
<string name="nav_battle">バトル</string>
|
||||
<string name="nav_home">ホーム</string>
|
||||
<string name="nav_card_adventure">アドベンチャー</string>
|
||||
<string name="nav_storage">ストレージ</string>
|
||||
<string name="nav_settings">設定</string>
|
||||
<string name="nav_viewer">閲覧</string>
|
||||
<string name="nav_card">カード</string>
|
||||
<string name="nav_items">アイテム</string>
|
||||
<string name="nav_my_items">所持アイテム</string>
|
||||
<string name="nav_items_store">ストア</string>
|
||||
<string name="nav_apply_item">使用</string>
|
||||
<string name="nav_adventure">アドベンチャー</string>
|
||||
<string name="nav_credits">クレジット</string>
|
||||
<string name="adventure_title">アドベンチャー</string>
|
||||
<string name="adventure_empty_state">何もありません。</string>
|
||||
<string name="home_title">VB Helper</string>
|
||||
<string name="scan_secrets_not_imported">" APKの読み込みがされていません。設定から読み込をして下さい。 "</string>
|
||||
<string name="scan_title">デバイスをスキャン</string>
|
||||
<string name="scan_sent_dim_success">DIMの転送に成功しました。</string>
|
||||
<string name="scan_nfc_must_be_enabled">NFC機能を有効にして下さい。</string>
|
||||
<string name="settings_title">設定</string>
|
||||
<string name="scan_missing_secrets">必要なデータが不足しています。設定を開き、Vital ArenaのAPKを読み込んでください。</string>
|
||||
<string name="scan_sent_character_success">転送が成功しました。</string>
|
||||
<string name="scan_error_generic">エラー</string>
|
||||
<string name="settings_about_desc">このアプリについて</string>
|
||||
<string name="settings_export_data_title">データベースの書き出し</string>
|
||||
<string name="settings_export_data_desc">" データベースを書き出します。"</string>
|
||||
<string name="settings_import_data_title">データベースの読み込み</string>
|
||||
<string name="settings_import_data_desc">" データベースを読み込みます。"</string>
|
||||
<string name="credits_title">クレジット</string>
|
||||
<string name="battles_coming_soon">Coming soon</string>
|
||||
<string name="cards_my_cards_title">カードリスト</string>
|
||||
<string name="writing_character_action_title">キャラクター情報書き込み中</string>
|
||||
<string name="items_title">アイテム</string>
|
||||
<string name="items_no_items">アイテムはありません。</string>
|
||||
<string name="items_store_credits">%1$d クレジット</string>
|
||||
<string name="scan_vb_to_app">デバイスからアプリへ</string>
|
||||
<string name="scan_app_to_vb">アプリからデバイスへ</string>
|
||||
<string name="read_character_title">キャラクターを読み込みます。</string>
|
||||
<string name="read_character_prepare_device">バイタルブレスを準備してください。</string>
|
||||
<string name="read_character_go_to_connect">準備が出来たら転送を押してください。</string>
|
||||
<string name="read_character_confirm">転送</string>
|
||||
<string name="card_adventure_missions_title">アドベンチャーミッション</string>
|
||||
<string name="card_entry_characters_obtained">%1$d / %2$d のキャラクターを取得しました。</string>
|
||||
<string name="card_entry_edit">編集</string>
|
||||
<string name="card_entry_delete">削除</string>
|
||||
<string name="home_vbdim_current_phase_win">フェーズ勝率 %</string>
|
||||
<string name="home_vbdim_special_missions">スペシャルミッション</string>
|
||||
<string name="storage_delete_character">削除</string>
|
||||
<string name="storage_close">閉じる</string>
|
||||
<string name="storage_character_image_description">キャラクター画像</string>
|
||||
<string name="storage_send_to_watch">転送</string>
|
||||
<string name="storage_set_active">選択</string>
|
||||
<string name="storage_send_on_adventure">アドベンチャーへ出発</string>
|
||||
<string name="scan_no_nfc_on_device">NFC機能が見つかりません。</string>
|
||||
<string name="scan_tag_not_vb">検出されたタグはバイタルブレスでは使用出来ません。</string>
|
||||
<string name="settings_section_nfc">NFC</string>
|
||||
<string name="settings_section_dim_bem">DiM / BEm</string>
|
||||
<string name="settings_section_data">データ管理</string>
|
||||
<string name="settings_import_apk_title">アプリの読み込み</string>
|
||||
<string name="settings_import_apk_desc">" Vital Arena 2.1.0のAPKファイルを読み込みします。"</string>
|
||||
<string name="settings_import_card_title">カードの読み込み</string>
|
||||
<string name="settings_section_about">概要 / クレジット</string>
|
||||
<string name="dex_chara_fusions_button">ジョグレス</string>
|
||||
<string name="dex_chara_close_button">閉じる</string>
|
||||
<string name="settings_import_card_desc">" Dim / BEm カードファイルを読み込みます。"</string>
|
||||
<string name="settings_credits_title">クレジット</string>
|
||||
<string name="settings_credits_desc">開発者について</string>
|
||||
<string name="settings_about_title">概要</string>
|
||||
<string name="beta_warning_message_main">" このアプリは現在アルファ版です。今後のアップデートにより保存されているデータの全てが削除される可能性がある為、大切なデータの保存はしないようにお願い致します。ご不便をおかけして申し訳ございません。 "</string>
|
||||
<string name="beta_warning_message_compatibility">" このアプリはオリジナルのVBおよびVHで動作するようになりました。 "</string>
|
||||
<string name="beta_warning_message_thanks">" ご理解とご協力に感謝いたします。\n 開発チーム一同"</string>
|
||||
<string name="home_vbdim_vitals">バイタル</string>
|
||||
<string name="home_adventure_mission_finished">" 1人のキャラクターがアドベンチャーミッションを完了しました。 "</string>
|
||||
<string name="scan_secrets_not_initialized">" 初期化が出来ませんでした。もう一度試して下さい。 "</string>
|
||||
<string name="home_special_mission_delete_main">現在の進捗状況が失われますが、本当にこのスペシャルミッションを削除しますか?</string>
|
||||
<string name="home_special_mission_delete_dismiss">閉じる</string>
|
||||
<string name="home_special_mission_delete_remove">削除</string>
|
||||
<string name="item_dialog_use">アイテム使用</string>
|
||||
<string name="item_dialog_purchase">購入</string>
|
||||
<string name="item_dialog_cancel">キャンセル</string>
|
||||
<string name="dex_chara_stage_attribute">Stg: %1$s, Atr: %2$s</string>
|
||||
<string name="dex_chara_unknown_name">\?\\?\\?\\?\\?\\?\\?\\?\\?\\?\\?\\?\\?\\?\\?\\?</string>
|
||||
<string name="battles_online_title">オンラインバトル</string>
|
||||
<string name="obtained_item_you_also_got_credits">%1$d クレジットを獲得しました。</string>
|
||||
<string name="obtained_item_dismiss">閉じる</string>
|
||||
<string name="nav_dex">図鑑</string>
|
||||
<string name="action_place_near_reader">バイタルブレス本体を近くに置いて下さい。</string>
|
||||
<string name="action_cancel">キャンセル</string>
|
||||
<string name="card_view_discovered_characters">解放済みキャラクター</string>
|
||||
<string name="dex_chara_icon_description">キャラクターアイコン</string>
|
||||
<string name="dex_chara_name_icon_description">名前</string>
|
||||
<string name="credits_section_reverse_engineering">リバースエンジニアリング</string>
|
||||
<string name="credits_section_app_development">アプリケーション開発</string>
|
||||
<string name="credits_cyanic_description">" ファームウェアの解析を行い、開発をサポートしてくれました。"</string>
|
||||
<string name="credits_cfogrady_description">" vb-lib-nfc開発およびアプリの開発に協力して頂きました。"</string>
|
||||
<string name="credits_nacabaro_description">" アプリの開発をしました。"</string>
|
||||
<string name="credits_lightheel_description">" アプリのサーバー含む対戦機能を開発して頂きました。現在も開発を継続して頂いています。"</string>
|
||||
<string name="credits_shvstrz_description">" アプリのアイコンデザインをして頂きました。"</string>
|
||||
<string name="write_card_title">カード情報書き込み中</string>
|
||||
<string name="write_card_icon_description">カードアイコン</string>
|
||||
<string name="write_card_device_ready">デバイスの準備をして下さい。</string>
|
||||
<string name="write_card_required_card">%1$s カードが必要です。</string>
|
||||
<string name="write_card_confirm">転送</string>
|
||||
<string name="write_character_success">" カードの読み込みが完了しました。"</string>
|
||||
<string name="write_character_wait_ready">" デバイスの準備をしてから確認を押して下さい。"</string>
|
||||
<string name="write_character_confirm">確認</string>
|
||||
<string name="home_vbdim_trophies">トロフィー</string>
|
||||
<string name="items_purchase_success">購入しました。</string>
|
||||
<string name="obtained_item_you_have">%1$d 個入手しました。</string>
|
||||
<string name="choose_character_title">キャラクターを選択</string>
|
||||
<string name="choose_character_item_applied">アイテムを使用しました。</string>
|
||||
<string name="item_dialog_costs_credits">%1$d クレジット</string>
|
||||
<string name="dex_chara_stats">HP: %1$d, BP: %2$d, AP: %3$d</string>
|
||||
<string name="dex_chara_stage_attribute_unknown">Stg: -, Atr: -</string>
|
||||
<string name="dex_chara_stats_unknown">HP: -, BP: -, AP: -</string>
|
||||
<string name="dex_chara_requirements">" Tr: %1$d; Bt: %2$d; Vr: %3$d; Wr: %4$d%%; Ct: %5$dh "</string>
|
||||
<string name="dex_chara_adventure_level">AdvLvl %1$d</string>
|
||||
<string name="storage_my_characters_title">キャラクターリスト</string>
|
||||
<string name="storage_nothing_to_see_here">表示するデータはありません。</string>
|
||||
<string name="storage_in_adventure_toast">このキャラクターは冒険中です。</string>
|
||||
<string name="home_vbdim_next_timer">次のタイマー</string>
|
||||
<string name="home_vbdim_total_battle_win">総勝率 %</string>
|
||||
<string name="special_mission_none">ミッションが選択されていません。</string>
|
||||
<string name="special_mission_steps">%1$d 歩</string>
|
||||
<string name="write_character_title">キャラクター情報書き込み中</string>
|
||||
<string name="write_character_icon_description">キャラクターアイコン</string>
|
||||
<string name="items_not_enough_credits">クレジットが足りません。</string>
|
||||
<string name="special_mission_vitals_progress">獲得バイタル値 %1$d</string>
|
||||
<string name="special_mission_icon_content_description">スペシャルミッションアイコン</string>
|
||||
<string name="reading_character_title">キャラクター情報読み込み中</string>
|
||||
<string name="sending_card_title">カード情報送信中</string>
|
||||
<string name="item_dialog_you_have_quantity">所持数: %1$d</string>
|
||||
<string name="home_vbdim_mood">メンタル</string>
|
||||
<string name="special_mission_battles">バトル %1$d 回</string>
|
||||
<string name="special_mission_wins">勝利 %1$d 回</string>
|
||||
<string name="special_mission_vitals">バイタル値 %1$d</string>
|
||||
<string name="special_mission_steps_progress">歩数 %1$d 歩</string>
|
||||
<string name="special_mission_battles_progress">バトル %1$d 回</string>
|
||||
<string name="special_mission_wins_progress">勝利 %1$d 回</string>
|
||||
</resources>
|
||||
@@ -49,9 +49,7 @@
|
||||
|
||||
<string name="scan_no_nfc_on_device">O dispositivo não possui NFC!</string>
|
||||
<string name="scan_tag_not_vb">A tag detectada não é do Vital Bracelet.</string>
|
||||
<string name="scan_missing_secrets">
|
||||
Segredos ausentes. Vá em Configurações e importe o APK do Vital Arena.
|
||||
</string>
|
||||
<string name="scan_missing_secrets">" Segredos ausentes. Vá em Configurações e importe o APK do Vital Arena. "</string>
|
||||
<string name="scan_sent_character_success">Personagem enviado com sucesso!</string>
|
||||
<string name="scan_error_generic">Ops!</string>
|
||||
<string name="scan_sent_dim_success">DIM enviado com sucesso!</string>
|
||||
@@ -94,9 +92,7 @@
|
||||
<string name="credits_section_reverse_engineering">Engenharia reversa</string>
|
||||
<string name="credits_section_app_development">Desenvolvimento do aplicativo</string>
|
||||
|
||||
<string name="credits_cyanic_description">
|
||||
Reverteu o firmware e nos ajudou durante o desenvolvimento.
|
||||
</string>
|
||||
<string name="credits_cyanic_description">" Reverteu o firmware e nos ajudou durante o desenvolvimento. "</string>
|
||||
<string name="credits_cfogrady_description">
|
||||
Desenvolveu vb-lib-nfc e parte deste aplicativo.
|
||||
</string>
|
||||
@@ -128,9 +124,7 @@
|
||||
|
||||
<string name="write_character_title">Escrevendo personagem</string>
|
||||
<string name="write_character_icon_description">Ícone do personagem</string>
|
||||
<string name="write_character_success">
|
||||
Cartão instalado com sucesso!!
|
||||
</string>
|
||||
<string name="write_character_success">" Cartão instalado com sucesso!! "</string>
|
||||
<string name="write_character_wait_ready">
|
||||
Aguarde até que seu dispositivo esteja pronto e então toque em Confirmar
|
||||
</string>
|
||||
|
||||
@@ -36,13 +36,9 @@
|
||||
<string name="adventure_empty_state">Nothing to see here</string>
|
||||
|
||||
<string name="home_title">VB Helper</string>
|
||||
<string name="home_adventure_mission_finished">
|
||||
One of your characters has finished their adventure mission!
|
||||
</string>
|
||||
<string name="home_adventure_mission_finished">" One of your characters has finished their adventure mission! "</string>
|
||||
|
||||
<string name="scan_secrets_not_initialized">
|
||||
Secrets is not yet initialized. Try again.
|
||||
</string>
|
||||
<string name="scan_secrets_not_initialized">" Secrets is not yet initialized. Try again. "</string>
|
||||
<string name="scan_secrets_not_imported">
|
||||
Secrets not yet imported. Go to Settings and Import APK.
|
||||
</string>
|
||||
@@ -53,9 +49,7 @@
|
||||
|
||||
<string name="scan_no_nfc_on_device">No NFC on device!</string>
|
||||
<string name="scan_tag_not_vb">Tag detected is not VB</string>
|
||||
<string name="scan_missing_secrets">
|
||||
Missing Secrets. Go to settings and import Vital Arena APK.
|
||||
</string>
|
||||
<string name="scan_missing_secrets">" Missing Secrets. Go to settings and import Vital Arena APK. "</string>
|
||||
<string name="scan_sent_character_success">Sent character successfully!</string>
|
||||
<string name="scan_error_generic">Whoops</string>
|
||||
<string name="scan_sent_dim_success">Sent DIM successfully!</string>
|
||||
@@ -99,9 +93,7 @@
|
||||
<string name="credits_section_reverse_engineering">Reverse engineering</string>
|
||||
<string name="credits_section_app_development">Application development</string>
|
||||
|
||||
<string name="credits_cyanic_description">
|
||||
Reversed the firmware and helped us during development.
|
||||
</string>
|
||||
<string name="credits_cyanic_description">" Reversed the firmware and helped us during development. "</string>
|
||||
<string name="credits_cfogrady_description">
|
||||
Developed vb-lib-nfc and part of this application.
|
||||
</string>
|
||||
@@ -134,9 +126,7 @@
|
||||
|
||||
<string name="write_character_title">Writing character</string>
|
||||
<string name="write_character_icon_description">Character icon</string>
|
||||
<string name="write_character_success">
|
||||
Card installed successfully!!
|
||||
</string>
|
||||
<string name="write_character_success">" Card installed successfully!! "</string>
|
||||
<string name="write_character_wait_ready">
|
||||
Wait until your device is ready, then tap Confirm
|
||||
</string>
|
||||
|
||||
@@ -21,3 +21,13 @@ kotlin.code.style=official
|
||||
# resources declared in the library itself and none from the library's dependencies,
|
||||
# thereby reducing the size of the R class for that library
|
||||
android.nonTransitiveRClass=true
|
||||
android.defaults.buildfeatures.resvalues=true
|
||||
android.sdk.defaultTargetSdkToCompileSdkIfUnset=false
|
||||
android.enableAppCompileTimeRClass=false
|
||||
android.usesSdkInManifest.disallowed=false
|
||||
android.uniquePackageNames=false
|
||||
android.dependency.useConstraints=true
|
||||
android.r8.strictFullModeForKeepRules=false
|
||||
android.r8.optimizedResourceShrinking=false
|
||||
android.builtInKotlin=false
|
||||
android.newDsl=false
|
||||
+12
-12
@@ -1,19 +1,19 @@
|
||||
[versions]
|
||||
agp = "8.13.2"
|
||||
datastore = "1.2.0"
|
||||
datastorePreferences = "1.2.0"
|
||||
kotlin = "2.3.0"
|
||||
coreKtx = "1.17.0"
|
||||
agp = "9.2.1"
|
||||
datastore = "1.2.1"
|
||||
datastorePreferences = "1.2.1"
|
||||
kotlin = "2.4.0"
|
||||
coreKtx = "1.19.0"
|
||||
junit = "4.13.2"
|
||||
junitVersion = "1.3.0"
|
||||
espressoCore = "3.7.0"
|
||||
lifecycleRuntimeKtx = "2.10.0"
|
||||
activityCompose = "1.12.2"
|
||||
composeBom = "2026.01.00"
|
||||
material = "1.13.0"
|
||||
navigationCompose = "2.9.6"
|
||||
protobufGradlePlugin = "0.9.6"
|
||||
protobufJavalite = "4.33.4"
|
||||
lifecycleRuntimeKtx = "2.11.0"
|
||||
activityCompose = "1.13.0"
|
||||
composeBom = "2026.06.00"
|
||||
material = "1.14.0"
|
||||
navigationCompose = "2.9.8"
|
||||
protobufGradlePlugin = "0.10.0"
|
||||
protobufJavalite = "4.35.1"
|
||||
roomRuntime = "2.8.4"
|
||||
vbNfcReader = "0.2.0-SNAPSHOT"
|
||||
dimReader = "2.1.0"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#Tue Dec 24 10:55:57 UTC 2024
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
Reference in New Issue
Block a user