Use @AndroidEntryPoint for all Fragment

This commit is contained in:
Benoit Marty 2022-08-19 17:16:21 +02:00 committed by Benoit Marty
parent 997336ec5d
commit 22db6b4619
168 changed files with 1016 additions and 588 deletions

View File

@ -28,7 +28,8 @@ import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentDebugMemoryLeaksBinding import im.vector.app.databinding.FragmentDebugMemoryLeaksBinding
@AndroidEntryPoint @AndroidEntryPoint
class DebugMemoryLeaksFragment : VectorBaseFragment<FragmentDebugMemoryLeaksBinding>() { class DebugMemoryLeaksFragment :
VectorBaseFragment<FragmentDebugMemoryLeaksBinding>() {
private val viewModel: DebugMemoryLeaksViewModel by fragmentViewModel() private val viewModel: DebugMemoryLeaksViewModel by fragmentViewModel()

View File

@ -21,6 +21,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.setTextWithColoredPart import im.vector.app.core.extensions.setTextWithColoredPart
import im.vector.app.core.platform.OnBackPressed import im.vector.app.core.platform.OnBackPressed
@ -30,9 +31,12 @@ import im.vector.app.databinding.FragmentAnalyticsOptinBinding
import im.vector.app.features.analytics.AnalyticsConfig import im.vector.app.features.analytics.AnalyticsConfig
import javax.inject.Inject import javax.inject.Inject
class AnalyticsOptInFragment @Inject constructor( @AndroidEntryPoint
private val analyticsConfig: AnalyticsConfig, class AnalyticsOptInFragment :
) : VectorBaseFragment<FragmentAnalyticsOptinBinding>(), OnBackPressed { VectorBaseFragment<FragmentAnalyticsOptinBinding>(),
OnBackPressed {
@Inject lateinit var analyticsConfig: AnalyticsConfig
// Share the view model with the Activity so that the Activity // Share the view model with the Activity so that the Activity
// can decide what to do when the data has been saved // can decide what to do when the data has been saved

View File

@ -39,6 +39,7 @@ import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.yalantis.ucrop.UCrop import com.yalantis.ucrop.UCrop
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.insertBeforeLast import im.vector.app.core.extensions.insertBeforeLast
@ -63,15 +64,17 @@ data class AttachmentsPreviewArgs(
val attachments: List<ContentAttachmentData> val attachments: List<ContentAttachmentData>
) : Parcelable ) : Parcelable
class AttachmentsPreviewFragment @Inject constructor( @AndroidEntryPoint
private val attachmentMiniaturePreviewController: AttachmentMiniaturePreviewController, class AttachmentsPreviewFragment :
private val attachmentBigPreviewController: AttachmentBigPreviewController, VectorBaseFragment<FragmentAttachmentsPreviewBinding>(),
private val colorProvider: ColorProvider,
private val clock: Clock,
) : VectorBaseFragment<FragmentAttachmentsPreviewBinding>(),
AttachmentMiniaturePreviewController.Callback, AttachmentMiniaturePreviewController.Callback,
VectorMenuProvider { VectorMenuProvider {
@Inject lateinit var attachmentMiniaturePreviewController: AttachmentMiniaturePreviewController
@Inject lateinit var attachmentBigPreviewController: AttachmentBigPreviewController
@Inject lateinit var colorProvider: ColorProvider
@Inject lateinit var clock: Clock
private val fragmentArgs: AttachmentsPreviewArgs by args() private val fragmentArgs: AttachmentsPreviewArgs by args()
private val viewModel: AttachmentsPreviewViewModel by fragmentViewModel() private val viewModel: AttachmentsPreviewViewModel by fragmentViewModel()

View File

@ -24,6 +24,7 @@ import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
@ -44,9 +45,12 @@ import reactivecircus.flowbinding.android.widget.checkedChanges
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject import javax.inject.Inject
class ContactsBookFragment @Inject constructor( @AndroidEntryPoint
private val contactsBookController: ContactsBookController class ContactsBookFragment :
) : VectorBaseFragment<FragmentContactsBookBinding>(), ContactsBookController.Callback { VectorBaseFragment<FragmentContactsBookBinding>(),
ContactsBookController.Callback {
@Inject lateinit var contactsBookController: ContactsBookController
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentContactsBookBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentContactsBookBinding {
return FragmentContactsBookBinding.inflate(inflater, container, false) return FragmentContactsBookBinding.inflate(inflater, container, false)

View File

@ -22,15 +22,16 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.core.widget.doOnTextChanged import androidx.core.widget.doOnTextChanged
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.extensions.registerStartForActivityResult
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.core.utils.startImportTextFromFileIntent import im.vector.app.core.utils.startImportTextFromFileIntent
import im.vector.app.databinding.FragmentKeysBackupRestoreFromKeyBinding import im.vector.app.databinding.FragmentKeysBackupRestoreFromKeyBinding
import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.api.extensions.tryOrNull
import javax.inject.Inject
class KeysBackupRestoreFromKeyFragment @Inject constructor() : @AndroidEntryPoint
class KeysBackupRestoreFromKeyFragment :
VectorBaseFragment<FragmentKeysBackupRestoreFromKeyBinding>() { VectorBaseFragment<FragmentKeysBackupRestoreFromKeyBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupRestoreFromKeyBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupRestoreFromKeyBinding {

View File

@ -24,12 +24,14 @@ import android.view.ViewGroup
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.core.text.set import androidx.core.text.set
import androidx.core.widget.doOnTextChanged import androidx.core.widget.doOnTextChanged
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentKeysBackupRestoreFromPassphraseBinding import im.vector.app.databinding.FragmentKeysBackupRestoreFromPassphraseBinding
import javax.inject.Inject
class KeysBackupRestoreFromPassphraseFragment @Inject constructor() : VectorBaseFragment<FragmentKeysBackupRestoreFromPassphraseBinding>() { @AndroidEntryPoint
class KeysBackupRestoreFromPassphraseFragment :
VectorBaseFragment<FragmentKeysBackupRestoreFromPassphraseBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupRestoreFromPassphraseBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupRestoreFromPassphraseBinding {
return FragmentKeysBackupRestoreFromPassphraseBinding.inflate(inflater, container, false) return FragmentKeysBackupRestoreFromPassphraseBinding.inflate(inflater, container, false)

View File

@ -20,13 +20,15 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.core.utils.LiveEvent import im.vector.app.core.utils.LiveEvent
import im.vector.app.databinding.FragmentKeysBackupRestoreSuccessBinding import im.vector.app.databinding.FragmentKeysBackupRestoreSuccessBinding
import javax.inject.Inject
class KeysBackupRestoreSuccessFragment @Inject constructor() : VectorBaseFragment<FragmentKeysBackupRestoreSuccessBinding>() { @AndroidEntryPoint
class KeysBackupRestoreSuccessFragment :
VectorBaseFragment<FragmentKeysBackupRestoreSuccessBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupRestoreSuccessBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupRestoreSuccessBinding {
return FragmentKeysBackupRestoreSuccessBinding.inflate(inflater, container, false) return FragmentKeysBackupRestoreSuccessBinding.inflate(inflater, container, false)

View File

@ -22,6 +22,7 @@ import android.view.ViewGroup
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
@ -30,10 +31,13 @@ import im.vector.app.databinding.FragmentKeysBackupSettingsBinding
import im.vector.app.features.crypto.keysbackup.restore.KeysBackupRestoreActivity import im.vector.app.features.crypto.keysbackup.restore.KeysBackupRestoreActivity
import javax.inject.Inject import javax.inject.Inject
class KeysBackupSettingsFragment @Inject constructor(private val keysBackupSettingsRecyclerViewController: KeysBackupSettingsRecyclerViewController) : @AndroidEntryPoint
class KeysBackupSettingsFragment :
VectorBaseFragment<FragmentKeysBackupSettingsBinding>(), VectorBaseFragment<FragmentKeysBackupSettingsBinding>(),
KeysBackupSettingsRecyclerViewController.Listener { KeysBackupSettingsRecyclerViewController.Listener {
@Inject lateinit var keysBackupSettingsRecyclerViewController: KeysBackupSettingsRecyclerViewController
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSettingsBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSettingsBinding {
return FragmentKeysBackupSettingsBinding.inflate(inflater, container, false) return FragmentKeysBackupSettingsBinding.inflate(inflater, container, false)
} }

View File

@ -20,12 +20,14 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.core.utils.LiveEvent import im.vector.app.core.utils.LiveEvent
import im.vector.app.databinding.FragmentKeysBackupSetupStep1Binding import im.vector.app.databinding.FragmentKeysBackupSetupStep1Binding
import javax.inject.Inject
class KeysBackupSetupStep1Fragment @Inject constructor() : VectorBaseFragment<FragmentKeysBackupSetupStep1Binding>() { @AndroidEntryPoint
class KeysBackupSetupStep1Fragment :
VectorBaseFragment<FragmentKeysBackupSetupStep1Binding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSetupStep1Binding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSetupStep1Binding {
return FragmentKeysBackupSetupStep1Binding.inflate(inflater, container, false) return FragmentKeysBackupSetupStep1Binding.inflate(inflater, container, false)

View File

@ -24,6 +24,7 @@ import androidx.core.widget.doOnTextChanged
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import androidx.transition.TransitionManager import androidx.transition.TransitionManager
import com.nulabinc.zxcvbn.Zxcvbn import com.nulabinc.zxcvbn.Zxcvbn
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hidePassword import im.vector.app.core.extensions.hidePassword
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -31,9 +32,10 @@ import im.vector.app.databinding.FragmentKeysBackupSetupStep2Binding
import im.vector.app.features.settings.VectorLocale import im.vector.app.features.settings.VectorLocale
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject
class KeysBackupSetupStep2Fragment @Inject constructor() : VectorBaseFragment<FragmentKeysBackupSetupStep2Binding>() { @AndroidEntryPoint
class KeysBackupSetupStep2Fragment :
VectorBaseFragment<FragmentKeysBackupSetupStep2Binding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSetupStep2Binding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSetupStep2Binding {
return FragmentKeysBackupSetupStep2Binding.inflate(inflater, container, false) return FragmentKeysBackupSetupStep2Binding.inflate(inflater, container, false)

View File

@ -28,6 +28,7 @@ import androidx.lifecycle.lifecycleScope
import arrow.core.Try import arrow.core.Try
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.extensions.registerStartForActivityResult
import im.vector.app.core.extensions.safeOpenOutputStream import im.vector.app.core.extensions.safeOpenOutputStream
@ -44,9 +45,10 @@ import java.io.IOException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Date import java.util.Date
import java.util.Locale import java.util.Locale
import javax.inject.Inject
class KeysBackupSetupStep3Fragment @Inject constructor() : VectorBaseFragment<FragmentKeysBackupSetupStep3Binding>() { @AndroidEntryPoint
class KeysBackupSetupStep3Fragment :
VectorBaseFragment<FragmentKeysBackupSetupStep3Binding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSetupStep3Binding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentKeysBackupSetupStep3Binding {
return FragmentKeysBackupSetupStep3Binding.inflate(inflater, container, false) return FragmentKeysBackupSetupStep3Binding.inflate(inflater, container, false)

View File

@ -24,6 +24,7 @@ import android.view.ViewGroup
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.extensions.registerStartForActivityResult
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -35,9 +36,10 @@ import kotlinx.coroutines.flow.onEach
import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.api.extensions.tryOrNull
import reactivecircus.flowbinding.android.widget.editorActionEvents import reactivecircus.flowbinding.android.widget.editorActionEvents
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
class SharedSecuredStorageKeyFragment @Inject constructor() : VectorBaseFragment<FragmentSsssAccessFromKeyBinding>() { @AndroidEntryPoint
class SharedSecuredStorageKeyFragment :
VectorBaseFragment<FragmentSsssAccessFromKeyBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentSsssAccessFromKeyBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentSsssAccessFromKeyBinding {
return FragmentSsssAccessFromKeyBinding.inflate(inflater, container, false) return FragmentSsssAccessFromKeyBinding.inflate(inflater, container, false)

View File

@ -24,20 +24,19 @@ import android.view.inputmethod.EditorInfo
import androidx.core.text.toSpannable import androidx.core.text.toSpannable
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.core.resources.ColorProvider
import im.vector.app.databinding.FragmentSsssAccessFromPassphraseBinding import im.vector.app.databinding.FragmentSsssAccessFromPassphraseBinding
import im.vector.lib.core.utils.flow.throttleFirst import im.vector.lib.core.utils.flow.throttleFirst
import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import reactivecircus.flowbinding.android.widget.editorActionEvents import reactivecircus.flowbinding.android.widget.editorActionEvents
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
class SharedSecuredStoragePassphraseFragment @Inject constructor( @AndroidEntryPoint
private val colorProvider: ColorProvider class SharedSecuredStoragePassphraseFragment :
) : VectorBaseFragment<FragmentSsssAccessFromPassphraseBinding>() { VectorBaseFragment<FragmentSsssAccessFromPassphraseBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentSsssAccessFromPassphraseBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentSsssAccessFromPassphraseBinding {
return FragmentSsssAccessFromPassphraseBinding.inflate(inflater, container, false) return FragmentSsssAccessFromPassphraseBinding.inflate(inflater, container, false)

View File

@ -22,14 +22,15 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.setTextOrHide import im.vector.app.core.extensions.setTextOrHide
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentSsssResetAllBinding import im.vector.app.databinding.FragmentSsssResetAllBinding
import im.vector.app.features.roommemberprofile.devices.DeviceListBottomSheet import im.vector.app.features.roommemberprofile.devices.DeviceListBottomSheet
import javax.inject.Inject
class SharedSecuredStorageResetAllFragment @Inject constructor() : @AndroidEntryPoint
class SharedSecuredStorageResetAllFragment :
VectorBaseFragment<FragmentSsssResetAllBinding>() { VectorBaseFragment<FragmentSsssResetAllBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentSsssResetAllBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentSsssResetAllBinding {

View File

@ -23,6 +23,7 @@ import android.view.ViewGroup
import androidx.core.text.toSpannable import androidx.core.text.toSpannable
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.core.resources.ColorProvider import im.vector.app.core.resources.ColorProvider
@ -30,9 +31,11 @@ import im.vector.app.core.utils.colorizeMatchingText
import im.vector.app.databinding.FragmentBootstrapConclusionBinding import im.vector.app.databinding.FragmentBootstrapConclusionBinding
import javax.inject.Inject import javax.inject.Inject
class BootstrapConclusionFragment @Inject constructor( @AndroidEntryPoint
private val colorProvider: ColorProvider class BootstrapConclusionFragment :
) : VectorBaseFragment<FragmentBootstrapConclusionBinding>() { VectorBaseFragment<FragmentBootstrapConclusionBinding>() {
@Inject lateinit var colorProvider: ColorProvider
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapConclusionBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapConclusionBinding {
return FragmentBootstrapConclusionBinding.inflate(inflater, container, false) return FragmentBootstrapConclusionBinding.inflate(inflater, container, false)

View File

@ -25,6 +25,7 @@ import androidx.core.view.isGone
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -34,9 +35,9 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import reactivecircus.flowbinding.android.widget.editorActionEvents import reactivecircus.flowbinding.android.widget.editorActionEvents
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
class BootstrapConfirmPassphraseFragment @Inject constructor() : @AndroidEntryPoint
class BootstrapConfirmPassphraseFragment :
VectorBaseFragment<FragmentBootstrapEnterPassphraseBinding>() { VectorBaseFragment<FragmentBootstrapEnterPassphraseBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapEnterPassphraseBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapEnterPassphraseBinding {

View File

@ -24,6 +24,7 @@ import android.view.inputmethod.EditorInfo
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentBootstrapEnterPassphraseBinding import im.vector.app.databinding.FragmentBootstrapEnterPassphraseBinding
@ -33,9 +34,9 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import reactivecircus.flowbinding.android.widget.editorActionEvents import reactivecircus.flowbinding.android.widget.editorActionEvents
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
class BootstrapEnterPassphraseFragment @Inject constructor() : @AndroidEntryPoint
class BootstrapEnterPassphraseFragment :
VectorBaseFragment<FragmentBootstrapEnterPassphraseBinding>() { VectorBaseFragment<FragmentBootstrapEnterPassphraseBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapEnterPassphraseBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapEnterPassphraseBinding {

View File

@ -30,6 +30,7 @@ import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.extensions.registerStartForActivityResult
@ -47,9 +48,11 @@ import reactivecircus.flowbinding.android.widget.editorActionEvents
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject import javax.inject.Inject
class BootstrapMigrateBackupFragment @Inject constructor( @AndroidEntryPoint
private val colorProvider: ColorProvider class BootstrapMigrateBackupFragment :
) : VectorBaseFragment<FragmentBootstrapMigrateBackupBinding>() { VectorBaseFragment<FragmentBootstrapMigrateBackupBinding>() {
@Inject lateinit var colorProvider: ColorProvider
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapMigrateBackupBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapMigrateBackupBinding {
return FragmentBootstrapMigrateBackupBinding.inflate(inflater, container, false) return FragmentBootstrapMigrateBackupBinding.inflate(inflater, container, false)

View File

@ -23,15 +23,14 @@ import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.setTextOrHide import im.vector.app.core.extensions.setTextOrHide
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.core.resources.ColorProvider
import im.vector.app.databinding.FragmentBootstrapReauthBinding import im.vector.app.databinding.FragmentBootstrapReauthBinding
import javax.inject.Inject
class BootstrapReAuthFragment @Inject constructor( @AndroidEntryPoint
private val colorProvider: ColorProvider class BootstrapReAuthFragment :
) : VectorBaseFragment<FragmentBootstrapReauthBinding>() { VectorBaseFragment<FragmentBootstrapReauthBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapReauthBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapReauthBinding {
return FragmentBootstrapReauthBinding.inflate(inflater, container, false) return FragmentBootstrapReauthBinding.inflate(inflater, container, false)

View File

@ -27,21 +27,20 @@ import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.extensions.registerStartForActivityResult
import im.vector.app.core.extensions.safeOpenOutputStream import im.vector.app.core.extensions.safeOpenOutputStream
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.core.resources.ColorProvider
import im.vector.app.core.utils.startSharePlainTextIntent import im.vector.app.core.utils.startSharePlainTextIntent
import im.vector.app.core.utils.toast import im.vector.app.core.utils.toast
import im.vector.app.databinding.FragmentBootstrapSaveKeyBinding import im.vector.app.databinding.FragmentBootstrapSaveKeyBinding
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject
class BootstrapSaveRecoveryKeyFragment @Inject constructor( @AndroidEntryPoint
private val colorProvider: ColorProvider class BootstrapSaveRecoveryKeyFragment :
) : VectorBaseFragment<FragmentBootstrapSaveKeyBinding>() { VectorBaseFragment<FragmentBootstrapSaveKeyBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapSaveKeyBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapSaveKeyBinding {
return FragmentBootstrapSaveKeyBinding.inflate(inflater, container, false) return FragmentBootstrapSaveKeyBinding.inflate(inflater, container, false)

View File

@ -23,13 +23,14 @@ import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentBootstrapSetupRecoveryBinding import im.vector.app.databinding.FragmentBootstrapSetupRecoveryBinding
import im.vector.app.features.raw.wellknown.SecureBackupMethod import im.vector.app.features.raw.wellknown.SecureBackupMethod
import javax.inject.Inject
class BootstrapSetupRecoveryKeyFragment @Inject constructor() : @AndroidEntryPoint
class BootstrapSetupRecoveryKeyFragment :
VectorBaseFragment<FragmentBootstrapSetupRecoveryBinding>() { VectorBaseFragment<FragmentBootstrapSetupRecoveryBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapSetupRecoveryBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapSetupRecoveryBinding {

View File

@ -21,11 +21,12 @@ import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentBootstrapWaitingBinding import im.vector.app.databinding.FragmentBootstrapWaitingBinding
import javax.inject.Inject
class BootstrapWaitingFragment @Inject constructor() : @AndroidEntryPoint
class BootstrapWaitingFragment :
VectorBaseFragment<FragmentBootstrapWaitingBinding>() { VectorBaseFragment<FragmentBootstrapWaitingBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapWaitingBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentBootstrapWaitingBinding {

View File

@ -18,11 +18,13 @@ package im.vector.app.features.crypto.verification
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentProgressBinding import im.vector.app.databinding.FragmentProgressBinding
import javax.inject.Inject
class QuadSLoadingFragment @Inject constructor() : VectorBaseFragment<FragmentProgressBinding>() { @AndroidEntryPoint
class QuadSLoadingFragment :
VectorBaseFragment<FragmentProgressBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentProgressBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentProgressBinding {
return FragmentProgressBinding.inflate(inflater, container, false) return FragmentProgressBinding.inflate(inflater, container, false)
} }

View File

@ -22,6 +22,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -29,11 +30,13 @@ import im.vector.app.databinding.BottomSheetVerificationChildFragmentBinding
import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel
import javax.inject.Inject import javax.inject.Inject
class VerificationCancelFragment @Inject constructor( @AndroidEntryPoint
val controller: VerificationCancelController class VerificationCancelFragment :
) : VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(), VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(),
VerificationCancelController.Listener { VerificationCancelController.Listener {
@Inject lateinit var controller: VerificationCancelController
private val viewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class) private val viewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class)
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetVerificationChildFragmentBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetVerificationChildFragmentBinding {

View File

@ -22,6 +22,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -29,11 +30,13 @@ import im.vector.app.databinding.BottomSheetVerificationChildFragmentBinding
import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel
import javax.inject.Inject import javax.inject.Inject
class VerificationNotMeFragment @Inject constructor( @AndroidEntryPoint
val controller: VerificationNotMeController class VerificationNotMeFragment :
) : VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(), VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(),
VerificationNotMeController.Listener { VerificationNotMeController.Listener {
@Inject lateinit var controller: VerificationNotMeController
private val viewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class) private val viewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class)
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetVerificationChildFragmentBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetVerificationChildFragmentBinding {

View File

@ -23,6 +23,7 @@ import android.view.ViewGroup
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
@ -39,11 +40,12 @@ import im.vector.app.features.qrcode.QrCodeScannerActivity
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
class VerificationChooseMethodFragment @Inject constructor( @AndroidEntryPoint
val controller: VerificationChooseMethodController class VerificationChooseMethodFragment :
) : VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(), VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(),
VerificationChooseMethodController.Listener { VerificationChooseMethodController.Listener {
@Inject lateinit var controller: VerificationChooseMethodController
private val viewModel by fragmentViewModel(VerificationChooseMethodViewModel::class) private val viewModel by fragmentViewModel(VerificationChooseMethodViewModel::class)
private val sharedViewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class) private val sharedViewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class)

View File

@ -23,6 +23,7 @@ import android.view.ViewGroup
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -32,11 +33,13 @@ import im.vector.app.features.crypto.verification.VerificationBottomSheetViewMod
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import javax.inject.Inject import javax.inject.Inject
class VerificationConclusionFragment @Inject constructor( @AndroidEntryPoint
val controller: VerificationConclusionController class VerificationConclusionFragment :
) : VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(), VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(),
VerificationConclusionController.Listener { VerificationConclusionController.Listener {
@Inject lateinit var controller: VerificationConclusionController
@Parcelize @Parcelize
data class Args( data class Args(
val isSuccessFull: Boolean, val isSuccessFull: Boolean,

View File

@ -22,6 +22,7 @@ import android.view.ViewGroup
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -30,11 +31,13 @@ import im.vector.app.features.crypto.verification.VerificationAction
import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel
import javax.inject.Inject import javax.inject.Inject
class VerificationEmojiCodeFragment @Inject constructor( @AndroidEntryPoint
val controller: VerificationEmojiCodeController class VerificationEmojiCodeFragment :
) : VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(), VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(),
VerificationEmojiCodeController.Listener { VerificationEmojiCodeController.Listener {
@Inject lateinit var controller: VerificationEmojiCodeController
private val viewModel by fragmentViewModel(VerificationEmojiCodeViewModel::class) private val viewModel by fragmentViewModel(VerificationEmojiCodeViewModel::class)
private val sharedViewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class) private val sharedViewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class)

View File

@ -22,6 +22,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.Mavericks import com.airbnb.mvrx.Mavericks
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -29,9 +30,11 @@ import im.vector.app.databinding.BottomSheetVerificationChildFragmentBinding
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import javax.inject.Inject import javax.inject.Inject
class VerificationQRWaitingFragment @Inject constructor( @AndroidEntryPoint
val controller: VerificationQRWaitingController class VerificationQRWaitingFragment :
) : VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>() { VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>() {
@Inject lateinit var controller: VerificationQRWaitingController
@Parcelize @Parcelize
data class Args( data class Args(

View File

@ -21,6 +21,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -29,11 +30,13 @@ import im.vector.app.features.crypto.verification.VerificationAction
import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel
import javax.inject.Inject import javax.inject.Inject
class VerificationQrScannedByOtherFragment @Inject constructor( @AndroidEntryPoint
val controller: VerificationQrScannedByOtherController class VerificationQrScannedByOtherFragment :
) : VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(), VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(),
VerificationQrScannedByOtherController.Listener { VerificationQrScannedByOtherController.Listener {
@Inject lateinit var controller: VerificationQrScannedByOtherController
private val sharedViewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class) private val sharedViewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class)
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetVerificationChildFragmentBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetVerificationChildFragmentBinding {

View File

@ -21,6 +21,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -29,11 +30,13 @@ import im.vector.app.features.crypto.verification.VerificationAction
import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel import im.vector.app.features.crypto.verification.VerificationBottomSheetViewModel
import javax.inject.Inject import javax.inject.Inject
class VerificationRequestFragment @Inject constructor( @AndroidEntryPoint
val controller: VerificationRequestController class VerificationRequestFragment :
) : VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(), VectorBaseFragment<BottomSheetVerificationChildFragmentBinding>(),
VerificationRequestController.Listener { VerificationRequestController.Listener {
@Inject lateinit var controller: VerificationRequestController
private val viewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class) private val viewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class)
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetVerificationChildFragmentBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetVerificationChildFragmentBinding {

View File

@ -23,15 +23,16 @@ import android.view.ViewGroup
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentDevtoolsEditorBinding import im.vector.app.databinding.FragmentDevtoolsEditorBinding
import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
class RoomDevToolEditFragment @Inject constructor() : @AndroidEntryPoint
class RoomDevToolEditFragment :
VectorBaseFragment<FragmentDevtoolsEditorBinding>() { VectorBaseFragment<FragmentDevtoolsEditorBinding>() {
private val sharedViewModel: RoomDevToolViewModel by activityViewModel() private val sharedViewModel: RoomDevToolViewModel by activityViewModel()

View File

@ -21,6 +21,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
@ -28,11 +29,13 @@ import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentGenericRecyclerBinding import im.vector.app.databinding.FragmentGenericRecyclerBinding
import javax.inject.Inject import javax.inject.Inject
class RoomDevToolFragment @Inject constructor( @AndroidEntryPoint
private val epoxyController: RoomDevToolRootController class RoomDevToolFragment :
) : VectorBaseFragment<FragmentGenericRecyclerBinding>(), VectorBaseFragment<FragmentGenericRecyclerBinding>(),
DevToolsInteractionListener { DevToolsInteractionListener {
@Inject lateinit var epoxyController: RoomDevToolRootController
private val sharedViewModel: RoomDevToolViewModel by activityViewModel() private val sharedViewModel: RoomDevToolViewModel by activityViewModel()
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentGenericRecyclerBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentGenericRecyclerBinding {

View File

@ -22,15 +22,19 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentGenericRecyclerBinding import im.vector.app.databinding.FragmentGenericRecyclerBinding
import javax.inject.Inject import javax.inject.Inject
class RoomDevToolSendFormFragment @Inject constructor( @AndroidEntryPoint
private val epoxyController: RoomDevToolSendFormController class RoomDevToolSendFormFragment :
) : VectorBaseFragment<FragmentGenericRecyclerBinding>(), DevToolsInteractionListener { VectorBaseFragment<FragmentGenericRecyclerBinding>(),
DevToolsInteractionListener {
@Inject lateinit var epoxyController: RoomDevToolSendFormController
val sharedViewModel: RoomDevToolViewModel by activityViewModel() val sharedViewModel: RoomDevToolViewModel by activityViewModel()

View File

@ -22,6 +22,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
@ -29,9 +30,12 @@ import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentGenericRecyclerBinding import im.vector.app.databinding.FragmentGenericRecyclerBinding
import javax.inject.Inject import javax.inject.Inject
class RoomDevToolStateEventListFragment @Inject constructor( @AndroidEntryPoint
private val epoxyController: RoomStateListController class RoomDevToolStateEventListFragment :
) : VectorBaseFragment<FragmentGenericRecyclerBinding>(), DevToolsInteractionListener { VectorBaseFragment<FragmentGenericRecyclerBinding>(),
DevToolsInteractionListener {
@Inject lateinit var epoxyController: RoomStateListController
val sharedViewModel: RoomDevToolViewModel by activityViewModel() val sharedViewModel: RoomDevToolViewModel by activityViewModel()

View File

@ -25,6 +25,7 @@ import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
@ -43,11 +44,13 @@ import org.matrix.android.sdk.api.session.identity.ThreePid
import org.matrix.android.sdk.api.session.terms.TermsService import org.matrix.android.sdk.api.session.terms.TermsService
import javax.inject.Inject import javax.inject.Inject
class DiscoverySettingsFragment @Inject constructor( @AndroidEntryPoint
private val controller: DiscoverySettingsController class DiscoverySettingsFragment :
) : VectorBaseFragment<FragmentGenericRecyclerBinding>(), VectorBaseFragment<FragmentGenericRecyclerBinding>(),
DiscoverySettingsController.Listener { DiscoverySettingsController.Listener {
@Inject lateinit var controller: DiscoverySettingsController
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentGenericRecyclerBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentGenericRecyclerBinding {
return FragmentGenericRecyclerBinding.inflate(inflater, container, false) return FragmentGenericRecyclerBinding.inflate(inflater, container, false)
} }

View File

@ -28,6 +28,7 @@ import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.extensions.registerStartForActivityResult
import im.vector.app.core.extensions.toReducedUrl import im.vector.app.core.extensions.toReducedUrl
@ -42,9 +43,11 @@ import org.matrix.android.sdk.api.session.terms.TermsService
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject import javax.inject.Inject
class SetIdentityServerFragment @Inject constructor( @AndroidEntryPoint
val colorProvider: ColorProvider class SetIdentityServerFragment :
) : VectorBaseFragment<FragmentSetIdentityServerBinding>() { VectorBaseFragment<FragmentSetIdentityServerBinding>() {
@Inject lateinit var colorProvider: ColorProvider
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentSetIdentityServerBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentSetIdentityServerBinding {
return FragmentSetIdentityServerBinding.inflate(inflater, container, false) return FragmentSetIdentityServerBinding.inflate(inflater, container, false)

View File

@ -28,6 +28,7 @@ import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.badge.BadgeDrawable import com.google.android.material.badge.BadgeDrawable
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.SpaceStateHandler import im.vector.app.SpaceStateHandler
import im.vector.app.core.extensions.commitTransaction import im.vector.app.core.extensions.commitTransaction
@ -60,19 +61,21 @@ import org.matrix.android.sdk.api.session.crypto.model.DeviceInfo
import org.matrix.android.sdk.api.session.room.model.RoomSummary import org.matrix.android.sdk.api.session.room.model.RoomSummary
import javax.inject.Inject import javax.inject.Inject
class HomeDetailFragment @Inject constructor( @AndroidEntryPoint
private val avatarRenderer: AvatarRenderer, class HomeDetailFragment :
private val colorProvider: ColorProvider, VectorBaseFragment<FragmentHomeDetailBinding>(),
private val alertManager: PopupAlertManager,
private val callManager: WebRtcCallManager,
private val vectorPreferences: VectorPreferences,
private val spaceStateHandler: SpaceStateHandler,
) : VectorBaseFragment<FragmentHomeDetailBinding>(),
KeysBackupBanner.Delegate, KeysBackupBanner.Delegate,
CurrentCallsView.Callback, CurrentCallsView.Callback,
OnBackPressed, OnBackPressed,
VectorMenuProvider { VectorMenuProvider {
@Inject lateinit var avatarRenderer: AvatarRenderer
@Inject lateinit var colorProvider: ColorProvider
@Inject lateinit var alertManager: PopupAlertManager
@Inject lateinit var callManager: WebRtcCallManager
@Inject lateinit var vectorPreferences: VectorPreferences
@Inject lateinit var spaceStateHandler: SpaceStateHandler
private val viewModel: HomeDetailViewModel by fragmentViewModel() private val viewModel: HomeDetailViewModel by fragmentViewModel()
private val unknownDeviceDetectorSharedViewModel: UnknownDeviceDetectorSharedViewModel by activityViewModel() private val unknownDeviceDetectorSharedViewModel: UnknownDeviceDetectorSharedViewModel by activityViewModel()
private val unreadMessagesSharedViewModel: UnreadMessagesSharedViewModel by activityViewModel() private val unreadMessagesSharedViewModel: UnreadMessagesSharedViewModel by activityViewModel()

View File

@ -23,6 +23,7 @@ import android.view.ViewGroup
import androidx.core.app.ActivityOptionsCompat import androidx.core.app.ActivityOptionsCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.observeK import im.vector.app.core.extensions.observeK
import im.vector.app.core.extensions.replaceChildFragment import im.vector.app.core.extensions.replaceChildFragment
@ -40,12 +41,14 @@ import org.matrix.android.sdk.api.session.Session
import org.matrix.android.sdk.api.util.toMatrixItem import org.matrix.android.sdk.api.util.toMatrixItem
import javax.inject.Inject import javax.inject.Inject
class HomeDrawerFragment @Inject constructor( @AndroidEntryPoint
private val session: Session, class HomeDrawerFragment :
private val vectorPreferences: VectorPreferences, VectorBaseFragment<FragmentHomeDrawerBinding>() {
private val avatarRenderer: AvatarRenderer,
private val buildMeta: BuildMeta, @Inject lateinit var session: Session
) : VectorBaseFragment<FragmentHomeDrawerBinding>() { @Inject lateinit var vectorPreferences: VectorPreferences
@Inject lateinit var avatarRenderer: AvatarRenderer
@Inject lateinit var buildMeta: BuildMeta
private lateinit var sharedActionViewModel: HomeSharedActionViewModel private lateinit var sharedActionViewModel: HomeSharedActionViewModel

View File

@ -21,11 +21,12 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentLoadingBinding import im.vector.app.databinding.FragmentLoadingBinding
import javax.inject.Inject
class LoadingFragment @Inject constructor() : VectorBaseFragment<FragmentLoadingBinding>() { @AndroidEntryPoint
class LoadingFragment : VectorBaseFragment<FragmentLoadingBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoadingBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoadingBinding {
return FragmentLoadingBinding.inflate(inflater, container, false) return FragmentLoadingBinding.inflate(inflater, container, false)

View File

@ -28,6 +28,7 @@ import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.badge.BadgeDrawable import com.google.android.material.badge.BadgeDrawable
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.SpaceStateHandler import im.vector.app.SpaceStateHandler
import im.vector.app.core.extensions.commitTransaction import im.vector.app.core.extensions.commitTransaction
@ -60,20 +61,22 @@ import org.matrix.android.sdk.api.session.room.model.RoomSummary
import org.matrix.android.sdk.api.util.toMatrixItem import org.matrix.android.sdk.api.util.toMatrixItem
import javax.inject.Inject import javax.inject.Inject
class NewHomeDetailFragment @Inject constructor( @AndroidEntryPoint
private val avatarRenderer: AvatarRenderer, class NewHomeDetailFragment :
private val colorProvider: ColorProvider, VectorBaseFragment<FragmentNewHomeDetailBinding>(),
private val alertManager: PopupAlertManager,
private val callManager: WebRtcCallManager,
private val vectorPreferences: VectorPreferences,
private val spaceStateHandler: SpaceStateHandler,
private val session: Session,
) : VectorBaseFragment<FragmentNewHomeDetailBinding>(),
KeysBackupBanner.Delegate, KeysBackupBanner.Delegate,
CurrentCallsView.Callback, CurrentCallsView.Callback,
OnBackPressed, OnBackPressed,
VectorMenuProvider { VectorMenuProvider {
@Inject lateinit var avatarRenderer: AvatarRenderer
@Inject lateinit var colorProvider: ColorProvider
@Inject lateinit var alertManager: PopupAlertManager
@Inject lateinit var callManager: WebRtcCallManager
@Inject lateinit var vectorPreferences: VectorPreferences
@Inject lateinit var spaceStateHandler: SpaceStateHandler
@Inject lateinit var session: Session
private val viewModel: HomeDetailViewModel by fragmentViewModel() private val viewModel: HomeDetailViewModel by fragmentViewModel()
private val unknownDeviceDetectorSharedViewModel: UnknownDeviceDetectorSharedViewModel by activityViewModel() private val unknownDeviceDetectorSharedViewModel: UnknownDeviceDetectorSharedViewModel by activityViewModel()
private val unreadMessagesSharedViewModel: UnreadMessagesSharedViewModel by activityViewModel() private val unreadMessagesSharedViewModel: UnreadMessagesSharedViewModel by activityViewModel()

View File

@ -22,6 +22,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -30,11 +31,13 @@ import im.vector.app.features.home.room.detail.RoomDetailSharedAction
import im.vector.app.features.home.room.detail.RoomDetailSharedActionViewModel import im.vector.app.features.home.room.detail.RoomDetailSharedActionViewModel
import javax.inject.Inject import javax.inject.Inject
class BreadcrumbsFragment @Inject constructor( @AndroidEntryPoint
private val breadcrumbsController: BreadcrumbsController class BreadcrumbsFragment :
) : VectorBaseFragment<FragmentBreadcrumbsBinding>(), VectorBaseFragment<FragmentBreadcrumbsBinding>(),
BreadcrumbsController.Listener { BreadcrumbsController.Listener {
@Inject lateinit var breadcrumbsController: BreadcrumbsController
private lateinit var sharedActionViewModel: RoomDetailSharedActionViewModel private lateinit var sharedActionViewModel: RoomDetailSharedActionViewModel
private val breadcrumbsViewModel: BreadcrumbsViewModel by fragmentViewModel() private val breadcrumbsViewModel: BreadcrumbsViewModel by fragmentViewModel()

View File

@ -67,6 +67,7 @@ import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.vanniktech.emoji.EmojiPopup import com.vanniktech.emoji.EmojiPopup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.animations.play import im.vector.app.core.animations.play
import im.vector.app.core.dialogs.ConfirmationDialogBuilder import im.vector.app.core.dialogs.ConfirmationDialogBuilder
@ -255,31 +256,8 @@ import java.net.URL
import java.util.UUID import java.util.UUID
import javax.inject.Inject import javax.inject.Inject
class TimelineFragment @Inject constructor( @AndroidEntryPoint
private val session: Session, class TimelineFragment :
private val avatarRenderer: AvatarRenderer,
private val timelineEventController: TimelineEventController,
autoCompleterFactory: AutoCompleter.Factory,
private val permalinkHandler: PermalinkHandler,
private val notificationDrawerManager: NotificationDrawerManager,
private val eventHtmlRenderer: EventHtmlRenderer,
private val vectorPreferences: VectorPreferences,
private val threadsManager: ThreadsManager,
private val colorProvider: ColorProvider,
private val dimensionConverter: DimensionConverter,
private val userPreferencesProvider: UserPreferencesProvider,
private val notificationUtils: NotificationUtils,
private val matrixItemColorProvider: MatrixItemColorProvider,
private val imageContentRenderer: ImageContentRenderer,
private val roomDetailPendingActionStore: RoomDetailPendingActionStore,
private val pillsPostProcessorFactory: PillsPostProcessor.Factory,
private val callManager: WebRtcCallManager,
private val audioMessagePlaybackTracker: AudioMessagePlaybackTracker,
private val shareIntentHandler: ShareIntentHandler,
private val clock: Clock,
private val vectorFeatures: VectorFeatures,
private val buildMeta: BuildMeta,
) :
VectorBaseFragment<FragmentTimelineBinding>(), VectorBaseFragment<FragmentTimelineBinding>(),
TimelineEventController.Callback, TimelineEventController.Callback,
VectorInviteView.Callback, VectorInviteView.Callback,
@ -289,6 +267,30 @@ class TimelineFragment @Inject constructor(
CurrentCallsView.Callback, CurrentCallsView.Callback,
VectorMenuProvider { VectorMenuProvider {
@Inject lateinit var session: Session
@Inject lateinit var avatarRenderer: AvatarRenderer
@Inject lateinit var timelineEventController: TimelineEventController
@Inject lateinit var autoCompleterFactory: AutoCompleter.Factory
@Inject lateinit var permalinkHandler: PermalinkHandler
@Inject lateinit var notificationDrawerManager: NotificationDrawerManager
@Inject lateinit var eventHtmlRenderer: EventHtmlRenderer
@Inject lateinit var vectorPreferences: VectorPreferences
@Inject lateinit var threadsManager: ThreadsManager
@Inject lateinit var colorProvider: ColorProvider
@Inject lateinit var dimensionConverter: DimensionConverter
@Inject lateinit var userPreferencesProvider: UserPreferencesProvider
@Inject lateinit var notificationUtils: NotificationUtils
@Inject lateinit var matrixItemColorProvider: MatrixItemColorProvider
@Inject lateinit var imageContentRenderer: ImageContentRenderer
@Inject lateinit var roomDetailPendingActionStore: RoomDetailPendingActionStore
@Inject lateinit var pillsPostProcessorFactory: PillsPostProcessor.Factory
@Inject lateinit var callManager: WebRtcCallManager
@Inject lateinit var audioMessagePlaybackTracker: AudioMessagePlaybackTracker
@Inject lateinit var shareIntentHandler: ShareIntentHandler
@Inject lateinit var clock: Clock
@Inject lateinit var vectorFeatures: VectorFeatures
@Inject lateinit var buildMeta: BuildMeta
companion object { companion object {
/** /**

View File

@ -29,6 +29,7 @@ import com.airbnb.mvrx.Success
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
@ -51,12 +52,13 @@ data class SearchArgs(
val roomAvatarUrl: String? val roomAvatarUrl: String?
) : Parcelable ) : Parcelable
class SearchFragment @Inject constructor( @AndroidEntryPoint
private val controller: SearchResultController class SearchFragment :
) : VectorBaseFragment<FragmentSearchBinding>(), VectorBaseFragment<FragmentSearchBinding>(),
StateView.EventCallback, StateView.EventCallback,
SearchResultController.Listener { SearchResultController.Listener {
@Inject lateinit var controller: SearchResultController
private val fragmentArgs: SearchArgs by args() private val fragmentArgs: SearchArgs by args()
private val searchViewModel: SearchViewModel by fragmentViewModel() private val searchViewModel: SearchViewModel by fragmentViewModel()

View File

@ -35,6 +35,7 @@ import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.epoxy.LayoutManagerStateRestorer import im.vector.app.core.epoxy.LayoutManagerStateRestorer
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
@ -70,17 +71,19 @@ data class RoomListParams(
val displayMode: RoomListDisplayMode val displayMode: RoomListDisplayMode
) : Parcelable ) : Parcelable
class RoomListFragment @Inject constructor( @AndroidEntryPoint
private val pagedControllerFactory: RoomSummaryPagedControllerFactory, class RoomListFragment :
private val notificationDrawerManager: NotificationDrawerManager, VectorBaseFragment<FragmentRoomListBinding>(),
private val footerController: RoomListFooterController,
private val userPreferencesProvider: UserPreferencesProvider
) : VectorBaseFragment<FragmentRoomListBinding>(),
RoomListListener, RoomListListener,
OnBackPressed, OnBackPressed,
FilteredRoomFooterItem.Listener, FilteredRoomFooterItem.Listener,
NotifsFabMenuView.Listener { NotifsFabMenuView.Listener {
@Inject lateinit var pagedControllerFactory: RoomSummaryPagedControllerFactory
@Inject lateinit var notificationDrawerManager: NotificationDrawerManager
@Inject lateinit var footerController: RoomListFooterController
@Inject lateinit var userPreferencesProvider: UserPreferencesProvider
private var modelBuildListener: OnModelBuildFinishedListener? = null private var modelBuildListener: OnModelBuildFinishedListener? = null
private lateinit var sharedActionViewModel: RoomListQuickActionsSharedActionViewModel private lateinit var sharedActionViewModel: RoomListQuickActionsSharedActionViewModel
private val roomListParams: RoomListParams by args() private val roomListParams: RoomListParams by args()

View File

@ -29,6 +29,7 @@ import com.airbnb.epoxy.OnModelBuildFinishedListener
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.epoxy.LayoutManagerStateRestorer import im.vector.app.core.epoxy.LayoutManagerStateRestorer
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
@ -57,13 +58,15 @@ import org.matrix.android.sdk.api.session.room.model.tag.RoomTag
import org.matrix.android.sdk.api.session.room.notification.RoomNotificationState import org.matrix.android.sdk.api.session.room.notification.RoomNotificationState
import javax.inject.Inject import javax.inject.Inject
class HomeRoomListFragment @Inject constructor( @AndroidEntryPoint
private val roomSummaryItemFactory: RoomSummaryItemFactory, class HomeRoomListFragment :
private val userPreferencesProvider: UserPreferencesProvider, VectorBaseFragment<FragmentRoomListBinding>(),
private val recentRoomCarouselController: RecentRoomCarouselController
) : VectorBaseFragment<FragmentRoomListBinding>(),
RoomListListener { RoomListListener {
@Inject lateinit var roomSummaryItemFactory: RoomSummaryItemFactory
@Inject lateinit var userPreferencesProvider: UserPreferencesProvider
@Inject lateinit var recentRoomCarouselController: RecentRoomCarouselController
private val roomListViewModel: HomeRoomListViewModel by fragmentViewModel() private val roomListViewModel: HomeRoomListViewModel by fragmentViewModel()
private lateinit var sharedQuickActionsViewModel: RoomListQuickActionsSharedActionViewModel private lateinit var sharedQuickActionsViewModel: RoomListQuickActionsSharedActionViewModel
private lateinit var sharedActionViewModel: RoomListSharedActionViewModel private lateinit var sharedActionViewModel: RoomListSharedActionViewModel

View File

@ -26,6 +26,7 @@ import androidx.core.view.isVisible
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
@ -48,15 +49,17 @@ import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
import org.matrix.android.sdk.api.util.MatrixItem import org.matrix.android.sdk.api.util.MatrixItem
import javax.inject.Inject import javax.inject.Inject
class ThreadListFragment @Inject constructor( @AndroidEntryPoint
private val avatarRenderer: AvatarRenderer, class ThreadListFragment :
private val bugReporter: BugReporter, VectorBaseFragment<FragmentThreadListBinding>(),
private val threadListController: ThreadListController,
val threadListViewModelFactory: ThreadListViewModel.Factory
) : VectorBaseFragment<FragmentThreadListBinding>(),
ThreadListController.Listener, ThreadListController.Listener,
VectorMenuProvider { VectorMenuProvider {
@Inject lateinit var avatarRenderer: AvatarRenderer
@Inject lateinit var bugReporter: BugReporter
@Inject lateinit var threadListController: ThreadListController
@Inject lateinit var threadListViewModelFactory: ThreadListViewModel.Factory
private val threadListViewModel: ThreadListViewModel by fragmentViewModel() private val threadListViewModel: ThreadListViewModel by fragmentViewModel()
private val threadListArgs: ThreadListArgs by args() private val threadListArgs: ThreadListArgs by args()

View File

@ -31,6 +31,7 @@ import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.mapbox.mapboxsdk.maps.MapView import com.mapbox.mapboxsdk.maps.MapView
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.platform.VectorBaseBottomSheetDialogFragment import im.vector.app.core.platform.VectorBaseBottomSheetDialogFragment
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -53,15 +54,17 @@ import javax.inject.Inject
/** /**
* We should consider using SupportMapFragment for a out of the box lifecycle handling. * We should consider using SupportMapFragment for a out of the box lifecycle handling.
*/ */
class LocationSharingFragment @Inject constructor( @AndroidEntryPoint
private val urlMapProvider: UrlMapProvider, class LocationSharingFragment :
private val avatarRenderer: AvatarRenderer, VectorBaseFragment<FragmentLocationSharingBinding>(),
private val matrixItemColorProvider: MatrixItemColorProvider,
private val vectorPreferences: VectorPreferences,
) : VectorBaseFragment<FragmentLocationSharingBinding>(),
LocationTargetChangeListener, LocationTargetChangeListener,
VectorBaseBottomSheetDialogFragment.ResultListener { VectorBaseBottomSheetDialogFragment.ResultListener {
@Inject lateinit var urlMapProvider: UrlMapProvider
@Inject lateinit var avatarRenderer: AvatarRenderer
@Inject lateinit var matrixItemColorProvider: MatrixItemColorProvider
@Inject lateinit var vectorPreferences: VectorPreferences
private val viewModel: LocationSharingViewModel by fragmentViewModel() private val viewModel: LocationSharingViewModel by fragmentViewModel()
private val locationSharingNavigator: LocationSharingNavigator by lazy { DefaultLocationSharingNavigator(activity) } private val locationSharingNavigator: LocationSharingNavigator by lazy { DefaultLocationSharingNavigator(activity) }

View File

@ -62,7 +62,8 @@ import javax.inject.Inject
* Screen showing a map with all the current users sharing their live location in a room. * Screen showing a map with all the current users sharing their live location in a room.
*/ */
@AndroidEntryPoint @AndroidEntryPoint
class LiveLocationMapViewFragment : VectorBaseFragment<FragmentLiveLocationMapViewBinding>() { class LiveLocationMapViewFragment :
VectorBaseFragment<FragmentLiveLocationMapViewBinding>() {
@Inject lateinit var urlMapProvider: UrlMapProvider @Inject lateinit var urlMapProvider: UrlMapProvider
@Inject lateinit var bottomSheetController: LiveLocationBottomSheetController @Inject lateinit var bottomSheetController: LiveLocationBottomSheetController

View File

@ -27,6 +27,7 @@ import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.mapbox.mapboxsdk.maps.MapView import com.mapbox.mapboxsdk.maps.MapView
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.platform.VectorMenuProvider
@ -43,12 +44,14 @@ import javax.inject.Inject
/* /*
* TODO Move locationPinProvider to a ViewModel * TODO Move locationPinProvider to a ViewModel
*/ */
class LocationPreviewFragment @Inject constructor( @AndroidEntryPoint
private val urlMapProvider: UrlMapProvider, class LocationPreviewFragment :
private val locationPinProvider: LocationPinProvider VectorBaseFragment<FragmentLocationPreviewBinding>(),
) : VectorBaseFragment<FragmentLocationPreviewBinding>(),
VectorMenuProvider { VectorMenuProvider {
@Inject lateinit var urlMapProvider: UrlMapProvider
@Inject lateinit var locationPinProvider: LocationPinProvider
private val args: LocationSharingArgs by args() private val args: LocationSharingArgs by args()
private val viewModel: LocationPreviewViewModel by fragmentViewModel() private val viewModel: LocationPreviewViewModel by fragmentViewModel()

View File

@ -33,6 +33,7 @@ import android.webkit.WebViewClient
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.utils.AssetReader import im.vector.app.core.utils.AssetReader
import im.vector.app.databinding.FragmentLoginCaptchaBinding import im.vector.app.databinding.FragmentLoginCaptchaBinding
@ -51,9 +52,11 @@ data class LoginCaptchaFragmentArgument(
/** /**
* In this screen, the user is asked to confirm he is not a robot. * In this screen, the user is asked to confirm he is not a robot.
*/ */
class LoginCaptchaFragment @Inject constructor( @AndroidEntryPoint
private val assetReader: AssetReader class LoginCaptchaFragment :
) : AbstractLoginFragment<FragmentLoginCaptchaBinding>() { AbstractLoginFragment<FragmentLoginCaptchaBinding>() {
@Inject lateinit var assetReader: AssetReader
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginCaptchaBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginCaptchaBinding {
return FragmentLoginCaptchaBinding.inflate(inflater, container, false) return FragmentLoginCaptchaBinding.inflate(inflater, container, false)

View File

@ -28,6 +28,7 @@ import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.Fail import com.airbnb.mvrx.Fail
import com.airbnb.mvrx.Loading import com.airbnb.mvrx.Loading
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.extensions.hidePassword import im.vector.app.core.extensions.hidePassword
@ -41,7 +42,6 @@ import org.matrix.android.sdk.api.failure.Failure
import org.matrix.android.sdk.api.failure.MatrixError import org.matrix.android.sdk.api.failure.MatrixError
import org.matrix.android.sdk.api.failure.isInvalidPassword import org.matrix.android.sdk.api.failure.isInvalidPassword
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
/** /**
* In this screen: * In this screen:
@ -51,7 +51,9 @@ import javax.inject.Inject
* In signup mode: * In signup mode:
* - the user is asked for login and password * - the user is asked for login and password
*/ */
class LoginFragment @Inject constructor() : AbstractSSOLoginFragment<FragmentLoginBinding>() { @AndroidEntryPoint
class LoginFragment :
AbstractSSOLoginFragment<FragmentLoginBinding>() {
private var isSignupMode = false private var isSignupMode = false

View File

@ -29,6 +29,7 @@ import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import com.google.i18n.phonenumbers.NumberParseException import com.google.i18n.phonenumbers.NumberParseException
import com.google.i18n.phonenumbers.PhoneNumberUtil import com.google.i18n.phonenumbers.PhoneNumberUtil
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.extensions.isEmail import im.vector.app.core.extensions.isEmail
@ -41,7 +42,6 @@ import org.matrix.android.sdk.api.auth.registration.RegisterThreePid
import org.matrix.android.sdk.api.failure.Failure import org.matrix.android.sdk.api.failure.Failure
import org.matrix.android.sdk.api.failure.is401 import org.matrix.android.sdk.api.failure.is401
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
enum class TextInputFormFragmentMode { enum class TextInputFormFragmentMode {
SetEmail, SetEmail,
@ -59,7 +59,9 @@ data class LoginGenericTextInputFormFragmentArgument(
/** /**
* In this screen, the user is asked for a text input. * In this screen, the user is asked for a text input.
*/ */
class LoginGenericTextInputFormFragment @Inject constructor() : AbstractLoginFragment<FragmentLoginGenericTextInputFormBinding>() { @AndroidEntryPoint
class LoginGenericTextInputFormFragment :
AbstractLoginFragment<FragmentLoginGenericTextInputFormBinding>() {
private val params: LoginGenericTextInputFormFragmentArgument by args() private val params: LoginGenericTextInputFormFragmentArgument by args()

View File

@ -24,6 +24,7 @@ import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.Fail import com.airbnb.mvrx.Fail
import com.airbnb.mvrx.Loading import com.airbnb.mvrx.Loading
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.extensions.hidePassword import im.vector.app.core.extensions.hidePassword
@ -36,12 +37,13 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
/** /**
* In this screen, the user is asked for email and new password to reset his password. * In this screen, the user is asked for email and new password to reset his password.
*/ */
class LoginResetPasswordFragment @Inject constructor() : AbstractLoginFragment<FragmentLoginResetPasswordBinding>() { @AndroidEntryPoint
class LoginResetPasswordFragment :
AbstractLoginFragment<FragmentLoginResetPasswordBinding>() {
// Show warning only once // Show warning only once
private var showWarning = true private var showWarning = true

View File

@ -22,15 +22,17 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.Fail import com.airbnb.mvrx.Fail
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.databinding.FragmentLoginResetPasswordMailConfirmationBinding import im.vector.app.databinding.FragmentLoginResetPasswordMailConfirmationBinding
import org.matrix.android.sdk.api.failure.is401 import org.matrix.android.sdk.api.failure.is401
import javax.inject.Inject
/** /**
* In this screen, the user is asked to check their email and to click on a button once it's done. * In this screen, the user is asked to check their email and to click on a button once it's done.
*/ */
class LoginResetPasswordMailConfirmationFragment @Inject constructor() : AbstractLoginFragment<FragmentLoginResetPasswordMailConfirmationBinding>() { @AndroidEntryPoint
class LoginResetPasswordMailConfirmationFragment :
AbstractLoginFragment<FragmentLoginResetPasswordMailConfirmationBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginResetPasswordMailConfirmationBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginResetPasswordMailConfirmationBinding {
return FragmentLoginResetPasswordMailConfirmationBinding.inflate(inflater, container, false) return FragmentLoginResetPasswordMailConfirmationBinding.inflate(inflater, container, false)

View File

@ -20,13 +20,15 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.databinding.FragmentLoginResetPasswordSuccessBinding import im.vector.app.databinding.FragmentLoginResetPasswordSuccessBinding
import javax.inject.Inject
/** /**
* In this screen, we confirm to the user that his password has been reset. * In this screen, we confirm to the user that his password has been reset.
*/ */
class LoginResetPasswordSuccessFragment @Inject constructor() : AbstractLoginFragment<FragmentLoginResetPasswordSuccessBinding>() { @AndroidEntryPoint
class LoginResetPasswordSuccessFragment :
AbstractLoginFragment<FragmentLoginResetPasswordSuccessBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginResetPasswordSuccessBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginResetPasswordSuccessBinding {
return FragmentLoginResetPasswordSuccessBinding.inflate(inflater, container, false) return FragmentLoginResetPasswordSuccessBinding.inflate(inflater, container, false)

View File

@ -20,16 +20,18 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.utils.openUrlInChromeCustomTab import im.vector.app.core.utils.openUrlInChromeCustomTab
import im.vector.app.databinding.FragmentLoginServerSelectionBinding import im.vector.app.databinding.FragmentLoginServerSelectionBinding
import me.gujun.android.span.span import me.gujun.android.span.span
import javax.inject.Inject
/** /**
* In this screen, the user will choose between matrix.org, modular or other type of homeserver. * In this screen, the user will choose between matrix.org, modular or other type of homeserver.
*/ */
class LoginServerSelectionFragment @Inject constructor() : AbstractLoginFragment<FragmentLoginServerSelectionBinding>() { @AndroidEntryPoint
class LoginServerSelectionFragment :
AbstractLoginFragment<FragmentLoginServerSelectionBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerSelectionBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerSelectionBinding {
return FragmentLoginServerSelectionBinding.inflate(inflater, container, false) return FragmentLoginServerSelectionBinding.inflate(inflater, container, false)

View File

@ -27,6 +27,7 @@ import androidx.core.view.isInvisible
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.resources.BuildMeta import im.vector.app.core.resources.BuildMeta
@ -43,9 +44,11 @@ import javax.inject.Inject
/** /**
* In this screen, the user is prompted to enter a homeserver url. * In this screen, the user is prompted to enter a homeserver url.
*/ */
class LoginServerUrlFormFragment @Inject constructor( @AndroidEntryPoint
private val buildMeta: BuildMeta, class LoginServerUrlFormFragment :
) : AbstractLoginFragment<FragmentLoginServerUrlFormBinding>() { AbstractLoginFragment<FragmentLoginServerUrlFormBinding>() {
@Inject lateinit var buildMeta: BuildMeta
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlFormBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlFormBinding {
return FragmentLoginServerUrlFormBinding.inflate(inflater, container, false) return FragmentLoginServerUrlFormBinding.inflate(inflater, container, false)

View File

@ -22,16 +22,18 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.toReducedUrl import im.vector.app.core.extensions.toReducedUrl
import im.vector.app.databinding.FragmentLoginSignupSigninSelectionBinding import im.vector.app.databinding.FragmentLoginSignupSigninSelectionBinding
import im.vector.app.features.login.SocialLoginButtonsView.Mode import im.vector.app.features.login.SocialLoginButtonsView.Mode
import javax.inject.Inject
/** /**
* In this screen, the user is asked to sign up or to sign in to the homeserver. * In this screen, the user is asked to sign up or to sign in to the homeserver.
*/ */
class LoginSignUpSignInSelectionFragment @Inject constructor() : AbstractSSOLoginFragment<FragmentLoginSignupSigninSelectionBinding>() { @AndroidEntryPoint
class LoginSignUpSignInSelectionFragment :
AbstractSSOLoginFragment<FragmentLoginSignupSigninSelectionBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSignupSigninSelectionBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSignupSigninSelectionBinding {
return FragmentLoginSignupSigninSelectionBinding.inflate(inflater, container, false) return FragmentLoginSignupSigninSelectionBinding.inflate(inflater, container, false)

View File

@ -23,6 +23,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.resources.BuildMeta import im.vector.app.core.resources.BuildMeta
import im.vector.app.databinding.FragmentLoginSplashBinding import im.vector.app.databinding.FragmentLoginSplashBinding
@ -35,10 +36,12 @@ import javax.inject.Inject
/** /**
* In this screen, the user is viewing an introduction to what he can do with this application. * In this screen, the user is viewing an introduction to what he can do with this application.
*/ */
class LoginSplashFragment @Inject constructor( @AndroidEntryPoint
private val vectorPreferences: VectorPreferences, class LoginSplashFragment :
private val buildMeta: BuildMeta, AbstractLoginFragment<FragmentLoginSplashBinding>() {
) : AbstractLoginFragment<FragmentLoginSplashBinding>() {
@Inject lateinit var vectorPreferences: VectorPreferences
@Inject lateinit var buildMeta: BuildMeta
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSplashBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSplashBinding {
return FragmentLoginSplashBinding.inflate(inflater, container, false) return FragmentLoginSplashBinding.inflate(inflater, container, false)

View File

@ -22,11 +22,11 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.databinding.FragmentLoginWaitForEmailBinding import im.vector.app.databinding.FragmentLoginWaitForEmailBinding
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.matrix.android.sdk.api.failure.is401 import org.matrix.android.sdk.api.failure.is401
import javax.inject.Inject
@Parcelize @Parcelize
data class LoginWaitForEmailFragmentArgument( data class LoginWaitForEmailFragmentArgument(
@ -36,7 +36,9 @@ data class LoginWaitForEmailFragmentArgument(
/** /**
* In this screen, the user is asked to check their emails. * In this screen, the user is asked to check their emails.
*/ */
class LoginWaitForEmailFragment @Inject constructor() : AbstractLoginFragment<FragmentLoginWaitForEmailBinding>() { @AndroidEntryPoint
class LoginWaitForEmailFragment :
AbstractLoginFragment<FragmentLoginWaitForEmailBinding>() {
private val params: LoginWaitForEmailFragmentArgument by args() private val params: LoginWaitForEmailFragmentArgument by args()

View File

@ -32,6 +32,7 @@ import android.webkit.WebView
import android.webkit.WebViewClient import android.webkit.WebViewClient
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.utils.AssetReader import im.vector.app.core.utils.AssetReader
import im.vector.app.databinding.FragmentLoginWebBinding import im.vector.app.databinding.FragmentLoginWebBinding
@ -47,9 +48,11 @@ import javax.inject.Inject
* This screen is displayed when the application does not support login flow or registration flow * This screen is displayed when the application does not support login flow or registration flow
* of the homeserver, as a fallback to login or to create an account. * of the homeserver, as a fallback to login or to create an account.
*/ */
class LoginWebFragment @Inject constructor( @AndroidEntryPoint
private val assetReader: AssetReader class LoginWebFragment :
) : AbstractLoginFragment<FragmentLoginWebBinding>() { AbstractLoginFragment<FragmentLoginWebBinding>() {
@Inject lateinit var assetReader: AssetReader
private val softLogoutViewModel: SoftLogoutViewModel by activityViewModel() private val softLogoutViewModel: SoftLogoutViewModel by activityViewModel()

View File

@ -42,11 +42,12 @@ data class LoginTermsFragmentArgument(
/** /**
* LoginTermsFragment displays the list of policies the user has to accept. * LoginTermsFragment displays the list of policies the user has to accept.
*/ */
class LoginTermsFragment @Inject constructor( class LoginTermsFragment :
private val policyController: PolicyController AbstractLoginFragment<FragmentLoginTermsBinding>(),
) : AbstractLoginFragment<FragmentLoginTermsBinding>(),
PolicyController.PolicyControllerListener { PolicyController.PolicyControllerListener {
@Inject lateinit var policyController: PolicyController
private val params: LoginTermsFragmentArgument by args() private val params: LoginTermsFragmentArgument by args()
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginTermsBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginTermsBinding {

View File

@ -28,6 +28,7 @@ import com.airbnb.mvrx.Success
import com.airbnb.mvrx.Uninitialized import com.airbnb.mvrx.Uninitialized
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.setTextOrHide import im.vector.app.core.extensions.setTextOrHide
import im.vector.app.core.platform.ButtonStateView import im.vector.app.core.platform.ButtonStateView
@ -38,10 +39,12 @@ import org.matrix.android.sdk.api.session.room.model.Membership
import org.matrix.android.sdk.api.session.room.model.RoomType import org.matrix.android.sdk.api.session.room.model.RoomType
import javax.inject.Inject import javax.inject.Inject
class MatrixToRoomSpaceFragment @Inject constructor( @AndroidEntryPoint
private val avatarRenderer: AvatarRenderer, class MatrixToRoomSpaceFragment :
private val spaceCardRenderer: SpaceCardRenderer VectorBaseFragment<FragmentMatrixToRoomSpaceCardBinding>() {
) : VectorBaseFragment<FragmentMatrixToRoomSpaceCardBinding>() {
@Inject lateinit var avatarRenderer: AvatarRenderer
@Inject lateinit var spaceCardRenderer: SpaceCardRenderer
private val sharedViewModel: MatrixToBottomSheetViewModel by parentFragmentViewModel() private val sharedViewModel: MatrixToBottomSheetViewModel by parentFragmentViewModel()

View File

@ -28,15 +28,18 @@ import com.airbnb.mvrx.Success
import com.airbnb.mvrx.Uninitialized import com.airbnb.mvrx.Uninitialized
import com.airbnb.mvrx.parentFragmentViewModel import com.airbnb.mvrx.parentFragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.setTextOrHide import im.vector.app.core.extensions.setTextOrHide
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentMatrixToUserCardBinding import im.vector.app.databinding.FragmentMatrixToUserCardBinding
import im.vector.app.features.home.AvatarRenderer import im.vector.app.features.home.AvatarRenderer
import javax.inject.Inject import javax.inject.Inject
class MatrixToUserFragment @Inject constructor( @AndroidEntryPoint
private val avatarRenderer: AvatarRenderer class MatrixToUserFragment :
) : VectorBaseFragment<FragmentMatrixToUserCardBinding>() { VectorBaseFragment<FragmentMatrixToUserCardBinding>() {
@Inject lateinit var avatarRenderer: AvatarRenderer
private val sharedViewModel: MatrixToBottomSheetViewModel by parentFragmentViewModel() private val sharedViewModel: MatrixToBottomSheetViewModel by parentFragmentViewModel()

View File

@ -23,6 +23,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.text.toSpannable import androidx.core.text.toSpannable
import androidx.core.view.isVisible import androidx.core.view.isVisible
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.animations.play import im.vector.app.core.animations.play
import im.vector.app.core.di.ActiveSessionHolder import im.vector.app.core.di.ActiveSessionHolder
@ -34,9 +35,11 @@ import im.vector.app.features.onboarding.OnboardingViewEvents
import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.OnboardingViewState
import javax.inject.Inject import javax.inject.Inject
class FtueAuthAccountCreatedFragment @Inject constructor( @AndroidEntryPoint
private val activeSessionHolder: ActiveSessionHolder class FtueAuthAccountCreatedFragment :
) : AbstractFtueAuthFragment<FragmentFtueAccountCreatedBinding>() { AbstractFtueAuthFragment<FragmentFtueAccountCreatedBinding>() {
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
private var hasPlayedConfetti = false private var hasPlayedConfetti = false

View File

@ -24,6 +24,7 @@ import android.view.ViewGroup
import android.view.ViewStub import android.view.ViewStub
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.crawlCausesFor import im.vector.app.core.extensions.crawlCausesFor
import im.vector.app.databinding.FragmentFtueLoginCaptchaBinding import im.vector.app.databinding.FragmentFtueLoginCaptchaBinding
@ -43,9 +44,11 @@ data class FtueAuthCaptchaFragmentArgument(
/** /**
* In this screen, the user is asked to confirm they are not a robot. * In this screen, the user is asked to confirm they are not a robot.
*/ */
class FtueAuthCaptchaFragment @Inject constructor( @AndroidEntryPoint
private val captchaWebview: CaptchaWebview class FtueAuthCaptchaFragment :
) : AbstractFtueAuthFragment<FragmentFtueLoginCaptchaBinding>() { AbstractFtueAuthFragment<FragmentFtueLoginCaptchaBinding>() {
@Inject lateinit var captchaWebview: CaptchaWebview
private val params: FtueAuthCaptchaFragmentArgument by args() private val params: FtueAuthCaptchaFragmentArgument by args()
private var webViewBinding: ViewStubWebviewBinding? = null private var webViewBinding: ViewStubWebviewBinding? = null

View File

@ -22,15 +22,17 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.hasContent import im.vector.app.core.extensions.hasContent
import im.vector.app.core.platform.SimpleTextWatcher import im.vector.app.core.platform.SimpleTextWatcher
import im.vector.app.databinding.FragmentFtueDisplayNameBinding import im.vector.app.databinding.FragmentFtueDisplayNameBinding
import im.vector.app.features.onboarding.OnboardingAction import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.OnboardingViewEvents import im.vector.app.features.onboarding.OnboardingViewEvents
import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.OnboardingViewState
import javax.inject.Inject
class FtueAuthChooseDisplayNameFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentFtueDisplayNameBinding>() { @AndroidEntryPoint
class FtueAuthChooseDisplayNameFragment :
AbstractFtueAuthFragment<FragmentFtueDisplayNameBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueDisplayNameBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueDisplayNameBinding {
return FragmentFtueDisplayNameBinding.inflate(inflater, container, false) return FragmentFtueDisplayNameBinding.inflate(inflater, container, false)

View File

@ -24,6 +24,7 @@ import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.core.view.isInvisible import androidx.core.view.isInvisible
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.di.ActiveSessionHolder import im.vector.app.core.di.ActiveSessionHolder
import im.vector.app.core.dialogs.GalleryOrCameraDialogHelper import im.vector.app.core.dialogs.GalleryOrCameraDialogHelper
@ -38,11 +39,14 @@ import im.vector.app.features.onboarding.OnboardingViewState
import org.matrix.android.sdk.api.util.MatrixItem import org.matrix.android.sdk.api.util.MatrixItem
import javax.inject.Inject import javax.inject.Inject
class FtueAuthChooseProfilePictureFragment @Inject constructor( @AndroidEntryPoint
private val activeSessionHolder: ActiveSessionHolder, class FtueAuthChooseProfilePictureFragment :
colorProvider: ColorProvider, AbstractFtueAuthFragment<FragmentFtueProfilePictureBinding>(),
clock: Clock, GalleryOrCameraDialogHelper.Listener {
) : AbstractFtueAuthFragment<FragmentFtueProfilePictureBinding>(), GalleryOrCameraDialogHelper.Listener {
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
@Inject lateinit var colorProvider: ColorProvider
@Inject lateinit var clock: Clock
private val galleryOrCameraDialogHelper = GalleryOrCameraDialogHelper(this, colorProvider, clock) private val galleryOrCameraDialogHelper = GalleryOrCameraDialogHelper(this, colorProvider, clock)
private val avatarRenderer: AvatarRenderer by lazy { requireContext().singletonEntryPoint().avatarRenderer() } private val avatarRenderer: AvatarRenderer by lazy { requireContext().singletonEntryPoint().avatarRenderer() }

View File

@ -24,6 +24,7 @@ import android.view.ViewGroup
import androidx.autofill.HintConstants import androidx.autofill.HintConstants
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.clearErrorOnChange import im.vector.app.core.extensions.clearErrorOnChange
import im.vector.app.core.extensions.content import im.vector.app.core.extensions.content
@ -48,10 +49,12 @@ import kotlinx.coroutines.flow.launchIn
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject import javax.inject.Inject
class FtueAuthCombinedLoginFragment @Inject constructor( @AndroidEntryPoint
private val loginFieldsValidation: LoginFieldsValidation, class FtueAuthCombinedLoginFragment :
private val loginErrorParser: LoginErrorParser AbstractSSOFtueAuthFragment<FragmentFtueCombinedLoginBinding>() {
) : AbstractSSOFtueAuthFragment<FragmentFtueCombinedLoginBinding>() {
@Inject lateinit var loginFieldsValidation: LoginFieldsValidation
@Inject lateinit var loginErrorParser: LoginErrorParser
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueCombinedLoginBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueCombinedLoginBinding {
return FragmentFtueCombinedLoginBinding.inflate(inflater, container, false) return FragmentFtueCombinedLoginBinding.inflate(inflater, container, false)

View File

@ -27,6 +27,7 @@ import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.clearErrorOnChange import im.vector.app.core.extensions.clearErrorOnChange
import im.vector.app.core.extensions.content import im.vector.app.core.extensions.content
@ -60,11 +61,12 @@ import org.matrix.android.sdk.api.failure.isRegistrationDisabled
import org.matrix.android.sdk.api.failure.isUsernameInUse import org.matrix.android.sdk.api.failure.isUsernameInUse
import org.matrix.android.sdk.api.failure.isWeakPassword import org.matrix.android.sdk.api.failure.isWeakPassword
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
private const val MINIMUM_PASSWORD_LENGTH = 8 private const val MINIMUM_PASSWORD_LENGTH = 8
class FtueAuthCombinedRegisterFragment @Inject constructor() : AbstractSSOFtueAuthFragment<FragmentFtueCombinedRegisterBinding>() { @AndroidEntryPoint
class FtueAuthCombinedRegisterFragment :
AbstractSSOFtueAuthFragment<FragmentFtueCombinedRegisterBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueCombinedRegisterBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueCombinedRegisterBinding {
return FragmentFtueCombinedRegisterBinding.inflate(inflater, container, false) return FragmentFtueCombinedRegisterBinding.inflate(inflater, container, false)

View File

@ -20,6 +20,7 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.associateContentStateWith import im.vector.app.core.extensions.associateContentStateWith
import im.vector.app.core.extensions.clearErrorOnChange import im.vector.app.core.extensions.clearErrorOnChange
@ -37,9 +38,10 @@ import im.vector.app.features.onboarding.OnboardingFlow
import im.vector.app.features.onboarding.OnboardingViewEvents import im.vector.app.features.onboarding.OnboardingViewEvents
import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.OnboardingViewState
import org.matrix.android.sdk.api.failure.isHomeserverUnavailable import org.matrix.android.sdk.api.failure.isHomeserverUnavailable
import javax.inject.Inject
class FtueAuthCombinedServerSelectionFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentFtueServerSelectionCombinedBinding>() { @AndroidEntryPoint
class FtueAuthCombinedServerSelectionFragment :
AbstractFtueAuthFragment<FragmentFtueServerSelectionCombinedBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueServerSelectionCombinedBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueServerSelectionCombinedBinding {
return FragmentFtueServerSelectionCombinedBinding.inflate(inflater, container, false) return FragmentFtueServerSelectionCombinedBinding.inflate(inflater, container, false)

View File

@ -20,6 +20,7 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.associateContentStateWith import im.vector.app.core.extensions.associateContentStateWith
import im.vector.app.core.extensions.autofillEmail import im.vector.app.core.extensions.autofillEmail
@ -35,9 +36,10 @@ import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.OnboardingViewState
import im.vector.app.features.onboarding.RegisterAction import im.vector.app.features.onboarding.RegisterAction
import org.matrix.android.sdk.api.auth.registration.RegisterThreePid import org.matrix.android.sdk.api.auth.registration.RegisterThreePid
import javax.inject.Inject
class FtueAuthEmailEntryFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentFtueEmailInputBinding>() { @AndroidEntryPoint
class FtueAuthEmailEntryFragment :
AbstractFtueAuthFragment<FragmentFtueEmailInputBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueEmailInputBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueEmailInputBinding {
return FragmentFtueEmailInputBinding.inflate(inflater, container, false) return FragmentFtueEmailInputBinding.inflate(inflater, container, false)

View File

@ -29,6 +29,7 @@ import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import com.google.i18n.phonenumbers.NumberParseException import com.google.i18n.phonenumbers.NumberParseException
import com.google.i18n.phonenumbers.PhoneNumberUtil import com.google.i18n.phonenumbers.PhoneNumberUtil
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.extensions.isEmail import im.vector.app.core.extensions.isEmail
@ -44,7 +45,6 @@ import org.matrix.android.sdk.api.auth.registration.RegisterThreePid
import org.matrix.android.sdk.api.failure.Failure import org.matrix.android.sdk.api.failure.Failure
import org.matrix.android.sdk.api.failure.is401 import org.matrix.android.sdk.api.failure.is401
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
@Parcelize @Parcelize
data class FtueAuthGenericTextInputFormFragmentArgument( data class FtueAuthGenericTextInputFormFragmentArgument(
@ -56,7 +56,9 @@ data class FtueAuthGenericTextInputFormFragmentArgument(
/** /**
* In this screen, the user is asked for a text input. * In this screen, the user is asked for a text input.
*/ */
class FtueAuthGenericTextInputFormFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentLoginGenericTextInputFormBinding>() { @AndroidEntryPoint
class FtueAuthGenericTextInputFormFragment :
AbstractFtueAuthFragment<FragmentLoginGenericTextInputFormBinding>() {
private val params: FtueAuthGenericTextInputFormFragmentArgument by args() private val params: FtueAuthGenericTextInputFormFragmentArgument by args()

View File

@ -20,6 +20,7 @@ import android.os.Parcelable
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.databinding.FragmentLoginCaptchaBinding import im.vector.app.databinding.FragmentLoginCaptchaBinding
import im.vector.app.features.onboarding.OnboardingAction import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.OnboardingViewState
@ -35,9 +36,11 @@ data class FtueAuthLegacyStyleCaptchaFragmentArgument(
/** /**
* In this screen, the user is asked to confirm they are not a robot. * In this screen, the user is asked to confirm they are not a robot.
*/ */
class FtueAuthLegacyStyleCaptchaFragment @Inject constructor( @AndroidEntryPoint
private val captchaWebview: CaptchaWebview class FtueAuthLegacyStyleCaptchaFragment :
) : AbstractFtueAuthFragment<FragmentLoginCaptchaBinding>() { AbstractFtueAuthFragment<FragmentLoginCaptchaBinding>() {
@Inject lateinit var captchaWebview: CaptchaWebview
private val params: FtueAuthLegacyStyleCaptchaFragmentArgument by args() private val params: FtueAuthLegacyStyleCaptchaFragmentArgument by args()
private var isWebViewLoaded = false private var isWebViewLoaded = false

View File

@ -21,16 +21,18 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.databinding.FragmentLoginWaitForEmailBinding import im.vector.app.databinding.FragmentLoginWaitForEmailBinding
import im.vector.app.features.onboarding.OnboardingAction import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.RegisterAction import im.vector.app.features.onboarding.RegisterAction
import javax.inject.Inject
/** /**
* In this screen, the user is asked to check their emails. * In this screen, the user is asked to check their emails.
*/ */
class FtueAuthLegacyWaitForEmailFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentLoginWaitForEmailBinding>() { @AndroidEntryPoint
class FtueAuthLegacyWaitForEmailFragment :
AbstractFtueAuthFragment<FragmentLoginWaitForEmailBinding>() {
private val params: FtueAuthWaitForEmailFragmentArgument by args() private val params: FtueAuthWaitForEmailFragmentArgument by args()

View File

@ -28,6 +28,7 @@ import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.extensions.hidePassword import im.vector.app.core.extensions.hidePassword
@ -53,7 +54,6 @@ import org.matrix.android.sdk.api.failure.isRegistrationDisabled
import org.matrix.android.sdk.api.failure.isUsernameInUse import org.matrix.android.sdk.api.failure.isUsernameInUse
import org.matrix.android.sdk.api.failure.isWeakPassword import org.matrix.android.sdk.api.failure.isWeakPassword
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
/** /**
* In this screen: * In this screen:
@ -63,7 +63,9 @@ import javax.inject.Inject
* In signup mode: * In signup mode:
* - the user is asked for login and password * - the user is asked for login and password
*/ */
class FtueAuthLoginFragment @Inject constructor() : AbstractSSOFtueAuthFragment<FragmentLoginBinding>() { @AndroidEntryPoint
class FtueAuthLoginFragment :
AbstractSSOFtueAuthFragment<FragmentLoginBinding>() {
private var isSignupMode = false private var isSignupMode = false

View File

@ -20,12 +20,14 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.databinding.FragmentFtuePersonalizationCompleteBinding import im.vector.app.databinding.FragmentFtuePersonalizationCompleteBinding
import im.vector.app.features.onboarding.OnboardingAction import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.OnboardingViewEvents import im.vector.app.features.onboarding.OnboardingViewEvents
import javax.inject.Inject
class FtueAuthPersonalizationCompleteFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentFtuePersonalizationCompleteBinding>() { @AndroidEntryPoint
class FtueAuthPersonalizationCompleteFragment :
AbstractFtueAuthFragment<FragmentFtuePersonalizationCompleteBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtuePersonalizationCompleteBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtuePersonalizationCompleteBinding {
return FragmentFtuePersonalizationCompleteBinding.inflate(inflater, container, false) return FragmentFtuePersonalizationCompleteBinding.inflate(inflater, container, false)

View File

@ -22,6 +22,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.associateContentStateWith import im.vector.app.core.extensions.associateContentStateWith
import im.vector.app.core.extensions.clearErrorOnChange import im.vector.app.core.extensions.clearErrorOnChange
@ -32,14 +33,15 @@ import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.RegisterAction import im.vector.app.features.onboarding.RegisterAction
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.matrix.android.sdk.api.failure.Failure import org.matrix.android.sdk.api.failure.Failure
import javax.inject.Inject
@Parcelize @Parcelize
data class FtueAuthPhoneConfirmationFragmentArgument( data class FtueAuthPhoneConfirmationFragmentArgument(
val msisdn: String val msisdn: String
) : Parcelable ) : Parcelable
class FtueAuthPhoneConfirmationFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentFtuePhoneConfirmationBinding>() { @AndroidEntryPoint
class FtueAuthPhoneConfirmationFragment :
AbstractFtueAuthFragment<FragmentFtuePhoneConfirmationBinding>() {
private val params: FtueAuthPhoneConfirmationFragmentArgument by args() private val params: FtueAuthPhoneConfirmationFragmentArgument by args()

View File

@ -21,6 +21,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.associateContentStateWith import im.vector.app.core.extensions.associateContentStateWith
import im.vector.app.core.extensions.autofillPhoneNumber import im.vector.app.core.extensions.autofillPhoneNumber
@ -38,9 +39,11 @@ import org.matrix.android.sdk.api.auth.registration.RegisterThreePid
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject import javax.inject.Inject
class FtueAuthPhoneEntryFragment @Inject constructor( @AndroidEntryPoint
private val phoneNumberParser: PhoneNumberParser class FtueAuthPhoneEntryFragment :
) : AbstractFtueAuthFragment<FragmentFtuePhoneInputBinding>() { AbstractFtueAuthFragment<FragmentFtuePhoneInputBinding>() {
@Inject lateinit var phoneNumberParser: PhoneNumberParser
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtuePhoneInputBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtuePhoneInputBinding {
return FragmentFtuePhoneInputBinding.inflate(inflater, container, false) return FragmentFtuePhoneInputBinding.inflate(inflater, container, false)

View File

@ -39,7 +39,8 @@ data class FtueAuthResetPasswordBreakerArgument(
) : Parcelable ) : Parcelable
@AndroidEntryPoint @AndroidEntryPoint
class FtueAuthResetPasswordBreakerFragment : AbstractFtueAuthFragment<FragmentFtueResetPasswordBreakerBinding>() { class FtueAuthResetPasswordBreakerFragment :
AbstractFtueAuthFragment<FragmentFtueResetPasswordBreakerBinding>() {
@Inject lateinit var themeProvider: ThemeProvider @Inject lateinit var themeProvider: ThemeProvider
private val params: FtueAuthResetPasswordBreakerArgument by args() private val params: FtueAuthResetPasswordBreakerArgument by args()

View File

@ -33,7 +33,8 @@ import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.OnboardingViewState
@AndroidEntryPoint @AndroidEntryPoint
class FtueAuthResetPasswordEmailEntryFragment : AbstractFtueAuthFragment<FragmentFtueResetPasswordEmailInputBinding>() { class FtueAuthResetPasswordEmailEntryFragment :
AbstractFtueAuthFragment<FragmentFtueResetPasswordEmailInputBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueResetPasswordEmailInputBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueResetPasswordEmailInputBinding {
return FragmentFtueResetPasswordEmailInputBinding.inflate(inflater, container, false) return FragmentFtueResetPasswordEmailInputBinding.inflate(inflater, container, false)

View File

@ -34,7 +34,8 @@ import im.vector.app.features.onboarding.OnboardingViewState
import org.matrix.android.sdk.api.failure.isMissingEmailVerification import org.matrix.android.sdk.api.failure.isMissingEmailVerification
@AndroidEntryPoint @AndroidEntryPoint
class FtueAuthResetPasswordEntryFragment : AbstractFtueAuthFragment<FragmentFtueResetPasswordInputBinding>() { class FtueAuthResetPasswordEntryFragment :
AbstractFtueAuthFragment<FragmentFtueResetPasswordInputBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueResetPasswordInputBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueResetPasswordInputBinding {
return FragmentFtueResetPasswordInputBinding.inflate(inflater, container, false) return FragmentFtueResetPasswordInputBinding.inflate(inflater, container, false)

View File

@ -22,6 +22,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.extensions.hidePassword import im.vector.app.core.extensions.hidePassword
@ -35,12 +36,13 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import reactivecircus.flowbinding.android.widget.textChanges import reactivecircus.flowbinding.android.widget.textChanges
import javax.inject.Inject
/** /**
* In this screen, the user is asked for email and new password to reset his password. * In this screen, the user is asked for email and new password to reset his password.
*/ */
class FtueAuthResetPasswordFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentLoginResetPasswordBinding>() { @AndroidEntryPoint
class FtueAuthResetPasswordFragment :
AbstractFtueAuthFragment<FragmentLoginResetPasswordBinding>() {
// Show warning only once // Show warning only once
private var showWarning = true private var showWarning = true

View File

@ -21,17 +21,19 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.databinding.FragmentLoginResetPasswordMailConfirmationBinding import im.vector.app.databinding.FragmentLoginResetPasswordMailConfirmationBinding
import im.vector.app.features.onboarding.OnboardingAction import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.OnboardingViewState
import org.matrix.android.sdk.api.failure.is401 import org.matrix.android.sdk.api.failure.is401
import javax.inject.Inject
/** /**
* In this screen, the user is asked to check their email and to click on a button once it's done. * In this screen, the user is asked to check their email and to click on a button once it's done.
*/ */
class FtueAuthResetPasswordMailConfirmationFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentLoginResetPasswordMailConfirmationBinding>() { @AndroidEntryPoint
class FtueAuthResetPasswordMailConfirmationFragment :
AbstractFtueAuthFragment<FragmentLoginResetPasswordMailConfirmationBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginResetPasswordMailConfirmationBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginResetPasswordMailConfirmationBinding {
return FragmentLoginResetPasswordMailConfirmationBinding.inflate(inflater, container, false) return FragmentLoginResetPasswordMailConfirmationBinding.inflate(inflater, container, false)

View File

@ -20,15 +20,17 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.databinding.FragmentLoginResetPasswordSuccessBinding import im.vector.app.databinding.FragmentLoginResetPasswordSuccessBinding
import im.vector.app.features.onboarding.OnboardingAction import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.OnboardingViewEvents import im.vector.app.features.onboarding.OnboardingViewEvents
import javax.inject.Inject
/** /**
* In this screen, we confirm to the user that his password has been reset. * In this screen, we confirm to the user that his password has been reset.
*/ */
class FtueAuthResetPasswordSuccessFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentLoginResetPasswordSuccessBinding>() { @AndroidEntryPoint
class FtueAuthResetPasswordSuccessFragment :
AbstractFtueAuthFragment<FragmentLoginResetPasswordSuccessBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginResetPasswordSuccessBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginResetPasswordSuccessBinding {
return FragmentLoginResetPasswordSuccessBinding.inflate(inflater, container, false) return FragmentLoginResetPasswordSuccessBinding.inflate(inflater, container, false)

View File

@ -20,6 +20,7 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.utils.openUrlInChromeCustomTab import im.vector.app.core.utils.openUrlInChromeCustomTab
import im.vector.app.databinding.FragmentLoginServerSelectionBinding import im.vector.app.databinding.FragmentLoginServerSelectionBinding
@ -29,12 +30,13 @@ import im.vector.app.features.login.SignMode
import im.vector.app.features.onboarding.OnboardingAction import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.OnboardingViewState
import me.gujun.android.span.span import me.gujun.android.span.span
import javax.inject.Inject
/** /**
* In this screen, the user will choose between matrix.org, modular or other type of homeserver. * In this screen, the user will choose between matrix.org, modular or other type of homeserver.
*/ */
class FtueAuthServerSelectionFragment @Inject constructor() : AbstractFtueAuthFragment<FragmentLoginServerSelectionBinding>() { @AndroidEntryPoint
class FtueAuthServerSelectionFragment :
AbstractFtueAuthFragment<FragmentLoginServerSelectionBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerSelectionBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerSelectionBinding {
return FragmentLoginServerSelectionBinding.inflate(inflater, container, false) return FragmentLoginServerSelectionBinding.inflate(inflater, container, false)

View File

@ -27,6 +27,7 @@ import androidx.core.view.isInvisible
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.resources.BuildMeta import im.vector.app.core.resources.BuildMeta
@ -47,9 +48,11 @@ import javax.inject.Inject
/** /**
* In this screen, the user is prompted to enter a homeserver url. * In this screen, the user is prompted to enter a homeserver url.
*/ */
class FtueAuthServerUrlFormFragment @Inject constructor( @AndroidEntryPoint
private val buildMeta: BuildMeta, class FtueAuthServerUrlFormFragment :
) : AbstractFtueAuthFragment<FragmentLoginServerUrlFormBinding>() { AbstractFtueAuthFragment<FragmentLoginServerUrlFormBinding>() {
@Inject lateinit var buildMeta: BuildMeta
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlFormBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginServerUrlFormBinding {
return FragmentLoginServerUrlFormBinding.inflate(inflater, container, false) return FragmentLoginServerUrlFormBinding.inflate(inflater, container, false)

View File

@ -23,6 +23,7 @@ import android.view.ViewGroup
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.toReducedUrl import im.vector.app.core.extensions.toReducedUrl
import im.vector.app.databinding.FragmentLoginSignupSigninSelectionBinding import im.vector.app.databinding.FragmentLoginSignupSigninSelectionBinding
@ -34,12 +35,13 @@ import im.vector.app.features.login.SocialLoginButtonsView.Mode
import im.vector.app.features.login.render import im.vector.app.features.login.render
import im.vector.app.features.onboarding.OnboardingAction import im.vector.app.features.onboarding.OnboardingAction
import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.OnboardingViewState
import javax.inject.Inject
/** /**
* In this screen, the user is asked to sign up or to sign in to the homeserver. * In this screen, the user is asked to sign up or to sign in to the homeserver.
*/ */
class FtueAuthSignUpSignInSelectionFragment @Inject constructor() : AbstractSSOFtueAuthFragment<FragmentLoginSignupSigninSelectionBinding>() { @AndroidEntryPoint
class FtueAuthSignUpSignInSelectionFragment :
AbstractSSOFtueAuthFragment<FragmentLoginSignupSigninSelectionBinding>() {
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSignupSigninSelectionBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginSignupSigninSelectionBinding {
return FragmentLoginSignupSigninSelectionBinding.inflate(inflater, container, false) return FragmentLoginSignupSigninSelectionBinding.inflate(inflater, container, false)

View File

@ -27,6 +27,7 @@ import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.incrementByOneAndWrap import im.vector.app.core.extensions.incrementByOneAndWrap
import im.vector.app.core.extensions.setCurrentItem import im.vector.app.core.extensions.setCurrentItem
@ -44,13 +45,15 @@ import javax.inject.Inject
private const val CAROUSEL_ROTATION_DELAY_MS = 5000L private const val CAROUSEL_ROTATION_DELAY_MS = 5000L
private const val CAROUSEL_TRANSITION_TIME_MS = 500L private const val CAROUSEL_TRANSITION_TIME_MS = 500L
class FtueAuthSplashCarouselFragment @Inject constructor( @AndroidEntryPoint
private val vectorPreferences: VectorPreferences, class FtueAuthSplashCarouselFragment :
private val vectorFeatures: VectorFeatures, AbstractFtueAuthFragment<FragmentFtueSplashCarouselBinding>() {
private val carouselController: SplashCarouselController,
private val carouselStateFactory: SplashCarouselStateFactory, @Inject lateinit var vectorPreferences: VectorPreferences
private val buildMeta: BuildMeta, @Inject lateinit var vectorFeatures: VectorFeatures
) : AbstractFtueAuthFragment<FragmentFtueSplashCarouselBinding>() { @Inject lateinit var carouselController: SplashCarouselController
@Inject lateinit var carouselStateFactory: SplashCarouselStateFactory
@Inject lateinit var buildMeta: BuildMeta
private var tabLayoutMediator: TabLayoutMediator? = null private var tabLayoutMediator: TabLayoutMediator? = null

View File

@ -22,6 +22,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.resources.BuildMeta import im.vector.app.core.resources.BuildMeta
import im.vector.app.databinding.FragmentFtueAuthSplashBinding import im.vector.app.databinding.FragmentFtueAuthSplashBinding
@ -34,11 +35,13 @@ import javax.inject.Inject
/** /**
* In this screen, the user is viewing an introduction to what he can do with this application. * In this screen, the user is viewing an introduction to what he can do with this application.
*/ */
class FtueAuthSplashFragment @Inject constructor( @AndroidEntryPoint
private val vectorPreferences: VectorPreferences, class FtueAuthSplashFragment :
private val vectorFeatures: VectorFeatures, AbstractFtueAuthFragment<FragmentFtueAuthSplashBinding>() {
private val buildMeta: BuildMeta,
) : AbstractFtueAuthFragment<FragmentFtueAuthSplashBinding>() { @Inject lateinit var vectorPreferences: VectorPreferences
@Inject lateinit var vectorFeatures: VectorFeatures
@Inject lateinit var buildMeta: BuildMeta
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueAuthSplashBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueAuthSplashBinding {
return FragmentFtueAuthSplashBinding.inflate(inflater, container, false) return FragmentFtueAuthSplashBinding.inflate(inflater, container, false)

View File

@ -29,6 +29,7 @@ import androidx.annotation.DrawableRes
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.isGone import androidx.core.view.isGone
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.getResTintedDrawable import im.vector.app.core.extensions.getResTintedDrawable
import im.vector.app.core.extensions.getTintedDrawable import im.vector.app.core.extensions.getTintedDrawable
@ -45,10 +46,12 @@ import javax.inject.Inject
private const val DARK_MODE_ICON_BACKGROUND_ALPHA = 0.30f private const val DARK_MODE_ICON_BACKGROUND_ALPHA = 0.30f
private const val LIGHT_MODE_ICON_BACKGROUND_ALPHA = 0.15f private const val LIGHT_MODE_ICON_BACKGROUND_ALPHA = 0.15f
class FtueAuthUseCaseFragment @Inject constructor( @AndroidEntryPoint
private val themeProvider: ThemeProvider, class FtueAuthUseCaseFragment :
private val vectorFeatures: VectorFeatures, AbstractFtueAuthFragment<FragmentFtueAuthUseCaseBinding>() {
) : AbstractFtueAuthFragment<FragmentFtueAuthUseCaseBinding>() {
@Inject lateinit var themeProvider: ThemeProvider
@Inject lateinit var vectorFeatures: VectorFeatures
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueAuthUseCaseBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueAuthUseCaseBinding {
return FragmentFtueAuthUseCaseBinding.inflate(inflater, container, false) return FragmentFtueAuthUseCaseBinding.inflate(inflater, container, false)

View File

@ -23,6 +23,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isInvisible import androidx.core.view.isInvisible
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.utils.colorTerminatingFullStop import im.vector.app.core.utils.colorTerminatingFullStop
import im.vector.app.databinding.FragmentFtueWaitForEmailVerificationBinding import im.vector.app.databinding.FragmentFtueWaitForEmailVerificationBinding
@ -42,9 +43,11 @@ data class FtueAuthWaitForEmailFragmentArgument(
/** /**
* In this screen, the user is asked to check their emails. * In this screen, the user is asked to check their emails.
*/ */
class FtueAuthWaitForEmailFragment @Inject constructor( @AndroidEntryPoint
private val themeProvider: ThemeProvider class FtueAuthWaitForEmailFragment :
) : AbstractFtueAuthFragment<FragmentFtueWaitForEmailVerificationBinding>() { AbstractFtueAuthFragment<FragmentFtueWaitForEmailVerificationBinding>() {
@Inject lateinit var themeProvider: ThemeProvider
private val params: FtueAuthWaitForEmailFragmentArgument by args() private val params: FtueAuthWaitForEmailFragmentArgument by args()
private var inferHasLeftAndReturnedToScreen = false private var inferHasLeftAndReturnedToScreen = false

View File

@ -31,6 +31,7 @@ import android.webkit.SslErrorHandler
import android.webkit.WebView import android.webkit.WebView
import android.webkit.WebViewClient import android.webkit.WebViewClient
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.utils.AssetReader import im.vector.app.core.utils.AssetReader
import im.vector.app.databinding.FragmentLoginWebBinding import im.vector.app.databinding.FragmentLoginWebBinding
@ -49,9 +50,11 @@ import javax.inject.Inject
* This screen is displayed when the application does not support login flow or registration flow * This screen is displayed when the application does not support login flow or registration flow
* of the homeserver, as a fallback to login or to create an account. * of the homeserver, as a fallback to login or to create an account.
*/ */
class FtueAuthWebFragment @Inject constructor( @AndroidEntryPoint
private val assetReader: AssetReader class FtueAuthWebFragment :
) : AbstractFtueAuthFragment<FragmentLoginWebBinding>() { AbstractFtueAuthFragment<FragmentLoginWebBinding>() {
@Inject lateinit var assetReader: AssetReader
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginWebBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginWebBinding {
return FragmentLoginWebBinding.inflate(inflater, container, false) return FragmentLoginWebBinding.inflate(inflater, container, false)

View File

@ -22,6 +22,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.extensions.toReducedUrl import im.vector.app.core.extensions.toReducedUrl
@ -46,11 +47,13 @@ data class FtueAuthTermsLegacyStyleFragmentArgument(
/** /**
* LoginTermsFragment displays the list of policies the user has to accept. * LoginTermsFragment displays the list of policies the user has to accept.
*/ */
class FtueAuthLegacyStyleTermsFragment @Inject constructor( @AndroidEntryPoint
private val policyController: PolicyController class FtueAuthLegacyStyleTermsFragment :
) : AbstractFtueAuthFragment<FragmentLoginTermsBinding>(), AbstractFtueAuthFragment<FragmentLoginTermsBinding>(),
PolicyController.PolicyControllerListener { PolicyController.PolicyControllerListener {
@Inject lateinit var policyController: PolicyController
private val params: FtueAuthTermsLegacyStyleFragmentArgument by args() private val params: FtueAuthTermsLegacyStyleFragmentArgument by args()
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginTermsBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentLoginTermsBinding {

View File

@ -23,6 +23,7 @@ import android.view.ViewGroup
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.doOnLayout import androidx.core.view.doOnLayout
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.cleanup
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
@ -43,11 +44,13 @@ import kotlin.math.roundToInt
/** /**
* LoginTermsFragment displays the list of policies the user has to accept. * LoginTermsFragment displays the list of policies the user has to accept.
*/ */
class FtueAuthTermsFragment @Inject constructor( @AndroidEntryPoint
private val policyController: PolicyController class FtueAuthTermsFragment :
) : AbstractFtueAuthFragment<FragmentFtueLoginTermsBinding>(), AbstractFtueAuthFragment<FragmentFtueLoginTermsBinding>(),
PolicyController.PolicyControllerListener { PolicyController.PolicyControllerListener {
@Inject lateinit var policyController: PolicyController
private val params: FtueAuthTermsLegacyStyleFragmentArgument by args() private val params: FtueAuthTermsLegacyStyleFragmentArgument by args()
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueLoginTermsBinding { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueLoginTermsBinding {

View File

@ -26,6 +26,7 @@ import android.widget.Toast
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import com.airbnb.mvrx.asMavericksArgs import com.airbnb.mvrx.asMavericksArgs
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.replaceFragment import im.vector.app.core.extensions.replaceFragment
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -49,11 +50,13 @@ data class PinArgs(
val pinMode: PinMode val pinMode: PinMode
) : Parcelable ) : Parcelable
class PinFragment @Inject constructor( @AndroidEntryPoint
private val pinCodeStore: PinCodeStore, class PinFragment :
private val vectorPreferences: VectorPreferences, VectorBaseFragment<FragmentPinBinding>() {
private val defaultConfiguration: LockScreenConfiguration,
) : VectorBaseFragment<FragmentPinBinding>() { @Inject lateinit var pinCodeStore: PinCodeStore
@Inject lateinit var vectorPreferences: VectorPreferences
@Inject lateinit var defaultConfiguration: LockScreenConfiguration
private val fragmentArgs: PinArgs by args() private val fragmentArgs: PinArgs by args()

View File

@ -35,7 +35,8 @@ import im.vector.app.features.pin.lockscreen.configuration.LockScreenMode
import im.vector.app.features.pin.lockscreen.views.LockScreenCodeView import im.vector.app.features.pin.lockscreen.views.LockScreenCodeView
@AndroidEntryPoint @AndroidEntryPoint
class LockScreenFragment : VectorBaseFragment<FragmentLockScreenBinding>() { class LockScreenFragment :
VectorBaseFragment<FragmentLockScreenBinding>() {
var lockScreenListener: LockScreenListener? = null var lockScreenListener: LockScreenListener? = null
var onLeftButtonClickedListener: View.OnClickListener? = null var onLeftButtonClickedListener: View.OnClickListener? = null

View File

@ -25,6 +25,7 @@ import androidx.core.view.isVisible
import com.airbnb.mvrx.activityViewModel import com.airbnb.mvrx.activityViewModel
import com.airbnb.mvrx.args import com.airbnb.mvrx.args
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
@ -42,9 +43,12 @@ data class CreatePollArgs(
val mode: PollMode val mode: PollMode
) : Parcelable ) : Parcelable
class CreatePollFragment @Inject constructor( @AndroidEntryPoint
private val controller: CreatePollController class CreatePollFragment :
) : VectorBaseFragment<FragmentCreatePollBinding>(), CreatePollController.Callback { VectorBaseFragment<FragmentCreatePollBinding>(),
CreatePollController.Callback {
@Inject lateinit var controller: CreatePollController
private val viewModel: CreatePollViewModel by activityViewModel() private val viewModel: CreatePollViewModel by activityViewModel()
private val args: CreatePollArgs by args() private val args: CreatePollArgs by args()

View File

@ -30,6 +30,7 @@ import com.airbnb.mvrx.args
import com.google.zxing.BarcodeFormat import com.google.zxing.BarcodeFormat
import com.google.zxing.Result import com.google.zxing.Result
import com.google.zxing.ResultMetadataType import com.google.zxing.ResultMetadataType
import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.hideKeyboard
import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.extensions.registerStartForActivityResult
@ -45,7 +46,6 @@ import im.vector.lib.multipicker.utils.ImageUtils
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import me.dm7.barcodescanner.zxing.ZXingScannerView import me.dm7.barcodescanner.zxing.ZXingScannerView
import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.api.extensions.tryOrNull
import javax.inject.Inject
@Parcelize @Parcelize
data class QrScannerArgs( data class QrScannerArgs(
@ -53,7 +53,10 @@ data class QrScannerArgs(
@StringRes val titleRes: Int @StringRes val titleRes: Int
) : Parcelable ) : Parcelable
class QrCodeScannerFragment @Inject constructor() : VectorBaseFragment<FragmentQrCodeScannerBinding>(), ZXingScannerView.ResultHandler { @AndroidEntryPoint
class QrCodeScannerFragment :
VectorBaseFragment<FragmentQrCodeScannerBinding>(),
ZXingScannerView.ResultHandler {
private val qrViewModel: QrCodeScannerViewModel by activityViewModel() private val qrViewModel: QrCodeScannerViewModel by activityViewModel()
private val scannerArgs: QrScannerArgs by args() private val scannerArgs: QrScannerArgs by args()

Some files were not shown because too many files have changed in this diff Show More