diff --git a/app/src/main/java/ru/myitschool/work/data/mapper/UserInfoMapper.kt b/app/src/main/java/ru/myitschool/work/data/mapper/UserInfoMapper.kt index 548b2dc..3e90287 100644 --- a/app/src/main/java/ru/myitschool/work/data/mapper/UserInfoMapper.kt +++ b/app/src/main/java/ru/myitschool/work/data/mapper/UserInfoMapper.kt @@ -14,9 +14,11 @@ class UserInfoMapper @Inject constructor() { fullname = model.fullname ?: error("fullname is null"), imageUrl = model.imageUrl ?: error("imageUrl is null"), position = model.position ?: error("position is null"), - lastEntryMillis = model.lastEntry?.let { date -> + lastEntryMillis = model.lastEntry.let { date -> simpleDateFormat.parse(date)?.time ?: error("parse lastEntry error") - } ?: error("lastEntry is null") + } ?: error("lastEntry is null"), + role = model.role, + blocked = model.blocked ) } } diff --git a/app/src/main/java/ru/myitschool/work/domain/profile/entities/UserInfoEntity.kt b/app/src/main/java/ru/myitschool/work/domain/profile/entities/UserInfoEntity.kt index 46dc55f..4e7c213 100644 --- a/app/src/main/java/ru/myitschool/work/domain/profile/entities/UserInfoEntity.kt +++ b/app/src/main/java/ru/myitschool/work/domain/profile/entities/UserInfoEntity.kt @@ -1,8 +1,12 @@ package ru.myitschool.work.domain.profile.entities +import ru.myitschool.work.data.dto.Role + class UserInfoEntity( val fullname: String, val imageUrl: String, val position: String, + val role: Role, + val blocked: Boolean, val lastEntryMillis: Long, ) \ 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 e559731..305461e 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 @@ -70,11 +70,13 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { binding.lastEntry.text = state.lastEntry binding.fullname.text = state.fullname if (state.admin){ - //TODO Приделать админские штучки binding.admin.visibility = View.VISIBLE - }else{ + } else { binding.admin.visibility = View.GONE } + if (state.blocked) { + // TODO: СДЕЛАТЬ ФОН КРАСНЫМ + } Picasso.get() .load(state.imageUrl) .error(R.drawable.ic_no_img) 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 e8523c0..e63a0f7 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 @@ -12,6 +12,7 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import ru.myitschool.work.R +import ru.myitschool.work.data.dto.Role import ru.myitschool.work.domain.auth.LogoutUseCase import ru.myitschool.work.domain.profile.GetUserInfoUseCase import ru.myitschool.work.utils.MutablePublishFlow @@ -78,7 +79,8 @@ class ProfileViewModel @Inject constructor( imageUrl = value.imageUrl, position = value.position, lastEntry = simpleDateFormat.format(Date(value.lastEntryMillis)), - admin = true + admin = value.role == Role.ADMIN, + blocked = value.blocked ) } }, @@ -106,6 +108,7 @@ class ProfileViewModel @Inject constructor( val position: String, val lastEntry: String, val admin: Boolean, + val blocked: Boolean ) : State } diff --git a/app/src/main/res/layout-land/fragment_entry_list.xml b/app/src/main/res/layout-land/fragment_entry_list.xml new file mode 100644 index 0000000..b06a0ff --- /dev/null +++ b/app/src/main/res/layout-land/fragment_entry_list.xml @@ -0,0 +1,40 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_information_admin.xml b/app/src/main/res/layout-land/fragment_information_admin.xml new file mode 100644 index 0000000..6a732ce --- /dev/null +++ b/app/src/main/res/layout-land/fragment_information_admin.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + +