Skip to content

Commit 315630e

Browse files
Merge pull request #16353 from nextcloud/style/16351/assistantMessageBubble
Make chat bubbles dark/light aware and like Nextcloud Talk chat bubbles
2 parents c8acace + 7fc2ae0 commit 315630e

6 files changed

Lines changed: 31 additions & 23 deletions

File tree

app/src/main/java/com/nextcloud/client/assistant/AssistantScreen.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -397,9 +397,8 @@ private fun EmptyContent(paddingValues: PaddingValues, iconId: Int?, description
397397
painter = painterResource(id = iconId),
398398
modifier = Modifier.size(32.dp),
399399
colorFilter = ColorFilter.tint(color = colorResource(R.color.text_color)),
400-
contentDescription = "empty content icon"
400+
contentDescription = null
401401
)
402-
403402
Spacer(modifier = Modifier.height(8.dp))
404403
}
405404

app/src/main/java/com/nextcloud/client/assistant/chat/ChatContent.kt

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import androidx.compose.ui.Alignment
4242
import androidx.compose.ui.Modifier
4343
import androidx.compose.ui.draw.clip
4444
import androidx.compose.ui.draw.scale
45-
import androidx.compose.ui.graphics.Color
4645
import androidx.compose.ui.layout.ContentScale
4746
import androidx.compose.ui.res.colorResource
4847
import androidx.compose.ui.res.painterResource
@@ -123,7 +122,7 @@ private fun AssistantTypingIndicator() {
123122
bottomEnd = CHAT_BUBBLE_CORNER_RADIUS
124123
)
125124
)
126-
.background(color = colorResource(R.color.white))
125+
.background(color = colorResource(R.color.bg_message_bubble))
127126
) {
128127
TypingAnimation()
129128
}
@@ -148,7 +147,9 @@ private fun AnimatedAssistantIcon() {
148147
modifier = Modifier
149148
.size(ASSISTANT_ICON_SIZE)
150149
.clip(CircleShape)
151-
.background(Color.White),
150+
.background(
151+
color = colorResource(R.color.bg_message_bubble)
152+
),
152153
contentAlignment = Alignment.Center
153154
) {
154155
Image(
@@ -205,7 +206,9 @@ private fun AssistantMessageItem(message: ChatMessage) {
205206
modifier = Modifier
206207
.size(ASSISTANT_ICON_SIZE)
207208
.clip(CircleShape)
208-
.background(Color.White),
209+
.background(
210+
color = colorResource(R.color.bg_message_bubble)
211+
),
209212
contentAlignment = Alignment.Center
210213
) {
211214
Image(
@@ -228,7 +231,7 @@ private fun AssistantMessageItem(message: ChatMessage) {
228231
)
229232
)
230233
.background(
231-
color = colorResource(R.color.white)
234+
color = colorResource(R.color.bg_message_bubble)
232235
)
233236
) {
234237
MessageTextItem(message)
@@ -259,7 +262,7 @@ private fun UserMessageItem(message: ChatMessage) {
259262
bottomStart = CHAT_BUBBLE_CORNER_RADIUS
260263
)
261264
)
262-
.background(color = colorResource(R.color.white))
265+
.background(color = colorResource(R.color.bg_message_bubble))
263266
) {
264267
MessageTextItem(message)
265268
}
@@ -280,13 +283,14 @@ private fun MessageTextItem(message: ChatMessage) {
280283
fontSize = 16.sp
281284
)
282285
)
283-
Spacer(modifier = Modifier.height(8.dp))
286+
Spacer(modifier = Modifier.height(4.dp))
284287
Text(
285288
text = message.time(),
286289
style = TextStyle(
287-
color = colorResource(R.color.text_color),
290+
color = colorResource(R.color.secondary_text_color),
288291
fontSize = 12.sp
289-
)
292+
),
293+
modifier = Modifier.align(Alignment.End)
290294
)
291295
}
292296
}

app/src/main/java/com/nextcloud/client/assistant/taskTypes/TaskTypesRow.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.compose.foundation.layout.Spacer
1515
import androidx.compose.foundation.layout.width
1616
import androidx.compose.material3.Icon
1717
import androidx.compose.material3.IconButton
18+
import androidx.compose.material3.MaterialTheme
1819
import androidx.compose.material3.PrimaryScrollableTabRow
1920
import androidx.compose.material3.Tab
2021
import androidx.compose.material3.TabRowDefaults
@@ -43,7 +44,7 @@ fun TaskTypesRow(
4344
val selectedTabIndex = data.indexOfFirst { it.id == selectedTaskType?.id }.takeIf { it >= 0 } ?: 0
4445

4546
Row(
46-
modifier = Modifier.background(color = colorResource(R.color.actionbar_color)),
47+
modifier = Modifier.background(color = MaterialTheme.colorScheme.surface),
4748
horizontalArrangement = Arrangement.Center
4849
) {
4950
if (data.any { it.isChat() }) {
@@ -63,11 +64,11 @@ fun TaskTypesRow(
6364
PrimaryScrollableTabRow(
6465
selectedTabIndex = selectedTabIndex,
6566
edgePadding = 0.dp,
66-
containerColor = colorResource(R.color.actionbar_color),
67+
containerColor = MaterialTheme.colorScheme.surface,
6768
indicator = {
6869
TabRowDefaults.SecondaryIndicator(
6970
Modifier.tabIndicatorOffset(selectedTabIndex),
70-
color = colorResource(R.color.primary)
71+
color = MaterialTheme.colorScheme.primary
7172
)
7273
}
7374
) {

app/src/main/res/layout/toolbar_standard.xml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,7 @@
118118
android:id="@+id/toolbar_linear_layout"
119119
android:layout_width="match_parent"
120120
android:layout_height="wrap_content"
121-
android:layout_marginStart="@dimen/standard_half_margin"
122121
android:layout_marginTop="@dimen/standard_half_margin"
123-
android:layout_marginEnd="@dimen/standard_margin"
124122
android:layout_marginBottom="@dimen/standard_quarter_margin"
125123
android:orientation="horizontal"
126124
android:visibility="gone"
@@ -134,18 +132,24 @@
134132
style="@style/Widget.AppTheme.Button.IconButton"
135133
android:layout_width="@dimen/minimum_size_for_touchable_area"
136134
android:layout_height="@dimen/minimum_size_for_touchable_area"
135+
android:layout_marginStart="@dimen/standard_quarter_margin"
136+
android:layout_marginTop="-4dp"
137+
android:layout_marginEnd="@dimen/standard_half_margin"
138+
android:contentDescription="@string/drawer_open"
137139
app:cornerRadius="@dimen/button_corner_radius"
138140
app:icon="@drawable/ic_menu"
139-
app:iconTint="@color/black" />
141+
app:iconSize="@dimen/search_bar_icon_size"
142+
app:iconTint="@color/fontAppbar" />
140143

141144
<com.google.android.material.textview.MaterialTextView
142145
android:id="@+id/toolbar_title"
146+
android:layout_width="wrap_content"
147+
android:layout_height="@dimen/minimum_size_for_touchable_area"
143148
android:gravity="center"
144-
android:textColor="@color/black"
145149
android:lines="1"
146-
android:textSize="16sp"
147-
android:layout_width="wrap_content"
148-
android:layout_height="@dimen/minimum_size_for_touchable_area"/>
150+
android:textColor="@color/black"
151+
android:textSize="24sp"
152+
tools:text="Headline" />
149153

150154
</LinearLayout>
151155

app/src/main/res/values-night/colors.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,5 @@
3838
<color name="appbar">#1E1E1E</color>
3939
<color name="fontAppbar">@android:color/white</color>
4040

41-
<color name="actionbar_color">#101418</color>
41+
<color name="bg_message_bubble">#2A2A2A</color>
4242
</resources>

app/src/main/res/values/colors.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,5 +88,5 @@
8888
<color name="fontAppbar">#666666</color>
8989
<color name="fontSecondaryAppbar">#A5A5A5</color>
9090

91-
<color name="actionbar_color">#F7F9FF</color>
91+
<color name="bg_message_bubble">#EFEFEF</color>
9292
</resources>

0 commit comments

Comments
 (0)