Lock drawer closed in onboarding

This commit is contained in:
Kirill Kamakin
2022-11-19 12:30:43 +01:00
parent bc820123b2
commit 1a4d15b680
8 changed files with 14 additions and 12 deletions

View File

@@ -74,7 +74,7 @@ class MainActivity : AppCompatActivity(R.layout.main_activity) {
val directions = when (menuItem.itemId) { val directions = when (menuItem.itemId) {
R.id.add_recipe -> actionGlobalAddRecipeFragment() R.id.add_recipe -> actionGlobalAddRecipeFragment()
R.id.recipes_list -> actionGlobalRecipesListFragment() R.id.recipes_list -> actionGlobalRecipesListFragment()
R.id.change_url -> actionGlobalBaseURLFragment() R.id.change_url -> actionGlobalBaseURLFragment(false)
R.id.login -> actionGlobalAuthenticationFragment() R.id.login -> actionGlobalAuthenticationFragment()
R.id.logout -> { R.id.logout -> {
viewModel.logout() viewModel.logout()

View File

@@ -1,14 +1,11 @@
package gq.kirmanak.mealient.ui.activity package gq.kirmanak.mealient.ui.activity
data class MainActivityUiState( data class MainActivityUiState(
val loginButtonVisible: Boolean = false,
val isAuthorized: Boolean = false, val isAuthorized: Boolean = false,
val navigationVisible: Boolean = false, val navigationVisible: Boolean = false,
val searchVisible: Boolean = false, val searchVisible: Boolean = false,
) { ) {
val canShowLogin: Boolean val canShowLogin: Boolean get() = !isAuthorized
get() = !isAuthorized && loginButtonVisible
val canShowLogout: Boolean val canShowLogout: Boolean get() = isAuthorized
get() = isAuthorized && loginButtonVisible
} }

View File

@@ -38,7 +38,7 @@ class AddRecipeFragment : Fragment(R.layout.fragment_add_recipe) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
logger.v { "onViewCreated() called with: view = $view, savedInstanceState = $savedInstanceState" } logger.v { "onViewCreated() called with: view = $view, savedInstanceState = $savedInstanceState" }
activityViewModel.updateUiState { activityViewModel.updateUiState {
it.copy(loginButtonVisible = true, navigationVisible = true, searchVisible = false) it.copy(navigationVisible = true, searchVisible = false)
} }
viewModel.loadPreservedRequest() viewModel.loadPreservedRequest()
setupViews() setupViews()

View File

@@ -32,7 +32,7 @@ class AuthenticationFragment : Fragment(R.layout.fragment_authentication) {
logger.v { "onViewCreated() called with: view = $view, savedInstanceState = $savedInstanceState" } logger.v { "onViewCreated() called with: view = $view, savedInstanceState = $savedInstanceState" }
binding.button.setOnClickListener { onLoginClicked() } binding.button.setOnClickListener { onLoginClicked() }
activityViewModel.updateUiState { activityViewModel.updateUiState {
it.copy(loginButtonVisible = false, navigationVisible = false, searchVisible = false) it.copy(navigationVisible = true, searchVisible = false)
} }
viewModel.uiState.observe(viewLifecycleOwner, ::onUiStateChange) viewModel.uiState.observe(viewLifecycleOwner, ::onUiStateChange)
} }

View File

@@ -6,6 +6,7 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import by.kirich1409.viewbindingdelegate.viewBinding import by.kirich1409.viewbindingdelegate.viewBinding
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import gq.kirmanak.mealient.R import gq.kirmanak.mealient.R
@@ -24,6 +25,7 @@ class BaseURLFragment : Fragment(R.layout.fragment_base_url) {
private val binding by viewBinding(FragmentBaseUrlBinding::bind) private val binding by viewBinding(FragmentBaseUrlBinding::bind)
private val viewModel by viewModels<BaseURLViewModel>() private val viewModel by viewModels<BaseURLViewModel>()
private val activityViewModel by activityViewModels<MainActivityViewModel>() private val activityViewModel by activityViewModels<MainActivityViewModel>()
private val args by navArgs<BaseURLFragmentArgs>()
@Inject @Inject
lateinit var logger: Logger lateinit var logger: Logger
@@ -34,7 +36,7 @@ class BaseURLFragment : Fragment(R.layout.fragment_base_url) {
binding.button.setOnClickListener(::onProceedClick) binding.button.setOnClickListener(::onProceedClick)
viewModel.uiState.observe(viewLifecycleOwner, ::onUiStateChange) viewModel.uiState.observe(viewLifecycleOwner, ::onUiStateChange)
activityViewModel.updateUiState { activityViewModel.updateUiState {
it.copy(loginButtonVisible = false, navigationVisible = false, searchVisible = false) it.copy(navigationVisible = !args.isOnboarding, searchVisible = false)
} }
} }

View File

@@ -38,7 +38,7 @@ class DisclaimerFragment : Fragment(R.layout.fragment_disclaimer) {
private fun navigateNext() { private fun navigateNext() {
logger.v { "navigateNext() called" } logger.v { "navigateNext() called" }
findNavController().navigate(actionDisclaimerFragmentToBaseURLFragment()) findNavController().navigate(actionDisclaimerFragmentToBaseURLFragment(true))
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -58,7 +58,7 @@ class DisclaimerFragment : Fragment(R.layout.fragment_disclaimer) {
} }
viewModel.startCountDown() viewModel.startCountDown()
activityViewModel.updateUiState { activityViewModel.updateUiState {
it.copy(loginButtonVisible = false, navigationVisible = false, searchVisible = false) it.copy(navigationVisible = false, searchVisible = false)
} }
} }
} }

View File

@@ -49,7 +49,7 @@ class RecipesListFragment : Fragment(R.layout.fragment_recipes_list) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
logger.v { "onViewCreated() called with: view = $view, savedInstanceState = $savedInstanceState" } logger.v { "onViewCreated() called with: view = $view, savedInstanceState = $savedInstanceState" }
activityViewModel.updateUiState { activityViewModel.updateUiState {
it.copy(loginButtonVisible = true, navigationVisible = true, searchVisible = true) it.copy(navigationVisible = true, searchVisible = true)
} }
setupRecipeAdapter() setupRecipeAdapter()
hideKeyboardOnScroll() hideKeyboardOnScroll()

View File

@@ -53,6 +53,9 @@
app:destination="@id/recipesListFragment" app:destination="@id/recipesListFragment"
app:popUpTo="@id/nav_graph" app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true" /> app:popUpToInclusive="true" />
<argument
android:name="isOnboarding"
app:argType="boolean" />
</fragment> </fragment>
<fragment <fragment