Skip to content

Commit d4e994f

Browse files
Merge pull request #5901 from nextcloud/chore/5636/useDrawables
⚒️ Replace legacy icons with vector xmls
2 parents b7cba63 + 93a747e commit d4e994f

26 files changed

Lines changed: 818 additions & 252 deletions

app/build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,9 +325,6 @@ dependencies {
325325
implementation(platform("androidx.compose:compose-bom:2026.02.01"))
326326
implementation("androidx.compose.ui:ui")
327327
implementation 'androidx.compose.material3:material3:1.4.0'
328-
// replace with xml drawables instead of legacy fallback lib, see
329-
// https://developer.android.com/jetpack/androidx/releases/compose-material3#1.4.0
330-
implementation 'androidx.compose.material:material-icons-core:1.7.8'
331328
implementation("androidx.compose.material:material-icons-extended")
332329
implementation("androidx.compose.ui:ui-tooling-preview")
333330
implementation 'androidx.activity:activity-compose:1.12.4'

app/src/main/java/com/nextcloud/talk/call/components/ParticipantGrid.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import android.util.Log
3333
import com.nextcloud.talk.activities.ParticipantUiState
3434

3535
@SuppressLint("UnusedBoxWithConstraintsScope")
36-
@Suppress("LongParameterList")
36+
@Suppress("LongParameterList", "LongMethod")
3737
@Composable
3838
fun ParticipantGrid(
3939
modifier: Modifier = Modifier,

app/src/main/java/com/nextcloud/talk/call/components/screenshare/ScreenShareComponent.kt

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
2020
import androidx.compose.foundation.layout.padding
2121
import androidx.compose.foundation.layout.size
2222
import androidx.compose.foundation.shape.CircleShape
23-
import androidx.compose.material.icons.Icons
24-
import androidx.compose.material.icons.filled.Close
2523
import androidx.compose.material3.Icon
2624
import androidx.compose.material3.IconButton
2725
import androidx.compose.material3.Text
@@ -35,9 +33,12 @@ import androidx.compose.ui.Alignment
3533
import androidx.compose.ui.Modifier
3634
import androidx.compose.ui.graphics.Brush
3735
import androidx.compose.ui.graphics.Color
36+
import androidx.compose.ui.graphics.vector.ImageVector
3837
import androidx.compose.ui.res.stringResource
38+
import androidx.compose.ui.res.vectorResource
3939
import androidx.compose.ui.text.font.FontWeight
4040
import androidx.compose.ui.text.style.TextOverflow
41+
import androidx.compose.ui.tooling.preview.Preview
4142
import androidx.compose.ui.unit.dp
4243
import androidx.compose.ui.unit.sp
4344
import com.nextcloud.talk.R
@@ -135,9 +136,36 @@ private fun CloseButton(onClick: () -> Unit) {
135136
.border(1.dp, Color.White.copy(alpha = 0.8f), CircleShape)
136137
) {
137138
Icon(
138-
imageVector = Icons.Default.Close,
139+
imageVector = ImageVector.vectorResource(R.drawable.ic_baseline_close_24),
139140
contentDescription = stringResource(R.string.close),
140141
tint = Color.White
141142
)
142143
}
143144
}
145+
146+
@Preview(name = "LTR")
147+
@Composable
148+
fun ScreenShareComponentPreview(nick: String = "Alice") {
149+
ScreenShareComponent(
150+
participantUiState = ParticipantUiState(
151+
sessionKey = null,
152+
baseUrl = "https://nextcloud.example.com",
153+
roomToken = "token",
154+
nick = nick,
155+
isConnected = true,
156+
isAudioEnabled = true,
157+
isStreamEnabled = true,
158+
isScreenStreamEnabled = false,
159+
raisedHand = false,
160+
isInternal = false
161+
),
162+
eglBase = null,
163+
onCloseIconClick = {}
164+
)
165+
}
166+
167+
@Preview(name = "RTL / Arabic", locale = "ar")
168+
@Composable
169+
fun ScreenShareComponentRtlPreview() {
170+
ScreenShareComponentPreview(nick = "أليس")
171+
}

app/src/main/java/com/nextcloud/talk/chat/ScheduleMessageCompose.kt

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ import androidx.compose.foundation.layout.wrapContentWidth
2727
import androidx.compose.foundation.rememberScrollState
2828
import androidx.compose.foundation.shape.RoundedCornerShape
2929
import androidx.compose.foundation.verticalScroll
30-
import androidx.compose.material.icons.Icons
31-
import androidx.compose.material.icons.filled.DateRange
3230
import androidx.compose.material3.DatePicker
3331
import androidx.compose.material3.DatePickerDefaults
3432
import androidx.compose.material3.ExperimentalMaterial3Api
@@ -54,11 +52,14 @@ import androidx.compose.ui.graphics.vector.ImageVector
5452
import androidx.compose.ui.platform.LocalContext
5553
import androidx.compose.ui.res.colorResource
5654
import androidx.compose.ui.res.stringResource
55+
import androidx.compose.ui.res.vectorResource
56+
import androidx.compose.ui.tooling.preview.Preview
5757
import androidx.compose.ui.unit.dp
5858
import androidx.compose.ui.window.Dialog
5959
import androidx.compose.ui.window.DialogProperties
6060
import com.nextcloud.talk.R
6161
import com.nextcloud.talk.ui.theme.ViewThemeUtils
62+
import com.nextcloud.talk.utils.preview.ComposePreviewUtils
6263
import java.time.DayOfWeek
6364
import java.time.Instant
6465
import java.time.LocalDate
@@ -286,7 +287,10 @@ class ScheduleMessageCompose(
286287
@Suppress("LongMethod")
287288
@Composable
288289
private fun CollapsableDateTime(shouldDismiss: MutableState<Boolean>, isCollapsed: MutableState<Boolean>) {
289-
GeneralIconButton(icon = Icons.Filled.DateRange, label = stringResource(R.string.custom)) {
290+
GeneralIconButton(
291+
icon = ImageVector.vectorResource(R.drawable.ic_date_range_24px),
292+
label = stringResource(R.string.custom)
293+
) {
290294
selectedOption.value = SelectedOption.NONE
291295
isCollapsed.value = !isCollapsed.value
292296
}
@@ -417,3 +421,27 @@ class ScheduleMessageCompose(
417421
private const val CUBED_PADDING = 0.33f
418422
}
419423
}
424+
425+
@Preview(name = "Light Mode")
426+
@Preview(
427+
name = "Dark Mode",
428+
uiMode = android.content.res.Configuration.UI_MODE_NIGHT_YES
429+
)
430+
@Preview(name = "RTL / Arabic", locale = "ar")
431+
@Composable
432+
fun GetScheduleDialogPreview() {
433+
val context = LocalContext.current
434+
val previewUtils = ComposePreviewUtils.getInstance(context)
435+
val scheduleCompose = ScheduleMessageCompose(
436+
initialMessage = "Hello Alice",
437+
initialScheduledAt = null,
438+
onDismiss = {},
439+
onSchedule = { _, _ -> },
440+
defaultSendWithoutNotification = false,
441+
viewThemeUtils = previewUtils.viewThemeUtils
442+
)
443+
scheduleCompose.GetScheduleDialog(
444+
shouldDismiss = remember { mutableStateOf(false) },
445+
context = context
446+
)
447+
}

0 commit comments

Comments
 (0)