~cytrogen/vbhelper

1e73f52da50c017f7160ef251acdcb6709d20d98 — Christopher O'Grady 1 year, 3 months ago d9e492e
Add dim-reader library

Update readme to reflect
Add commented out sample code.
M README.md => README.md +7 -5
@@ 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:
```
<?xml version="1.0" encoding="utf-8"?>
<resources>


@@ 32,5 34,5 @@
    </integer-array>
</resources>
```
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

M app/build.gradle.kts => app/build.gradle.kts +1 -0
@@ 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)

M app/src/main/java/com/github/nacabaro/vbhelper/screens/SettingsScreen.kt => app/src/main/java/com/github/nacabaro/vbhelper/screens/SettingsScreen.kt +25 -3
@@ 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") { }

M gradle/libs.versions.toml => gradle/libs.versions.toml +2 -0
@@ 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" }