From ce1cf3eddbefd195a426e71a1b6293beaacda57e Mon Sep 17 00:00:00 2001 From: Nacho Date: Sun, 12 Jan 2025 13:50:41 +0100 Subject: [PATCH] Quicm fix, DisposableEffect isn't reloading when isDoneSendCard is true TODO: add more disposableeffects --- .../vbhelper/screens/scanScreen/ScanScreen.kt | 6 +++--- .../screens/scanScreen/ScanScreenControllerImpl.kt | 12 +++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreen.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreen.kt index ed2a6dc..c9f892d 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreen.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreen.kt @@ -67,7 +67,7 @@ fun ScanScreen( } } - DisposableEffect(readingScreen || writingScreen) { + DisposableEffect(readingScreen || writingScreen, isDoneSendingCard) { if(readingScreen) { scanScreenController.registerActivityLifecycleListener(SCAN_SCREEN_ACTIVITY_LIFECYCLE_LISTENER, object: ActivityLifecycleListener { override fun onPause() { @@ -139,12 +139,12 @@ fun ScanScreen( } else if (writingScreen) { if (!isDoneSendingCard) { ReadingCharacterScreen("Sending card") { - isDoneSendingCard = true + writingScreen = false scanScreenController.cancelRead() } } else if (!isDoneWritingCharacter) { ReadingCharacterScreen("Writing character") { - isDoneWritingCharacter = true + isDoneSendingCard = false writingScreen = false scanScreenController.cancelRead() } diff --git a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreenControllerImpl.kt b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreenControllerImpl.kt index 849c742..99155bc 100644 --- a/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreenControllerImpl.kt +++ b/app/src/main/java/com/github/nacabaro/vbhelper/screens/scanScreen/ScanScreenControllerImpl.kt @@ -6,6 +6,7 @@ import android.nfc.Tag import android.nfc.tech.NfcA import android.os.Bundle import android.provider.Settings +import android.util.Log import android.widget.Toast import androidx.activity.ComponentActivity import androidx.lifecycle.lifecycleScope @@ -115,9 +116,14 @@ class ScanScreenControllerImpl( onComplete: () -> Unit ) { handleTag(secrets) { tagCommunicator -> - tagCommunicator.sendCharacter(nfcCharacter) - onComplete.invoke() - "Sent character successfully!" + try { + tagCommunicator.sendCharacter(nfcCharacter) + onComplete.invoke() + "Sent character successfully!" + } catch (e: Throwable) { + Log.e("TAG", e.stackTraceToString()) + "Whoops" + } } }