Migrate all QR scanning to new scanner.

This commit is contained in:
Cody Henthorne
2022-08-03 11:32:53 -04:00
committed by Greyson Parrelli
parent caf1329005
commit 18eac51576
11 changed files with 46 additions and 852 deletions

View File

@@ -1,7 +1,5 @@
package org.thoughtcrime.securesms.verify
import android.content.Context
import android.content.res.Configuration
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -9,28 +7,24 @@ import android.view.ViewGroup
import android.widget.ImageView
import androidx.core.view.OneShotPreDrawListener
import androidx.fragment.app.Fragment
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import org.signal.qr.QrScannerView
import org.signal.qr.kitkat.ScanListener
import org.signal.qr.kitkat.ScanningThread
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.ShapeScrim
import org.thoughtcrime.securesms.components.camera.CameraView
import org.thoughtcrime.securesms.util.LifecycleDisposable
import org.thoughtcrime.securesms.util.ViewUtil
import org.thoughtcrime.securesms.util.fragments.requireListener
import org.thoughtcrime.securesms.util.fragments.findListener
/**
* QR Scanner for identity verification
*/
class VerifyScanFragment : Fragment() {
private lateinit var cameraView: CameraView
private val lifecycleDisposable = LifecycleDisposable()
private lateinit var cameraView: QrScannerView
private lateinit var cameraScrim: ShapeScrim
private lateinit var cameraMarks: ImageView
private lateinit var scanningThread: ScanningThread
private lateinit var scanListener: ScanListener
override fun onAttach(context: Context) {
super.onAttach(context)
scanListener = requireListener()
}
override fun onCreateView(inflater: LayoutInflater, viewGroup: ViewGroup?, bundle: Bundle?): View? {
return ViewUtil.inflate(inflater, viewGroup!!, R.layout.verify_scan_fragment)
@@ -45,28 +39,17 @@ class VerifyScanFragment : Fragment() {
val height = cameraScrim.scrimHeight
ViewUtil.updateLayoutParams(cameraMarks, width, height)
}
}
override fun onResume() {
super.onResume()
scanningThread = ScanningThread()
scanningThread.setScanListener(scanListener)
scanningThread.setCharacterSet("ISO-8859-1")
cameraView.onResume()
cameraView.setPreviewCallback(scanningThread)
scanningThread.start()
}
cameraView.start(viewLifecycleOwner)
override fun onPause() {
super.onPause()
cameraView.onPause()
scanningThread.stopScanning()
}
lifecycleDisposable.bindTo(viewLifecycleOwner)
override fun onConfigurationChanged(newConfiguration: Configuration) {
super.onConfigurationChanged(newConfiguration)
cameraView.onPause()
cameraView.onResume()
cameraView.setPreviewCallback(scanningThread)
lifecycleDisposable += cameraView
.qrData
.distinctUntilChanged()
.observeOn(AndroidSchedulers.mainThread())
.subscribe { qrData: String ->
findListener<ScanListener>()?.onQrDataFound(qrData)
}
}
}