diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index a28d464..941629f 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -35,6 +35,11 @@ android {
}
dependencies {
+ implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
+ implementation("androidx.legacy:legacy-support-v4:1.0.0")
+ implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.8.7")
+ implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7")
+ implementation("androidx.fragment:fragment-ktx:1.5.6")
defaultLibrary()
implementation(Dependencies.AndroidX.activity)
diff --git a/app/src/main/java/ru/myitschool/work/ui/entrylast/EntryListFragment.kt b/app/src/main/java/ru/myitschool/work/ui/entrylast/EntryListFragment.kt
new file mode 100644
index 0000000..ecdc58c
--- /dev/null
+++ b/app/src/main/java/ru/myitschool/work/ui/entrylast/EntryListFragment.kt
@@ -0,0 +1,38 @@
+package ru.myitschool.work.ui.entrylast
+
+import androidx.fragment.app.viewModels
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+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(R.layout.fragment_entry_list) {
+
+ 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)
+
+ }
+ private fun subscribe(){
+ //TODO
+ }
+
+ private fun initCallback(){
+ //TODO
+ }
+
+ override fun onDestroyView() {
+ _binding = null
+ super.onDestroyView()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ru/myitschool/work/ui/entrylast/EntryListViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/entrylast/EntryListViewModel.kt
new file mode 100644
index 0000000..2476f6d
--- /dev/null
+++ b/app/src/main/java/ru/myitschool/work/ui/entrylast/EntryListViewModel.kt
@@ -0,0 +1,7 @@
+package ru.myitschool.work.ui.entrylast
+
+import androidx.lifecycle.ViewModel
+
+class EntryListViewModel : ViewModel() {
+ // TODO: Implement the ViewModel
+}
\ 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 ea901a4..ae9b7a7 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
@@ -5,6 +5,7 @@ import android.view.View
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.squareup.picasso.Picasso
import dagger.hilt.android.AndroidEntryPoint
import ru.myitschool.work.R
@@ -22,11 +23,20 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) {
private val viewModel: ProfileViewModel by viewModels()
+ private lateinit var swipeRefreshLayout: SwipeRefreshLayout
+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
_binding = FragmentProfileBinding.bind(view)
+
initCallback()
subscribe()
+
+ swipeRefreshLayout = binding.swipeRefreshLayout
+
+ swipeRefreshLayout.setOnRefreshListener {
+ viewModel.updateUserInfo()
+ }
}
private fun subscribe() {
@@ -36,11 +46,15 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) {
binding.loading.visibleOrGone(state is ProfileViewModel.State.Loading)
when(state) {
- is ProfileViewModel.State.Loading -> Unit
+ is ProfileViewModel.State.Loading -> {
+ swipeRefreshLayout.isRefreshing = true
+ }
is ProfileViewModel.State.Error -> {
+ swipeRefreshLayout.isRefreshing = false
binding.error.text = state.errorText
}
is ProfileViewModel.State.Show -> {
+ swipeRefreshLayout.isRefreshing = false
binding.fullname.text = state.fullname
binding.position.text = state.position
binding.lastEntry.text = state.lastEntry
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 b4210fb..680cf1d 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
@@ -52,7 +52,7 @@ class ProfileViewModel @Inject constructor(
}
}
- private fun updateUserInfo() {
+ fun updateUserInfo() {
viewModelScope.launch {
_state.update { State.Loading }
getUserInfoUseCase.get().invoke().fold(
diff --git a/app/src/main/res/layout/fragment_entry_list.xml b/app/src/main/res/layout/fragment_entry_list.xml
new file mode 100644
index 0000000..4aeab52
--- /dev/null
+++ b/app/src/main/res/layout/fragment_entry_list.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml
index e92178b..1b47083 100644
--- a/app/src/main/res/layout/fragment_profile.xml
+++ b/app/src/main/res/layout/fragment_profile.xml
@@ -1,7 +1,12 @@
-
+
@@ -117,4 +122,5 @@
app:layout_constraintEnd_toEndOf="parent" />
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index 4a92e0e..cf1d650 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -4,4 +4,5 @@ plugins {
kotlinJvm version Version.Kotlin.language apply false
kotlinAnnotationProcessor version Version.Kotlin.language apply false
id("com.google.dagger.hilt.android") version "2.51.1" apply false
+ id("org.jetbrains.kotlin.android") version "1.9.24" apply false
}
\ No newline at end of file