77
88package com.nextcloud.talk.threadsoverview.components
99
10+ import android.content.res.Configuration
11+ import androidx.compose.foundation.background
1012import androidx.compose.foundation.clickable
13+ import androidx.compose.foundation.layout.Box
1114import androidx.compose.foundation.layout.Column
1215import androidx.compose.foundation.layout.Row
1316import androidx.compose.foundation.layout.Spacer
@@ -16,19 +19,23 @@ import androidx.compose.foundation.layout.height
1619import androidx.compose.foundation.layout.padding
1720import androidx.compose.foundation.layout.size
1821import androidx.compose.foundation.layout.width
22+ import androidx.compose.foundation.shape.CircleShape
23+ import androidx.compose.material3.Icon
1924import androidx.compose.material3.MaterialTheme
2025import androidx.compose.material3.Text
2126import androidx.compose.runtime.Composable
2227import androidx.compose.ui.Alignment
2328import androidx.compose.ui.Modifier
24- import androidx.compose.ui.res.stringResource
29+ import androidx.compose.ui.draw.clip
30+ import androidx.compose.ui.graphics.Color
31+ import androidx.compose.ui.graphics.vector.ImageVector
32+ import androidx.compose.ui.res.vectorResource
2533import androidx.compose.ui.text.font.FontWeight
2634import androidx.compose.ui.text.style.TextOverflow
2735import androidx.compose.ui.tooling.preview.Preview
2836import androidx.compose.ui.unit.dp
29- import coil.compose.AsyncImage
30- import coil.request.ImageRequest
3137import com.nextcloud.talk.R
38+ import com.nextcloud.talk.utils.ColorGenerator
3239
3340@Suppress(" LongParameterList" , " Detekt.LongMethod" )
3441@Composable
@@ -40,7 +47,6 @@ fun ThreadRow(
4047 secondLine : String ,
4148 numReplies : String ,
4249 date : String ,
43- imageRequest : ImageRequest ? ,
4450 onClick : ((String , Int ) -> Unit? )?
4551) {
4652 Row (
@@ -52,11 +58,7 @@ fun ThreadRow(
5258 .padding(vertical = 8 .dp, horizontal = 8 .dp),
5359 verticalAlignment = Alignment .Companion .CenterVertically
5460 ) {
55- AsyncImage (
56- model = imageRequest,
57- contentDescription = stringResource(R .string.user_avatar),
58- modifier = Modifier .Companion .size(48 .dp)
59- )
61+ ThreadsIcon (title)
6062
6163 Spacer (modifier = Modifier .Companion .width(12 .dp))
6264
@@ -113,19 +115,56 @@ fun ThreadRow(
113115 }
114116}
115117
118+ @Composable
119+ fun ThreadsIcon (title : String ) {
120+ Box (
121+ modifier = Modifier
122+ .size(48 .dp)
123+ .clip(CircleShape )
124+ .background(MaterialTheme .colorScheme.onPrimary),
125+ contentAlignment = Alignment .Center
126+ ) {
127+ val baseColorInt = ColorGenerator .usernameToColor(title)
128+
129+ Icon (
130+ imageVector = ImageVector .vectorResource(R .drawable.outline_forum_24),
131+ contentDescription = null ,
132+ tint = Color (baseColorInt),
133+ modifier = Modifier .size(32 .dp)
134+ )
135+ }
136+ }
137+
116138@Preview
117139@Composable
118140fun ThreadRowPreview () {
119141 ThreadRow (
120142 roomToken = " 1234" ,
121143 threadId = 123 ,
122- title = " title" ,
144+ title = " title1" ,
145+ secondLine = " last message" ,
146+ secondLineTitle = " Mia:" ,
147+ numReplies = " 12 replies" ,
148+ date = " 14 sec ago" ,
149+ onClick = null
150+ )
151+ }
152+
153+ @Preview(
154+ name = " Dark Mode" ,
155+ uiMode = Configuration .UI_MODE_NIGHT_YES
156+ )
157+ @Composable
158+ fun ThreadRowPreviewDark () {
159+ ThreadRow (
160+ roomToken = " 1234" ,
161+ threadId = 123 ,
162+ title = " title2" ,
123163 secondLine = " last message" ,
124164 secondLineTitle = " Mia:" ,
125165 numReplies = " 12 replies" ,
126166 date = " 14 sec ago" ,
127- onClick = null ,
128- imageRequest = null
167+ onClick = null
129168 )
130169}
131170
@@ -135,13 +174,12 @@ fun ThreadRowUnreadMessagePreview() {
135174 ThreadRow (
136175 roomToken = " 1234" ,
137176 threadId = 123 ,
138- title = " title " ,
177+ title = " title3 " ,
139178 secondLine = " last message" ,
140179 secondLineTitle = " Mia:" ,
141180 numReplies = " 12 replies" ,
142181 date = " 14 sec ago" ,
143- onClick = null ,
144- imageRequest = null
182+ onClick = null
145183 )
146184}
147185
@@ -151,13 +189,12 @@ fun ThreadRowMentionPreview() {
151189 ThreadRow (
152190 roomToken = " 1234" ,
153191 threadId = 123 ,
154- title = " title " ,
192+ title = " title3 " ,
155193 secondLine = " last message" ,
156194 secondLineTitle = " Mia:" ,
157195 numReplies = " 12 replies" ,
158196 date = " 14 sec ago" ,
159- onClick = null ,
160- imageRequest = null
197+ onClick = null
161198 )
162199}
163200
@@ -172,7 +209,6 @@ fun ThreadRowDirectMentionPreview() {
172209 secondLineTitle = " Mia:" ,
173210 numReplies = " 12 replies" ,
174211 date = " 14 sec ago" ,
175- onClick = null ,
176- imageRequest = null
212+ onClick = null
177213 )
178214}
0 commit comments