From 233101f3deaff074bab08e7c37ced85ef58ed896 Mon Sep 17 00:00:00 2001 From: v228a Date: Wed, 19 Feb 2025 12:35:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=AD=D0=BA=D1=80=D0=B0=D0=BD=20=D0=BB=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/myitschool/work/ui/RootActivity.kt | 3 ++ .../work/ui/entrylist/EntryListDestination.kt | 6 ++++ .../work/ui/entrylist/EntryListFragment.kt | 32 ++++++++++--------- .../work/ui/profile/ProfileFragment.kt | 6 ++++ .../work/ui/profile/ProfileViewModel.kt | 7 +++- 5 files changed, 38 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListDestination.kt 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..8d09163 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 @@ -10,6 +10,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 @@ -73,6 +74,11 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { popUpTo { inclusive = true } } } + is ProfileViewModel.Action.OpenLog -> { + findNavController().navigate(LoginDestination) { + popUpTo { inclusive = true } + } + } is ProfileViewModel.Action.OpenScan -> { findNavController().apply { 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 {