Quicm fix, DisposableEffect isn't reloading when isDoneSendCard is true

TODO: add more disposableeffects
This commit is contained in:
Nacho 2025-01-12 13:50:41 +01:00
parent 0bd745ac86
commit ce1cf3eddb
2 changed files with 12 additions and 6 deletions

View File

@ -67,7 +67,7 @@ fun ScanScreen(
} }
} }
DisposableEffect(readingScreen || writingScreen) { DisposableEffect(readingScreen || writingScreen, isDoneSendingCard) {
if(readingScreen) { if(readingScreen) {
scanScreenController.registerActivityLifecycleListener(SCAN_SCREEN_ACTIVITY_LIFECYCLE_LISTENER, object: ActivityLifecycleListener { scanScreenController.registerActivityLifecycleListener(SCAN_SCREEN_ACTIVITY_LIFECYCLE_LISTENER, object: ActivityLifecycleListener {
override fun onPause() { override fun onPause() {
@ -139,12 +139,12 @@ fun ScanScreen(
} else if (writingScreen) { } else if (writingScreen) {
if (!isDoneSendingCard) { if (!isDoneSendingCard) {
ReadingCharacterScreen("Sending card") { ReadingCharacterScreen("Sending card") {
isDoneSendingCard = true writingScreen = false
scanScreenController.cancelRead() scanScreenController.cancelRead()
} }
} else if (!isDoneWritingCharacter) { } else if (!isDoneWritingCharacter) {
ReadingCharacterScreen("Writing character") { ReadingCharacterScreen("Writing character") {
isDoneWritingCharacter = true isDoneSendingCard = false
writingScreen = false writingScreen = false
scanScreenController.cancelRead() scanScreenController.cancelRead()
} }

View File

@ -6,6 +6,7 @@ import android.nfc.Tag
import android.nfc.tech.NfcA import android.nfc.tech.NfcA
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.util.Log
import android.widget.Toast import android.widget.Toast
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
@ -115,9 +116,14 @@ class ScanScreenControllerImpl(
onComplete: () -> Unit onComplete: () -> Unit
) { ) {
handleTag(secrets) { tagCommunicator -> handleTag(secrets) { tagCommunicator ->
tagCommunicator.sendCharacter(nfcCharacter) try {
onComplete.invoke() tagCommunicator.sendCharacter(nfcCharacter)
"Sent character successfully!" onComplete.invoke()
"Sent character successfully!"
} catch (e: Throwable) {
Log.e("TAG", e.stackTraceToString())
"Whoops"
}
} }
} }