Skip to content
Snippets Groups Projects
Commit 5a478454 authored by Taras's avatar Taras
Browse files

Remove setup circles screen

parent b0d82eda
No related branches found
No related tags found
No related merge requests found
Showing
with 14 additions and 453 deletions
package org.futo.circles.feature.circles.setup
import android.content.Context
import android.net.Uri
import androidx.lifecycle.MutableLiveData
import dagger.hilt.android.qualifiers.ApplicationContext
import org.futo.circles.R
import org.futo.circles.core.extensions.notEmptyDisplayName
import org.futo.circles.core.provider.MatrixSessionProvider
import org.futo.circles.model.SetupCircleListItem
import org.matrix.android.sdk.api.session.getUser
import javax.inject.Inject
class SetupCirclesDataSource @Inject constructor(
@ApplicationContext private val context: Context
) {
val circlesLiveData = MutableLiveData(getInitialCirclesList())
private fun getInitialCirclesList(): List<SetupCircleListItem> =
context.resources.getStringArray(R.array.setup_circles_list).mapIndexed { i, name ->
SetupCircleListItem(
id = i,
name = name,
userName = getUserName()
)
}
private fun getUserName(): String {
val session = MatrixSessionProvider.currentSession
val userId = session?.myUserId ?: return ""
return session.getUser(userId)?.notEmptyDisplayName() ?: ""
}
fun addCirclesCoverImage(id: Int, uri: Uri) {
val list = circlesLiveData.value?.map {
if (it.id == id) it.copy(coverUri = uri) else it
} ?: emptyList()
circlesLiveData.postValue(list)
}
}
\ No newline at end of file
package org.futo.circles.feature.circles.setup
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.DividerItemDecoration
import by.kirich1409.viewbindingdelegate.viewBinding
import dagger.hilt.android.AndroidEntryPoint
import org.futo.circles.R
import org.futo.circles.core.extensions.navigateSafe
import org.futo.circles.core.extensions.observeData
import org.futo.circles.core.extensions.observeResponse
import org.futo.circles.core.extensions.showError
import org.futo.circles.core.extensions.showSuccess
import org.futo.circles.core.fragment.HasLoadingState
import org.futo.circles.core.model.LoadingData
import org.futo.circles.core.picker.helper.MediaPickerHelper
import org.futo.circles.core.view.LoadingDialog
import org.futo.circles.databinding.FragmentSetupCirclesBinding
import org.futo.circles.feature.circles.setup.list.SetupCirclesAdapter
import org.futo.circles.model.SetupCircleListItem
@AndroidEntryPoint
class SetupCirclesFragment : Fragment(R.layout.fragment_setup_circles), HasLoadingState {
override val fragment: Fragment = this
private val viewModel by viewModels<SetupCirclesViewModel>()
private val binding by viewBinding(FragmentSetupCirclesBinding::bind)
private val listAdapter by lazy { SetupCirclesAdapter(::onCircleListItemClicked) }
private val mediaPickerHelper = MediaPickerHelper(this, isGalleryAvailable = false)
private val loadingDialog by lazy { LoadingDialog(requireContext()) }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setupViews()
setupObservers()
}
private fun setupViews() {
with(binding) {
rvSetupCircles.apply {
addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL))
adapter = listAdapter
}
btnSkip.setOnClickListener { navigateToBottomMenuScreen() }
btnSave.setOnClickListener {
showLoading()
viewModel.createCircles()
}
}
}
private fun setupObservers() {
viewModel.circlesLiveData.observeData(this, ::setCirclesList)
viewModel.createCirclesResponseLiveData.observeResponse(this,
success = {
loadingDialog.dismiss()
showSuccess(getString(R.string.circles_created))
navigateToBottomMenuScreen()
},
error = {
showError(it)
loadingDialog.dismiss()
}
)
}
private fun setCirclesList(list: List<SetupCircleListItem>) {
listAdapter.submitList(list)
}
private fun onCircleListItemClicked(circle: SetupCircleListItem) {
mediaPickerHelper.showMediaPickerDialog(
onImageSelected = { id, uri -> viewModel.addImageForCircle(id, uri) },
id = circle.id
)
}
private fun showLoading() {
startLoading(binding.btnSave)
loadingDialog.handleLoading(LoadingData(messageId = R.string.configuring_workspace))
}
private fun navigateToBottomMenuScreen() {
findNavController().navigateSafe(SetupCirclesFragmentDirections.toHomeFragment())
}
}
\ No newline at end of file
package org.futo.circles.feature.circles.setup
import android.net.Uri
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.delay
import org.futo.circles.core.CREATE_ROOM_DELAY
import org.futo.circles.core.SingleEventLiveData
import org.futo.circles.core.extensions.Response
import org.futo.circles.core.extensions.createResult
import org.futo.circles.core.extensions.launchBg
import org.futo.circles.core.room.CreateRoomDataSource
import javax.inject.Inject
@HiltViewModel
class SetupCirclesViewModel @Inject constructor(
private val setupCirclesDataSource: SetupCirclesDataSource,
private val createRoomDataSource: CreateRoomDataSource
) : ViewModel() {
val circlesLiveData = setupCirclesDataSource.circlesLiveData
val createCirclesResponseLiveData = SingleEventLiveData<Response<Unit?>>()
fun createCircles() {
val circlesList = circlesLiveData.value ?: return
val lastItemIndex = circlesList.size - 1
launchBg {
val response = createResult {
circlesList.forEachIndexed { i, item ->
createRoomDataSource.createCircleWithTimeline(
name = item.name,
iconUri = item.coverUri,
null, false
)
if (i != lastItemIndex) delay(CREATE_ROOM_DELAY)
}
}
createCirclesResponseLiveData.postValue(response)
}
}
fun addImageForCircle(id: Int?, uri: Uri) {
id?.let { setupCirclesDataSource.addCirclesCoverImage(it, uri) }
}
}
\ No newline at end of file
package org.futo.circles.feature.circles.setup.list
import android.view.ViewGroup
import org.futo.circles.core.list.BaseRvAdapter
import org.futo.circles.model.SetupCircleListItem
class SetupCirclesAdapter(
private val onCircleClicked: (SetupCircleListItem) -> Unit
) : BaseRvAdapter<SetupCircleListItem, SetupCirclesViewHolder>(DefaultIdEntityCallback()) {
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): SetupCirclesViewHolder = SetupCirclesViewHolder(
parent = parent,
onCircleClicked = { position -> onCircleClicked(getItem(position)) }
)
override fun onBindViewHolder(holder: SetupCirclesViewHolder, position: Int) {
holder.bind(getItem(position))
}
}
\ No newline at end of file
package org.futo.circles.feature.circles.setup.list
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import org.futo.circles.R
import org.futo.circles.core.extensions.onClick
import org.futo.circles.core.list.ViewBindingHolder
import org.futo.circles.databinding.ListItemSetupCircleBinding
import org.futo.circles.model.SetupCircleListItem
class SetupCirclesViewHolder(
parent: ViewGroup,
onCircleClicked: (Int) -> Unit
) : RecyclerView.ViewHolder(inflate(parent, ListItemSetupCircleBinding::inflate)) {
private companion object : ViewBindingHolder
private val binding = baseBinding as ListItemSetupCircleBinding
init {
onClick(itemView) { position -> onCircleClicked(position) }
}
fun bind(data: SetupCircleListItem) {
with(binding) {
data.coverUri?.let { ivCircleCover.setImageURI(it) }
?: ivCircleCover.setImageResource(R.drawable.add_image_placeholder)
tvCircleName.text = data.name
tvUserName.text = data.userName
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:title="@string/setup_circles"
app:titleCentered="true" />
<View
android:id="@+id/toolbarDivider"
android:layout_width="0dp"
android:layout_height="@dimen/divider_height"
android:background="@color/divider_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guidelineStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="36dp" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guidelineEnd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_end="36dp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvSetupCircles"
android:layout_width="0dp"
android:layout_height="0dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toTopOf="@id/tvEncryptionWarning"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbarDivider" />
<TextView
android:id="@+id/tvEncryptionWarning"
style="@style/footNote"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:drawablePadding="8dp"
android:text="@string/circle_encryption_warning"
android:textColor="@color/yellow"
app:drawableStartCompat="@drawable/ic_info"
app:drawableTint="@color/yellow"
app:layout_constraintBottom_toTopOf="@id/btnSave"
app:layout_constraintEnd_toEndOf="@id/guidelineEnd"
app:layout_constraintStart_toStartOf="@id/guidelineStart" />
<org.futo.circles.core.view.LoadingButton
android:id="@+id/btnSave"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="24dp"
android:text="@string/save"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/guidelineEnd"
app:layout_constraintStart_toEndOf="@id/btnSkip" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnSkip"
style="@style/NegativeButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/skip"
app:layout_constraintBottom_toBottomOf="@id/btnSave"
app:layout_constraintEnd_toStartOf="@id/btnSave"
app:layout_constraintStart_toStartOf="@id/guidelineStart" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:padding="4dp">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/ivCircleCover"
android:layout_width="@dimen/group_icon_size"
android:layout_height="@dimen/group_icon_size"
android:scaleType="centerCrop"
android:src="@drawable/add_image_placeholder"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.App.GroupIconRadius" />
<TextView
android:id="@+id/tvCircleName"
style="@style/title2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center"
android:lines="1"
app:layout_constraintBottom_toTopOf="@id/tvUserName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/ivCircleCover"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="texsdt" />
<TextView
android:id="@+id/tvUserName"
style="@style/subheadline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:ellipsize="end"
android:gravity="center"
android:lines="1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/tvCircleName"
app:layout_constraintTop_toBottomOf="@id/tvCircleName"
tools:text="texsdt" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -54,18 +54,6 @@ ...@@ -54,18 +54,6 @@
</action> </action>
</fragment> </fragment>
<fragment
android:id="@+id/setupCirclesFragment"
android:name="org.futo.circles.feature.circles.setup.SetupCirclesFragment"
android:label="SetupCirclesFragment"
tools:layout="@layout/fragment_setup_circles">
<action
android:id="@+id/to_homeFragment"
app:destination="@id/homeFragment"
app:popUpTo="@id/setupCirclesFragment"
app:popUpToInclusive="true" />
</fragment>
<include app:graph="@navigation/nav_graph_auth" /> <include app:graph="@navigation/nav_graph_auth" />
<dialog <dialog
......
...@@ -17,7 +17,6 @@ import org.futo.circles.auth.base.LoginStageNavigationEvent ...@@ -17,7 +17,6 @@ import org.futo.circles.auth.base.LoginStageNavigationEvent
import org.futo.circles.auth.databinding.FragmentLoginStagesBinding import org.futo.circles.auth.databinding.FragmentLoginStagesBinding
import org.futo.circles.auth.feature.log_in.recovery.EnterPassPhraseDialog import org.futo.circles.auth.feature.log_in.recovery.EnterPassPhraseDialog
import org.futo.circles.auth.feature.log_in.recovery.EnterPassPhraseDialogListener import org.futo.circles.auth.feature.log_in.recovery.EnterPassPhraseDialogListener
import org.futo.circles.core.CirclesAppConfig
import org.futo.circles.core.extensions.navigateSafe import org.futo.circles.core.extensions.navigateSafe
import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.observeData
import org.futo.circles.core.extensions.observeResponse import org.futo.circles.core.extensions.observeResponse
...@@ -79,15 +78,11 @@ class LogInStagesFragment : Fragment(R.layout.fragment_login_stages), ...@@ -79,15 +78,11 @@ class LogInStagesFragment : Fragment(R.layout.fragment_login_stages),
viewModel.passPhraseLoadingLiveData.observeData(this) { viewModel.passPhraseLoadingLiveData.observeData(this) {
loadingDialog.handleLoading(it) loadingDialog.handleLoading(it)
} }
viewModel.spacesTreeLoadingLiveData.observeData(this) {
loadingDialog.handleLoading(it)
}
viewModel.loginNavigationLiveData.observeData(this) { event -> viewModel.loginNavigationLiveData.observeData(this) { event ->
when (event) { when (event) {
LoginNavigationEvent.Main -> navigateToBottomMenuFragment() LoginNavigationEvent.Main -> navigateToHome()
LoginNavigationEvent.SetupCircles -> navigateToSetupCirclesOrHome()
LoginNavigationEvent.PassPhrase -> showPassPhraseDialog() LoginNavigationEvent.PassPhrase -> showPassPhraseDialog()
else -> navigateToBottomMenuFragment() else -> navigateToHome()
} }
} }
viewModel.messageEventLiveData.observeData(this) { messageId -> viewModel.messageEventLiveData.observeData(this) { messageId ->
...@@ -123,19 +118,10 @@ class LogInStagesFragment : Fragment(R.layout.fragment_login_stages), ...@@ -123,19 +118,10 @@ class LogInStagesFragment : Fragment(R.layout.fragment_login_stages),
} }
} }
private fun navigateToBottomMenuFragment() { private fun navigateToHome() {
findNavController().navigateSafe(LogInStagesFragmentDirections.toHomeFragment()) findNavController().navigateSafe(LogInStagesFragmentDirections.toHomeFragment())
} }
private fun navigateToSetupCirclesOrHome() {
findNavController().navigateSafe(
if (CirclesAppConfig.isSetupCirclesEnabled)
LogInStagesFragmentDirections.toSetupCirclesFragment()
else
LogInStagesFragmentDirections.toHomeFragment()
)
}
private fun showDiscardDialog() { private fun showDiscardDialog() {
showDialog( showDialog(
titleResIdRes = R.string.discard_current_login_progress, titleResIdRes = R.string.discard_current_login_progress,
......
...@@ -20,20 +20,18 @@ import org.matrix.android.sdk.api.util.JsonDict ...@@ -20,20 +20,18 @@ import org.matrix.android.sdk.api.util.JsonDict
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
enum class LoginNavigationEvent { Main, SetupCircles, PassPhrase } enum class LoginNavigationEvent { Main, PassPhrase }
@Singleton @Singleton
class LoginStagesDataSource @Inject constructor( class LoginStagesDataSource @Inject constructor(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val restoreBackupDataSource: RestoreBackupDataSource, private val restoreBackupDataSource: RestoreBackupDataSource,
private val coreSpacesTreeBuilder: CoreSpacesTreeBuilder,
private val encryptionAlgorithmHelper: EncryptionAlgorithmHelper, private val encryptionAlgorithmHelper: EncryptionAlgorithmHelper,
private val createPassPhraseDataSource: CreatePassPhraseDataSource private val createPassPhraseDataSource: CreatePassPhraseDataSource
) : BaseLoginStagesDataSource(context) { ) : BaseLoginStagesDataSource(context) {
val loginNavigationLiveData = SingleEventLiveData<LoginNavigationEvent>() val loginNavigationLiveData = SingleEventLiveData<LoginNavigationEvent>()
val passPhraseLoadingLiveData = restoreBackupDataSource.loadingLiveData val passPhraseLoadingLiveData = restoreBackupDataSource.loadingLiveData
val spacesTreeLoadingLiveData = coreSpacesTreeBuilder.loadingLiveData
val messageEventLiveData = SingleEventLiveData<Int>() val messageEventLiveData = SingleEventLiveData<Int>()
override suspend fun performLoginStage( override suspend fun performLoginStage(
...@@ -112,17 +110,12 @@ class LoginStagesDataSource @Inject constructor( ...@@ -112,17 +110,12 @@ class LoginStagesDataSource @Inject constructor(
private suspend fun handleRestoreResult(restoreResult: Response<Unit>): Response<Unit> { private suspend fun handleRestoreResult(restoreResult: Response<Unit>): Response<Unit> {
when (restoreResult) { when (restoreResult) {
is Response.Error -> loginNavigationLiveData.postValue(LoginNavigationEvent.PassPhrase) is Response.Error -> loginNavigationLiveData.postValue(LoginNavigationEvent.PassPhrase)
is Response.Success -> createSpacesTreeIfNotExist() is Response.Success -> navigateToMain()
} }
return restoreResult return restoreResult
} }
suspend fun createSpacesTreeIfNotExist() { fun navigateToMain() {
val isCirclesCreated = coreSpacesTreeBuilder.isCirclesHierarchyCreated() loginNavigationLiveData.postValue(LoginNavigationEvent.Main)
if (!isCirclesCreated) createResult { coreSpacesTreeBuilder.createCoreSpacesTree() }
loginNavigationLiveData.postValue(
if (isCirclesCreated) LoginNavigationEvent.Main
else LoginNavigationEvent.SetupCircles
)
} }
} }
\ No newline at end of file
...@@ -17,7 +17,6 @@ class LoginStagesViewModel @Inject constructor( ...@@ -17,7 +17,6 @@ class LoginStagesViewModel @Inject constructor(
val restoreKeysLiveData = org.futo.circles.core.SingleEventLiveData<Response<Unit>>() val restoreKeysLiveData = org.futo.circles.core.SingleEventLiveData<Response<Unit>>()
val loginNavigationLiveData = loginStagesDataSource.loginNavigationLiveData val loginNavigationLiveData = loginStagesDataSource.loginNavigationLiveData
val passPhraseLoadingLiveData = loginStagesDataSource.passPhraseLoadingLiveData val passPhraseLoadingLiveData = loginStagesDataSource.passPhraseLoadingLiveData
val spacesTreeLoadingLiveData = loginStagesDataSource.spacesTreeLoadingLiveData
val messageEventLiveData = loginStagesDataSource.messageEventLiveData val messageEventLiveData = loginStagesDataSource.messageEventLiveData
fun restoreBackupWithPassPhrase(passphrase: String) { fun restoreBackupWithPassPhrase(passphrase: String) {
...@@ -41,7 +40,7 @@ class LoginStagesViewModel @Inject constructor( ...@@ -41,7 +40,7 @@ class LoginStagesViewModel @Inject constructor(
} }
fun onDoNotRestoreBackup() { fun onDoNotRestoreBackup() {
launchBg { loginStagesDataSource.createSpacesTreeIfNotExist() } loginStagesDataSource.navigateToMain()
} }
} }
\ No newline at end of file
...@@ -10,7 +10,6 @@ import by.kirich1409.viewbindingdelegate.viewBinding ...@@ -10,7 +10,6 @@ import by.kirich1409.viewbindingdelegate.viewBinding
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.futo.circles.auth.R import org.futo.circles.auth.R
import org.futo.circles.auth.databinding.FragmentSetupProfileBinding import org.futo.circles.auth.databinding.FragmentSetupProfileBinding
import org.futo.circles.core.CirclesAppConfig
import org.futo.circles.core.extensions.getText import org.futo.circles.core.extensions.getText
import org.futo.circles.core.extensions.navigateSafe import org.futo.circles.core.extensions.navigateSafe
import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.observeData
...@@ -35,7 +34,7 @@ class SetupProfileFragment : Fragment(R.layout.fragment_setup_profile), HasLoadi ...@@ -35,7 +34,7 @@ class SetupProfileFragment : Fragment(R.layout.fragment_setup_profile), HasLoadi
private fun setupViews() { private fun setupViews() {
with(binding) { with(binding) {
btnSkip.setOnClickListener { navigateToSetupCirclesOrHome() } btnSkip.setOnClickListener { navigateToHome() }
btnSave.setOnClickListener { btnSave.setOnClickListener {
startLoading(btnSave) startLoading(btnSave)
viewModel.saveProfileInfo(tilDisplayName.getText()) viewModel.saveProfileInfo(tilDisplayName.getText())
...@@ -62,17 +61,12 @@ class SetupProfileFragment : Fragment(R.layout.fragment_setup_profile), HasLoadi ...@@ -62,17 +61,12 @@ class SetupProfileFragment : Fragment(R.layout.fragment_setup_profile), HasLoadi
} }
viewModel.saveProfileResponseLiveData.observeResponse( viewModel.saveProfileResponseLiveData.observeResponse(
this, this,
success = { navigateToSetupCirclesOrHome() } success = { navigateToHome() }
) )
} }
private fun navigateToSetupCirclesOrHome() { private fun navigateToHome() {
findNavController().navigateSafe( findNavController().navigateSafe(SetupProfileFragmentDirections.toHomeFragment())
if (CirclesAppConfig.isSetupCirclesEnabled)
SetupProfileFragmentDirections.toSetupCirclesFragment()
else
SetupProfileFragmentDirections.toHomeFragment()
)
} }
private fun setSaveButtonEnabled() { private fun setSaveButtonEnabled() {
......
...@@ -26,7 +26,6 @@ enum class SignUpNavigationEvents { TokenValidation, Subscription, AcceptTerm, V ...@@ -26,7 +26,6 @@ enum class SignUpNavigationEvents { TokenValidation, Subscription, AcceptTerm, V
@Singleton @Singleton
class SignUpDataSource @Inject constructor( class SignUpDataSource @Inject constructor(
@ApplicationContext private val context: Context, @ApplicationContext private val context: Context,
private val coreSpacesTreeBuilder: CoreSpacesTreeBuilder,
private val createPassPhraseDataSource: CreatePassPhraseDataSource, private val createPassPhraseDataSource: CreatePassPhraseDataSource,
private val preferencesProvider: PreferencesProvider private val preferencesProvider: PreferencesProvider
) { ) {
...@@ -35,7 +34,6 @@ class SignUpDataSource @Inject constructor( ...@@ -35,7 +34,6 @@ class SignUpDataSource @Inject constructor(
val navigationLiveData = SingleEventLiveData<SignUpNavigationEvents>() val navigationLiveData = SingleEventLiveData<SignUpNavigationEvents>()
val finishRegistrationLiveData = SingleEventLiveData<Response<Unit>>() val finishRegistrationLiveData = SingleEventLiveData<Response<Unit>>()
val passPhraseLoadingLiveData = createPassPhraseDataSource.loadingLiveData val passPhraseLoadingLiveData = createPassPhraseDataSource.loadingLiveData
val spaceTreeLoadingLiveData = coreSpacesTreeBuilder.loadingLiveData
val stagesToComplete = mutableListOf<Stage>() val stagesToComplete = mutableListOf<Stage>()
...@@ -116,7 +114,6 @@ class SignUpDataSource @Inject constructor( ...@@ -116,7 +114,6 @@ class SignUpDataSource @Inject constructor(
MatrixSessionProvider.awaitForSessionStart(session) MatrixSessionProvider.awaitForSessionStart(session)
preferencesProvider.setShouldShowAllExplanations() preferencesProvider.setShouldShowAllExplanations()
createPassPhraseDataSource.createPassPhraseBackup() createPassPhraseDataSource.createPassPhraseBackup()
coreSpacesTreeBuilder.createCoreSpacesTree()
BSSpekeClientProvider.clear() BSSpekeClientProvider.clear()
} }
......
...@@ -56,9 +56,6 @@ class SignUpFragment : Fragment(R.layout.fragment_sign_up), ...@@ -56,9 +56,6 @@ class SignUpFragment : Fragment(R.layout.fragment_sign_up),
viewModel.passPhraseLoadingLiveData.observeData(this) { viewModel.passPhraseLoadingLiveData.observeData(this) {
loadingDialog.handleLoading(it) loadingDialog.handleLoading(it)
} }
viewModel.spaceTreeLoadingLiveData.observeData(this) {
loadingDialog.handleLoading(it)
}
} }
......
...@@ -11,7 +11,6 @@ class SignUpViewModel @Inject constructor( ...@@ -11,7 +11,6 @@ class SignUpViewModel @Inject constructor(
val subtitleLiveData = datasource.subtitleLiveData val subtitleLiveData = datasource.subtitleLiveData
val passPhraseLoadingLiveData = datasource.passPhraseLoadingLiveData val passPhraseLoadingLiveData = datasource.passPhraseLoadingLiveData
val spaceTreeLoadingLiveData = datasource.spaceTreeLoadingLiveData
val finishRegistrationLiveData = datasource.finishRegistrationLiveData val finishRegistrationLiveData = datasource.finishRegistrationLiveData
val navigationLiveData = datasource.navigationLiveData val navigationLiveData = datasource.navigationLiveData
......
...@@ -32,11 +32,6 @@ ...@@ -32,11 +32,6 @@
app:destination="@id/homeFragment" app:destination="@id/homeFragment"
app:popUpTo="@id/logInFragment" app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" /> app:popUpToInclusive="true" />
<action
android:id="@+id/to_setupCirclesFragment"
app:destination="@id/setupCirclesFragment"
app:popUpTo="@id/logInFragment"
app:popUpToInclusive="true" />
</fragment> </fragment>
<fragment <fragment
android:id="@+id/signUpFragment" android:id="@+id/signUpFragment"
...@@ -54,11 +49,7 @@ ...@@ -54,11 +49,7 @@
android:name="org.futo.circles.auth.feature.profile.setup.SetupProfileFragment" android:name="org.futo.circles.auth.feature.profile.setup.SetupProfileFragment"
android:label="SetupProfileFragment" android:label="SetupProfileFragment"
tools:layout="@layout/fragment_setup_profile"> tools:layout="@layout/fragment_setup_profile">
<action
android:id="@+id/to_setupCirclesFragment"
app:destination="@id/setupCirclesFragment"
app:popUpTo="@id/setupProfileFragment"
app:popUpToInclusive="true" />
<action <action
android:id="@+id/to_homeFragment" android:id="@+id/to_homeFragment"
app:destination="@id/homeFragment" app:destination="@id/homeFragment"
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<item name="homeFragment" type="id" /> <item name="homeFragment" type="id" />
<item name="setupCirclesFragment" type="id" />
</resources> </resources>
\ No newline at end of file
...@@ -28,9 +28,6 @@ object CirclesAppConfig { ...@@ -28,9 +28,6 @@ object CirclesAppConfig {
var isRageshakeEnabled = false var isRageshakeEnabled = false
private set private set
var isSetupCirclesEnabled = true
private set
data class Initializer( data class Initializer(
private var appId: String? = null, private var appId: String? = null,
private var version: String? = null, private var version: String? = null,
...@@ -40,8 +37,7 @@ object CirclesAppConfig { ...@@ -40,8 +37,7 @@ object CirclesAppConfig {
private var euDomain: String? = null, private var euDomain: String? = null,
private var subscriptionEnabled: Boolean = false, private var subscriptionEnabled: Boolean = false,
private var mediaBackupEnabled: Boolean = false, private var mediaBackupEnabled: Boolean = false,
private var rageshakeEnabled: Boolean = false, private var rageshakeEnabled: Boolean = false
private var setupCirclesEnabled: Boolean = true
) { ) {
fun buildConfigInfo(appId: String, version: String, flavour: String = "empty") = fun buildConfigInfo(appId: String, version: String, flavour: String = "empty") =
...@@ -64,8 +60,6 @@ object CirclesAppConfig { ...@@ -64,8 +60,6 @@ object CirclesAppConfig {
fun isRageshakeEnabled(isEnabled: Boolean) = apply { this.rageshakeEnabled = isEnabled } fun isRageshakeEnabled(isEnabled: Boolean) = apply { this.rageshakeEnabled = isEnabled }
fun isSetupCirclesEnabled(isEnabled: Boolean) =
apply { this.setupCirclesEnabled = isEnabled }
fun init() { fun init() {
CirclesAppConfig.appId = appId?.takeIf { it.isNotEmpty() } CirclesAppConfig.appId = appId?.takeIf { it.isNotEmpty() }
...@@ -89,7 +83,6 @@ object CirclesAppConfig { ...@@ -89,7 +83,6 @@ object CirclesAppConfig {
isSubscriptionsEnabled = subscriptionEnabled isSubscriptionsEnabled = subscriptionEnabled
isMediaBackupEnabled = mediaBackupEnabled isMediaBackupEnabled = mediaBackupEnabled
isRageshakeEnabled = rageshakeEnabled isRageshakeEnabled = rageshakeEnabled
isSetupCirclesEnabled = setupCirclesEnabled
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment