diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0599e1a..1d8846d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,7 +16,7 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.UiTemplate" - tools:targetApi="31"> + tools:targetApi="34"> diff --git a/app/src/main/java/ru/myitschool/work/ui/RootActivity.kt b/app/src/main/java/ru/myitschool/work/ui/RootActivity.kt index b650c8b..cc4d2ff 100644 --- a/app/src/main/java/ru/myitschool/work/ui/RootActivity.kt +++ b/app/src/main/java/ru/myitschool/work/ui/RootActivity.kt @@ -19,6 +19,8 @@ import ru.myitschool.work.ui.qr.result.QrResultDestination import ru.myitschool.work.ui.qr.result.QrResultFragment import ru.myitschool.work.ui.qr.scan.QrScanDestination import ru.myitschool.work.ui.qr.scan.QrScanFragment +import ru.myitschool.work.ui.searchuser.SearchUserDestination +import ru.myitschool.work.ui.searchuser.SearchUserFragment import ru.myitschool.work.ui.splash.SplashDestination import ru.myitschool.work.ui.splash.SplashFragment @@ -42,6 +44,7 @@ class RootActivity : AppCompatActivity() { fragment() fragment() fragment() + fragment() } } 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 index 0083927..e508c9c 100644 --- 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 @@ -1,14 +1,19 @@ package ru.myitschool.work.ui.entrylist.adapter import android.graphics.Color +import android.os.Build import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.AdapterView import android.widget.TextView +import androidx.annotation.RequiresApi import androidx.core.graphics.drawable.toDrawable import androidx.recyclerview.widget.RecyclerView import ru.myitschool.work.R +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter +import java.util.Locale class AdapterEntryHistory(private val datas: List) : RecyclerView .Adapter() { @@ -25,8 +30,12 @@ class AdapterEntryHistory(private val datas: List) : Recycle return MyViewHolder(itemView) } + @RequiresApi(Build.VERSION_CODES.O) override fun onBindViewHolder(holder: MyViewHolder, position: Int) { - holder.dateText.text = datas[position].time.toString() + + + + holder.dateText.text = LocalDateTime.parse(datas[position].time).format(DateTimeFormatter.ofPattern("d MMMM yyyy, HH:mm:ss", Locale.getDefault())) holder.identificatorText.text = datas[position].identificator.toString() holder.typeText.text = datas[position].type.toString() 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 3acc748..e76fdee 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 @@ -15,6 +15,8 @@ import ru.myitschool.work.ui.entrylist.EntryListDestination import ru.myitschool.work.ui.login.LoginDestination import ru.myitschool.work.ui.qr.result.QrResultDestination import ru.myitschool.work.ui.qr.scan.QrScanDestination +import ru.myitschool.work.ui.searchuser.SearchUserDestination +import ru.myitschool.work.ui.searchuser.SearchUserFragment import ru.myitschool.work.utils.collectWhenStarted import ru.myitschool.work.utils.visibleOrGone @@ -59,11 +61,12 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { swipeRefreshLayout.isRefreshing = false binding.position.text = state.position binding.lastEntry.text = state.lastEntry + binding.fullname.text = state.fullname if (state.admin){ //TODO Приделать админские штучки - binding.fullname.text = state.fullname + " admin" + binding.admin.visibility = View.VISIBLE }else{ - binding.fullname.text = state.fullname + binding.admin.visibility = View.GONE } Picasso.get() .load(state.imageUrl) @@ -94,6 +97,12 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { } } + is ProfileViewModel.Action.OpenSearch -> { + findNavController().navigate(SearchUserDestination) { + popUpTo { inclusive = true } + } + } + } } } @@ -102,6 +111,7 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { binding.logout.setOnClickListener { viewModel.clickLogout() } binding.scan.setOnClickListener { viewModel.clickScan() } binding.entryList.setOnClickListener{ viewModel.clickLog()} + binding.admin.setOnClickListener { viewModel.clickSearch() } } override fun onDestroyView() { 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 e1d1b35..b4ba863 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 @@ -55,6 +55,11 @@ class ProfileViewModel @Inject constructor( _action.emit(Action.OpenScan) } } + fun clickSearch(){ + viewModelScope.launch { + _action.emit(Action.OpenSearch) + } + } fun updateUserInfo() { viewModelScope.launch { @@ -67,7 +72,7 @@ class ProfileViewModel @Inject constructor( imageUrl = value.imageUrl, position = value.position, lastEntry = simpleDateFormat.format(Date(value.lastEntryMillis)), - admin = false + admin = true ) } }, @@ -102,6 +107,7 @@ class ProfileViewModel @Inject constructor( data object OpenLogin : Action data object OpenScan : Action data object OpenLog : Action + data object OpenSearch : Action } companion object { diff --git a/app/src/main/java/ru/myitschool/work/ui/searchuser/SearchUserDestination.kt b/app/src/main/java/ru/myitschool/work/ui/searchuser/SearchUserDestination.kt new file mode 100644 index 0000000..0af2627 --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/ui/searchuser/SearchUserDestination.kt @@ -0,0 +1,6 @@ +package ru.myitschool.work.ui.searchuser + +import kotlinx.serialization.Serializable + +@Serializable +data object SearchUserDestination \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/searchuser/SearchUserFragment.kt b/app/src/main/java/ru/myitschool/work/ui/searchuser/SearchUserFragment.kt new file mode 100644 index 0000000..28d07db --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/ui/searchuser/SearchUserFragment.kt @@ -0,0 +1,28 @@ +package ru.myitschool.work.ui.searchuser + +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 dagger.hilt.android.AndroidEntryPoint +import kotlinx.serialization.Serializable +import ru.myitschool.work.R + +@Serializable +@AndroidEntryPoint +class SearchUserFragment : Fragment(R.layout.fragment_search_user) { + + companion object { + fun newInstance() = SearchUserFragment() + } + + private val viewModel: SearchUserViewModel by viewModels() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + // TODO: Use the ViewModel + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/searchuser/SearchUserViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/searchuser/SearchUserViewModel.kt new file mode 100644 index 0000000..d6fcb7e --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/ui/searchuser/SearchUserViewModel.kt @@ -0,0 +1,14 @@ +package ru.myitschool.work.ui.searchuser + +import android.content.Context +import androidx.lifecycle.ViewModel +import dagger.hilt.android.lifecycle.HiltViewModel +import dagger.hilt.android.qualifiers.ApplicationContext +import javax.inject.Inject + +@HiltViewModel +class SearchUserViewModel @Inject constructor( + @ApplicationContext private val context: Context, +) : ViewModel() { + // TODO: Implement the ViewModel +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_admin.xml b/app/src/main/res/layout/fragment_admin.xml deleted file mode 100644 index 3cc0174..0000000 --- a/app/src/main/res/layout/fragment_admin.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - -