Pārlūkot izejas kodu

Navigating to selected item's screen and showing item heading on top app bar

Khubaib 6 mēneši atpakaļ
vecāks
revīzija
355336b09d

+ 2 - 2
app/src/main/java/com/fastest/pass/home/presentation/ui/components/NewItemFormScreen.kt

@@ -34,7 +34,7 @@ enum class ClickTypeNewItemForm {
 }
 
 @Composable
-fun NewItemFormScreen(clickType: (ClickTypeNewItemForm) -> Unit) {
+fun NewItemFormScreen(screenName: String, clickType: (ClickTypeNewItemForm) -> Unit) {
     Column(
         modifier = Modifier
             .fillMaxSize()
@@ -50,7 +50,7 @@ fun NewItemFormScreen(clickType: (ClickTypeNewItemForm) -> Unit) {
         ) { }
 
         Spacer(modifier = Modifier.height(20.dp))
-        ShowNewItemFormHeader(text = stringResource(id = R.string.add_password)) { clickTypeNewItemForm ->
+        ShowNewItemFormHeader(text = screenName) { clickTypeNewItemForm ->
             clickType(clickTypeNewItemForm)
         }
     }

+ 9 - 2
app/src/main/java/com/fastest/pass/home/presentation/ui/fragment/AddNewItemsFragment.kt

@@ -15,6 +15,7 @@ import androidx.compose.runtime.collectAsState
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.platform.ComposeView
 import androidx.compose.ui.res.colorResource
+import androidx.fragment.app.activityViewModels
 import androidx.fragment.app.viewModels
 import com.fastest.pass.BaseFragment
 import com.fastest.pass.R
@@ -33,7 +34,7 @@ import javax.inject.Inject
 @AndroidEntryPoint
 class AddNewItemsFragment : BaseFragment() {
 
-    val viewmodel: AddNewItemsViewModel by viewModels()
+    val viewmodel: AddNewItemsViewModel by activityViewModels()
 
     @Inject
     lateinit var navigation: AddNewItemsNavigation
@@ -66,23 +67,29 @@ class AddNewItemsFragment : BaseFragment() {
                                         ClickTypeAddNewItem.GOTO_HOME -> {
                                             viewmodel.navigateTo(AddNewItemsRoute.Go_Back_Home)
                                         }
-
                                         ClickTypeAddNewItem.Password -> {
+                                            viewmodel.navigateToItemScreen(clickTypeAddNewItem.name)
                                             viewmodel.navigateTo(AddNewItemsRoute.OpenNewItemFormScreen)
+
                                         }
                                         ClickTypeAddNewItem.Bank -> {
+                                            viewmodel.navigateToItemScreen(clickTypeAddNewItem.name)
                                             viewmodel.navigateTo(AddNewItemsRoute.OpenNewItemFormScreen)
                                         }
                                         ClickTypeAddNewItem.Payment -> {
+                                            viewmodel.navigateToItemScreen(clickTypeAddNewItem.name)
                                             viewmodel.navigateTo(AddNewItemsRoute.OpenNewItemFormScreen)
                                         }
                                         ClickTypeAddNewItem.Wifi -> {
+                                            viewmodel.navigateToItemScreen(clickTypeAddNewItem.name)
                                             viewmodel.navigateTo(AddNewItemsRoute.OpenNewItemFormScreen)
                                         }
                                         ClickTypeAddNewItem.Note -> {
+                                            viewmodel.navigateToItemScreen(clickTypeAddNewItem.name)
                                             viewmodel.navigateTo(AddNewItemsRoute.OpenNewItemFormScreen)
                                         }
                                         ClickTypeAddNewItem.Contact -> {
+                                            viewmodel.navigateToItemScreen(clickTypeAddNewItem.name)
                                             viewmodel.navigateTo(AddNewItemsRoute.OpenNewItemFormScreen)
                                         }
                                     }

+ 14 - 1
app/src/main/java/com/fastest/pass/home/presentation/ui/fragment/NewItemFormFragment.kt

@@ -1,6 +1,7 @@
 package com.fastest.pass.home.presentation.ui.fragment
 
 import android.os.Bundle
+import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
@@ -9,14 +10,18 @@ import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.fillMaxSize
 import androidx.compose.foundation.layout.padding
 import androidx.compose.material.Scaffold
+import androidx.compose.runtime.collectAsState
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.platform.ComposeView
 import androidx.compose.ui.res.colorResource
+import androidx.fragment.app.activityViewModels
 import androidx.fragment.app.viewModels
+import androidx.lifecycle.ViewModelProvider
 import com.fastest.pass.BaseFragment
 import com.fastest.pass.R
 import com.fastest.pass.home.presentation.ui.components.ClickTypeNewItemForm
 import com.fastest.pass.home.presentation.ui.components.NewItemFormScreen
+import com.fastest.pass.home.presentation.viewmodels.AddNewItemsViewModel
 import com.fastest.pass.home.presentation.viewmodels.NewItemFormViewModel
 import com.fastest.pass.home.utils.NewItemFormNavigation
 import com.fastest.pass.home.utils.NewItemFormRoute
@@ -28,6 +33,7 @@ import javax.inject.Inject
 class NewItemFormFragment : BaseFragment() {
 
     val viewmodel: NewItemFormViewModel by viewModels()
+    val viewmodelAddNewItems: AddNewItemsViewModel by activityViewModels()
 
     @Inject
     lateinit var navigation: NewItemFormNavigation
@@ -54,7 +60,14 @@ class NewItemFormFragment : BaseFragment() {
                                 .background(colorResource(id = R.color.white))
                                 .padding(paddingValues.calculateBottomPadding())
                         ) {
-                            NewItemFormScreen { clickTypeNewItemForm ->
+                            val screenName = viewmodelAddNewItems.itemScreenName.collectAsState()
+                            Log.d("test_screen_name", "NIFF::screenName = ${screenName.value}")
+
+                            when (screenName.value) {
+
+                            }
+
+                            NewItemFormScreen(screenName.value) { clickTypeNewItemForm ->
                                 when (clickTypeNewItemForm) {
                                     ClickTypeNewItemForm.GO_BACK_ADD_NEW_ITEM -> {
                                         viewmodel.navigateTo(NewItemFormRoute.GoBackAddNewItemsScreen)

+ 2 - 0
app/src/main/java/com/fastest/pass/home/presentation/viewmodels/AddNewItemsViewModel.kt

@@ -1,5 +1,6 @@
 package com.fastest.pass.home.presentation.viewmodels
 
+import android.util.Log
 import androidx.lifecycle.ViewModel
 import com.fastest.pass.home.utils.AddNewItemsRoute
 import kotlinx.coroutines.flow.MutableStateFlow
@@ -16,6 +17,7 @@ class AddNewItemsViewModel : ViewModel() {
     }
 
     fun navigateToItemScreen(screenName: String) {
+        Log.d("test_screen_name", "screenName = $screenName")
         _itemScreenName.value = screenName
     }
 }

+ 0 - 1
app/src/main/java/com/fastest/pass/home/utils/AddNewItemsNavigation.kt

@@ -1,6 +1,5 @@
 package com.fastest.pass.home.utils
 
-import android.util.Log
 import androidx.lifecycle.lifecycleScope
 import androidx.navigation.fragment.findNavController
 import com.fastest.pass.R