Экран логов

This commit is contained in:
v228a 2025-02-19 12:35:16 +03:00
parent ef92c24f6b
commit 233101f3de
5 changed files with 38 additions and 16 deletions

View File

@ -9,6 +9,8 @@ import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.fragment import androidx.navigation.fragment.fragment
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import ru.myitschool.work.R 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.LoginDestination
import ru.myitschool.work.ui.login.LoginFragment import ru.myitschool.work.ui.login.LoginFragment
import ru.myitschool.work.ui.profile.ProfileDestination import ru.myitschool.work.ui.profile.ProfileDestination
@ -39,6 +41,7 @@ class RootActivity : AppCompatActivity() {
fragment<ProfileFragment, ProfileDestination>() fragment<ProfileFragment, ProfileDestination>()
fragment<QrResultFragment, QrResultDestination>() fragment<QrResultFragment, QrResultDestination>()
fragment<QrScanFragment, QrScanDestination>() fragment<QrScanFragment, QrScanDestination>()
fragment<EntryListFragment, EntryListDestination>()
} }
} }

View File

@ -0,0 +1,6 @@
package ru.myitschool.work.ui.entrylist
import kotlinx.serialization.Serializable
@Serializable
data object EntryListDestination

View File

@ -7,25 +7,27 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import ru.myitschool.work.R 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 { private var _binding: FragmentEntryListBinding? = null
fun newInstance() = EntryListFragment() 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( private fun subscribe(){}
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return inflater.inflate(R.layout.fragment_entry_list, container, false)
}
} }

View File

@ -10,6 +10,7 @@ import com.squareup.picasso.Picasso
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import ru.myitschool.work.R import ru.myitschool.work.R
import ru.myitschool.work.databinding.FragmentProfileBinding 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.login.LoginDestination
import ru.myitschool.work.ui.qr.result.QrResultDestination import ru.myitschool.work.ui.qr.result.QrResultDestination
import ru.myitschool.work.ui.qr.scan.QrScanDestination import ru.myitschool.work.ui.qr.scan.QrScanDestination
@ -73,6 +74,11 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) {
popUpTo<ProfileDestination> { inclusive = true } popUpTo<ProfileDestination> { inclusive = true }
} }
} }
is ProfileViewModel.Action.OpenLog -> {
findNavController().navigate(LoginDestination) {
popUpTo<EntryListDestination> { inclusive = true }
}
}
is ProfileViewModel.Action.OpenScan -> { is ProfileViewModel.Action.OpenScan -> {
findNavController().apply { findNavController().apply {

View File

@ -45,7 +45,11 @@ class ProfileViewModel @Inject constructor(
_action.emit(Action.OpenLogin) _action.emit(Action.OpenLogin)
} }
} }
fun clickLog(){
viewModelScope.launch {
_action.emit(Action.OpenLog)
}
}
fun clickScan() { fun clickScan() {
viewModelScope.launch { viewModelScope.launch {
_action.emit(Action.OpenScan) _action.emit(Action.OpenScan)
@ -96,6 +100,7 @@ class ProfileViewModel @Inject constructor(
sealed interface Action { sealed interface Action {
data object OpenLogin : Action data object OpenLogin : Action
data object OpenScan : Action data object OpenScan : Action
data object OpenLog : Action
} }
private companion object { private companion object {