diff --git a/app/src/main/java/ru/myitschool/work/core/Constants.kt b/app/src/main/java/ru/myitschool/work/core/Constants.kt index 1d66ffb..1252665 100644 --- a/app/src/main/java/ru/myitschool/work/core/Constants.kt +++ b/app/src/main/java/ru/myitschool/work/core/Constants.kt @@ -1,6 +1,6 @@ package ru.myitschool.work.core object Constants { -// const val SERVER_ADDRESS = "http://10.0.2.2:8080" + // const val SERVER_ADDRESS = "http://10.0.2.2:8080" const val SERVER_ADDRESS = "https://nto.den4iksop.org" } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListFragment.kt b/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListFragment.kt index b6285d9..855c64f 100644 --- a/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListFragment.kt +++ b/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListFragment.kt @@ -7,11 +7,15 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.LinearLayout import androidx.navigation.fragment.findNavController +import androidx.recyclerview.widget.LinearLayoutManager import dagger.hilt.android.AndroidEntryPoint import ru.myitschool.work.R import ru.myitschool.work.databinding.FragmentEntryListBinding import ru.myitschool.work.databinding.FragmentLoginBinding +import ru.myitschool.work.ui.entrylist.adapter.AdapterEntryHistory +import ru.myitschool.work.ui.entrylist.adapter.EntryHistoryEntity import ru.myitschool.work.ui.login.LoginDestination import ru.myitschool.work.ui.login.LoginViewModel import ru.myitschool.work.ui.profile.ProfileDestination @@ -32,9 +36,13 @@ class EntryListFragment : Fragment(R.layout.fragment_entry_list) { subscribe() } - private fun initCallback (){ + private fun initCallback() { binding.floatingActionButton2.setOnClickListener { viewModel.closeEntryList() } - } + + + binding.recyclerView.adapter = AdapterEntryHistory(viewModel.getEntryList()) + binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) + } private fun subscribe() { viewModel.action.collectWhenStarted(this) { action -> diff --git a/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListViewModel.kt index 69fb288..1572a88 100644 --- a/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/ui/entrylist/EntryListViewModel.kt @@ -9,6 +9,7 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch +import ru.myitschool.work.ui.entrylist.adapter.EntryHistoryEntity import ru.myitschool.work.ui.profile.ProfileViewModel import ru.myitschool.work.ui.profile.ProfileViewModel.Action import ru.myitschool.work.ui.profile.ProfileViewModel.State @@ -25,8 +26,19 @@ class EntryListViewModel @Inject constructor( private val _action = MutablePublishFlow<Action>() val action = _action.asSharedFlow() -// private val _state = MutableStateFlow<State>(initialState) -// val state = _state.asStateFlow() + // Новый список данных + private val entryList = listOf( + EntryHistoryEntity("type1", "2023-10-01T12:00:00", "id001"), + EntryHistoryEntity("type2", "2023-10-02T13:00:00", "id002"), + EntryHistoryEntity("type3", "2023-10-03T14:00:00", "id003"), + EntryHistoryEntity("type4", "2023-10-04T15:00:00", "id004"), + EntryHistoryEntity("type5", "2023-10-05T16:00:00", "id005") + ) + + // Функция для получения данных + fun getEntryList(): List<EntryHistoryEntity> { + return entryList + } fun closeEntryList(){ viewModelScope.launch { @@ -34,13 +46,7 @@ class EntryListViewModel @Inject constructor( } } - sealed interface Action { data object OpenProfile: Action } - - - companion object { -// val initialState = State.Loading - } } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/entrylist/adapter/AdapterEntryHistory.kt b/app/src/main/java/ru/myitschool/work/ui/entrylist/adapter/AdapterEntryHistory.kt new file mode 100644 index 0000000..0083927 --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/ui/entrylist/adapter/AdapterEntryHistory.kt @@ -0,0 +1,36 @@ +package ru.myitschool.work.ui.entrylist.adapter + +import android.graphics.Color +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.AdapterView +import android.widget.TextView +import androidx.core.graphics.drawable.toDrawable +import androidx.recyclerview.widget.RecyclerView +import ru.myitschool.work.R + +class AdapterEntryHistory(private val datas: List<EntryHistoryEntity>) : RecyclerView +.Adapter<AdapterEntryHistory.MyViewHolder>() { + + class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + var dateText: TextView = itemView.findViewById(R.id.time) + val identificatorText: TextView = itemView.findViewById(R.id.identificator) + val typeText: TextView = itemView.findViewById(R.id.type) + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { + val itemView = LayoutInflater.from(parent.context) + .inflate(R.layout.card_view, parent, false) + return MyViewHolder(itemView) + } + + override fun onBindViewHolder(holder: MyViewHolder, position: Int) { + holder.dateText.text = datas[position].time.toString() + holder.identificatorText.text = datas[position].identificator.toString() + holder.typeText.text = datas[position].type.toString() + + } + + override fun getItemCount() = datas.size +} \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/entrylist/adapter/EntryHistoryEntity.kt b/app/src/main/java/ru/myitschool/work/ui/entrylist/adapter/EntryHistoryEntity.kt new file mode 100644 index 0000000..dd24567 --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/ui/entrylist/adapter/EntryHistoryEntity.kt @@ -0,0 +1,7 @@ +package ru.myitschool.work.ui.entrylist.adapter + +class EntryHistoryEntity( + val type: String, + val time: String, + val identificator: String +) \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_admin.xml b/app/src/main/res/drawable/ic_admin.xml new file mode 100644 index 0000000..e473e70 --- /dev/null +++ b/app/src/main/res/drawable/ic_admin.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="48dp" + android:height="48dp" + android:viewportWidth="960" + android:viewportHeight="960"> + <path + android:pathData="M222,705q63,-40 124.5,-60.5T480,624q72,0 134,20.5T739,705q44,-54 62.5,-109T820,480q0,-145 -97.5,-242.5T480,140q-145,0 -242.5,97.5T140,480q0,61 19,116t63,109ZM479.81,510q-57.81,0 -97.31,-39.69 -39.5,-39.68 -39.5,-97.5 0,-57.81 39.69,-97.31 39.68,-39.5 97.5,-39.5 57.81,0 97.31,39.69 39.5,39.68 39.5,97.5 0,57.81 -39.69,97.31 -39.68,39.5 -97.5,39.5ZM479.6,880q-83.15,0 -156.28,-31.5t-127.22,-86Q142,708 111,635.16 80,562.32 80,479.5t31.5,-155.66Q143,251 197.5,197t127.34,-85.5Q397.68,80 480.5,80t155.66,31.5Q709,143 763,197t85.5,127Q880,397 880,479.73q0,82.74 -31.5,155.5Q817,708 763,762.5t-127.13,86Q562.74,880 479.6,880Z" + android:fillColor="#5f6368"/> +</vector> diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..075e95d --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,5 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp"> + + <path android:fillColor="@android:color/white" android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/> + +</vector> diff --git a/app/src/main/res/layout/fragment_entry_list.xml b/app/src/main/res/layout/fragment_entry_list.xml index 52af41c..b06a0ff 100644 --- a/app/src/main/res/layout/fragment_entry_list.xml +++ b/app/src/main/res/layout/fragment_entry_list.xml @@ -10,20 +10,20 @@ <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/floatingActionButton2" + style="@style/Theme.UiTemplate.FAB.Gray" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" - style="@style/Theme.UiTemplate.FAB.Gray" - android:src="@drawable/ic_close" + android:src="@drawable/ic_back" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/textView5" + style="@style/Theme.UiTemplate.TextH2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Entry History" - style="@style/Theme.UiTemplate.TextH2" + android:text="@string/entry_history" app:layout_constraintBottom_toBottomOf="@+id/floatingActionButton2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/floatingActionButton2" @@ -32,7 +32,7 @@ <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="0dp" - android:layout_height="645dp" + android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml index 3023fcb..e869aef 100644 --- a/app/src/main/res/layout/fragment_profile.xml +++ b/app/src/main/res/layout/fragment_profile.xml @@ -140,6 +140,17 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" /> + <com.google.android.material.floatingactionbutton.FloatingActionButton + android:id="@+id/admin" + style="@style/Theme.UiTemplate.FAB.AccentColor" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:contentDescription="@string/profile_scan_button" + android:src="@drawable/ic_admin" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/scan" + app:layout_constraintStart_toEndOf="@+id/entry_list" /> + <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/entry_list" style="@style/Theme.UiTemplate.FAB.AccentColor" diff --git a/app/src/main/res/values/card_view_style.xml b/app/src/main/res/values/card_view_style.xml index dfede2d..0c7bfa5 100644 --- a/app/src/main/res/values/card_view_style.xml +++ b/app/src/main/res/values/card_view_style.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.UiTemplate.CardView" parent="Widget.MaterialComponents.CardView"> + <item name="cardBackgroundColor">@color/BackgroundGray</item> <item name="cardElevation">0dp</item> - <item name="cardCornerRadius">120dp</item> - <item name="cornerSize">10dp</item> + <item name="cardCornerRadius">30dp</item> </style> </resources> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b183019..9b2b311 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ <resources> <string name="app_name">NTO Pass</string> + <string name="entry_history">Entry History</string> </resources> \ No newline at end of file