Skip to content

Commit 835f50f

Browse files
committed
adds hints trying to improve read performance
1 parent 193b7ae commit 835f50f

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

sync/sync-impl/src/main/java/com/duckduckgo/sync/impl/ui/qrcode/SyncBarcodeView.kt

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,12 @@ import com.duckduckgo.sync.impl.ui.qrcode.SquareDecoratedBarcodeViewModel.Comman
4747
import com.duckduckgo.sync.impl.ui.qrcode.SquareDecoratedBarcodeViewModel.Command.OpenSettings
4848
import com.duckduckgo.sync.impl.ui.qrcode.SquareDecoratedBarcodeViewModel.Command.RequestPermissions
4949
import com.duckduckgo.sync.impl.ui.qrcode.SquareDecoratedBarcodeViewModel.ViewState
50+
import com.google.zxing.BarcodeFormat.QR_CODE
51+
import com.google.zxing.client.android.BeepManager
52+
import com.journeyapps.barcodescanner.DefaultDecoderFactory
53+
import com.journeyapps.barcodescanner.camera.CameraSettings
5054
import dagger.android.support.AndroidSupportInjection
5155
import javax.inject.Inject
52-
import kotlinx.coroutines.cancel
5356
import kotlinx.coroutines.flow.launchIn
5457
import kotlinx.coroutines.flow.onEach
5558

@@ -86,9 +89,20 @@ constructor(
8689
ViewModelProvider(findViewTreeViewModelStoreOwner()!!, viewModelFactory)[SquareDecoratedBarcodeViewModel::class.java]
8790
}
8891

92+
private var beepManager: BeepManager
93+
private val cameraSettings = CameraSettings().apply {
94+
isAutoFocusEnabled = true
95+
isContinuousFocusEnabled = true
96+
}
97+
8998
private val conflatedStateJob = ConflatedJob()
9099
private val conflatedCommandJob = ConflatedJob()
91100

101+
init {
102+
beepManager = BeepManager(getActivity())
103+
initQRScanner()
104+
}
105+
92106
override fun onAttachedToWindow() {
93107
AndroidSupportInjection.inject(this)
94108
super.onAttachedToWindow()
@@ -110,6 +124,11 @@ constructor(
110124
}
111125
}
112126

127+
private fun initQRScanner() {
128+
binding.barcodeView.cameraSettings = cameraSettings
129+
binding.barcodeView.decoderFactory = DefaultDecoderFactory(listOf(QR_CODE))
130+
}
131+
113132
override fun onDetachedFromWindow() {
114133
conflatedStateJob.cancel()
115134
conflatedCommandJob.cancel()
@@ -135,6 +154,7 @@ constructor(
135154

136155
fun decodeSingle(onQrCodeRead: (String) -> Unit) {
137156
binding.barcodeView.decodeSingle {
157+
beepManager.playBeepSoundAndVibrate()
138158
onQrCodeRead(it.text)
139159
}
140160
}

0 commit comments

Comments
 (0)