mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 18:00:02 +01:00
Update registration for new restore flows.
This commit is contained in:
committed by
Greyson Parrelli
parent
aad2624bd5
commit
22c4e2d084
@@ -3,9 +3,10 @@ package org.thoughtcrime.securesms.mediasend.v2.capture
|
||||
import org.thoughtcrime.securesms.mediasend.Media
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
|
||||
sealed class MediaCaptureEvent {
|
||||
data class MediaCaptureRendered(val media: Media) : MediaCaptureEvent()
|
||||
data class UsernameScannedFromQrCode(val recipient: Recipient, val username: String) : MediaCaptureEvent()
|
||||
object DeviceLinkScannedFromQrCode : MediaCaptureEvent()
|
||||
object MediaCaptureRenderFailed : MediaCaptureEvent()
|
||||
sealed interface MediaCaptureEvent {
|
||||
data class MediaCaptureRendered(val media: Media) : MediaCaptureEvent
|
||||
data class UsernameScannedFromQrCode(val recipient: Recipient, val username: String) : MediaCaptureEvent
|
||||
data object DeviceLinkScannedFromQrCode : MediaCaptureEvent
|
||||
data object MediaCaptureRenderFailed : MediaCaptureEvent
|
||||
data class ReregistrationScannedFromQrCode(val data: String) : MediaCaptureEvent
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionNavigator
|
||||
import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionViewModel
|
||||
import org.thoughtcrime.securesms.mms.MediaConstraints
|
||||
import org.thoughtcrime.securesms.permissions.Permissions
|
||||
import org.thoughtcrime.securesms.registrationv3.olddevice.TransferAccountActivity
|
||||
import org.thoughtcrime.securesms.stories.Stories
|
||||
import org.thoughtcrime.securesms.util.CommunicationActions
|
||||
import org.thoughtcrime.securesms.util.navigation.safeNavigate
|
||||
@@ -67,6 +68,7 @@ class MediaCaptureFragment : Fragment(R.layout.fragment_container), CameraFragme
|
||||
Log.w(TAG, "Failed to render captured media.")
|
||||
Toast.makeText(requireContext(), R.string.MediaSendActivity_camera_unavailable, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
||||
is MediaCaptureEvent.MediaCaptureRendered -> {
|
||||
if (isFirst()) {
|
||||
sharedViewModel.addCameraFirstCapture(event.media)
|
||||
@@ -76,6 +78,7 @@ class MediaCaptureFragment : Fragment(R.layout.fragment_container), CameraFragme
|
||||
|
||||
navigator.goToReview(findNavController())
|
||||
}
|
||||
|
||||
is MediaCaptureEvent.UsernameScannedFromQrCode -> {
|
||||
MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(getString(R.string.MediaCaptureFragment_username_dialog_title, event.username))
|
||||
@@ -87,6 +90,7 @@ class MediaCaptureFragment : Fragment(R.layout.fragment_container), CameraFragme
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.show()
|
||||
}
|
||||
|
||||
is MediaCaptureEvent.DeviceLinkScannedFromQrCode -> {
|
||||
MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(R.string.MediaCaptureFragment_device_link_dialog_title)
|
||||
@@ -98,6 +102,11 @@ class MediaCaptureFragment : Fragment(R.layout.fragment_container), CameraFragme
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.show()
|
||||
}
|
||||
|
||||
is MediaCaptureEvent.ReregistrationScannedFromQrCode -> {
|
||||
startActivity(TransferAccountActivity.intent(requireContext(), event.data))
|
||||
requireActivity().finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,10 +11,11 @@ import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import io.reactivex.rxjava3.subjects.PublishSubject
|
||||
import io.reactivex.rxjava3.subjects.Subject
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.main.QrScanResult
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.mediasend.Media
|
||||
import org.thoughtcrime.securesms.profiles.manage.UsernameRepository
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.registrationv3.data.QuickRegistrationRepository
|
||||
import org.thoughtcrime.securesms.util.rx.RxStore
|
||||
import java.io.FileDescriptor
|
||||
import java.util.Optional
|
||||
@@ -71,6 +72,15 @@ class MediaCaptureViewModel(private val repository: MediaCaptureRepository) : Vi
|
||||
.subscribe { data ->
|
||||
internalEvents.onNext(MediaCaptureEvent.DeviceLinkScannedFromQrCode)
|
||||
}
|
||||
|
||||
if (SignalStore.account.isRegistered) {
|
||||
disposables += qrData
|
||||
.throttleFirst(5, TimeUnit.SECONDS)
|
||||
.filter { it.startsWith("sgnl://rereg") && QuickRegistrationRepository.isValidReRegistrationQr(it) }
|
||||
.subscribe { data ->
|
||||
internalEvents.onNext(MediaCaptureEvent.ReregistrationScannedFromQrCode(data))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
|
||||
Reference in New Issue
Block a user