Tochno Last without scroll view with back
This commit is contained in:
parent
5b1b590358
commit
923da6b37e
@ -23,6 +23,12 @@ interface LoginApi {
|
||||
@Query("login") login: String
|
||||
): Response<ResponseBody>
|
||||
|
||||
@GET("entries")
|
||||
suspend fun entries(
|
||||
@Header("Authorization") authHeader: String,
|
||||
@Query("login") login: String
|
||||
): Response<ResponseBody>
|
||||
|
||||
@PUT("ban")
|
||||
suspend fun ban(
|
||||
@Header("Authorization") authHeader: String,
|
||||
|
11
app/src/main/java/ru/myitschool/work/ui/main/EntryClass.kt
Normal file
11
app/src/main/java/ru/myitschool/work/ui/main/EntryClass.kt
Normal file
@ -0,0 +1,11 @@
|
||||
package ru.myitschool.work.ui.main
|
||||
|
||||
import java.time.LocalDateTime
|
||||
|
||||
data class EntryClass(
|
||||
val value: Long = 1,
|
||||
val type:String= "",
|
||||
val dateTime:String="",
|
||||
val login: String =""
|
||||
)
|
||||
|
@ -19,6 +19,11 @@ import ru.myitschool.work.utils.collectWhenStarted
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.gson.GsonBuilder
|
||||
import createAuthHeader
|
||||
import createRetrofit
|
||||
import ru.myitschool.work.data.remote.LoginApi
|
||||
import ru.myitschool.work.data.remote.PersonInfoDto
|
||||
import ru.myitschool.work.utils.HistoryItem
|
||||
|
||||
@AndroidEntryPoint
|
||||
@ -28,6 +33,9 @@ class MainFragment: Fragment(R.layout.fragment_main) {
|
||||
private val viewModel: MainViewModel by viewModels()
|
||||
private val picasso: Picasso by lazy { Picasso.get() }
|
||||
|
||||
private val retrofit = createRetrofit("your_username", "your_password")
|
||||
private val loginApi = retrofit.create(LoginApi::class.java)
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentMainBinding.bind(view)
|
||||
@ -53,16 +61,24 @@ class MainFragment: Fragment(R.layout.fragment_main) {
|
||||
binding.admin.setOnClickListener {
|
||||
findNavController().navigate(AdminDestination(user, password))
|
||||
}
|
||||
subscribe(username, password)
|
||||
}
|
||||
}
|
||||
subscribe()
|
||||
}
|
||||
|
||||
private fun subscribe() {
|
||||
private fun subscribe(username:String, password:String) {
|
||||
viewModel.state.collectWhenStarted(this) { state ->
|
||||
|
||||
val recyclerView = binding.recyclerView
|
||||
|
||||
// val authHeader = createAuthHeader(username = username, password= password)
|
||||
// val info = loginApi.entries(authHeader, username)
|
||||
// val personInfo = info.body()?.let { responseBody ->
|
||||
// GsonBuilder().create().fromJson(responseBody.string(), PersonInfoDto::class.java)
|
||||
// }
|
||||
|
||||
// println(info)
|
||||
|
||||
val examList: MutableList<HistoryItem> = ArrayList()
|
||||
examList.add(
|
||||
HistoryItem(
|
||||
@ -127,7 +143,6 @@ class MainFragment: Fragment(R.layout.fragment_main) {
|
||||
recyclerView.adapter = adapter
|
||||
}
|
||||
}
|
||||
|
||||
private fun setError(error: String?) {
|
||||
val showError = error != null
|
||||
val views = listOf(binding.fullname, binding.position, binding.lastEntry, binding.photo, binding.logout)
|
||||
|
@ -1,11 +1,11 @@
|
||||
package ru.myitschool.work.ui.main
|
||||
|
||||
data class MainState(
|
||||
val fullName: String = "",
|
||||
val photo: String = "",
|
||||
val position: String = "",
|
||||
val lastVisit: String = "",
|
||||
val role: String = "",
|
||||
val isBanned: Boolean = false,
|
||||
val error: String? = null
|
||||
val fullName: String = "",
|
||||
val photo: String = "",
|
||||
val position: String = "",
|
||||
val lastVisit: String = "",
|
||||
val role: String = "",
|
||||
val isBanned: Boolean = false,
|
||||
val error: String? = null
|
||||
)
|
||||
|
@ -1,27 +1,29 @@
|
||||
package ru.myitschool.work.ui.main
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.GsonBuilder
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import createAuthHeader
|
||||
import createRetrofit
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import retrofit2.HttpException
|
||||
import ru.myitschool.work.data.remote.LoginApi
|
||||
import ru.myitschool.work.data.remote.ErrorDto
|
||||
import ru.myitschool.work.data.remote.LoginApi
|
||||
import ru.myitschool.work.data.remote.PersonInfoDto
|
||||
import ru.myitschool.work.di.AppModule
|
||||
import java.text.SimpleDateFormat
|
||||
import javax.inject.Inject
|
||||
|
||||
|
||||
@HiltViewModel
|
||||
class MainViewModel @Inject constructor(
|
||||
@ApplicationContext private val context: Context,
|
||||
@ -79,6 +81,44 @@ class MainViewModel @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// fun loadHistory(username: String, password : String): List<EntryClass> {
|
||||
// viewModelScope.launch {
|
||||
// try {
|
||||
// val authHeader = createAuthHeader(username = username, password= password)
|
||||
// val entries = loginApi.entries(authHeader, username)
|
||||
//// val personEntries = entries.body()?.let { responseBody ->
|
||||
//// GsonBuilder().create().fromJson(responseBody.string(), EntryClass::class.java)
|
||||
//// }
|
||||
//// val personEntries = Gson().fromJson()
|
||||
//
|
||||
// val gson = Gson()
|
||||
// val listType = object : TypeToken<List<EntryClass>>() {}.type
|
||||
// val logEntries: List<EntryClass> = gson.fromJson(entries.body()?.string() , listType)
|
||||
//
|
||||
//
|
||||
//// return logEntries
|
||||
// } catch (httpException: HttpException) {
|
||||
// try {
|
||||
// httpException.response()?.errorBody()?.string()?.let { errorString ->
|
||||
// val gson = GsonBuilder().create()
|
||||
// val errorDto = gson.fromJson(errorString, ErrorDto::class.java)
|
||||
// _state.update {
|
||||
// MainState(
|
||||
// error = errorDto.error
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
// } catch (e: Exception) {
|
||||
// _state.update { MainState(error = httpException.message()) }
|
||||
// }
|
||||
// } catch (e: Exception) {
|
||||
// _state.update { MainState(error = "Unknown error: ${e.message}") }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
fun logout(onLogout: () -> Unit) {
|
||||
viewModelScope.launch {
|
||||
dataStoreManager.setLastUsername("")
|
||||
|
@ -0,0 +1,6 @@
|
||||
package ru.myitschool.work.ui.main
|
||||
|
||||
//data class mainHistory(
|
||||
// val entr: Lis = "",
|
||||
// val error: String? = null
|
||||
//)
|
Loading…
x
Reference in New Issue
Block a user