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
|
@Query("login") login: String
|
||||||
): Response<ResponseBody>
|
): Response<ResponseBody>
|
||||||
|
|
||||||
|
@GET("entries")
|
||||||
|
suspend fun entries(
|
||||||
|
@Header("Authorization") authHeader: String,
|
||||||
|
@Query("login") login: String
|
||||||
|
): Response<ResponseBody>
|
||||||
|
|
||||||
@PUT("ban")
|
@PUT("ban")
|
||||||
suspend fun ban(
|
suspend fun ban(
|
||||||
@Header("Authorization") authHeader: String,
|
@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.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
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
|
import ru.myitschool.work.utils.HistoryItem
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
@ -28,6 +33,9 @@ class MainFragment: Fragment(R.layout.fragment_main) {
|
|||||||
private val viewModel: MainViewModel by viewModels()
|
private val viewModel: MainViewModel by viewModels()
|
||||||
private val picasso: Picasso by lazy { Picasso.get() }
|
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?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
_binding = FragmentMainBinding.bind(view)
|
_binding = FragmentMainBinding.bind(view)
|
||||||
@ -53,16 +61,24 @@ class MainFragment: Fragment(R.layout.fragment_main) {
|
|||||||
binding.admin.setOnClickListener {
|
binding.admin.setOnClickListener {
|
||||||
findNavController().navigate(AdminDestination(user, password))
|
findNavController().navigate(AdminDestination(user, password))
|
||||||
}
|
}
|
||||||
|
subscribe(username, password)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
subscribe()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun subscribe() {
|
private fun subscribe(username:String, password:String) {
|
||||||
viewModel.state.collectWhenStarted(this) { state ->
|
viewModel.state.collectWhenStarted(this) { state ->
|
||||||
|
|
||||||
val recyclerView = binding.recyclerView
|
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()
|
val examList: MutableList<HistoryItem> = ArrayList()
|
||||||
examList.add(
|
examList.add(
|
||||||
HistoryItem(
|
HistoryItem(
|
||||||
@ -127,7 +143,6 @@ class MainFragment: Fragment(R.layout.fragment_main) {
|
|||||||
recyclerView.adapter = adapter
|
recyclerView.adapter = adapter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setError(error: String?) {
|
private fun setError(error: String?) {
|
||||||
val showError = error != null
|
val showError = error != null
|
||||||
val views = listOf(binding.fullname, binding.position, binding.lastEntry, binding.photo, binding.logout)
|
val views = listOf(binding.fullname, binding.position, binding.lastEntry, binding.photo, binding.logout)
|
||||||
|
@ -1,27 +1,29 @@
|
|||||||
package ru.myitschool.work.ui.main
|
package ru.myitschool.work.ui.main
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
|
import com.google.gson.Gson
|
||||||
import com.google.gson.GsonBuilder
|
import com.google.gson.GsonBuilder
|
||||||
|
import com.google.gson.reflect.TypeToken
|
||||||
import createAuthHeader
|
import createAuthHeader
|
||||||
import createRetrofit
|
import createRetrofit
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
|
||||||
import kotlinx.coroutines.flow.update
|
import kotlinx.coroutines.flow.update
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.serialization.json.JsonObject
|
||||||
import retrofit2.HttpException
|
import retrofit2.HttpException
|
||||||
import ru.myitschool.work.data.remote.LoginApi
|
|
||||||
import ru.myitschool.work.data.remote.ErrorDto
|
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.data.remote.PersonInfoDto
|
||||||
import ru.myitschool.work.di.AppModule
|
import ru.myitschool.work.di.AppModule
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class MainViewModel @Inject constructor(
|
class MainViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@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) {
|
fun logout(onLogout: () -> Unit) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
dataStoreManager.setLastUsername("")
|
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