Skip to content

Commit 76fd508

Browse files
committed
Updated hardcoded dimensions, other compose changes
1 parent 0e69415 commit 76fd508

File tree

4 files changed

+66
-58
lines changed

4 files changed

+66
-58
lines changed

app/src/main/java/org/thoughtcrime/securesms/mediasend/compose/Components.kt

Lines changed: 43 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import org.thoughtcrime.securesms.util.MediaUtil
4545
import kotlin.collections.filterNot
4646
import kotlin.collections.indexOfFirst
4747
import androidx.core.net.toUri
48+
import org.thoughtcrime.securesms.ui.theme.LocalDimensions
4849

4950
@OptIn(ExperimentalGlideComposeApi::class)
5051
@Composable
@@ -56,7 +57,6 @@ fun MediaFolderCell(
5657
) {
5758
Box(
5859
modifier = Modifier
59-
.padding(end = 2.dp, bottom = 2.dp)
6060
.fillMaxWidth()
6161
.clickable(onClick = onClick)
6262
) {
@@ -72,50 +72,49 @@ fun MediaFolderCell(
7272
modifier = Modifier
7373
.align(Alignment.BottomCenter)
7474
.fillMaxWidth()
75-
.height(50.dp)
7675
.background(
7776
Brush.verticalGradient(
7877
colorStops = arrayOf(
7978
0.0f to Color.Transparent,
80-
0.5f to Color.Black.copy(alpha = 0.5333f),
81-
1.0f to Color.Black.copy(alpha = 0.6667f)
79+
0.5f to Color.Black.copy(alpha = 0.5f),
80+
1.0f to Color.Black.copy(alpha = 0.7f)
8281
)
8382
)
8483
)
85-
)
86-
// Bottom row
87-
Row(
88-
modifier = Modifier
89-
.align(Alignment.BottomStart)
90-
.fillMaxWidth()
91-
.padding(6.dp),
92-
verticalAlignment = Alignment.CenterVertically
84+
.padding(LocalDimensions.current.smallSpacing)
9385
) {
94-
Image(
95-
painter = painterResource(R.drawable.ic_baseline_folder_24),
96-
contentDescription = null,
97-
modifier = Modifier.size(20.dp),
98-
colorFilter = ColorFilter.tint(Color.White)
99-
)
86+
// Bottom row
87+
Row(
88+
modifier = Modifier
89+
.fillMaxWidth(),
90+
verticalAlignment = Alignment.CenterVertically
91+
) {
92+
Image(
93+
painter = painterResource(R.drawable.ic_baseline_folder_24),
94+
contentDescription = null,
95+
modifier = Modifier.size(LocalDimensions.current.iconSmall),
96+
colorFilter = ColorFilter.tint(Color.White)
97+
)
10098

101-
Spacer(Modifier.width(6.dp))
99+
Spacer(Modifier.width(LocalDimensions.current.xxsSpacing))
102100

103-
Text(
104-
text = title,
105-
modifier = Modifier.weight(1f),
106-
maxLines = 1,
107-
overflow = TextOverflow.Ellipsis,
108-
color = Color.White,
109-
style = MaterialTheme.typography.bodyMedium
110-
)
101+
Text(
102+
text = title,
103+
modifier = Modifier.weight(1f),
104+
maxLines = 1,
105+
overflow = TextOverflow.Ellipsis,
106+
color = Color.White,
107+
style = MaterialTheme.typography.bodyMedium
108+
)
111109

112-
Spacer(Modifier.width(6.dp))
110+
Spacer(Modifier.width(LocalDimensions.current.xxsSpacing))
113111

114-
Text(
115-
text = count.toString(),
116-
color = Color.White,
117-
style = MaterialTheme.typography.bodyMedium
118-
)
112+
Text(
113+
text = count.toString(),
114+
color = Color.White,
115+
style = MaterialTheme.typography.bodyMedium
116+
)
117+
}
119118
}
120119
}
121120
}
@@ -156,8 +155,11 @@ fun MediaPickerItemCell(
156155

157156
Box(
158157
modifier = modifier
159-
.padding(end = 2.dp, bottom = 2.dp)
160158
.aspectRatio(1f)
159+
.border(
160+
width = LocalDimensions.current.borderStroke,
161+
color = Color.White.copy(alpha = 0.20f)
162+
)
161163
.combinedClickable(
162164
onClick = {
163165
if (selected.isEmpty() && !forcedMultiSelect) {
@@ -192,29 +194,20 @@ fun MediaPickerItemCell(
192194
contentScale = ContentScale.Crop
193195
)
194196

195-
// Border overlay (replaces @drawable/mediapicker_item_border_dark View)
196-
Box(
197-
Modifier
198-
.matchParentSize()
199-
.border(width = 1.dp, color = Color.White.copy(alpha = 0.20f))
200-
)
201-
202197
// Play overlay (center) for video
203198
if (MediaUtil.isVideoType(media.mimeType)) {
204199
Box(
205200
modifier = Modifier
206201
.align(Alignment.Center)
207-
.size(36.dp)
202+
.size(LocalDimensions.current.mediaPlayOverlay)
208203
.clip(CircleShape)
209204
.background(Color.White),
210205
contentAlignment = Alignment.Center
211206
) {
212207
Image(
213208
painter = painterResource(R.drawable.triangle_right),
214209
contentDescription = null,
215-
modifier = Modifier
216-
.size(width = 15.dp, height = 18.dp)
217-
.padding(start = 2.dp),
210+
modifier = Modifier.size(LocalDimensions.current.iconMedium),
218211
colorFilter = ColorFilter.tint(LocalColors.current.accent) // match @color/core_blue-ish
219212
)
220213
}
@@ -234,9 +227,9 @@ fun MediaPickerItemCell(
234227
Box(
235228
modifier = Modifier
236229
.align(Alignment.TopEnd)
237-
.padding(6.dp)
230+
.padding(LocalDimensions.current.xxsSpacing)
238231
) {
239-
IndicatorOff(size = dimensionResource(R.dimen.small_radial_size))
232+
IndicatorOff(size = LocalDimensions.current.smallRadius)
240233
}
241234
}
242235

@@ -245,10 +238,10 @@ fun MediaPickerItemCell(
245238
Box(
246239
modifier = Modifier
247240
.align(Alignment.TopEnd)
248-
.padding(6.dp),
241+
.padding(LocalDimensions.current.xxsSpacing),
249242
contentAlignment = Alignment.Center
250243
) {
251-
IndicatorOn(size = dimensionResource(R.dimen.small_radial_size))
244+
IndicatorOn(size = LocalDimensions.current.smallRadius)
252245

253246
Text(
254247
text = (selectedIndex + 1).toString(),
@@ -268,7 +261,7 @@ private fun IndicatorOff(size: Dp, modifier: Modifier = Modifier) {
268261
.size(size)
269262
.clip(CircleShape)
270263
.border(
271-
width = 1.dp,
264+
width = LocalDimensions.current.borderStroke,
272265
color = LocalColors.current.text,
273266
shape = CircleShape
274267
)

app/src/main/java/org/thoughtcrime/securesms/mediasend/compose/MediaPickerFolderScreen.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.mediasend.compose
22

33
import android.annotation.SuppressLint
44
import androidx.compose.foundation.background
5+
import androidx.compose.foundation.layout.Arrangement
56
import androidx.compose.foundation.layout.Column
67
import androidx.compose.foundation.layout.WindowInsets
78
import androidx.compose.foundation.layout.WindowInsetsSides
@@ -29,13 +30,13 @@ import androidx.compose.ui.res.painterResource
2930
import androidx.compose.ui.tooling.preview.Preview
3031
import androidx.compose.ui.unit.dp
3132
import androidx.fragment.app.FragmentActivity
32-
import androidx.lifecycle.viewmodel.compose.viewModel
3333
import network.loki.messenger.R
3434
import org.thoughtcrime.securesms.conversation.v2.utilities.AttachmentManager
3535
import org.thoughtcrime.securesms.mediasend.MediaFolder
3636
import org.thoughtcrime.securesms.mediasend.MediaSendViewModel
3737
import org.thoughtcrime.securesms.ui.components.BackAppBar
3838
import org.thoughtcrime.securesms.ui.theme.LocalColors
39+
import org.thoughtcrime.securesms.ui.theme.LocalDimensions
3940

4041
@Composable
4142
fun MediaPickerFolderScreen(
@@ -111,14 +112,19 @@ private fun MediaPickerFolder(
111112
columns = GridCells.Fixed(columns),
112113
modifier = Modifier
113114
.fillMaxSize()
114-
.background(LocalColors.current.background)
115+
.background(LocalColors.current.background),
116+
horizontalArrangement = Arrangement.spacedBy(LocalDimensions.current.mediaItemGridSpacing),
117+
verticalArrangement = Arrangement.spacedBy(LocalDimensions.current.mediaItemGridSpacing)
115118
) {
116-
items(folders) { folder ->
119+
items(
120+
items = folders,
121+
key = { folder -> folder.bucketId }
122+
) { folder ->
117123
MediaFolderCell(
118124
title = folder.title,
119125
count = folder.itemCount,
120126
thumbnailUri = folder.thumbnailUri,
121-
onClick = { onFolderClick(folder) }
127+
onClick = { onFolderClick(folder) },
122128
)
123129
}
124130
}

app/src/main/java/org/thoughtcrime/securesms/mediasend/compose/MediaPickerItemScreen.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.mediasend.compose
22

33
import android.widget.Toast
44
import androidx.compose.foundation.background
5+
import androidx.compose.foundation.layout.Arrangement
56
import androidx.compose.foundation.layout.fillMaxSize
67
import androidx.compose.foundation.layout.padding
78
import androidx.compose.foundation.lazy.grid.GridCells
@@ -30,6 +31,7 @@ import org.thoughtcrime.securesms.mediasend.Media.Companion.ALL_MEDIA_BUCKET_ID
3031
import org.thoughtcrime.securesms.mediasend.MediaSendViewModel
3132
import org.thoughtcrime.securesms.ui.components.BackAppBar
3233
import org.thoughtcrime.securesms.ui.theme.LocalColors
34+
import org.thoughtcrime.securesms.ui.theme.LocalDimensions
3335

3436
@Composable
3537
fun MediaPickerItemScreen(
@@ -85,8 +87,7 @@ private fun MediaPickerItem(
8587
) {
8688

8789
val context = LocalContext.current.applicationContext
88-
// spanCount = screenWidth / itemWidth (same as fragment)
89-
val itemWidth = dimensionResource(R.dimen.media_picker_item_width)
90+
val itemWidth = LocalDimensions.current.mediaPickerItemWidth
9091
val screenWidth = LocalConfiguration.current.screenWidthDp.dp
9192
val columns = maxOf(1, (screenWidth / itemWidth).toInt())
9293

@@ -118,7 +119,9 @@ private fun MediaPickerItem(
118119
modifier = Modifier
119120
.padding(padding)
120121
.fillMaxSize()
121-
.background(LocalColors.current.background)
122+
.background(LocalColors.current.background),
123+
horizontalArrangement = Arrangement.spacedBy(LocalDimensions.current.mediaItemGridSpacing),
124+
verticalArrangement = Arrangement.spacedBy(LocalDimensions.current.mediaItemGridSpacing)
122125
) {
123126
items(media, key = { it.uri }) { item ->
124127
MediaPickerItemCell(

app/src/main/java/org/thoughtcrime/securesms/ui/theme/Dimensions.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,11 @@ data class Dimensions(
5252
val minContentSize: Dp = 80.dp,
5353
val maxContentSize: Dp = 520.dp,
5454
val minContentSizeMedium: Dp = 160.dp,
55-
val maxContentSizeMedium: Dp = 620.dp
55+
val maxContentSizeMedium: Dp = 620.dp,
56+
57+
val mediaPickerItemWidth : Dp = 85.dp,
58+
val mediaItemGridSpacing : Dp = 2.dp,
59+
val mediaPlayOverlay : Dp = 36.dp,
60+
61+
val smallRadius : Dp = 26.dp
5662
)

0 commit comments

Comments
 (0)