add launcher icons and clean inbox rows
@@ -4,7 +4,9 @@
|
|||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:theme="@style/AppTheme"
|
android:theme="@style/AppTheme"
|
||||||
android:usesCleartextTraffic="${usesCleartextTraffic}">
|
android:usesCleartextTraffic="${usesCleartextTraffic}">
|
||||||
<activity
|
<activity
|
||||||
|
|||||||
@@ -2749,23 +2749,6 @@ private fun PilotInboxRow(
|
|||||||
.padding(vertical = 9.dp),
|
.padding(vertical = 9.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
Box(
|
|
||||||
modifier = Modifier
|
|
||||||
.size(30.dp)
|
|
||||||
.clip(RoundedCornerShape(10.dp))
|
|
||||||
.background(MulticaColors.AccentSoft.copy(alpha = if (!item.read) 0.46f else 0.18f))
|
|
||||||
.semantics { contentDescription = "Inbox Actor Avatar ${item.id}" },
|
|
||||||
contentAlignment = Alignment.Center,
|
|
||||||
) {
|
|
||||||
Text(
|
|
||||||
text = inboxAvatarText(item),
|
|
||||||
style = MaterialTheme.typography.labelMedium.copy(fontSize = 11.sp, lineHeight = 12.sp),
|
|
||||||
color = if (!item.read) MulticaColors.Accent else MulticaColors.Muted,
|
|
||||||
maxLines = 1,
|
|
||||||
overflow = TextOverflow.Clip,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
androidx.compose.foundation.layout.Spacer(modifier = Modifier.width(10.dp))
|
|
||||||
Column(modifier = Modifier.weight(1f)) {
|
Column(modifier = Modifier.weight(1f)) {
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
@@ -2868,11 +2851,6 @@ private fun inboxDetailLabel(item: Models.InboxItem, zh: Boolean): String {
|
|||||||
).joinToString(" · ").ifBlank { Models.statusLabel(item.issueStatus, zh).ifBlank { if (zh) "通知" else "Notification" } }
|
).joinToString(" · ").ifBlank { Models.statusLabel(item.issueStatus, zh).ifBlank { if (zh) "通知" else "Notification" } }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun inboxAvatarText(item: Models.InboxItem): String {
|
|
||||||
val source = clean(item.issueIdentifier).ifBlank { clean(item.type) }.ifBlank { "M" }
|
|
||||||
return source.firstOrNull { it.isLetterOrDigit() }?.uppercaseChar()?.toString() ?: "M"
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun InlineInboxAction(
|
private fun InlineInboxAction(
|
||||||
text: String,
|
text: String,
|
||||||
|
|||||||
|
After Width: | Height: | Size: 140 KiB |
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@color/ic_launcher_background" />
|
||||||
|
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||||
|
</adaptive-icon>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@color/ic_launcher_background" />
|
||||||
|
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||||
|
</adaptive-icon>
|
||||||
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 46 KiB |
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<color name="ic_launcher_background">#F7F9FC</color>
|
||||||
|
</resources>
|
||||||