Merge pull request #5296 from vector-im/feature/adm/crash-when-reading-qr

Fixing crash adding room by QR code
This commit is contained in:
Benoit Marty 2022-02-22 14:04:37 +01:00 committed by GitHub
commit 77c48f2c48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 5 deletions

1
changelog.d/5295.bugfix Normal file
View File

@ -0,0 +1 @@
Fixing crash when adding room by QR code after accepting the camera permission for the first time

View File

@ -152,7 +152,8 @@ class CreateDirectRoomActivity : SimpleFragmentActivity() {
private val permissionCameraLauncher = registerForPermissionsResult { allGranted, deniedPermanently ->
if (allGranted) {
addFragment(views.container, QrCodeScannerFragment::class.java)
val args = QrScannerArgs(showExtraButtons = false, R.string.add_by_qr_code)
addFragment(views.container, QrCodeScannerFragment::class.java, args)
} else if (deniedPermanently) {
onPermissionDeniedSnackbar(R.string.permissions_denied_qr_code)
}

View File

@ -53,10 +53,10 @@ data class QrScannerArgs(
@StringRes val titleRes: Int
) : Parcelable
open class QrCodeScannerFragment @Inject constructor() : VectorBaseFragment<FragmentQrCodeScannerBinding>(), ZXingScannerView.ResultHandler {
class QrCodeScannerFragment @Inject constructor() : VectorBaseFragment<FragmentQrCodeScannerBinding>(), ZXingScannerView.ResultHandler {
private val qrViewModel: QrCodeScannerViewModel by activityViewModel()
private val scannerArgs: QrScannerArgs? by args()
private val scannerArgs: QrScannerArgs by args()
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentQrCodeScannerBinding {
return FragmentQrCodeScannerBinding.inflate(inflater, container, false)
@ -93,13 +93,13 @@ open class QrCodeScannerFragment @Inject constructor() : VectorBaseFragment<Frag
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val title = scannerArgs?.titleRes?.let { getString(it) }
val title = scannerArgs.titleRes.let { getString(it) }
setupToolbar(views.qrScannerToolbar)
.setTitle(title)
.allowBack(useCross = true)
scannerArgs?.showExtraButtons?.let { showButtons ->
scannerArgs.showExtraButtons.let { showButtons ->
views.userCodeMyCodeButton.isVisible = showButtons
views.userCodeOpenGalleryButton.isVisible = showButtons