feat: Экран Стартер, фикс ошибок

This commit is contained in:
yastruckov 2025-02-20 16:22:29 +03:00
parent 379117cc0c
commit f4d5e7a9de
7 changed files with 35 additions and 13 deletions

View File

@ -12,7 +12,6 @@ class UserDataStoreManager(private val context: Context) {
companion object {
private val USERNAME_KEY = stringPreferencesKey("username")
private val ROLE_KEY = stringPreferencesKey("role")
private val PASSWORD_KEY = stringPreferencesKey("password")
fun getInstance(context: Context): UserDataStoreManager {
@ -26,20 +25,12 @@ class UserDataStoreManager(private val context: Context) {
val passwordFlow: Flow<String> = context.applicationContext.dataStore.data.map { prefs ->
prefs[PASSWORD_KEY] ?: ""
}
val roleFlow: Flow<String> = context.applicationContext.dataStore.data.map{ prefs ->
prefs[ROLE_KEY] ?: ""
}
suspend fun saveCredentials(username: String, password: String) {
context.dataStore.edit { prefs ->
prefs[USERNAME_KEY] = username
prefs[PASSWORD_KEY] = password
}
}
suspend fun saveRole(role: String){
context.dataStore.edit { prefs ->
prefs[ROLE_KEY] = role
}
}
suspend fun clearCredentials() {
context.applicationContext.dataStore.edit { it.clear() }
}

View File

@ -12,7 +12,6 @@ import com.squareup.picasso.Picasso
import ru.myitschool.work.R
import ru.myitschool.work.databinding.FragmentAdminBinding
import ru.myitschool.work.entities.EmployeeEntity
import ru.myitschool.work.ui.login.LoginViewModel
import ru.myitschool.work.utils.buttonRecolor
import ru.myitschool.work.utils.collectWithLifecycle
@ -122,6 +121,7 @@ class AdminFragment : Fragment(R.layout.fragment_admin) {
binding.position.text = user.position
btnState(user.qrEnabled)
Picasso.get().load(user.photoUrl).into(binding.avatar)
}
}

View File

@ -148,6 +148,11 @@ class MainFragment : Fragment(R.layout.fragment_main) {
binding.scan.setTextColor(ContextCompat.getColor(requireContext(), R.color.secondary_text_color))
}
}
if(employeeEntity.authority == "EMPLOYEE"){
binding.admin.visibility = View.GONE
}else{
binding.admin.visibility = View.VISIBLE
}
}

View File

@ -0,0 +1,17 @@
package ru.myitschool.work.ui.starter
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import ru.myitschool.work.R
import ru.myitschool.work.databinding.FragmentStarterBinding
class StarterFragment : Fragment(R.layout.fragment_starter) {
private var _binding: FragmentStarterBinding? = null
private val binding get() = _binding!!
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_binding = FragmentStarterBinding.bind(view)
binding.loginBtn.setOnClickListener { findNavController().navigate(R.id.loginFragment) }
}
}

View File

@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/loginFragment">
app:startDestination="@id/starterFragment">
<fragment
android:id="@+id/loginFragment"
android:name="ru.myitschool.work.ui.login.LoginFragment"
@ -51,4 +51,13 @@
android:name="ru.myitschool.work.ui.admin.AdminFragment"
android:label="fragment_admin"
tools:layout="@layout/fragment_admin" />
<fragment
android:id="@+id/starterFragment"
android:name="ru.myitschool.work.ui.starter.StarterFragment"
android:label="StarterFragment"
tools:layout="@layout/fragment_starter">
<action
android:id="@+id/action_starterFragment_to_loginFragment"
app:destination="@id/loginFragment" />
</fragment>
</navigation>

View File

@ -21,7 +21,7 @@
<string name="block_btn">Block</string>
<string name="unblock_btn">Unblock</string>
<string name="starter_tiser">Welcome to</string>
<string name="starter_tiser_accent">S company Pass</string>
<string name="starter_tiser_accent">S Company Pass</string>
<string name="description">View visits and an electronic pass in one application</string>
<string name="admin_unauthorized">Вы не авторизованы</string>
<string name="admin_forbidden">Нет доступа</string>

View File

@ -26,7 +26,7 @@
<string name="admin_forbidden">Нет доступа</string>
<string name="not_found">404\nСотрудник не найден</string>
<string name="starter_tiser">Добро пожаловать в</string>
<string name="starter_tiser_accent">S company Pass</string>
<string name="starter_tiser_accent">S Company Pass</string>
<string name="description">Просмотр посещений и электронный пропуск в одном приложении</string>