Merge pull request #7239 from vector-im/feature/bma/arch_fixes
Feature/bma/arch fixes
This commit is contained in:
commit
f3309692a4
@ -26,7 +26,6 @@ import androidx.core.app.Person
|
|||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
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.extensions.registerStartForActivityResult
|
import im.vector.app.core.extensions.registerStartForActivityResult
|
||||||
import im.vector.app.core.platform.VectorBaseActivity
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
import im.vector.app.core.time.Clock
|
import im.vector.app.core.time.Clock
|
||||||
@ -59,11 +58,7 @@ class DebugMenuActivity : VectorBaseActivity<ActivityDebugMenuBinding>() {
|
|||||||
|
|
||||||
override fun getBinding() = ActivityDebugMenuBinding.inflate(layoutInflater)
|
override fun getBinding() = ActivityDebugMenuBinding.inflate(layoutInflater)
|
||||||
|
|
||||||
@Inject
|
@Inject lateinit var clock: Clock
|
||||||
lateinit var activeSessionHolder: ActiveSessionHolder
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
lateinit var clock: Clock
|
|
||||||
|
|
||||||
private lateinit var buffer: ByteArray
|
private lateinit var buffer: ByteArray
|
||||||
|
|
||||||
|
@ -56,6 +56,7 @@ import im.vector.app.core.di.ActiveSessionHolder
|
|||||||
import im.vector.app.core.di.ActivityEntryPoint
|
import im.vector.app.core.di.ActivityEntryPoint
|
||||||
import im.vector.app.core.dialogs.DialogLocker
|
import im.vector.app.core.dialogs.DialogLocker
|
||||||
import im.vector.app.core.dialogs.UnrecognizedCertificateDialog
|
import im.vector.app.core.dialogs.UnrecognizedCertificateDialog
|
||||||
|
import im.vector.app.core.error.ErrorFormatter
|
||||||
import im.vector.app.core.error.fatalError
|
import im.vector.app.core.error.fatalError
|
||||||
import im.vector.app.core.extensions.observeEvent
|
import im.vector.app.core.extensions.observeEvent
|
||||||
import im.vector.app.core.extensions.observeNotNull
|
import im.vector.app.core.extensions.observeNotNull
|
||||||
@ -105,7 +106,7 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||||||
|
|
||||||
protected var analyticsScreenName: MobileScreen.ScreenName? = null
|
protected var analyticsScreenName: MobileScreen.ScreenName? = null
|
||||||
|
|
||||||
protected lateinit var analyticsTracker: AnalyticsTracker
|
@Inject lateinit var analyticsTracker: AnalyticsTracker
|
||||||
|
|
||||||
/* ==========================================================================================
|
/* ==========================================================================================
|
||||||
* View
|
* View
|
||||||
@ -149,27 +150,23 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||||||
* ========================================================================================== */
|
* ========================================================================================== */
|
||||||
|
|
||||||
private lateinit var configurationViewModel: ConfigurationViewModel
|
private lateinit var configurationViewModel: ConfigurationViewModel
|
||||||
private lateinit var sessionListener: SessionListener
|
|
||||||
protected lateinit var bugReporter: BugReporter
|
|
||||||
private lateinit var pinLocker: PinLocker
|
|
||||||
|
|
||||||
|
@Inject lateinit var sessionListener: SessionListener
|
||||||
|
@Inject lateinit var bugReporter: BugReporter
|
||||||
|
@Inject lateinit var pinLocker: PinLocker
|
||||||
@Inject lateinit var rageShake: RageShake
|
@Inject lateinit var rageShake: RageShake
|
||||||
@Inject lateinit var buildMeta: BuildMeta
|
@Inject lateinit var buildMeta: BuildMeta
|
||||||
@Inject lateinit var fontScalePreferences: FontScalePreferences
|
@Inject lateinit var fontScalePreferences: FontScalePreferences
|
||||||
@Inject lateinit var vectorLocale: VectorLocaleProvider
|
@Inject lateinit var vectorLocale: VectorLocaleProvider
|
||||||
|
@Inject lateinit var vectorFeatures: VectorFeatures
|
||||||
|
@Inject lateinit var navigator: Navigator
|
||||||
|
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
||||||
|
@Inject lateinit var vectorPreferences: VectorPreferences
|
||||||
|
@Inject lateinit var errorFormatter: ErrorFormatter
|
||||||
|
|
||||||
// For debug only
|
// For debug only
|
||||||
@Inject lateinit var debugReceiver: DebugReceiver
|
@Inject lateinit var debugReceiver: DebugReceiver
|
||||||
|
|
||||||
@Inject
|
|
||||||
lateinit var vectorFeatures: VectorFeatures
|
|
||||||
|
|
||||||
lateinit var navigator: Navigator
|
|
||||||
private set
|
|
||||||
|
|
||||||
private lateinit var activeSessionHolder: ActiveSessionHolder
|
|
||||||
private lateinit var vectorPreferences: VectorPreferences
|
|
||||||
|
|
||||||
// Filter for multiple invalid token error
|
// Filter for multiple invalid token error
|
||||||
private var mainActivityStarted = false
|
private var mainActivityStarted = false
|
||||||
|
|
||||||
@ -205,7 +202,6 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||||||
@CallSuper
|
@CallSuper
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
Timber.i("onCreate Activity ${javaClass.simpleName}")
|
Timber.i("onCreate Activity ${javaClass.simpleName}")
|
||||||
val singletonEntryPoint = singletonEntryPoint()
|
|
||||||
val activityEntryPoint = EntryPointAccessors.fromActivity(this, ActivityEntryPoint::class.java)
|
val activityEntryPoint = EntryPointAccessors.fromActivity(this, ActivityEntryPoint::class.java)
|
||||||
ThemeUtils.setActivityTheme(this, getOtherThemes())
|
ThemeUtils.setActivityTheme(this, getOtherThemes())
|
||||||
viewModelFactory = activityEntryPoint.viewModelFactory()
|
viewModelFactory = activityEntryPoint.viewModelFactory()
|
||||||
@ -213,12 +209,6 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||||||
addOnMultiWindowModeChangedListener(onMultiWindowModeChangedListener)
|
addOnMultiWindowModeChangedListener(onMultiWindowModeChangedListener)
|
||||||
setupMenu()
|
setupMenu()
|
||||||
configurationViewModel = viewModelProvider.get(ConfigurationViewModel::class.java)
|
configurationViewModel = viewModelProvider.get(ConfigurationViewModel::class.java)
|
||||||
bugReporter = singletonEntryPoint.bugReporter()
|
|
||||||
pinLocker = singletonEntryPoint.pinLocker()
|
|
||||||
analyticsTracker = singletonEntryPoint.analyticsTracker()
|
|
||||||
navigator = singletonEntryPoint.navigator()
|
|
||||||
activeSessionHolder = singletonEntryPoint.activeSessionHolder()
|
|
||||||
vectorPreferences = singletonEntryPoint.vectorPreferences()
|
|
||||||
configurationViewModel.activityRestarter.observe(this) {
|
configurationViewModel.activityRestarter.observe(this) {
|
||||||
if (!it.hasBeenHandled) {
|
if (!it.hasBeenHandled) {
|
||||||
// Recreate the Activity because configuration has changed
|
// Recreate the Activity because configuration has changed
|
||||||
@ -230,7 +220,6 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
|
|||||||
navigator.openPinCode(this, pinStartForActivityResult, PinMode.AUTH)
|
navigator.openPinCode(this, pinStartForActivityResult, PinMode.AUTH)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sessionListener = singletonEntryPoint.sessionListener()
|
|
||||||
sessionListener.globalErrorLiveData.observeEvent(this) {
|
sessionListener.globalErrorLiveData.observeEvent(this) {
|
||||||
handleGlobalError(it)
|
handleGlobalError(it)
|
||||||
}
|
}
|
||||||
|
@ -30,8 +30,6 @@ import com.bumptech.glide.Glide
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
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.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.startSyncing
|
import im.vector.app.core.extensions.startSyncing
|
||||||
import im.vector.app.core.extensions.vectorStore
|
import im.vector.app.core.extensions.vectorStore
|
||||||
import im.vector.app.core.platform.VectorBaseActivity
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
@ -42,13 +40,11 @@ import im.vector.app.features.analytics.plan.ViewRoom
|
|||||||
import im.vector.app.features.home.HomeActivity
|
import im.vector.app.features.home.HomeActivity
|
||||||
import im.vector.app.features.home.ShortcutsHandler
|
import im.vector.app.features.home.ShortcutsHandler
|
||||||
import im.vector.app.features.notifications.NotificationDrawerManager
|
import im.vector.app.features.notifications.NotificationDrawerManager
|
||||||
import im.vector.app.features.pin.PinLocker
|
|
||||||
import im.vector.app.features.pin.UnlockedActivity
|
import im.vector.app.features.pin.UnlockedActivity
|
||||||
import im.vector.app.features.pin.lockscreen.crypto.LockScreenKeyRepository
|
import im.vector.app.features.pin.lockscreen.crypto.LockScreenKeyRepository
|
||||||
import im.vector.app.features.pin.lockscreen.pincode.PinCodeHelper
|
import im.vector.app.features.pin.lockscreen.pincode.PinCodeHelper
|
||||||
import im.vector.app.features.popup.PopupAlertManager
|
import im.vector.app.features.popup.PopupAlertManager
|
||||||
import im.vector.app.features.session.VectorSessionStore
|
import im.vector.app.features.session.VectorSessionStore
|
||||||
import im.vector.app.features.settings.VectorPreferences
|
|
||||||
import im.vector.app.features.signout.hard.SignedOutActivity
|
import im.vector.app.features.signout.hard.SignedOutActivity
|
||||||
import im.vector.app.features.start.StartAppAction
|
import im.vector.app.features.start.StartAppAction
|
||||||
import im.vector.app.features.start.StartAppAndroidService
|
import im.vector.app.features.start.StartAppAndroidService
|
||||||
@ -131,13 +127,9 @@ class MainActivity : VectorBaseActivity<ActivityMainBinding>(), UnlockedActivity
|
|||||||
private lateinit var args: MainActivityArgs
|
private lateinit var args: MainActivityArgs
|
||||||
|
|
||||||
@Inject lateinit var notificationDrawerManager: NotificationDrawerManager
|
@Inject lateinit var notificationDrawerManager: NotificationDrawerManager
|
||||||
@Inject lateinit var sessionHolder: ActiveSessionHolder
|
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
@Inject lateinit var vectorPreferences: VectorPreferences
|
|
||||||
@Inject lateinit var uiStateRepository: UiStateRepository
|
@Inject lateinit var uiStateRepository: UiStateRepository
|
||||||
@Inject lateinit var shortcutsHandler: ShortcutsHandler
|
@Inject lateinit var shortcutsHandler: ShortcutsHandler
|
||||||
@Inject lateinit var pinCodeHelper: PinCodeHelper
|
@Inject lateinit var pinCodeHelper: PinCodeHelper
|
||||||
@Inject lateinit var pinLocker: PinLocker
|
|
||||||
@Inject lateinit var popupAlertManager: PopupAlertManager
|
@Inject lateinit var popupAlertManager: PopupAlertManager
|
||||||
@Inject lateinit var vectorAnalytics: VectorAnalytics
|
@Inject lateinit var vectorAnalytics: VectorAnalytics
|
||||||
@Inject lateinit var lockScreenKeyRepository: LockScreenKeyRepository
|
@Inject lateinit var lockScreenKeyRepository: LockScreenKeyRepository
|
||||||
@ -232,7 +224,7 @@ class MainActivity : VectorBaseActivity<ActivityMainBinding>(), UnlockedActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun doCleanUp() {
|
private fun doCleanUp() {
|
||||||
val session = sessionHolder.getSafeActiveSession()
|
val session = activeSessionHolder.getSafeActiveSession()
|
||||||
if (session == null) {
|
if (session == null) {
|
||||||
startNextActivityAndFinish()
|
startNextActivityAndFinish()
|
||||||
return
|
return
|
||||||
@ -244,7 +236,7 @@ class MainActivity : VectorBaseActivity<ActivityMainBinding>(), UnlockedActivity
|
|||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
// Just do the local cleanup
|
// Just do the local cleanup
|
||||||
Timber.w("Account deactivated, start app")
|
Timber.w("Account deactivated, start app")
|
||||||
sessionHolder.clearActiveSession()
|
activeSessionHolder.clearActiveSession()
|
||||||
doLocalCleanup(clearPreferences = true, onboardingStore)
|
doLocalCleanup(clearPreferences = true, onboardingStore)
|
||||||
startNextActivityAndFinish()
|
startNextActivityAndFinish()
|
||||||
}
|
}
|
||||||
@ -258,7 +250,7 @@ class MainActivity : VectorBaseActivity<ActivityMainBinding>(), UnlockedActivity
|
|||||||
return@launch
|
return@launch
|
||||||
}
|
}
|
||||||
Timber.w("SIGN_OUT: success, start app")
|
Timber.w("SIGN_OUT: success, start app")
|
||||||
sessionHolder.clearActiveSession()
|
activeSessionHolder.clearActiveSession()
|
||||||
doLocalCleanup(clearPreferences = true, onboardingStore)
|
doLocalCleanup(clearPreferences = true, onboardingStore)
|
||||||
startNextActivityAndFinish()
|
startNextActivityAndFinish()
|
||||||
}
|
}
|
||||||
@ -330,10 +322,10 @@ class MainActivity : VectorBaseActivity<ActivityMainBinding>(), UnlockedActivity
|
|||||||
args.isUserLoggedOut ->
|
args.isUserLoggedOut ->
|
||||||
// the homeserver has invalidated the token (password changed, device deleted, other security reasons)
|
// the homeserver has invalidated the token (password changed, device deleted, other security reasons)
|
||||||
SignedOutActivity.newIntent(this)
|
SignedOutActivity.newIntent(this)
|
||||||
sessionHolder.hasActiveSession() ->
|
activeSessionHolder.hasActiveSession() ->
|
||||||
// We have a session.
|
// We have a session.
|
||||||
// Check it can be opened
|
// Check it can be opened
|
||||||
if (sessionHolder.getActiveSession().isOpenable) {
|
if (activeSessionHolder.getActiveSession().isOpenable) {
|
||||||
HomeActivity.newIntent(this, firstStartMainActivity = false, existingSession = true)
|
HomeActivity.newIntent(this, firstStartMainActivity = false, existingSession = true)
|
||||||
} else {
|
} else {
|
||||||
// The token is still invalid
|
// The token is still invalid
|
||||||
|
@ -23,7 +23,6 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.addFragment
|
import im.vector.app.core.extensions.addFragment
|
||||||
import im.vector.app.core.platform.SimpleFragmentActivity
|
import im.vector.app.core.platform.SimpleFragmentActivity
|
||||||
import im.vector.app.features.call.webrtc.WebRtcCallManager
|
import im.vector.app.features.call.webrtc.WebRtcCallManager
|
||||||
@ -39,7 +38,6 @@ class PstnDialActivity : SimpleFragmentActivity() {
|
|||||||
@Inject lateinit var callManager: WebRtcCallManager
|
@Inject lateinit var callManager: WebRtcCallManager
|
||||||
@Inject lateinit var directRoomHelper: DirectRoomHelper
|
@Inject lateinit var directRoomHelper: DirectRoomHelper
|
||||||
@Inject lateinit var session: Session
|
@Inject lateinit var session: Session
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
|
|
||||||
private var progress: AppCompatDialog? = null
|
private var progress: AppCompatDialog? = null
|
||||||
|
|
||||||
|
@ -25,12 +25,10 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.platform.VectorBaseActivity
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
import im.vector.app.databinding.ActivityCallTransferBinding
|
import im.vector.app.databinding.ActivityCallTransferBinding
|
||||||
import im.vector.lib.core.utils.compat.getParcelableCompat
|
import im.vector.lib.core.utils.compat.getParcelableCompat
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data class CallTransferArgs(val callId: String) : Parcelable
|
data class CallTransferArgs(val callId: String) : Parcelable
|
||||||
@ -40,8 +38,6 @@ private const val USER_LIST_FRAGMENT_TAG = "USER_LIST_FRAGMENT_TAG"
|
|||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class CallTransferActivity : VectorBaseActivity<ActivityCallTransferBinding>() {
|
class CallTransferActivity : VectorBaseActivity<ActivityCallTransferBinding>() {
|
||||||
|
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
|
|
||||||
private lateinit var sectionsPagerAdapter: CallTransferPagerAdapter
|
private lateinit var sectionsPagerAdapter: CallTransferPagerAdapter
|
||||||
|
|
||||||
private val callTransferViewModel: CallTransferViewModel by viewModel()
|
private val callTransferViewModel: CallTransferViewModel by viewModel()
|
||||||
|
@ -32,7 +32,6 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.addFragment
|
import im.vector.app.core.extensions.addFragment
|
||||||
import im.vector.app.core.extensions.addFragmentToBackstack
|
import im.vector.app.core.extensions.addFragmentToBackstack
|
||||||
import im.vector.app.core.platform.SimpleFragmentActivity
|
import im.vector.app.core.platform.SimpleFragmentActivity
|
||||||
@ -58,7 +57,6 @@ import kotlinx.coroutines.flow.onEach
|
|||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.api.session.room.failure.CreateRoomFailure
|
import org.matrix.android.sdk.api.session.room.failure.CreateRoomFailure
|
||||||
import java.net.HttpURLConnection
|
import java.net.HttpURLConnection
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class CreateDirectRoomActivity : SimpleFragmentActivity() {
|
class CreateDirectRoomActivity : SimpleFragmentActivity() {
|
||||||
@ -67,7 +65,6 @@ class CreateDirectRoomActivity : SimpleFragmentActivity() {
|
|||||||
private val qrViewModel: QrCodeScannerViewModel by viewModel()
|
private val qrViewModel: QrCodeScannerViewModel by viewModel()
|
||||||
|
|
||||||
private lateinit var sharedActionViewModel: UserListSharedActionViewModel
|
private lateinit var sharedActionViewModel: UserListSharedActionViewModel
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -22,7 +22,6 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
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.extensions.addFragmentToBackstack
|
import im.vector.app.core.extensions.addFragmentToBackstack
|
||||||
import im.vector.app.core.extensions.observeEvent
|
import im.vector.app.core.extensions.observeEvent
|
||||||
import im.vector.app.core.extensions.registerStartForActivityResult
|
import im.vector.app.core.extensions.registerStartForActivityResult
|
||||||
@ -32,7 +31,6 @@ import im.vector.app.features.crypto.quads.SharedSecureStorageActivity
|
|||||||
import im.vector.app.features.workers.signout.ServerBackupStatusAction
|
import im.vector.app.features.workers.signout.ServerBackupStatusAction
|
||||||
import im.vector.app.features.workers.signout.ServerBackupStatusViewModel
|
import im.vector.app.features.workers.signout.ServerBackupStatusViewModel
|
||||||
import org.matrix.android.sdk.api.session.crypto.crosssigning.KEYBACKUP_SECRET_SSSS_NAME
|
import org.matrix.android.sdk.api.session.crypto.crosssigning.KEYBACKUP_SECRET_SSSS_NAME
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class KeysBackupRestoreActivity : SimpleFragmentActivity() {
|
class KeysBackupRestoreActivity : SimpleFragmentActivity() {
|
||||||
@ -56,8 +54,6 @@ class KeysBackupRestoreActivity : SimpleFragmentActivity() {
|
|||||||
super.onBackPressed()
|
super.onBackPressed()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
|
||||||
|
|
||||||
override fun initUiAndData() {
|
override fun initUiAndData() {
|
||||||
super.initUiAndData()
|
super.initUiAndData()
|
||||||
viewModel = viewModelProvider.get(KeysBackupRestoreSharedViewModel::class.java)
|
viewModel = viewModelProvider.get(KeysBackupRestoreSharedViewModel::class.java)
|
||||||
|
@ -25,7 +25,6 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
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.dialogs.ExportKeysDialog
|
import im.vector.app.core.dialogs.ExportKeysDialog
|
||||||
import im.vector.app.core.extensions.observeEvent
|
import im.vector.app.core.extensions.observeEvent
|
||||||
import im.vector.app.core.extensions.queryExportKeys
|
import im.vector.app.core.extensions.queryExportKeys
|
||||||
@ -45,7 +44,6 @@ class KeysBackupSetupActivity : SimpleFragmentActivity() {
|
|||||||
private lateinit var viewModel: KeysBackupSetupSharedViewModel
|
private lateinit var viewModel: KeysBackupSetupSharedViewModel
|
||||||
|
|
||||||
@Inject lateinit var keysExporter: KeysExporter
|
@Inject lateinit var keysExporter: KeysExporter
|
||||||
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
|
||||||
|
|
||||||
private val session by lazy {
|
private val session by lazy {
|
||||||
activeSessionHolder.getActiveSession()
|
activeSessionHolder.getActiveSession()
|
||||||
|
@ -30,13 +30,11 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.replaceFragment
|
import im.vector.app.core.extensions.replaceFragment
|
||||||
import im.vector.app.core.platform.SimpleFragmentActivity
|
import im.vector.app.core.platform.SimpleFragmentActivity
|
||||||
import im.vector.app.core.platform.VectorBaseBottomSheetDialogFragment
|
import im.vector.app.core.platform.VectorBaseBottomSheetDialogFragment
|
||||||
import im.vector.app.features.crypto.recover.SetupMode
|
import im.vector.app.features.crypto.recover.SetupMode
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import javax.inject.Inject
|
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
@ -54,7 +52,6 @@ class SharedSecureStorageActivity :
|
|||||||
) : Parcelable
|
) : Parcelable
|
||||||
|
|
||||||
private val viewModel: SharedSecureStorageViewModel by viewModel()
|
private val viewModel: SharedSecureStorageViewModel by viewModel()
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -37,7 +37,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
|||||||
import dagger.hilt.android.AndroidEntryPoint
|
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.di.ActiveSessionHolder
|
|
||||||
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
|
||||||
import im.vector.app.core.extensions.replaceFragment
|
import im.vector.app.core.extensions.replaceFragment
|
||||||
@ -77,7 +76,6 @@ import im.vector.app.features.popup.PopupAlertManager
|
|||||||
import im.vector.app.features.popup.VerificationVectorAlert
|
import im.vector.app.features.popup.VerificationVectorAlert
|
||||||
import im.vector.app.features.rageshake.ReportType
|
import im.vector.app.features.rageshake.ReportType
|
||||||
import im.vector.app.features.rageshake.VectorUncaughtExceptionHandler
|
import im.vector.app.features.rageshake.VectorUncaughtExceptionHandler
|
||||||
import im.vector.app.features.settings.VectorPreferences
|
|
||||||
import im.vector.app.features.settings.VectorSettingsActivity
|
import im.vector.app.features.settings.VectorSettingsActivity
|
||||||
import im.vector.app.features.spaces.SpaceCreationActivity
|
import im.vector.app.features.spaces.SpaceCreationActivity
|
||||||
import im.vector.app.features.spaces.SpacePreviewActivity
|
import im.vector.app.features.spaces.SpacePreviewActivity
|
||||||
@ -129,11 +127,9 @@ class HomeActivity :
|
|||||||
|
|
||||||
private val serverBackupStatusViewModel: ServerBackupStatusViewModel by viewModel()
|
private val serverBackupStatusViewModel: ServerBackupStatusViewModel by viewModel()
|
||||||
|
|
||||||
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
|
||||||
@Inject lateinit var vectorUncaughtExceptionHandler: VectorUncaughtExceptionHandler
|
@Inject lateinit var vectorUncaughtExceptionHandler: VectorUncaughtExceptionHandler
|
||||||
@Inject lateinit var pushersManager: PushersManager
|
@Inject lateinit var pushersManager: PushersManager
|
||||||
@Inject lateinit var notificationDrawerManager: NotificationDrawerManager
|
@Inject lateinit var notificationDrawerManager: NotificationDrawerManager
|
||||||
@Inject lateinit var vectorPreferences: VectorPreferences
|
|
||||||
@Inject lateinit var popupAlertManager: PopupAlertManager
|
@Inject lateinit var popupAlertManager: PopupAlertManager
|
||||||
@Inject lateinit var shortcutsHandler: ShortcutsHandler
|
@Inject lateinit var shortcutsHandler: ShortcutsHandler
|
||||||
@Inject lateinit var permalinkHandler: PermalinkHandler
|
@Inject lateinit var permalinkHandler: PermalinkHandler
|
||||||
|
@ -32,6 +32,7 @@ import im.vector.app.core.resources.BuildMeta
|
|||||||
import im.vector.app.core.utils.startSharePlainTextIntent
|
import im.vector.app.core.utils.startSharePlainTextIntent
|
||||||
import im.vector.app.databinding.FragmentHomeDrawerBinding
|
import im.vector.app.databinding.FragmentHomeDrawerBinding
|
||||||
import im.vector.app.features.analytics.plan.MobileScreen
|
import im.vector.app.features.analytics.plan.MobileScreen
|
||||||
|
import im.vector.app.features.permalink.PermalinkFactory
|
||||||
import im.vector.app.features.settings.VectorPreferences
|
import im.vector.app.features.settings.VectorPreferences
|
||||||
import im.vector.app.features.settings.VectorSettingsActivity
|
import im.vector.app.features.settings.VectorSettingsActivity
|
||||||
import im.vector.app.features.spaces.SpaceListFragment
|
import im.vector.app.features.spaces.SpaceListFragment
|
||||||
@ -49,6 +50,7 @@ class HomeDrawerFragment :
|
|||||||
@Inject lateinit var vectorPreferences: VectorPreferences
|
@Inject lateinit var vectorPreferences: VectorPreferences
|
||||||
@Inject lateinit var avatarRenderer: AvatarRenderer
|
@Inject lateinit var avatarRenderer: AvatarRenderer
|
||||||
@Inject lateinit var buildMeta: BuildMeta
|
@Inject lateinit var buildMeta: BuildMeta
|
||||||
|
@Inject lateinit var permalinkFactory: PermalinkFactory
|
||||||
|
|
||||||
private lateinit var sharedActionViewModel: HomeSharedActionViewModel
|
private lateinit var sharedActionViewModel: HomeSharedActionViewModel
|
||||||
|
|
||||||
@ -101,7 +103,7 @@ class HomeDrawerFragment :
|
|||||||
}
|
}
|
||||||
|
|
||||||
views.homeDrawerInviteFriendButton.debouncedClicks {
|
views.homeDrawerInviteFriendButton.debouncedClicks {
|
||||||
session.permalinkService().createPermalink(sharedActionViewModel.session.myUserId)?.let { permalink ->
|
permalinkFactory.createPermalinkOfCurrentUser()?.let { permalink ->
|
||||||
analyticsTracker.screen(MobileScreen(screenName = MobileScreen.ScreenName.InviteFriends))
|
analyticsTracker.screen(MobileScreen(screenName = MobileScreen.ScreenName.InviteFriends))
|
||||||
val text = getString(R.string.invite_friends_text, permalink)
|
val text = getString(R.string.invite_friends_text, permalink)
|
||||||
|
|
||||||
|
@ -61,7 +61,6 @@ import im.vector.app.features.workers.signout.ServerBackupStatusAction
|
|||||||
import im.vector.app.features.workers.signout.ServerBackupStatusViewModel
|
import im.vector.app.features.workers.signout.ServerBackupStatusViewModel
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import org.matrix.android.sdk.api.session.Session
|
|
||||||
import org.matrix.android.sdk.api.session.crypto.model.DeviceInfo
|
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
|
||||||
@ -80,7 +79,6 @@ class NewHomeDetailFragment :
|
|||||||
@Inject lateinit var callManager: WebRtcCallManager
|
@Inject lateinit var callManager: WebRtcCallManager
|
||||||
@Inject lateinit var vectorPreferences: VectorPreferences
|
@Inject lateinit var vectorPreferences: VectorPreferences
|
||||||
@Inject lateinit var spaceStateHandler: SpaceStateHandler
|
@Inject lateinit var spaceStateHandler: SpaceStateHandler
|
||||||
@Inject lateinit var session: Session
|
|
||||||
@Inject lateinit var buildMeta: BuildMeta
|
@Inject lateinit var buildMeta: BuildMeta
|
||||||
|
|
||||||
private val viewModel: HomeDetailViewModel by fragmentViewModel()
|
private val viewModel: HomeDetailViewModel by fragmentViewModel()
|
||||||
|
@ -168,6 +168,7 @@ import im.vector.app.features.media.VideoContentRenderer
|
|||||||
import im.vector.app.features.notifications.NotificationDrawerManager
|
import im.vector.app.features.notifications.NotificationDrawerManager
|
||||||
import im.vector.app.features.notifications.NotificationUtils
|
import im.vector.app.features.notifications.NotificationUtils
|
||||||
import im.vector.app.features.permalink.NavigationInterceptor
|
import im.vector.app.features.permalink.NavigationInterceptor
|
||||||
|
import im.vector.app.features.permalink.PermalinkFactory
|
||||||
import im.vector.app.features.permalink.PermalinkHandler
|
import im.vector.app.features.permalink.PermalinkHandler
|
||||||
import im.vector.app.features.poll.PollMode
|
import im.vector.app.features.poll.PollMode
|
||||||
import im.vector.app.features.reactions.EmojiReactionPickerActivity
|
import im.vector.app.features.reactions.EmojiReactionPickerActivity
|
||||||
@ -247,6 +248,7 @@ class TimelineFragment :
|
|||||||
@Inject lateinit var clock: Clock
|
@Inject lateinit var clock: Clock
|
||||||
@Inject lateinit var vectorFeatures: VectorFeatures
|
@Inject lateinit var vectorFeatures: VectorFeatures
|
||||||
@Inject lateinit var galleryOrCameraDialogHelperFactory: GalleryOrCameraDialogHelperFactory
|
@Inject lateinit var galleryOrCameraDialogHelperFactory: GalleryOrCameraDialogHelperFactory
|
||||||
|
@Inject lateinit var permalinkFactory: PermalinkFactory
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val MAX_TYPING_MESSAGE_USERS_COUNT = 4
|
const val MAX_TYPING_MESSAGE_USERS_COUNT = 4
|
||||||
@ -867,7 +869,7 @@ class TimelineFragment :
|
|||||||
}
|
}
|
||||||
R.id.menu_thread_timeline_copy_link -> {
|
R.id.menu_thread_timeline_copy_link -> {
|
||||||
getRootThreadEventId()?.let {
|
getRootThreadEventId()?.let {
|
||||||
val permalink = session.permalinkService().createPermalink(timelineArgs.roomId, it)
|
val permalink = permalinkFactory.createPermalink(timelineArgs.roomId, it)
|
||||||
copyToClipboard(requireContext(), permalink, false)
|
copyToClipboard(requireContext(), permalink, false)
|
||||||
showSnackWithMessage(getString(R.string.copied_to_clipboard))
|
showSnackWithMessage(getString(R.string.copied_to_clipboard))
|
||||||
}
|
}
|
||||||
@ -879,7 +881,7 @@ class TimelineFragment :
|
|||||||
}
|
}
|
||||||
R.id.menu_thread_timeline_share -> {
|
R.id.menu_thread_timeline_share -> {
|
||||||
getRootThreadEventId()?.let {
|
getRootThreadEventId()?.let {
|
||||||
val permalink = session.permalinkService().createPermalink(timelineArgs.roomId, it)
|
val permalink = permalinkFactory.createPermalink(timelineArgs.roomId, it)
|
||||||
shareText(requireContext(), permalink)
|
shareText(requireContext(), permalink)
|
||||||
}
|
}
|
||||||
true
|
true
|
||||||
@ -1788,7 +1790,7 @@ class TimelineFragment :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
is EventSharedAction.CopyPermalink -> {
|
is EventSharedAction.CopyPermalink -> {
|
||||||
val permalink = session.permalinkService().createPermalink(timelineArgs.roomId, action.eventId)
|
val permalink = permalinkFactory.createPermalink(timelineArgs.roomId, action.eventId)
|
||||||
copyToClipboard(requireContext(), permalink, false)
|
copyToClipboard(requireContext(), permalink, false)
|
||||||
showSnackWithMessage(getString(R.string.copied_to_clipboard))
|
showSnackWithMessage(getString(R.string.copied_to_clipboard))
|
||||||
}
|
}
|
||||||
|
@ -40,8 +40,7 @@ import javax.inject.Inject
|
|||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class ThreadsActivity : VectorBaseActivity<ActivityThreadsBinding>() {
|
class ThreadsActivity : VectorBaseActivity<ActivityThreadsBinding>() {
|
||||||
|
|
||||||
@Inject
|
@Inject lateinit var avatarRenderer: AvatarRenderer
|
||||||
lateinit var avatarRenderer: AvatarRenderer
|
|
||||||
|
|
||||||
// private val roomThreadDetailFragment: RoomThreadDetailFragment?
|
// private val roomThreadDetailFragment: RoomThreadDetailFragment?
|
||||||
// get() {
|
// get() {
|
||||||
|
@ -27,7 +27,6 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.addFragment
|
import im.vector.app.core.extensions.addFragment
|
||||||
import im.vector.app.core.extensions.addFragmentToBackstack
|
import im.vector.app.core.extensions.addFragmentToBackstack
|
||||||
import im.vector.app.core.platform.SimpleFragmentActivity
|
import im.vector.app.core.platform.SimpleFragmentActivity
|
||||||
@ -47,7 +46,6 @@ import kotlinx.coroutines.flow.onEach
|
|||||||
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 java.net.HttpURLConnection
|
import java.net.HttpURLConnection
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data class InviteUsersToRoomArgs(val roomId: String) : Parcelable
|
data class InviteUsersToRoomArgs(val roomId: String) : Parcelable
|
||||||
@ -57,7 +55,6 @@ class InviteUsersToRoomActivity : SimpleFragmentActivity() {
|
|||||||
|
|
||||||
private val viewModel: InviteUsersToRoomViewModel by viewModel()
|
private val viewModel: InviteUsersToRoomViewModel by viewModel()
|
||||||
private lateinit var sharedActionViewModel: UserListSharedActionViewModel
|
private lateinit var sharedActionViewModel: UserListSharedActionViewModel
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -24,8 +24,6 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
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.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.registerStartForActivityResult
|
import im.vector.app.core.extensions.registerStartForActivityResult
|
||||||
import im.vector.app.core.platform.VectorBaseActivity
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
import im.vector.app.core.utils.toast
|
import im.vector.app.core.utils.toast
|
||||||
@ -46,8 +44,6 @@ import javax.inject.Inject
|
|||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class LinkHandlerActivity : VectorBaseActivity<ActivityProgressBinding>() {
|
class LinkHandlerActivity : VectorBaseActivity<ActivityProgressBinding>() {
|
||||||
|
|
||||||
@Inject lateinit var sessionHolder: ActiveSessionHolder
|
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
@Inject lateinit var permalinkHandler: PermalinkHandler
|
@Inject lateinit var permalinkHandler: PermalinkHandler
|
||||||
|
|
||||||
private val startAppViewModel: StartAppViewModel by viewModel()
|
private val startAppViewModel: StartAppViewModel by viewModel()
|
||||||
@ -103,7 +99,7 @@ class LinkHandlerActivity : VectorBaseActivity<ActivityProgressBinding>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun handleConfigUrl(uri: Uri) {
|
private fun handleConfigUrl(uri: Uri) {
|
||||||
if (sessionHolder.hasActiveSession()) {
|
if (activeSessionHolder.hasActiveSession()) {
|
||||||
displayAlreadyLoginPopup(uri)
|
displayAlreadyLoginPopup(uri)
|
||||||
} else {
|
} else {
|
||||||
// user is not yet logged in, this is the nominal case
|
// user is not yet logged in, this is the nominal case
|
||||||
@ -114,7 +110,7 @@ class LinkHandlerActivity : VectorBaseActivity<ActivityProgressBinding>() {
|
|||||||
private fun handleSupportedHostUrl() {
|
private fun handleSupportedHostUrl() {
|
||||||
// If we are not logged in, open login screen.
|
// If we are not logged in, open login screen.
|
||||||
// In the future, we might want to relaunch the process after login.
|
// In the future, we might want to relaunch the process after login.
|
||||||
if (!sessionHolder.hasActiveSession()) {
|
if (!activeSessionHolder.hasActiveSession()) {
|
||||||
startLoginActivity()
|
startLoginActivity()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -152,7 +148,7 @@ class LinkHandlerActivity : VectorBaseActivity<ActivityProgressBinding>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun safeSignout(uri: Uri) {
|
private fun safeSignout(uri: Uri) {
|
||||||
val session = sessionHolder.getSafeActiveSession()
|
val session = activeSessionHolder.getSafeActiveSession()
|
||||||
if (session == null) {
|
if (session == null) {
|
||||||
// Should not happen
|
// Should not happen
|
||||||
startLoginActivity(uri)
|
startLoginActivity(uri)
|
||||||
@ -161,7 +157,7 @@ class LinkHandlerActivity : VectorBaseActivity<ActivityProgressBinding>() {
|
|||||||
try {
|
try {
|
||||||
session.signOutService().signOut(true)
|
session.signOutService().signOut(true)
|
||||||
Timber.d("## displayAlreadyLoginPopup(): logout succeeded")
|
Timber.d("## displayAlreadyLoginPopup(): logout succeeded")
|
||||||
sessionHolder.clearActiveSession()
|
activeSessionHolder.clearActiveSession()
|
||||||
startLoginActivity(uri)
|
startLoginActivity(uri)
|
||||||
} catch (failure: Throwable) {
|
} catch (failure: Throwable) {
|
||||||
displayError(failure)
|
displayError(failure)
|
||||||
|
@ -69,14 +69,9 @@ class VectorAttachmentViewerActivity : AttachmentViewerActivity(), AttachmentInt
|
|||||||
val sharedTransitionName: String?
|
val sharedTransitionName: String?
|
||||||
) : Parcelable
|
) : Parcelable
|
||||||
|
|
||||||
@Inject
|
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
||||||
lateinit var sessionHolder: ActiveSessionHolder
|
@Inject lateinit var dataSourceFactory: AttachmentProviderFactory
|
||||||
|
@Inject lateinit var imageContentRenderer: ImageContentRenderer
|
||||||
@Inject
|
|
||||||
lateinit var dataSourceFactory: AttachmentProviderFactory
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
lateinit var imageContentRenderer: ImageContentRenderer
|
|
||||||
|
|
||||||
private val viewModel: VectorAttachmentViewerViewModel by viewModel()
|
private val viewModel: VectorAttachmentViewerViewModel by viewModel()
|
||||||
private val errorFormatter by lazy(LazyThreadSafetyMode.NONE) { singletonEntryPoint().errorFormatter() }
|
private val errorFormatter by lazy(LazyThreadSafetyMode.NONE) { singletonEntryPoint().errorFormatter() }
|
||||||
@ -128,7 +123,7 @@ class VectorAttachmentViewerActivity : AttachmentViewerActivity(), AttachmentInt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val session = sessionHolder.getSafeActiveSession() ?: return Unit.also { finish() }
|
val session = activeSessionHolder.getSafeActiveSession() ?: return Unit.also { finish() }
|
||||||
|
|
||||||
val room = args.roomId?.let { session.getRoom(it) }
|
val room = args.roomId?.let { session.getRoom(it) }
|
||||||
|
|
||||||
|
@ -670,6 +670,7 @@ class OnboardingViewModel @AssistedInject constructor(
|
|||||||
val homeServerCapabilities = session.homeServerCapabilitiesService().getHomeServerCapabilities()
|
val homeServerCapabilities = session.homeServerCapabilitiesService().getHomeServerCapabilities()
|
||||||
val capabilityOverrides = vectorOverrides.forceHomeserverCapabilities?.firstOrNull()
|
val capabilityOverrides = vectorOverrides.forceHomeserverCapabilities?.firstOrNull()
|
||||||
state.personalizationState.copy(
|
state.personalizationState.copy(
|
||||||
|
userId = session.myUserId,
|
||||||
displayName = state.registrationState.selectedMatrixId?.let { MatrixPatterns.extractUserNameFromId(it) },
|
displayName = state.registrationState.selectedMatrixId?.let { MatrixPatterns.extractUserNameFromId(it) },
|
||||||
supportsChangingDisplayName = capabilityOverrides?.canChangeDisplayName ?: homeServerCapabilities.canChangeDisplayName,
|
supportsChangingDisplayName = capabilityOverrides?.canChangeDisplayName ?: homeServerCapabilities.canChangeDisplayName,
|
||||||
supportsChangingProfilePicture = capabilityOverrides?.canChangeAvatar ?: homeServerCapabilities.canChangeAvatar
|
supportsChangingProfilePicture = capabilityOverrides?.canChangeAvatar ?: homeServerCapabilities.canChangeAvatar
|
||||||
|
@ -80,10 +80,11 @@ data class SelectedHomeserverState(
|
|||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data class PersonalizationState(
|
data class PersonalizationState(
|
||||||
|
val userId: String = "",
|
||||||
val supportsChangingDisplayName: Boolean = false,
|
val supportsChangingDisplayName: Boolean = false,
|
||||||
val supportsChangingProfilePicture: Boolean = false,
|
val supportsChangingProfilePicture: Boolean = false,
|
||||||
val displayName: String? = null,
|
val displayName: String? = null,
|
||||||
val selectedPictureUri: Uri? = null
|
val selectedPictureUri: Uri? = null,
|
||||||
) : Parcelable {
|
) : Parcelable {
|
||||||
|
|
||||||
fun supportsPersonalization() = supportsChangingDisplayName || supportsChangingProfilePicture
|
fun supportsPersonalization() = supportsChangingDisplayName || supportsChangingProfilePicture
|
||||||
|
@ -26,21 +26,17 @@ import androidx.core.view.isVisible
|
|||||||
import dagger.hilt.android.AndroidEntryPoint
|
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.utils.isAnimationEnabled
|
import im.vector.app.core.utils.isAnimationEnabled
|
||||||
import im.vector.app.core.utils.styleMatchingText
|
import im.vector.app.core.utils.styleMatchingText
|
||||||
import im.vector.app.databinding.FragmentFtueAccountCreatedBinding
|
import im.vector.app.databinding.FragmentFtueAccountCreatedBinding
|
||||||
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
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class FtueAuthAccountCreatedFragment :
|
class FtueAuthAccountCreatedFragment :
|
||||||
AbstractFtueAuthFragment<FragmentFtueAccountCreatedBinding>() {
|
AbstractFtueAuthFragment<FragmentFtueAccountCreatedBinding>() {
|
||||||
|
|
||||||
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
|
||||||
|
|
||||||
private var hasPlayedConfetti = false
|
private var hasPlayedConfetti = false
|
||||||
|
|
||||||
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueAccountCreatedBinding {
|
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueAccountCreatedBinding {
|
||||||
@ -53,15 +49,15 @@ class FtueAuthAccountCreatedFragment :
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setupViews() {
|
private fun setupViews() {
|
||||||
val userId = activeSessionHolder.getActiveSession().myUserId
|
|
||||||
val subtitle = getString(R.string.ftue_account_created_subtitle, userId).toSpannable().styleMatchingText(userId, Typeface.BOLD)
|
|
||||||
views.accountCreatedSubtitle.text = subtitle
|
|
||||||
views.accountCreatedPersonalize.debouncedClicks { viewModel.handle(OnboardingAction.PersonalizeProfile) }
|
views.accountCreatedPersonalize.debouncedClicks { viewModel.handle(OnboardingAction.PersonalizeProfile) }
|
||||||
views.accountCreatedTakeMeHome.debouncedClicks { viewModel.handle(OnboardingAction.PostViewEvent(OnboardingViewEvents.OnTakeMeHome)) }
|
views.accountCreatedTakeMeHome.debouncedClicks { viewModel.handle(OnboardingAction.PostViewEvent(OnboardingViewEvents.OnTakeMeHome)) }
|
||||||
views.accountCreatedTakeMeHomeCta.debouncedClicks { viewModel.handle(OnboardingAction.PostViewEvent(OnboardingViewEvents.OnTakeMeHome)) }
|
views.accountCreatedTakeMeHomeCta.debouncedClicks { viewModel.handle(OnboardingAction.PostViewEvent(OnboardingViewEvents.OnTakeMeHome)) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun updateWithState(state: OnboardingViewState) {
|
override fun updateWithState(state: OnboardingViewState) {
|
||||||
|
val userId = state.personalizationState.userId
|
||||||
|
val subtitle = getString(R.string.ftue_account_created_subtitle, userId).toSpannable().styleMatchingText(userId, Typeface.BOLD)
|
||||||
|
views.accountCreatedSubtitle.text = subtitle
|
||||||
val canPersonalize = state.personalizationState.supportsPersonalization()
|
val canPersonalize = state.personalizationState.supportsPersonalization()
|
||||||
views.personalizeButtonGroup.isVisible = canPersonalize
|
views.personalizeButtonGroup.isVisible = canPersonalize
|
||||||
views.takeMeHomeButtonGroup.isVisible = !canPersonalize
|
views.takeMeHomeButtonGroup.isVisible = !canPersonalize
|
||||||
|
@ -26,7 +26,6 @@ import androidx.core.view.isInvisible
|
|||||||
import com.airbnb.mvrx.withState
|
import com.airbnb.mvrx.withState
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
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.dialogs.GalleryOrCameraDialogHelper
|
import im.vector.app.core.dialogs.GalleryOrCameraDialogHelper
|
||||||
import im.vector.app.core.dialogs.GalleryOrCameraDialogHelperFactory
|
import im.vector.app.core.dialogs.GalleryOrCameraDialogHelperFactory
|
||||||
import im.vector.app.databinding.FragmentFtueProfilePictureBinding
|
import im.vector.app.databinding.FragmentFtueProfilePictureBinding
|
||||||
@ -42,7 +41,6 @@ class FtueAuthChooseProfilePictureFragment :
|
|||||||
AbstractFtueAuthFragment<FragmentFtueProfilePictureBinding>(),
|
AbstractFtueAuthFragment<FragmentFtueProfilePictureBinding>(),
|
||||||
GalleryOrCameraDialogHelper.Listener {
|
GalleryOrCameraDialogHelper.Listener {
|
||||||
|
|
||||||
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
|
||||||
@Inject lateinit var galleryOrCameraDialogHelperFactory: GalleryOrCameraDialogHelperFactory
|
@Inject lateinit var galleryOrCameraDialogHelperFactory: GalleryOrCameraDialogHelperFactory
|
||||||
@Inject lateinit var avatarRenderer: AvatarRenderer
|
@Inject lateinit var avatarRenderer: AvatarRenderer
|
||||||
|
|
||||||
@ -85,10 +83,9 @@ class FtueAuthChooseProfilePictureFragment :
|
|||||||
views.profilePictureSubmit.isEnabled = hasSetPicture
|
views.profilePictureSubmit.isEnabled = hasSetPicture
|
||||||
views.changeProfilePictureIcon.setImageResource(if (hasSetPicture) R.drawable.ic_edit else R.drawable.ic_camera_plain)
|
views.changeProfilePictureIcon.setImageResource(if (hasSetPicture) R.drawable.ic_edit else R.drawable.ic_camera_plain)
|
||||||
|
|
||||||
val session = activeSessionHolder.getActiveSession()
|
|
||||||
val matrixItem = MatrixItem.UserItem(
|
val matrixItem = MatrixItem.UserItem(
|
||||||
id = session.myUserId,
|
id = state.personalizationState.userId,
|
||||||
displayName = state.personalizationState.displayName ?: ""
|
displayName = state.personalizationState.displayName.orEmpty()
|
||||||
)
|
)
|
||||||
avatarRenderer.render(matrixItem, localUri = state.personalizationState.selectedPictureUri, imageView = views.profilePictureView)
|
avatarRenderer.render(matrixItem, localUri = state.personalizationState.selectedPictureUri, imageView = views.profilePictureView)
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2022 New Vector Ltd
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package im.vector.app.features.permalink
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.api.session.Session
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains synchronous methods to create permalinks from the Session.
|
||||||
|
*/
|
||||||
|
class PermalinkFactory @Inject constructor(
|
||||||
|
private val session: Session,
|
||||||
|
) {
|
||||||
|
fun createPermalinkOfCurrentUser(): String? {
|
||||||
|
return createPermalink(session.myUserId)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun createPermalink(id: String): String? {
|
||||||
|
return session.permalinkService().createPermalink(id)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun createPermalink(roomId: String, eventId: String): String {
|
||||||
|
return session.permalinkService().createPermalink(roomId, eventId)
|
||||||
|
}
|
||||||
|
}
|
@ -37,12 +37,12 @@ import im.vector.app.core.utils.toast
|
|||||||
import im.vector.app.databinding.FragmentPublicRoomsBinding
|
import im.vector.app.databinding.FragmentPublicRoomsBinding
|
||||||
import im.vector.app.features.analytics.plan.ViewRoom
|
import im.vector.app.features.analytics.plan.ViewRoom
|
||||||
import im.vector.app.features.permalink.NavigationInterceptor
|
import im.vector.app.features.permalink.NavigationInterceptor
|
||||||
|
import im.vector.app.features.permalink.PermalinkFactory
|
||||||
import im.vector.app.features.permalink.PermalinkHandler
|
import im.vector.app.features.permalink.PermalinkHandler
|
||||||
import kotlinx.coroutines.flow.debounce
|
import kotlinx.coroutines.flow.debounce
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.matrix.android.sdk.api.session.Session
|
|
||||||
import org.matrix.android.sdk.api.session.room.model.roomdirectory.PublicRoom
|
import org.matrix.android.sdk.api.session.room.model.roomdirectory.PublicRoom
|
||||||
import reactivecircus.flowbinding.appcompat.queryTextChanges
|
import reactivecircus.flowbinding.appcompat.queryTextChanges
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
@ -60,7 +60,7 @@ class PublicRoomsFragment :
|
|||||||
|
|
||||||
@Inject lateinit var publicRoomsController: PublicRoomsController
|
@Inject lateinit var publicRoomsController: PublicRoomsController
|
||||||
@Inject lateinit var permalinkHandler: PermalinkHandler
|
@Inject lateinit var permalinkHandler: PermalinkHandler
|
||||||
@Inject lateinit var session: Session
|
@Inject lateinit var permalinkFactory: PermalinkFactory
|
||||||
|
|
||||||
private val viewModel: RoomDirectoryViewModel by activityViewModel()
|
private val viewModel: RoomDirectoryViewModel by activityViewModel()
|
||||||
private lateinit var sharedActionViewModel: RoomDirectorySharedActionViewModel
|
private lateinit var sharedActionViewModel: RoomDirectorySharedActionViewModel
|
||||||
@ -128,7 +128,7 @@ class PublicRoomsFragment :
|
|||||||
|
|
||||||
override fun onUnknownRoomClicked(roomIdOrAlias: String) {
|
override fun onUnknownRoomClicked(roomIdOrAlias: String) {
|
||||||
viewLifecycleOwner.lifecycleScope.launch {
|
viewLifecycleOwner.lifecycleScope.launch {
|
||||||
val permalink = session.permalinkService().createPermalink(roomIdOrAlias)
|
val permalink = permalinkFactory.createPermalink(roomIdOrAlias)
|
||||||
val isHandled = permalinkHandler
|
val isHandled = permalinkHandler
|
||||||
.launch(requireActivity(), permalink, object : NavigationInterceptor {
|
.launch(requireActivity(), permalink, object : NavigationInterceptor {
|
||||||
override fun navToRoom(roomId: String?, eventId: String?, deepLink: Uri?, rootThreadEventId: String?): Boolean {
|
override fun navToRoom(roomId: String?, eventId: String?, deepLink: Uri?, rootThreadEventId: String?): Boolean {
|
||||||
|
@ -69,8 +69,7 @@ class RoomProfileActivity :
|
|||||||
|
|
||||||
private val requireActiveMembershipViewModel: RequireActiveMembershipViewModel by viewModel()
|
private val requireActiveMembershipViewModel: RequireActiveMembershipViewModel by viewModel()
|
||||||
|
|
||||||
@Inject
|
@Inject lateinit var roomDetailPendingActionStore: RoomDetailPendingActionStore
|
||||||
lateinit var roomDetailPendingActionStore: RoomDetailPendingActionStore
|
|
||||||
|
|
||||||
override fun getBinding(): ActivitySimpleBinding {
|
override fun getBinding(): ActivitySimpleBinding {
|
||||||
return ActivitySimpleBinding.inflate(layoutInflater)
|
return ActivitySimpleBinding.inflate(layoutInflater)
|
||||||
|
@ -29,7 +29,6 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.airbnb.mvrx.withState
|
import com.airbnb.mvrx.withState
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.addFragment
|
import im.vector.app.core.extensions.addFragment
|
||||||
import im.vector.app.core.extensions.commitTransaction
|
import im.vector.app.core.extensions.commitTransaction
|
||||||
import im.vector.app.core.extensions.toMvRxBundle
|
import im.vector.app.core.extensions.toMvRxBundle
|
||||||
@ -44,7 +43,6 @@ import im.vector.app.features.roomprofile.settings.joinrule.advanced.RoomJoinRul
|
|||||||
import im.vector.app.features.roomprofile.settings.joinrule.advanced.RoomJoinRuleChooseRestrictedState
|
import im.vector.app.features.roomprofile.settings.joinrule.advanced.RoomJoinRuleChooseRestrictedState
|
||||||
import im.vector.app.features.roomprofile.settings.joinrule.advanced.RoomJoinRuleChooseRestrictedViewModel
|
import im.vector.app.features.roomprofile.settings.joinrule.advanced.RoomJoinRuleChooseRestrictedViewModel
|
||||||
import im.vector.lib.core.utils.compat.getParcelableCompat
|
import im.vector.lib.core.utils.compat.getParcelableCompat
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class RoomJoinRuleActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
class RoomJoinRuleActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
||||||
@ -53,9 +51,6 @@ class RoomJoinRuleActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
|||||||
|
|
||||||
private lateinit var roomProfileArgs: RoomProfileArgs
|
private lateinit var roomProfileArgs: RoomProfileArgs
|
||||||
|
|
||||||
@Inject
|
|
||||||
lateinit var errorFormatter: ErrorFormatter
|
|
||||||
|
|
||||||
val viewModel: RoomJoinRuleChooseRestrictedViewModel by viewModel()
|
val viewModel: RoomJoinRuleChooseRestrictedViewModel by viewModel()
|
||||||
|
|
||||||
override fun initUiAndData() {
|
override fun initUiAndData() {
|
||||||
|
@ -63,8 +63,6 @@ class VectorSettingsActivity : VectorBaseActivity<ActivityVectorSettingsBinding>
|
|||||||
|
|
||||||
@Inject lateinit var session: Session
|
@Inject lateinit var session: Session
|
||||||
|
|
||||||
@Inject lateinit var vectorPreferences: VectorPreferences
|
|
||||||
|
|
||||||
override fun initUiAndData() {
|
override fun initUiAndData() {
|
||||||
setupToolbar(views.settingsToolbar)
|
setupToolbar(views.settingsToolbar)
|
||||||
.allowBack()
|
.allowBack()
|
||||||
|
@ -20,22 +20,18 @@ import android.content.Intent
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import com.airbnb.mvrx.viewModel
|
import com.airbnb.mvrx.viewModel
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.core.di.ActiveSessionHolder
|
|
||||||
import im.vector.app.core.extensions.addFragment
|
import im.vector.app.core.extensions.addFragment
|
||||||
import im.vector.app.core.extensions.registerStartForActivityResult
|
import im.vector.app.core.extensions.registerStartForActivityResult
|
||||||
import im.vector.app.core.platform.VectorBaseActivity
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
import im.vector.app.databinding.ActivitySimpleBinding
|
import im.vector.app.databinding.ActivitySimpleBinding
|
||||||
import im.vector.app.features.MainActivity
|
import im.vector.app.features.MainActivity
|
||||||
import im.vector.app.features.start.StartAppViewModel
|
import im.vector.app.features.start.StartAppViewModel
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class IncomingShareActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
class IncomingShareActivity : VectorBaseActivity<ActivitySimpleBinding>() {
|
||||||
|
|
||||||
private val startAppViewModel: StartAppViewModel by viewModel()
|
private val startAppViewModel: StartAppViewModel by viewModel()
|
||||||
|
|
||||||
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
|
||||||
|
|
||||||
private val launcher = registerStartForActivityResult {
|
private val launcher = registerStartForActivityResult {
|
||||||
if (it.resultCode == RESULT_OK) {
|
if (it.resultCode == RESULT_OK) {
|
||||||
handleAppStarted()
|
handleAppStarted()
|
||||||
|
@ -25,7 +25,6 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.replaceFragment
|
import im.vector.app.core.extensions.replaceFragment
|
||||||
import im.vector.app.features.MainActivity
|
import im.vector.app.features.MainActivity
|
||||||
import im.vector.app.features.MainActivityArgs
|
import im.vector.app.features.MainActivityArgs
|
||||||
@ -45,7 +44,6 @@ class SoftLogoutActivity : LoginActivity() {
|
|||||||
private val softLogoutViewModel: SoftLogoutViewModel by viewModel()
|
private val softLogoutViewModel: SoftLogoutViewModel by viewModel()
|
||||||
|
|
||||||
@Inject lateinit var session: Session
|
@Inject lateinit var session: Session
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
|
|
||||||
override fun initUiAndData() {
|
override fun initUiAndData() {
|
||||||
super.initUiAndData()
|
super.initUiAndData()
|
||||||
|
@ -29,7 +29,6 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.hideKeyboard
|
import im.vector.app.core.extensions.hideKeyboard
|
||||||
import im.vector.app.core.extensions.replaceFragment
|
import im.vector.app.core.extensions.replaceFragment
|
||||||
import im.vector.app.core.extensions.setTextOrHide
|
import im.vector.app.core.extensions.setTextOrHide
|
||||||
@ -37,16 +36,13 @@ import im.vector.app.core.platform.VectorBaseActivity
|
|||||||
import im.vector.app.databinding.ActivitySimpleLoadingBinding
|
import im.vector.app.databinding.ActivitySimpleLoadingBinding
|
||||||
import im.vector.app.features.spaces.SpaceBottomSheetSettingsArgs
|
import im.vector.app.features.spaces.SpaceBottomSheetSettingsArgs
|
||||||
import im.vector.lib.core.utils.compat.getParcelableExtraCompat
|
import im.vector.lib.core.utils.compat.getParcelableExtraCompat
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class SpaceLeaveAdvancedActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>() {
|
class SpaceLeaveAdvancedActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>() {
|
||||||
|
|
||||||
override fun getBinding(): ActivitySimpleLoadingBinding = ActivitySimpleLoadingBinding.inflate(layoutInflater)
|
override fun getBinding(): ActivitySimpleLoadingBinding = ActivitySimpleLoadingBinding.inflate(layoutInflater)
|
||||||
|
|
||||||
val leaveViewModel: SpaceLeaveAdvancedViewModel by viewModel()
|
private val leaveViewModel: SpaceLeaveAdvancedViewModel by viewModel()
|
||||||
|
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
|
|
||||||
override fun showWaitingView(text: String?) {
|
override fun showWaitingView(text: String?) {
|
||||||
hideKeyboard()
|
hideKeyboard()
|
||||||
|
@ -22,18 +22,14 @@ import com.airbnb.mvrx.viewModel
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.error.ErrorFormatter
|
|
||||||
import im.vector.app.core.extensions.replaceFragment
|
import im.vector.app.core.extensions.replaceFragment
|
||||||
import im.vector.app.core.platform.SimpleFragmentActivity
|
import im.vector.app.core.platform.SimpleFragmentActivity
|
||||||
import im.vector.lib.core.utils.compat.getParcelableExtraCompat
|
import im.vector.lib.core.utils.compat.getParcelableExtraCompat
|
||||||
import org.matrix.android.sdk.api.session.terms.TermsService
|
import org.matrix.android.sdk.api.session.terms.TermsService
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class ReviewTermsActivity : SimpleFragmentActivity() {
|
class ReviewTermsActivity : SimpleFragmentActivity() {
|
||||||
|
|
||||||
@Inject lateinit var errorFormatter: ErrorFormatter
|
|
||||||
|
|
||||||
private val reviewTermsViewModel: ReviewTermsViewModel by viewModel()
|
private val reviewTermsViewModel: ReviewTermsViewModel by viewModel()
|
||||||
|
|
||||||
override fun initUiAndData() {
|
override fun initUiAndData() {
|
||||||
|
@ -21,12 +21,10 @@ import android.content.Intent
|
|||||||
import android.webkit.WebChromeClient
|
import android.webkit.WebChromeClient
|
||||||
import android.webkit.WebView
|
import android.webkit.WebView
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.core.di.ActiveSessionHolder
|
|
||||||
import im.vector.app.core.platform.VectorBaseActivity
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
import im.vector.app.databinding.ActivityVectorWebViewBinding
|
import im.vector.app.databinding.ActivityVectorWebViewBinding
|
||||||
import im.vector.lib.core.utils.compat.getSerializableCompat
|
import im.vector.lib.core.utils.compat.getSerializableCompat
|
||||||
import org.matrix.android.sdk.api.session.Session
|
import org.matrix.android.sdk.api.session.Session
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class is responsible for managing a WebView
|
* This class is responsible for managing a WebView
|
||||||
@ -39,7 +37,6 @@ class VectorWebViewActivity : VectorBaseActivity<ActivityVectorWebViewBinding>()
|
|||||||
|
|
||||||
override fun getBinding() = ActivityVectorWebViewBinding.inflate(layoutInflater)
|
override fun getBinding() = ActivityVectorWebViewBinding.inflate(layoutInflater)
|
||||||
|
|
||||||
@Inject lateinit var activeSessionHolder: ActiveSessionHolder
|
|
||||||
val session: Session by lazy {
|
val session: Session by lazy {
|
||||||
activeSessionHolder.getActiveSession()
|
activeSessionHolder.getActiveSession()
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,6 @@ import im.vector.app.R
|
|||||||
import im.vector.app.core.extensions.addFragment
|
import im.vector.app.core.extensions.addFragment
|
||||||
import im.vector.app.core.platform.VectorBaseActivity
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
import im.vector.app.databinding.ActivityWidgetBinding
|
import im.vector.app.databinding.ActivityWidgetBinding
|
||||||
import im.vector.app.features.settings.VectorPreferences
|
|
||||||
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionBottomSheet
|
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionBottomSheet
|
||||||
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewEvents
|
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewEvents
|
||||||
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewModel
|
import im.vector.app.features.widgets.permissions.RoomWidgetPermissionViewModel
|
||||||
@ -48,7 +47,6 @@ import im.vector.lib.core.utils.compat.getSerializableCompat
|
|||||||
import org.matrix.android.sdk.api.extensions.orFalse
|
import org.matrix.android.sdk.api.extensions.orFalse
|
||||||
import org.matrix.android.sdk.api.session.events.model.Content
|
import org.matrix.android.sdk.api.session.events.model.Content
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>() {
|
class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>() {
|
||||||
@ -83,8 +81,6 @@ class WidgetActivity : VectorBaseActivity<ActivityWidgetBinding>() {
|
|||||||
private val viewModel: WidgetViewModel by viewModel()
|
private val viewModel: WidgetViewModel by viewModel()
|
||||||
private val permissionViewModel: RoomWidgetPermissionViewModel by viewModel()
|
private val permissionViewModel: RoomWidgetPermissionViewModel by viewModel()
|
||||||
|
|
||||||
@Inject lateinit var vectorPreferences: VectorPreferences
|
|
||||||
|
|
||||||
override fun getBinding() = ActivityWidgetBinding.inflate(layoutInflater)
|
override fun getBinding() = ActivityWidgetBinding.inflate(layoutInflater)
|
||||||
|
|
||||||
override fun getTitleRes() = R.string.room_widget_activity_title
|
override fun getTitleRes() = R.string.room_widget_activity_title
|
||||||
|
@ -687,7 +687,7 @@ class OnboardingViewModelTest {
|
|||||||
.assertStatesChanges(
|
.assertStatesChanges(
|
||||||
initialState,
|
initialState,
|
||||||
{ copy(isLoading = true) },
|
{ copy(isLoading = true) },
|
||||||
{ copy(isLoading = false, personalizationState = A_HOMESERVER_CAPABILITIES.toPersonalisationState(A_USERNAME)) }
|
{ copy(isLoading = false, personalizationState = A_HOMESERVER_CAPABILITIES.toPersonalisationState("@fake:server.fake", A_USERNAME)) }
|
||||||
)
|
)
|
||||||
.assertEvents(OnboardingViewEvents.OnAccountCreated)
|
.assertEvents(OnboardingViewEvents.OnAccountCreated)
|
||||||
.finish()
|
.finish()
|
||||||
@ -1196,7 +1196,8 @@ class OnboardingViewModelTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun HomeServerCapabilities.toPersonalisationState(displayName: String? = null) = PersonalizationState(
|
private fun HomeServerCapabilities.toPersonalisationState(userId: String, displayName: String? = null) = PersonalizationState(
|
||||||
|
userId = userId,
|
||||||
supportsChangingDisplayName = canChangeDisplayName,
|
supportsChangingDisplayName = canChangeDisplayName,
|
||||||
supportsChangingProfilePicture = canChangeAvatar,
|
supportsChangingProfilePicture = canChangeAvatar,
|
||||||
displayName = displayName,
|
displayName = displayName,
|
||||||
|
Loading…
Reference in New Issue
Block a user