Skip to content

Commit 77e0342

Browse files
authored
Merge pull request #14 from tillhub/develop
v1.4.4
2 parents cae18b0 + b706e20 commit 77e0342

File tree

9 files changed

+19
-12
lines changed

9 files changed

+19
-12
lines changed

sample/src/main/java/de/tillhub/scanengine/sample/MainActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class MainActivity : ComponentActivity() {
3030
private var scanCode = mutableStateOf("")
3131
override fun onCreate(savedInstanceState: Bundle?) {
3232
super.onCreate(savedInstanceState)
33-
scanner = scanEngine.newCameraScanner(this).build(this.lifecycle)
33+
scanner = scanEngine.newCameraScanner(this).build(this.lifecycle, this.savedStateRegistry)
3434
setContent {
3535
TillhubScanEngineTheme {
3636
Surface(

scan-engine/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ afterEvaluate {
8080
create<MavenPublication>("scan-engine") {
8181
groupId = "de.tillhub.scanengine"
8282
artifactId = "scan-engine"
83-
version = "1.4.3"
83+
version = "1.4.4"
8484

8585
from(components.getByName("release"))
8686
}

scan-engine/src/main/java/de/tillhub/scanengine/ScanEngine.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import SingletonHolder
44
import android.content.Context
55
import androidx.activity.ComponentActivity
66
import androidx.lifecycle.Lifecycle
7+
import androidx.savedstate.SavedStateRegistry
78
import de.tillhub.scanengine.barcode.BarcodeScanner
89
import de.tillhub.scanengine.barcode.DefaultBarcodeScanner
910
import de.tillhub.scanengine.barcode.SunmiBarcodeScanner
@@ -16,21 +17,22 @@ import kotlinx.coroutines.flow.SharedFlow
1617
class ScanEngine private constructor(context: Context) {
1718

1819
private val mutableScanEvents = MutableSharedFlow<ScanEvent>(extraBufferCapacity = 1)
20+
1921
fun observeScannerResults(): SharedFlow<ScanEvent> = mutableScanEvents
2022

2123
fun newCameraScanner(activity: ComponentActivity): ManagerBuilder<Scanner> {
2224
return object : ManagerBuilder<Scanner> {
23-
override fun build(lifecycle: Lifecycle): Scanner {
25+
override fun build(lifecycle: Lifecycle, savedStateRegistry: SavedStateRegistry): Scanner {
2426
return when (ScannerManufacturer.get()) {
2527
ScannerManufacturer.SUNMI -> SunmiScanner(
2628
activity.activityResultRegistry,
27-
activity.savedStateRegistry,
29+
savedStateRegistry,
2830
mutableScanEvents
2931
)
3032

3133
ScannerManufacturer.OTHER -> DefaultScanner(
3234
activity.activityResultRegistry,
33-
activity.savedStateRegistry,
35+
savedStateRegistry,
3436
mutableScanEvents
3537
)
3638
}.also {

scan-engine/src/main/java/de/tillhub/scanengine/ScanEvent.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,7 @@ sealed class ScanEvent {
66
val scanKey: String? = null
77
) : ScanEvent()
88

9+
data object InProgress : ScanEvent()
10+
911
data object Canceled : ScanEvent()
1012
}

scan-engine/src/main/java/de/tillhub/scanengine/Scanner.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import kotlinx.coroutines.flow.SharedFlow
66

77
interface Scanner : DefaultLifecycleObserver, SavedStateRegistry.SavedStateProvider {
88
fun observeScannerResults(): SharedFlow<ScanEvent>
9+
910
fun startCameraScanner(scanKey: String? = null)
1011

1112
companion object {

scan-engine/src/main/java/de/tillhub/scanengine/ScannerImpl.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ abstract class ScannerImpl(
1919
super.onCreate(owner)
2020
if (savedStateRegistry.getSavedStateProvider(PROVIDER) == null) {
2121
savedStateRegistry.registerSavedStateProvider(PROVIDER, this)
22-
} else {
23-
scanKey = savedStateRegistry.consumeRestoredStateForKey(PROVIDER)
24-
?.getString(SCAN_KEY)
2522
}
23+
scanKey = savedStateRegistry.consumeRestoredStateForKey(PROVIDER)
24+
?.getString(SCAN_KEY)
2625
}
2726

2827
override fun saveState(): Bundle {

scan-engine/src/main/java/de/tillhub/scanengine/default/DefaultScanner.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ class DefaultScanner(
2727
) {
2828
when (it) {
2929
ScanEvent.Canceled -> mutableScanEvents.tryEmit(it)
30-
is ScanEvent.Success -> mutableScanEvents.tryEmit(
31-
it.copy(scanKey = scanKey)
32-
)
30+
is ScanEvent.Success -> mutableScanEvents.tryEmit(it.copy(scanKey = scanKey))
31+
ScanEvent.InProgress -> Unit
3332
}
3433
}
3534
}
3635

3736
override fun startCameraScanner(scanKey: String?) {
37+
mutableScanEvents.tryEmit(ScanEvent.InProgress)
3838
this.scanKey = scanKey
3939
scannerLauncher.launch(scanKey)
4040
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package de.tillhub.scanengine.helper
22

33
import androidx.lifecycle.Lifecycle
4+
import androidx.savedstate.SavedStateRegistry
45

56
interface ManagerBuilder<T> {
6-
fun build(lifecycle: Lifecycle): T
7+
fun build(lifecycle: Lifecycle, savedStateRegistry: SavedStateRegistry): T
78
}

scan-engine/src/main/java/de/tillhub/scanengine/sunmi/SunmiScanner.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@ class SunmiScanner(
2929
when (it) {
3030
ScanEvent.Canceled -> mutableScanEvents.tryEmit(it)
3131
is ScanEvent.Success -> mutableScanEvents.tryEmit(it.copy(scanKey = scanKey))
32+
ScanEvent.InProgress -> Unit
3233
}
3334
}
3435
}
3536
}
3637

3738
override fun startCameraScanner(scanKey: String?) {
39+
mutableScanEvents.tryEmit(ScanEvent.InProgress)
3840
this.scanKey = scanKey
3941
scannerLauncher.launch(scanIntent())
4042
}

0 commit comments

Comments
 (0)