Remove ability to scan qr code from gallery.

This commit is contained in:
Michelle Tang
2024-06-14 12:28:47 -07:00
committed by Greyson Parrelli
parent 6b50be78c0
commit 958e815933
5 changed files with 23 additions and 62 deletions

View File

@@ -34,7 +34,6 @@ import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.BiometricDeviceAuthentication
import org.thoughtcrime.securesms.BiometricDeviceLockContract
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.main.QrImageSelectionActivity
import org.thoughtcrime.securesms.compose.ComposeFragment
import org.thoughtcrime.securesms.permissions.Permissions
import org.thoughtcrime.securesms.util.navigation.safeNavigate
@@ -51,7 +50,6 @@ class AddLinkDeviceFragment : ComposeFragment() {
private val viewModel: LinkDeviceViewModel by activityViewModels()
private lateinit var biometricAuth: BiometricDeviceAuthentication
private lateinit var biometricDeviceLockLauncher: ActivityResultLauncher<String>
private lateinit var galleryLauncher: ActivityResultLauncher<Unit>
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@@ -74,12 +72,6 @@ class AddLinkDeviceFragment : ComposeFragment() {
BiometricPrompt(requireActivity(), BiometricAuthenticationListener()),
promptInfo
)
galleryLauncher = registerForActivityResult(QrImageSelectionActivity.Contract()) { uri ->
if (uri != null) {
viewModel.scanImage(requireContext(), uri)
}
}
}
override fun onPause() {
@@ -125,8 +117,7 @@ class AddLinkDeviceFragment : ComposeFragment() {
viewModel.onLinkDeviceResult(true)
navController.popBackStack()
},
onLinkDeviceFailure = { viewModel.onLinkDeviceResult(false) },
onGalleryOpened = { galleryLauncher.launch(Unit) }
onLinkDeviceFailure = { viewModel.onLinkDeviceResult(false) }
)
}
@@ -174,8 +165,7 @@ private fun MainScreen(
onQrCodeDismissed: () -> Unit = {},
onQrCodeRetry: () -> Unit = {},
onLinkDeviceSuccess: () -> Unit = {},
onLinkDeviceFailure: () -> Unit = {},
onGalleryOpened: () -> Unit = {}
onLinkDeviceFailure: () -> Unit = {}
) {
Scaffolds.Settings(
title = "",
@@ -202,7 +192,6 @@ private fun MainScreen(
linkDeviceResult = state.linkDeviceResult,
onLinkDeviceSuccess = onLinkDeviceSuccess,
onLinkDeviceFailure = onLinkDeviceFailure,
onGalleryOpened = onGalleryOpened,
modifier = Modifier.padding(contentPadding)
)
}

View File

@@ -37,7 +37,6 @@ fun LinkDeviceQrScanScreen(
linkDeviceResult: LinkDeviceRepository.LinkDeviceResult,
onLinkDeviceSuccess: () -> Unit,
onLinkDeviceFailure: () -> Unit,
onGalleryOpened: () -> Unit,
modifier: Modifier = Modifier
) {
val lifecycleOwner = LocalLifecycleOwner.current
@@ -107,8 +106,7 @@ fun LinkDeviceQrScanScreen(
},
hasPermission = hasPermission,
onRequestPermissions = onRequestPermissions,
qrHeaderLabelString = stringResource(R.string.AddLinkDeviceFragment__scan_the_qr_code),
onGalleryOpened = onGalleryOpened
qrHeaderLabelString = stringResource(R.string.AddLinkDeviceFragment__scan_the_qr_code)
)
}
}

View File

@@ -4,15 +4,11 @@ import android.content.Context
import android.net.Uri
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.bumptech.glide.Glide
import com.bumptech.glide.load.DecodeFormat
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import org.signal.core.util.toOptional
import org.signal.qr.QrProcessor
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.jobmanager.Job
@@ -205,26 +201,6 @@ class LinkDeviceViewModel : ViewModel() {
}
}
fun scanImage(context: Context, uri: Uri) {
viewModelScope.launch(Dispatchers.IO) {
val loadBitmap = Glide.with(context)
.asBitmap()
.format(DecodeFormat.PREFER_ARGB_8888)
.load(uri)
.submit()
val result = QrProcessor().getScannedData(loadBitmap.get()).toOptional()
if (result.isPresent) {
onQrCodeScanned(result.get())
} else {
_state.value = _state.value.copy(
qrCodeInvalid = true,
showFrontCamera = null
)
}
}
}
fun clearToast() {
_state.update {
it.copy(