Lock drawer closed in onboarding
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user