Commit af651b43 authored by Łukasz Rutkowski's avatar Łukasz Rutkowski

Display user status indicator in members list

parent 5a472099
...@@ -44,6 +44,8 @@ class MembersAdapter(private val listener: (MemberUiModel) -> Unit) : ...@@ -44,6 +44,8 @@ class MembersAdapter(private val listener: (MemberUiModel) -> Unit) :
image_avatar.setImageURI(memberUiModel.avatarUri) image_avatar.setImageURI(memberUiModel.avatarUri)
text_member.content = memberUiModel.displayName text_member.content = memberUiModel.displayName
setOnClickListener { listener(memberUiModel) } setOnClickListener { listener(memberUiModel) }
val statusDrawable = DrawableHelper.getUserStatusDrawable(memberUiModel.status, context)
image_member_status.setImageDrawable(statusDrawable)
} }
} }
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package chat.rocket.android.members.uimodel ...@@ -3,6 +3,7 @@ package chat.rocket.android.members.uimodel
import chat.rocket.android.server.domain.useRealName import chat.rocket.android.server.domain.useRealName
import chat.rocket.android.util.extensions.avatarUrl import chat.rocket.android.util.extensions.avatarUrl
import chat.rocket.common.model.User import chat.rocket.common.model.User
import chat.rocket.common.model.UserStatus
import chat.rocket.core.model.Value import chat.rocket.core.model.Value
class MemberUiModel( class MemberUiModel(
...@@ -16,6 +17,7 @@ class MemberUiModel( ...@@ -16,6 +17,7 @@ class MemberUiModel(
val username: String? val username: String?
val email: String? val email: String?
val utcOffset: Float? val utcOffset: Float?
val status: UserStatus?
init { init {
avatarUri = getUserAvatar() avatarUri = getUserAvatar()
...@@ -24,6 +26,7 @@ class MemberUiModel( ...@@ -24,6 +26,7 @@ class MemberUiModel(
username = getUserUsername() username = getUserUsername()
email = getUserEmail() email = getUserEmail()
utcOffset = getUserUtcOffset() utcOffset = getUserUtcOffset()
status = getUserStatus()
} }
private fun getUserAvatar(): String? { private fun getUserAvatar(): String? {
...@@ -47,4 +50,6 @@ class MemberUiModel( ...@@ -47,4 +50,6 @@ class MemberUiModel(
private fun getUserEmail(): String? = member.emails?.get(0)?.address private fun getUserEmail(): String? = member.emails?.get(0)?.address
private fun getUserUtcOffset(): Float? = member.utcOffset private fun getUserUtcOffset(): Float? = member.utcOffset
private fun getUserStatus(): UserStatus? = member.status
} }
\ No newline at end of file
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground" android:background="?android:attr/selectableItemBackground"
android:paddingBottom="@dimen/member_item_top_and_bottom_padding"
android:paddingEnd="@dimen/screen_edge_left_and_right_padding"
android:paddingStart="@dimen/screen_edge_left_and_right_padding" android:paddingStart="@dimen/screen_edge_left_and_right_padding"
android:paddingTop="@dimen/member_item_top_and_bottom_padding"> android:paddingTop="@dimen/member_item_top_and_bottom_padding"
android:paddingEnd="@dimen/screen_edge_left_and_right_padding"
android:paddingBottom="@dimen/member_item_top_and_bottom_padding">
<include <include
android:id="@+id/layout_avatar" android:id="@+id/layout_avatar"
...@@ -18,14 +18,24 @@ ...@@ -18,14 +18,24 @@
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/image_member_status"
android:layout_width="12dp"
android:layout_height="0dp"
android:layout_marginStart="16dp"
app:layout_constraintBottom_toBottomOf="@+id/layout_avatar"
app:layout_constraintStart_toEndOf="@+id/layout_avatar"
app:layout_constraintTop_toTopOf="@+id/layout_avatar"
tools:src="@drawable/ic_status_invisible_12dp" />
<TextView <TextView
android:id="@+id/text_member" android:id="@+id/text_member"
style="@style/Sender.Name.TextView" style="@style/Sender.Name.TextView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="@dimen/text_view_drawable_padding"
app:layout_constraintBottom_toBottomOf="@+id/layout_avatar" app:layout_constraintBottom_toBottomOf="@+id/layout_avatar"
app:layout_constraintLeft_toRightOf="@+id/layout_avatar" app:layout_constraintLeft_toRightOf="@+id/image_member_status"
app:layout_constraintTop_toTopOf="@+id/layout_avatar" app:layout_constraintTop_toTopOf="@+id/layout_avatar"
tools:text="Ronald Perkins" /> tools:text="Ronald Perkins" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment