diff --git a/app/src/main/java/ru/myitschool/work/ui/RootActivity.kt b/app/src/main/java/ru/myitschool/work/ui/RootActivity.kt index ba0cd96..b650c8b 100644 --- a/app/src/main/java/ru/myitschool/work/ui/RootActivity.kt +++ b/app/src/main/java/ru/myitschool/work/ui/RootActivity.kt @@ -9,6 +9,8 @@ import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.fragment import dagger.hilt.android.AndroidEntryPoint import ru.myitschool.work.R +import ru.myitschool.work.ui.entrylist.EntryListDestination +import ru.myitschool.work.ui.entrylist.EntryListFragment import ru.myitschool.work.ui.login.LoginDestination import ru.myitschool.work.ui.login.LoginFragment import ru.myitschool.work.ui.profile.ProfileDestination @@ -39,6 +41,7 @@ class RootActivity : AppCompatActivity() { fragment() fragment() fragment() + fragment() } } diff --git a/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListDestination.kt b/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListDestination.kt new file mode 100644 index 0000000..b636d6b --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListDestination.kt @@ -0,0 +1,6 @@ +package ru.myitschool.work.ui.entrylist + +import kotlinx.serialization.Serializable + +@Serializable +data object EntryListDestination \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListFragment.kt b/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListFragment.kt index c62933d..6d65d57 100644 --- a/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListFragment.kt +++ b/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListFragment.kt @@ -7,25 +7,27 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import ru.myitschool.work.R +import ru.myitschool.work.databinding.FragmentEntryListBinding +import ru.myitschool.work.databinding.FragmentLoginBinding +import ru.myitschool.work.ui.login.LoginViewModel -class EntryListFragment : Fragment() { +class EntryListFragment : Fragment(R.layout.fragment_entry_list) { - companion object { - fun newInstance() = EntryListFragment() + private var _binding: FragmentEntryListBinding? = null + private val binding: FragmentEntryListBinding get() = _binding!! + + private val viewModel: LoginViewModel by viewModels() + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + _binding = FragmentEntryListBinding.bind(view) + initCallback() + subscribe() } - private val viewModel: EntryListViewModel by viewModels() + private fun initCallback (){ - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) + } - // TODO: Use the ViewModel - } - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - return inflater.inflate(R.layout.fragment_entry_list, container, false) - } + private fun subscribe(){} } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt index ae9b7a7..171f134 100644 --- a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt +++ b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt @@ -1,6 +1,7 @@ package ru.myitschool.work.ui.profile import android.os.Bundle +import android.util.Log import android.view.View import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels @@ -10,6 +11,7 @@ import com.squareup.picasso.Picasso import dagger.hilt.android.AndroidEntryPoint import ru.myitschool.work.R import ru.myitschool.work.databinding.FragmentProfileBinding +import ru.myitschool.work.ui.entrylist.EntryListDestination import ru.myitschool.work.ui.login.LoginDestination import ru.myitschool.work.ui.qr.result.QrResultDestination import ru.myitschool.work.ui.qr.scan.QrScanDestination @@ -74,12 +76,19 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { } } + is ProfileViewModel.Action.OpenLog -> { + findNavController().navigate(EntryListDestination) { + popUpTo { inclusive = true } + } + } + is ProfileViewModel.Action.OpenScan -> { findNavController().apply { navigate(QrResultDestination) navigate(QrScanDestination) } } + } } } @@ -87,6 +96,7 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { private fun initCallback() { binding.logout.setOnClickListener { viewModel.clickLogout() } binding.scan.setOnClickListener { viewModel.clickScan() } + binding.entryList.setOnClickListener{ viewModel.clickLog()} } override fun onDestroyView() { diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.kt index 680cf1d..4c2144c 100644 --- a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileViewModel.kt @@ -45,7 +45,11 @@ class ProfileViewModel @Inject constructor( _action.emit(Action.OpenLogin) } } - + fun clickLog(){ + viewModelScope.launch { + _action.emit(Action.OpenLog) + } + } fun clickScan() { viewModelScope.launch { _action.emit(Action.OpenScan) @@ -96,6 +100,7 @@ class ProfileViewModel @Inject constructor( sealed interface Action { data object OpenLogin : Action data object OpenScan : Action + data object OpenLog : Action } private companion object {