From 1e73f52da50c017f7160ef251acdcb6709d20d98 Mon Sep 17 00:00:00 2001 From: Christopher O'Grady Date: Sat, 4 Jan 2025 23:46:13 -0500 Subject: [PATCH] Add dim-reader library Update readme to reflect Add commented out sample code. --- README.md | 12 ++++---- app/build.gradle.kts | 1 + .../vbhelper/screens/SettingsScreen.kt | 28 +++++++++++++++++-- gradle/libs.versions.toml | 2 ++ 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 9338a72..d9be74f 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,11 @@ ## Developer Setup 1. Clone vb-nfc-reader (https://github.com/cfogrady/lib-vb-nfc) -2. Run vb-nfc-reader/publishToMavenLocal gradle task. -3. Create res/values/keys.xml within the app module. -4. Populate with: +2. Run vb-nfc-reader/publishToMavenLocal gradle task in the lib-vb-nfc project. +3. Clone vb-dim-reader (https://github.com/cfogrady/vb-dim-reader) +4. Run publishToMavenLocal gradle task in the vb-dim-reader project. +5. Create res/values/keys.xml within the app module. +6. Populate with: ``` @@ -32,5 +34,5 @@ ``` -5. Replace the values in the keys.xml file with those extracted from the original app. -6. Run \ No newline at end of file +7. Replace the values in the keys.xml file with those extracted from the original app. +8. Run \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c5ff661..1c2a848 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -43,6 +43,7 @@ android { dependencies { implementation(libs.androidx.room.runtime) implementation(libs.vb.nfc.reader) + implementation(libs.dim.reader) ksp(libs.androidx.room.compiler) annotationProcessor(libs.androidx.room.compiler) implementation(libs.androidx.core.ktx) diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/SettingsScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/SettingsScreen.kt index 9d54d2c..560c3a2 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/SettingsScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/SettingsScreen.kt @@ -17,11 +17,19 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController +import com.github.cfogrady.vb.dim.card.BemCard +import com.github.cfogrady.vb.dim.card.DimCard +import com.github.cfogrady.vb.dim.card.DimReader +import com.github.cfogrady.vb.dim.sprite.SpriteData +import com.github.cfogrady.vb.dim.sprite.SpriteData.Sprite import com.github.nacabaro.vbhelper.components.TopBanner +import java.io.File +import java.io.FileInputStream @Composable fun SettingsScreen( - navController: NavController + navController: NavController, + dimReader: DimReader = DimReader() ) { Scaffold ( topBar = { @@ -48,8 +56,22 @@ fun SettingsScreen( SettingsEntry(title = "Import transform functions", description = "Import standard vital bracelet keys") { } SettingsEntry(title = "Import decryption key", description = "Import standard vital bracelet keys") { } SettingsSection("DiM/BEm management") - SettingsEntry(title = "Import DiM card", description = "Import DiM card file") { } - SettingsEntry(title = "Import BEm card", description = "Import BEm card file") { } + SettingsEntry(title = "Import DiM card", description = "Import DiM card file") { + // placeholder +// val file = File("dummy_file.bin") //filePicker() +// val fileInputStream = FileInputStream(file) +// fileInputStream.use { +// val card = dimReader.readCard(fileInputStream, false) +// if (card is DimCard) { +// val logo = card.spriteData.sprites[0] +// } +// val beMemory = card as BemCard +// val logo = beMemory.spriteData.sprites[0] +// } + } + SettingsEntry(title = "Import BEm card", description = "Import BEm card file") { + // placeholder + } SettingsSection("About and credits") SettingsEntry(title = "Credits", description = "Credits") { } SettingsEntry(title = "About", description = "About") { } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f88a17a..8036069 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,6 +10,7 @@ activityCompose = "1.9.3" composeBom = "2024.04.01" roomRuntime = "2.6.1" vbNfcReader = "0.1.0" +dimReader = "2.1.0" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } @@ -29,6 +30,7 @@ androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-man androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } vb-nfc-reader = { module = "com.github.cfogrady:vb-nfc-reader", version.ref = "vbNfcReader" } +dim-reader = { module = "com.github.cfogrady:vb-dim-reader", version.ref = "dimReader" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" }