Skip to content

Commit ab90624

Browse files
committed
chore: IDK/SDK 0.13
1 parent 57d3e24 commit ab90624

3 files changed

Lines changed: 32 additions & 36 deletions

File tree

example/holder/ui/elicense/impl/src/commonMain/kotlin/com/sphereon/kiwa/sample/ui/elicense/engagement/qr/MdocEngagementPresenterImpl.kt

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ class MdocEngagementPresenterImpl(
157157
presenterScope.launch {
158158
val engagementResult = engagementManager.createEngagement {
159159
engagement { qr {} }
160-
retrieval { ble { centralClientMode = false; peripheralServerMode = true } }
160+
retrieval { ble { centralClientMode = true; peripheralServerMode = true } }
161161
}
162162
engagementResult.onSuccess { engagement ->
163163
engagement.start()
@@ -343,19 +343,23 @@ class MdocEngagementPresenterImpl(
343343
// this is stale state from a previous session - treat as INITIAL with toggle UI
344344
val model = when {
345345
sessionState.phase == UiPhase.TERMINAL && activeEngagement == null && !hasHadEngagement.value -> {
346-
log.debug(">>> Stale TERMINAL state detected (never had engagement in this session) - returning Initial with toggle")
347-
MdocEngagementPresenter.Model.Initial(
346+
log.debug(">>> Stale TERMINAL state detected (never had engagement in this session) - returning Engagement with toggle")
347+
MdocEngagementPresenter.Model.Engagement(
348+
qrImage = null,
349+
engagementEvent = null,
348350
showQr = false,
349351
showQrScanner = showQrScanner,
350352
onQrScanned = onQrScanned,
351353
onStateEvent = onEvent
352354
)
353355
}
354356

355-
// If phase is ENGAGEMENT but there's no active engagement, it's stale state - treat as INITIAL
357+
// If phase is ENGAGEMENT but there's no active engagement, it's stale state - treat as ready for engagement
356358
sessionState.phase == UiPhase.ENGAGEMENT && activeEngagement == null -> {
357-
log.debug(">>> Stale ENGAGEMENT state detected (no active engagement) - returning Initial with toggle")
358-
MdocEngagementPresenter.Model.Initial(
359+
log.debug(">>> Stale ENGAGEMENT state detected (no active engagement) - returning Engagement with toggle")
360+
MdocEngagementPresenter.Model.Engagement(
361+
qrImage = null,
362+
engagementEvent = null,
359363
showQr = false,
360364
showQrScanner = showQrScanner,
361365
onQrScanned = onQrScanned,
@@ -364,28 +368,17 @@ class MdocEngagementPresenterImpl(
364368
}
365369

366370
sessionState.phase == UiPhase.ENGAGEMENT -> {
367-
// If user wants to scan QR (showQrScanner=true), treat as INITIAL state to show scanner UI
368-
// This allows switching from Display QR to Scan QR without waiting for engagement to close
369-
if (showQrScanner) {
370-
log.debug(">>> Returning Model: INITIAL (in ENGAGEMENT but showQrScanner=true)")
371-
MdocEngagementPresenter.Model.Initial(
372-
showQr = false,
373-
showQrScanner = true,
374-
onQrScanned = onQrScanned,
375-
onStateEvent = onEvent
376-
)
377-
} else {
378-
log.debug(">>> Returning Model: ENGAGEMENT (showQr=${sessionState.qrMode == QrMode.DISPLAY}, showQrScanner=$showQrScanner)")
379-
// Show QR or NFC prompt based on SessionUiState
380-
MdocEngagementPresenter.Model.Engagement(
381-
qrImage = if (sessionState.qrMode == QrMode.DISPLAY) qrImage else null,
382-
engagementEvent = null,
383-
showQr = sessionState.qrMode == QrMode.DISPLAY,
384-
showQrScanner = showQrScanner,
385-
onQrScanned = onQrScanned,
386-
onStateEvent = onEvent
387-
)
388-
}
371+
log.debug(">>> Returning Model: ENGAGEMENT (showQr=${sessionState.qrMode == QrMode.DISPLAY && !showQrScanner}, showQrScanner=$showQrScanner)")
372+
// Always return Engagement model to avoid slide animations
373+
// When showQrScanner=true, prioritize scanner UI over Display QR
374+
MdocEngagementPresenter.Model.Engagement(
375+
qrImage = if (sessionState.qrMode == QrMode.DISPLAY && !showQrScanner) qrImage else null,
376+
engagementEvent = null,
377+
showQr = sessionState.qrMode == QrMode.DISPLAY && !showQrScanner,
378+
showQrScanner = showQrScanner,
379+
onQrScanned = onQrScanned,
380+
onStateEvent = onEvent
381+
)
389382
}
390383

391384
sessionState.phase == UiPhase.TRANSFER -> {
@@ -449,8 +442,10 @@ class MdocEngagementPresenterImpl(
449442
}
450443

451444
null -> {
452-
log.debug(">>> Returning Model: INITIAL (phase=TERMINAL, terminalOutcome=null)")
453-
MdocEngagementPresenter.Model.Initial(
445+
log.debug(">>> Returning Model: ENGAGEMENT (phase=TERMINAL, terminalOutcome=null)")
446+
MdocEngagementPresenter.Model.Engagement(
447+
qrImage = null,
448+
engagementEvent = null,
454449
showQr = false,
455450
showQrScanner = showQrScanner,
456451
onQrScanned = onQrScanned,
@@ -461,8 +456,10 @@ class MdocEngagementPresenterImpl(
461456
}
462457

463458
else -> {
464-
log.debug(">>> Returning Model: INITIAL (phase=${sessionState.phase})")
465-
MdocEngagementPresenter.Model.Initial(
459+
log.debug(">>> Returning Model: ENGAGEMENT (phase=${sessionState.phase})")
460+
MdocEngagementPresenter.Model.Engagement(
461+
qrImage = null,
462+
engagementEvent = null,
466463
showQr = false,
467464
showQrScanner = showQrScanner,
468465
onQrScanned = onQrScanned,

gradle/libs.versions.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
[versions]
22
kotlin-inject = "0.8.1-SNAPSHOT"
33
anvil = "0.1.6"
4-
sphereon-plugin = "0.4.0-SNAPSHOT"
54
app-platform = "0.0.9-SNAPSHOT"
65
kotlin = "2.2.10"
76
sphereon-idk = "0.13.0-SNAPSHOT"
8-
kiwa-holder-sdk = "0.10.0-SNAPSHOT"
7+
kiwa-holder-sdk = "0.13.0-SNAPSHOT"
98
detekt = "1.23.8"
109
kottage = "1.8.0"
1110
multiplatform-settings = "1.3.0"

settings.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,10 @@ pluginManagement {
7777
dependencyResolutionManagement {
7878
versionCatalogs {
7979
create("sphereonplug") {
80-
from("com.sphereon.gradle:gradle-plugin-bom:0.4.0-SNAPSHOT@toml")
80+
from("com.sphereon.gradle:gradle-plugin-bom:0.5.0-SNAPSHOT@toml")
8181
}
8282
create("sphereonlib") {
83-
from("com.sphereon.gradle:library-bom:0.4.0-SNAPSHOT@toml")
83+
from("com.sphereon.gradle:library-bom:0.5.0-SNAPSHOT@toml")
8484
}
8585

8686
}

0 commit comments

Comments
 (0)