Skip to content

Commit 61ba5d4

Browse files
authored
Merge branch 'develop' into general/communication/lecture-ui-refinement
2 parents e7724d1 + 39a7335 commit 61ba5d4

File tree

21 files changed

+697
-371
lines changed

21 files changed

+697
-371
lines changed

app/src/unrestricted/AndroidManifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
<data android:host="artemis.cit.tum.de"/>
3535
<data android:host="artemis.codeability.uibk.ac.at"/>
3636
<data android:host="artemis.praktomat.cs.kit.edu"/>
37-
<data android:host="artemis-test0.artemis.cit.tum.de"/>
37+
<data android:host="artemis-test0.artemis.in.tum.de"/>
3838
<data android:host="artemis-test1.artemis.cit.tum.de"/>
39-
<data android:host="artemis-test2.cit.tum.de"/>
39+
<data android:host="artemis-test2.artemis.cit.tum.de"/>
4040

4141
<data android:pathPattern="/courses/.*" />
4242
<data android:pathPattern="/courses/.*/exercises/.*/" />

core/datastore/src/main/kotlin/de/tum/informatics/www1/artemis/native_app/core/datastore/defaults/ArtemisInstances.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ object ArtemisInstances {
3737
)
3838

3939
private val TumTs2 = ArtemisInstance(
40-
host = "artemis-test2.artemis.in.tum.de",
40+
host = "artemis-test2.artemis.cit.tum.de",
4141
name = R.string.artemis_instance_tum_test_server_2,
4242
type = ArtemisInstance.Type.TEST
4343
)

core/ui/src/main/kotlin/de/tum/informatics/www1/artemis/native_app/core/ui/Spacings.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ import androidx.compose.ui.unit.dp
44

55
object Spacings {
66
val ScreenHorizontalSpacing = 16.dp
7-
7+
val ScreenHorizontalInnerSpacing = 8.dp
88
val FabContentBottomPadding = 80.dp
9+
10+
object Post {
11+
val innerSpacing = 8.dp
12+
}
913
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package de.tum.informatics.www1.artemis.native_app.core.ui.date
2+
3+
import android.icu.text.DateFormat
4+
import android.icu.text.SimpleDateFormat
5+
6+
enum class DateFormats(val format: DateFormat) {
7+
DefaultDateAndTime(SimpleDateFormat.getDateTimeInstance(
8+
SimpleDateFormat.MEDIUM,
9+
SimpleDateFormat.SHORT
10+
)),
11+
OnlyTime(SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT)),
12+
EditTimestamp(SimpleDateFormat.getDateTimeInstance(
13+
SimpleDateFormat.SHORT,
14+
SimpleDateFormat.SHORT
15+
))
16+
}

core/ui/src/main/kotlin/de/tum/informatics/www1/artemis/native_app/core/ui/date/relativeTime.kt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package de.tum.informatics.www1.artemis.native_app.core.ui.date
22

3-
import android.icu.text.SimpleDateFormat
3+
import android.icu.text.DateFormat
44
import android.text.format.DateUtils
55
import androidx.compose.runtime.Composable
66
import androidx.compose.runtime.collectAsState
@@ -27,8 +27,12 @@ fun getRelativeTime(
2727
to: Instant,
2828
clock: Clock = Clock.System,
2929
formatSeconds: Boolean = false,
30-
showDate: Boolean = true
30+
showDate: Boolean = true,
31+
showDateAndTime: Boolean = false
3132
): CharSequence {
33+
val isShowDateParameterCombinationIllegal = showDateAndTime && !showDate
34+
require(!isShowDateParameterCombinationIllegal)
35+
3236
val timeDifferenceBelowOneMinuteString =
3337
stringResource(id = R.string.time_difference_under_one_minute)
3438

@@ -41,8 +45,11 @@ fun getRelativeTime(
4145

4246
if (timeDifference >= 1.days && !showDate) {
4347
emit(
44-
SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT)
45-
.format(Date.from(to.toJavaInstant()))
48+
to.format(DateFormats.OnlyTime.format)
49+
)
50+
} else if (timeDifference >= 1.days && showDateAndTime) {
51+
emit(
52+
to.format(DateFormats.DefaultDateAndTime.format)
4653
)
4754
} else if (formatSeconds || timeDifference >= 1.minutes) {
4855
emit(
@@ -81,4 +88,6 @@ fun getRelativeTime(
8188
}
8289

8390
return flow.collectAsState(initial = "").value
84-
}
91+
}
92+
93+
fun Instant.format(f: DateFormat) = f.format(Date.from(this.toJavaInstant()))
Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package de.tum.informatics.www1.artemis.native_app.core.ui.material.colors
22

3+
import androidx.compose.foundation.isSystemInDarkTheme
4+
import androidx.compose.material3.MaterialTheme
35
import androidx.compose.runtime.Composable
46
import androidx.compose.ui.graphics.Color
57

@@ -8,12 +10,33 @@ object PostColors {
810
val delete: Color
911
@Composable get() = Color(0xffdc3545)
1012
}
13+
14+
object Roles {
15+
val tutor: Color
16+
@Composable get() = Color(0xFFFD7E14)
17+
val student: Color
18+
@Composable get() = Color(0xFF0C9EB6)
19+
val instructor: Color
20+
@Composable get() = Color(0xFFB60000)
21+
}
22+
23+
object StatusBackground {
24+
val resolving: Color
25+
@Composable get() = Color(0xFF28A745).copy(alpha = 0.2f)
26+
val pinned: Color
27+
@Composable get() = Color(0xFFFFA500).copy(alpha = 0.25f)
28+
}
29+
30+
object EmojiChipColors {
31+
val background: Color
32+
@Composable get() = if (isSystemInDarkTheme()) Color(0xFF282C30) else Color(0xFFD0D2D8)
33+
val selectedBackgound: Color
34+
@Composable get() = MaterialTheme.colorScheme.primaryContainer.copy(alpha = 0.25f)
35+
}
36+
1137
val editedHintText: Color
1238
@Composable get() = Color.Gray
1339

1440
val unsentMessageText: Color
1541
@Composable get() = Color.Gray
16-
17-
val pinnedMessageBackground: Color
18-
@Composable get() = Color(0xFFFFA500).copy(alpha = 0.25f)
1942
}

feature/metis/conversation/src/main/kotlin/de/tum/informatics/www1/artemis/native_app/feature/metis/conversation/ui/ConversationChatListScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState
1616
import androidx.compose.material.icons.Icons
1717
import androidx.compose.material.icons.automirrored.filled.ArrowBack
1818
import androidx.compose.material.icons.filled.Search
19-
import androidx.compose.material.icons.filled.Settings
19+
import androidx.compose.material.icons.outlined.Info
2020
import androidx.compose.material3.Icon
2121
import androidx.compose.material3.IconButton
2222
import androidx.compose.material3.MaterialTheme
@@ -215,7 +215,7 @@ fun ConversationChatListScreen(
215215
}
216216

217217
IconButton(onClick = onNavigateToSettings) {
218-
Icon(imageVector = Icons.Default.Settings, contentDescription = null)
218+
Icon(imageVector = Icons.Outlined.Info, contentDescription = null)
219219
}
220220
}
221221
}

feature/metis/conversation/src/main/kotlin/de/tum/informatics/www1/artemis/native_app/feature/metis/conversation/ui/chatlist/MetisChatList.kt

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import androidx.compose.foundation.layout.Arrangement
55
import androidx.compose.foundation.layout.Box
66
import androidx.compose.foundation.layout.Column
77
import androidx.compose.foundation.layout.PaddingValues
8-
import androidx.compose.foundation.layout.Row
98
import androidx.compose.foundation.layout.fillMaxSize
109
import androidx.compose.foundation.layout.fillMaxWidth
1110
import androidx.compose.foundation.layout.padding
@@ -38,6 +37,7 @@ import de.tum.informatics.www1.artemis.native_app.feature.metis.conversation.ui.
3837
import de.tum.informatics.www1.artemis.native_app.feature.metis.conversation.ui.post.DisplayPostOrder
3938
import de.tum.informatics.www1.artemis.native_app.feature.metis.conversation.ui.post.PostItemViewType
4039
import de.tum.informatics.www1.artemis.native_app.feature.metis.conversation.ui.post.PostWithBottomSheet
40+
import de.tum.informatics.www1.artemis.native_app.feature.metis.conversation.ui.post.determinePostItemViewJoinedType
4141
import de.tum.informatics.www1.artemis.native_app.feature.metis.conversation.ui.post.post_actions.PostActionFlags
4242
import de.tum.informatics.www1.artemis.native_app.feature.metis.conversation.ui.post.post_actions.rememberPostActions
4343
import de.tum.informatics.www1.artemis.native_app.feature.metis.conversation.ui.post.shouldDisplayHeader
@@ -171,6 +171,7 @@ fun MetisChatList(
171171
MetisPostListHandler(
172172
modifier = Modifier
173173
.fillMaxWidth()
174+
.padding(horizontal = 8.dp)
174175
.weight(1f),
175176
serverUrl = serverUrl,
176177
courseId = courseId,
@@ -249,7 +250,6 @@ private fun ChatList(
249250
) {
250251
LazyColumn(
251252
modifier = modifier,
252-
verticalArrangement = Arrangement.spacedBy(4.dp),
253253
contentPadding = listContentPadding,
254254
state = state,
255255
reverseLayout = true
@@ -318,6 +318,18 @@ private fun ChatList(
318318
}
319319
}
320320
),
321+
joinedItemType = determinePostItemViewJoinedType(
322+
index = index,
323+
post = post,
324+
postCount = posts.itemCount,
325+
order = DisplayPostOrder.REVERSED,
326+
getPost = { getPostIndex ->
327+
when (val entry = posts.peek(getPostIndex)) {
328+
is ChatListItem.PostChatListItem -> entry.post
329+
else -> null
330+
}
331+
}
332+
),
321333
onClick = {
322334
val standalonePostId = post?.standalonePostId
323335

@@ -400,13 +412,10 @@ private fun DateDivider(modifier: Modifier, date: LocalDate) {
400412
)
401413
}
402414

403-
Row(
404-
modifier = modifier,
405-
horizontalArrangement = Arrangement.spacedBy(4.dp),
406-
verticalAlignment = Alignment.CenterVertically
415+
Column(
416+
modifier = modifier.padding(vertical = 8.dp),
417+
verticalArrangement = Arrangement.spacedBy(4.dp)
407418
) {
408-
HorizontalDivider(modifier = Modifier.weight(1f))
409-
410419
Text(
411420
text = dateAsString,
412421
style = MaterialTheme.typography.bodyMedium,

0 commit comments

Comments
 (0)