Skip to content

Commit 0fae5cb

Browse files
[Feature] Show calendar in full with domain when select
1 parent b0d8376 commit 0fae5cb

File tree

4 files changed

+106
-18
lines changed

4 files changed

+106
-18
lines changed

Diff for: app/src/main/java/at/techbee/jtx/ui/collections/CollectionCard.kt

+23-6
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,14 @@ import androidx.compose.runtime.saveable.rememberSaveable
3939
import androidx.compose.runtime.setValue
4040
import androidx.compose.ui.Alignment
4141
import androidx.compose.ui.Modifier
42+
import androidx.compose.ui.draw.alpha
4243
import androidx.compose.ui.graphics.Color
4344
import androidx.compose.ui.graphics.toArgb
4445
import androidx.compose.ui.platform.LocalContext
4546
import androidx.compose.ui.res.painterResource
4647
import androidx.compose.ui.res.stringResource
4748
import androidx.compose.ui.text.font.FontWeight
49+
import androidx.compose.ui.text.style.TextOverflow
4850
import androidx.compose.ui.tooling.preview.Preview
4951
import androidx.compose.ui.unit.dp
5052
import at.techbee.jtx.R
@@ -134,12 +136,27 @@ fun CollectionCard(
134136
containerColor = collection.color?.let { Color (it) } ?: MaterialTheme.colorScheme.primaryContainer,
135137
isAccessibilityMode = settingAccessibilityMode
136138
)
137-
Text(
138-
collection.displayName ?: collection.accountName ?: collection.accountType ?: "",
139-
style = Typography.bodyMedium,
140-
fontWeight = FontWeight.Bold,
141-
modifier = Modifier.weight(1f)
142-
)
139+
140+
Column(modifier = Modifier.weight(1f)) {
141+
collection.displayName?.let {
142+
Text(
143+
text = it,
144+
maxLines = 1,
145+
overflow = TextOverflow.Ellipsis,
146+
style = Typography.bodyMedium,
147+
fontWeight = FontWeight.Bold,
148+
)
149+
}
150+
if(collection.accountType != LOCAL_ACCOUNT_TYPE) {
151+
Text(
152+
text = collection.url,
153+
style = MaterialTheme.typography.labelMedium,
154+
maxLines = 1,
155+
overflow = TextOverflow.Ellipsis,
156+
modifier = Modifier.alpha(0.5f)
157+
)
158+
}
159+
}
143160
}
144161
if (collection.description?.isNotBlank() == true) {
145162
Text(

Diff for: app/src/main/java/at/techbee/jtx/ui/detail/DetailScreenContent.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ import at.techbee.jtx.database.relations.ICalEntity
100100
import at.techbee.jtx.database.views.ICal4List
101101
import at.techbee.jtx.flavored.BillingManager
102102
import at.techbee.jtx.ui.reusable.dialogs.ColorPickerDialog
103+
import at.techbee.jtx.ui.reusable.elements.CollectionInfoColumn
103104
import at.techbee.jtx.ui.reusable.elements.CollectionsSpinner
104105
import at.techbee.jtx.ui.reusable.elements.ListBadge
105106
import at.techbee.jtx.ui.reusable.elements.ProgressElement
@@ -377,7 +378,12 @@ fun DetailScreenContent(
377378
} ?: MaterialTheme.colorScheme.primaryContainer,
378379
isAccessibilityMode = true
379380
)
380-
Text(originalICalEntity.value?.ICalCollection?.displayName + originalICalEntity.value?.ICalCollection?.accountName?.let { " ($it)" })
381+
originalICalEntity.value?.ICalCollection?.let {
382+
CollectionInfoColumn(
383+
collection = it,
384+
modifier = Modifier.fillMaxWidth()
385+
)
386+
}
381387
}
382388
}
383389
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package at.techbee.jtx.ui.reusable.elements
2+
3+
import androidx.compose.foundation.layout.Arrangement
4+
import androidx.compose.foundation.layout.Column
5+
import androidx.compose.foundation.layout.Row
6+
import androidx.compose.material3.MaterialTheme
7+
import androidx.compose.material3.Text
8+
import androidx.compose.runtime.Composable
9+
import androidx.compose.ui.Alignment
10+
import androidx.compose.ui.Modifier
11+
import androidx.compose.ui.draw.alpha
12+
import androidx.compose.ui.graphics.Color
13+
import androidx.compose.ui.graphics.toArgb
14+
import androidx.compose.ui.text.style.TextOverflow
15+
import androidx.compose.ui.tooling.preview.Preview
16+
import androidx.compose.ui.unit.dp
17+
import at.techbee.jtx.database.ICalCollection
18+
19+
20+
@Composable
21+
fun CollectionInfoColumn(collection: ICalCollection, modifier: Modifier = Modifier) {
22+
Column(modifier = modifier) {
23+
24+
Row(
25+
verticalAlignment = Alignment.CenterVertically,
26+
horizontalArrangement = Arrangement.spacedBy(8.dp)
27+
) {
28+
collection.displayName?.let {
29+
Text(
30+
text = it,
31+
maxLines = 1,
32+
overflow = TextOverflow.Ellipsis,
33+
modifier = Modifier
34+
)
35+
}
36+
collection.accountName?.let {
37+
Text(
38+
text = it,
39+
style = MaterialTheme.typography.labelMedium,
40+
maxLines = 1,
41+
overflow = TextOverflow.Ellipsis,
42+
modifier = Modifier.alpha(0.5f).weight(1f)
43+
)
44+
}
45+
}
46+
if(collection.accountType != ICalCollection.LOCAL_ACCOUNT_TYPE) {
47+
Text(
48+
text = collection.url,
49+
style = MaterialTheme.typography.labelMedium,
50+
maxLines = 1,
51+
overflow = TextOverflow.Ellipsis,
52+
modifier = Modifier.alpha(0.5f)
53+
)
54+
}
55+
}
56+
}
57+
58+
59+
@Preview(showBackground = true)
60+
@Composable
61+
fun CollectionInfoColumn_Preview() {
62+
MaterialTheme {
63+
val collection1 = ICalCollection(
64+
collectionId = 1L,
65+
color = Color.Cyan.toArgb(),
66+
displayName = "Collection Display Name",
67+
description = "Here comes the desc",
68+
accountName = "My account",
69+
accountType = "LOCAL"
70+
)
71+
CollectionInfoColumn(collection1)
72+
}
73+
}

Diff for: app/src/main/java/at/techbee/jtx/ui/reusable/elements/CollectionsSpinner.kt

+3-11
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import androidx.compose.foundation.layout.Arrangement
55
import androidx.compose.foundation.layout.Row
66
import androidx.compose.foundation.layout.fillMaxWidth
77
import androidx.compose.foundation.layout.padding
8-
import androidx.compose.foundation.layout.wrapContentWidth
98
import androidx.compose.material.icons.Icons
109
import androidx.compose.material.icons.outlined.ArrowDropDown
1110
import androidx.compose.material.icons.outlined.FolderOpen
@@ -15,7 +14,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api
1514
import androidx.compose.material3.Icon
1615
import androidx.compose.material3.MaterialTheme
1716
import androidx.compose.material3.OutlinedCard
18-
import androidx.compose.material3.Text
1917
import androidx.compose.runtime.Composable
2018
import androidx.compose.runtime.getValue
2119
import androidx.compose.runtime.livedata.observeAsState
@@ -76,8 +74,8 @@ fun CollectionsSpinner(
7674
containerColor = selected.color?.let {Color(it) } ?: MaterialTheme.colorScheme.primaryContainer,
7775
isAccessibilityMode = true
7876
)
79-
Text(
80-
text = selected.displayName + selected.accountName?.let { " ($it)" },
77+
CollectionInfoColumn(
78+
collection = selected,
8179
modifier = Modifier
8280
.weight(1f)
8381
.alpha(if (!enabled) 0.5f else 1f)
@@ -111,13 +109,7 @@ fun CollectionsSpinner(
111109
}
112110
},
113111
text = {
114-
Text(
115-
text = (collection.displayName ?: collection.accountName)
116-
?: " ",
117-
modifier = Modifier
118-
.wrapContentWidth()
119-
.align(Alignment.Start)
120-
)
112+
CollectionInfoColumn(collection = collection)
121113
}
122114
)
123115
}

0 commit comments

Comments
 (0)