mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-07-26 22:42:17 +00:00
Use TV Lottie loading spinner
This commit is contained in:
parent
9d41e9f769
commit
deddcc6744
27 changed files with 116 additions and 81 deletions
|
|
@ -416,6 +416,7 @@ kotlin {
|
|||
implementation(libs.compose.ui)
|
||||
implementation(libs.compose.components.resources)
|
||||
implementation(libs.compose.uiToolingPreview)
|
||||
implementation(libs.compottie)
|
||||
implementation(libs.androidx.lifecycle.viewmodelCompose)
|
||||
implementation(libs.androidx.lifecycle.runtimeCompose)
|
||||
implementation(libs.kotlinx.serialization.json)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -28,7 +28,7 @@ import androidx.compose.foundation.layout.statusBars
|
|||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Home
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
|
|
@ -585,7 +585,7 @@ fun App() {
|
|||
.background(MaterialTheme.nuvio.colors.background),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
CircularProgressIndicator(color = MaterialTheme.nuvio.colors.accent)
|
||||
NuvioLoadingIndicator(color = MaterialTheme.nuvio.colors.accent)
|
||||
}
|
||||
}
|
||||
AppGateScreen.Auth.name -> {
|
||||
|
|
@ -2224,7 +2224,7 @@ private fun MainAppContent(
|
|||
modifier = Modifier.fillMaxSize(),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
CircularProgressIndicator(color = MaterialTheme.nuvio.colors.accent)
|
||||
NuvioLoadingIndicator(color = MaterialTheme.nuvio.colors.accent)
|
||||
}
|
||||
return@composable
|
||||
}
|
||||
|
|
@ -2437,7 +2437,7 @@ private fun MainAppContent(
|
|||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.spacedBy(MaterialTheme.nuvio.spacing.cardPadding),
|
||||
) {
|
||||
CircularProgressIndicator(color = MaterialTheme.nuvio.colors.playerControlsForeground)
|
||||
NuvioLoadingIndicator(color = MaterialTheme.nuvio.colors.playerControlsForeground)
|
||||
Text(
|
||||
text = stringResource(Res.string.streams_finding_source),
|
||||
color = MaterialTheme.nuvio.colors.playerControlsForeground.copy(alpha = MaterialTheme.nuvio.opacity.overlayHeavy),
|
||||
|
|
@ -3297,7 +3297,7 @@ private fun AppLaunchOverlay(
|
|||
contentScale = ContentScale.Fit,
|
||||
)
|
||||
Spacer(modifier = Modifier.height(tokens.spacing.sectionGap))
|
||||
CircularProgressIndicator(color = tokens.colors.accent)
|
||||
NuvioLoadingIndicator(color = tokens.colors.accent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
|||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
|
|
@ -431,9 +430,8 @@ fun NuvioStatusModal(
|
|||
modifier = Modifier.padding(tokens.spacing.dialogPadding),
|
||||
) {
|
||||
if (isBusy) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = tokens.colors.accent,
|
||||
strokeWidth = NuvioTokens.Border.medium + NuvioTokens.Space.hairline,
|
||||
)
|
||||
Spacer(modifier = Modifier.height(NuvioTokens.Space.s16))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
package com.nuvio.app.core.ui
|
||||
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.ColorFilter
|
||||
import androidx.compose.ui.graphics.graphicsLayer
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import io.github.alexzhirkevich.compottie.Compottie
|
||||
import io.github.alexzhirkevich.compottie.LottieCompositionSpec
|
||||
import io.github.alexzhirkevich.compottie.animateLottieCompositionAsState
|
||||
import io.github.alexzhirkevich.compottie.rememberLottieComposition
|
||||
import io.github.alexzhirkevich.compottie.rememberLottiePainter
|
||||
import nuvio.composeapp.generated.resources.Res
|
||||
|
||||
@Composable
|
||||
fun NuvioLoadingIndicator(
|
||||
modifier: Modifier = Modifier,
|
||||
color: Color = MaterialTheme.nuvio.colors.textSecondary,
|
||||
size: Dp = NuvioTokens.Space.s40,
|
||||
) {
|
||||
Box(
|
||||
modifier = modifier.size(size),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
val composition by rememberLottieComposition {
|
||||
LottieCompositionSpec.JsonString(
|
||||
Res.readBytes("files/nuvio_loading_indicator.json").decodeToString()
|
||||
)
|
||||
}
|
||||
val progress by animateLottieCompositionAsState(
|
||||
composition = composition,
|
||||
iterations = Compottie.IterateForever,
|
||||
)
|
||||
|
||||
Image(
|
||||
painter = rememberLottiePainter(
|
||||
composition = composition,
|
||||
progress = { progress },
|
||||
),
|
||||
contentDescription = null,
|
||||
colorFilter = ColorFilter.tint(color),
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.graphicsLayer {
|
||||
clip = false
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -18,7 +18,6 @@ import androidx.compose.material.icons.rounded.Check
|
|||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
|
|
@ -92,8 +91,7 @@ fun TraktListPickerDialog(
|
|||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.spacedBy(tokens.spacing.listGap),
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
strokeWidth = tokens.borders.medium,
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(tokens.icons.lg),
|
||||
)
|
||||
Text(
|
||||
|
|
@ -164,9 +162,8 @@ fun TraktListPickerDialog(
|
|||
enabled = !isPending,
|
||||
) {
|
||||
if (isPending) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = tokens.colors.onAccent,
|
||||
strokeWidth = tokens.borders.medium,
|
||||
modifier = Modifier.size(tokens.icons.sm),
|
||||
)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ import androidx.compose.material.icons.rounded.Visibility
|
|||
import androidx.compose.material.icons.rounded.VisibilityOff
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
|
|
@ -872,10 +872,9 @@ private fun AuthPrimaryButton(
|
|||
),
|
||||
) {
|
||||
if (isLoading) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(20.dp * scale),
|
||||
color = AuthPrimaryButtonText,
|
||||
strokeWidth = 2.dp * scale,
|
||||
)
|
||||
} else {
|
||||
Text(
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import androidx.compose.foundation.lazy.grid.GridItemSpan
|
|||
import androidx.compose.foundation.lazy.grid.items
|
||||
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
|
|
@ -379,10 +379,9 @@ private fun CatalogLoadingFooter() {
|
|||
.padding(vertical = 12.dp),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(22.dp),
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
strokeWidth = 2.dp,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import androidx.compose.foundation.lazy.grid.items
|
|||
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material3.LocalRippleConfiguration
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.ScrollableTabRow
|
||||
import androidx.compose.material3.Tab
|
||||
|
|
@ -370,10 +370,9 @@ private fun PaginationLoadingFooter() {
|
|||
.padding(vertical = 8.dp),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(28.dp),
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
strokeWidth = 3.dp,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -393,10 +392,9 @@ private fun LoadingIndicator() {
|
|||
modifier = Modifier.fillMaxSize(),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(32.dp),
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
strokeWidth = 3.dp,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ import androidx.compose.material.icons.filled.CheckCircle
|
|||
import androidx.compose.material.icons.filled.CheckCircleOutline
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
|
|
@ -310,7 +310,7 @@ fun MetaDetailsScreen(
|
|||
) {
|
||||
when {
|
||||
displayedMeta == null && uiState.isLoading -> {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.align(Alignment.Center),
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import androidx.compose.foundation.layout.padding
|
|||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.rounded.Close
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
|
|
@ -140,7 +140,7 @@ fun TrailerPlayerPopup(
|
|||
) {
|
||||
when {
|
||||
isLoading -> {
|
||||
CircularProgressIndicator(color = MaterialTheme.colorScheme.primary)
|
||||
NuvioLoadingIndicator(color = MaterialTheme.colorScheme.primary)
|
||||
}
|
||||
|
||||
activeError != null -> {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ import androidx.compose.material.icons.automirrored.filled.InsertDriveFile
|
|||
import androidx.compose.material.icons.automirrored.rounded.ArrowBack
|
||||
import androidx.compose.material.icons.rounded.PlayArrow
|
||||
import androidx.compose.material.icons.rounded.Refresh
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.LinearProgressIndicator
|
||||
|
|
@ -591,9 +591,8 @@ private fun LibraryChip(
|
|||
horizontalArrangement = Arrangement.spacedBy(6.dp),
|
||||
) {
|
||||
if (loading) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(12.dp),
|
||||
strokeWidth = 1.5.dp,
|
||||
color = colorScheme.primary,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ import androidx.compose.material.icons.rounded.Replay10
|
|||
import androidx.compose.material.icons.rounded.Speed
|
||||
import androidx.compose.material.icons.rounded.SwapHoriz
|
||||
import androidx.compose.material.icons.rounded.VideoLibrary
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Slider
|
||||
|
|
@ -463,9 +463,8 @@ private fun PlayPauseControlButton(
|
|||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
if (isBuffering) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = Color.White,
|
||||
strokeWidth = 3.dp,
|
||||
modifier = Modifier.size(metrics.playIconSize),
|
||||
)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ import androidx.compose.foundation.rememberScrollState
|
|||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.rounded.ArrowBack
|
||||
import androidx.compose.material.icons.rounded.Refresh
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
|
|
@ -576,9 +576,8 @@ private fun EpisodeStreamsSubView(
|
|||
.padding(vertical = NuvioTokens.Space.s40),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = tokens.colors.accent,
|
||||
strokeWidth = tokens.borders.medium,
|
||||
modifier = Modifier.size(tokens.icons.lg + NuvioTokens.Space.s4),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ import androidx.compose.material.icons.rounded.ErrorOutline
|
|||
import androidx.compose.material.icons.rounded.FastForward
|
||||
import androidx.compose.material.icons.rounded.FastRewind
|
||||
import androidx.compose.material.icons.rounded.Speed
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
|
|
@ -238,9 +238,8 @@ internal fun OpeningOverlay(
|
|||
},
|
||||
)
|
||||
} else {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = Color(0xFFE50914),
|
||||
strokeWidth = 3.dp,
|
||||
modifier = Modifier.size(54.dp),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ import androidx.compose.foundation.lazy.itemsIndexed
|
|||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.rounded.Refresh
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
|
|
@ -176,9 +176,8 @@ fun PlayerSourcesPanel(
|
|||
.padding(vertical = NuvioTokens.Space.s40),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = tokens.colors.accent,
|
||||
strokeWidth = tokens.borders.medium,
|
||||
modifier = Modifier.size(tokens.icons.lg + NuvioTokens.Space.s4),
|
||||
)
|
||||
}
|
||||
|
|
@ -272,9 +271,8 @@ internal fun AddonFilterChip(
|
|||
horizontalArrangement = Arrangement.spacedBy(NuvioTokens.Space.s6),
|
||||
) {
|
||||
if (isLoading) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = tokens.colors.accent,
|
||||
strokeWidth = tokens.borders.thin + NuvioTokens.Space.hairline,
|
||||
modifier = Modifier.size(NuvioTokens.Icon.xs),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import androidx.compose.foundation.verticalScroll
|
|||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.rounded.Check
|
||||
import androidx.compose.material.icons.rounded.CloudDownload
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
|
|
@ -317,9 +317,8 @@ private fun AddonSubtitleList(
|
|||
.padding(40.dp),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = colorScheme.primary,
|
||||
strokeWidth = 2.dp,
|
||||
modifier = Modifier.size(32.dp),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import androidx.compose.material.icons.rounded.Replay
|
|||
import androidx.compose.material.icons.rounded.Send
|
||||
import androidx.compose.material.icons.rounded.StopCircle
|
||||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
|
|
@ -228,10 +228,9 @@ fun SubmitIntroDialog(
|
|||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
if (isSubmitting) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = MaterialTheme.colorScheme.onPrimary,
|
||||
modifier = Modifier.size(24.dp),
|
||||
strokeWidth = 2.dp
|
||||
)
|
||||
} else {
|
||||
Row(
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import androidx.compose.foundation.lazy.LazyListScope
|
|||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
|
|
@ -319,10 +319,9 @@ private fun CatalogLoadingFooter(modifier: Modifier = Modifier) {
|
|||
.padding(vertical = 8.dp),
|
||||
contentAlignment = Alignment.Center,
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(22.dp),
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
strokeWidth = 2.dp,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import androidx.compose.material.icons.rounded.Visibility
|
|||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.Checkbox
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
|
|
@ -1585,7 +1585,7 @@ private fun DebridDeviceAuthDialog(
|
|||
horizontalArrangement = Arrangement.spacedBy(12.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
CircularProgressIndicator(strokeWidth = 2.dp, modifier = Modifier.size(18.dp))
|
||||
NuvioLoadingIndicator(modifier = Modifier.size(18.dp))
|
||||
Text(
|
||||
text = startingMessage,
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
|
|
@ -1633,7 +1633,7 @@ private fun DebridDeviceAuthDialog(
|
|||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
if (isPolling) {
|
||||
CircularProgressIndicator(strokeWidth = 2.dp, modifier = Modifier.size(16.dp))
|
||||
NuvioLoadingIndicator(modifier = Modifier.size(16.dp))
|
||||
}
|
||||
Text(
|
||||
text = message,
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import androidx.compose.foundation.text.KeyboardOptions
|
|||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.rounded.Check
|
||||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
|
|
@ -3302,9 +3302,8 @@ private fun IntroDbApiKeyDialog(
|
|||
enabled = !isVerifying
|
||||
) {
|
||||
if (isVerifying) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(16.dp),
|
||||
strokeWidth = 2.dp,
|
||||
color = MaterialTheme.colorScheme.primary
|
||||
)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import androidx.compose.material.icons.rounded.Delete
|
|||
import androidx.compose.material.icons.rounded.Visibility
|
||||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
|
|
@ -306,8 +306,7 @@ private fun BadgeUrlManagerDialog(
|
|||
},
|
||||
) {
|
||||
if (isImporting) {
|
||||
CircularProgressIndicator(
|
||||
strokeWidth = tokens.borders.medium,
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(tokens.icons.sm),
|
||||
color = tokens.colors.onAccent,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ import androidx.compose.material.icons.rounded.Favorite
|
|||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.LinearProgressIndicator
|
||||
|
|
@ -858,7 +858,7 @@ private fun LoadingState(
|
|||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.spacedBy(12.dp),
|
||||
) {
|
||||
CircularProgressIndicator(strokeWidth = 2.dp)
|
||||
NuvioLoadingIndicator()
|
||||
Text(
|
||||
text = label,
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import androidx.compose.material.icons.rounded.Check
|
|||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
|
|
@ -704,9 +704,8 @@ private fun TraktConnectionCard(
|
|||
),
|
||||
) {
|
||||
if (uiState.isLoading) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = MaterialTheme.colorScheme.onSurface,
|
||||
strokeWidth = 2.dp,
|
||||
modifier = Modifier.size(18.dp),
|
||||
)
|
||||
} else {
|
||||
|
|
@ -774,9 +773,8 @@ private fun TraktConnectionCard(
|
|||
enabled = uiState.credentialsConfigured && !uiState.isLoading,
|
||||
) {
|
||||
if (uiState.isLoading) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = MaterialTheme.colorScheme.onPrimary,
|
||||
strokeWidth = 2.dp,
|
||||
modifier = Modifier.size(18.dp),
|
||||
)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ import androidx.compose.material.icons.rounded.ContentCopy
|
|||
import androidx.compose.material.icons.rounded.Download
|
||||
import androidx.compose.material.icons.rounded.Refresh
|
||||
import androidx.compose.material.icons.rounded.SearchOff
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
|
|
@ -336,10 +336,9 @@ fun StreamsScreen(
|
|||
modifier = Modifier.padding(horizontal = 24.dp),
|
||||
)
|
||||
}
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(32.dp),
|
||||
color = Color.White,
|
||||
strokeWidth = 2.5.dp,
|
||||
)
|
||||
Text(
|
||||
text = uiState.overlayMessage
|
||||
|
|
@ -1048,9 +1047,8 @@ private fun StreamSectionHeader(
|
|||
)
|
||||
AnimatedVisibility(visible = isLoading, enter = fadeIn(), exit = fadeOut()) {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(12.dp),
|
||||
strokeWidth = 1.5.dp,
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
)
|
||||
Spacer(modifier = Modifier.width(6.dp))
|
||||
|
|
@ -1214,7 +1212,7 @@ private fun LoadingStateBlock(modifier: Modifier = Modifier) {
|
|||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.spacedBy(12.dp),
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
modifier = Modifier.size(32.dp),
|
||||
)
|
||||
|
|
@ -1299,9 +1297,8 @@ private fun FooterLoadingBlock(modifier: Modifier = Modifier) {
|
|||
horizontalArrangement = Arrangement.Center,
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(14.dp),
|
||||
strokeWidth = 2.dp,
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
)
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape
|
|||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import com.nuvio.app.core.ui.NuvioLoadingIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.LinearProgressIndicator
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
|
|
@ -488,9 +488,8 @@ fun AppUpdaterHost(
|
|||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
if (state.isChecking) {
|
||||
CircularProgressIndicator(
|
||||
NuvioLoadingIndicator(
|
||||
modifier = Modifier.size(18.dp),
|
||||
strokeWidth = 2.dp,
|
||||
)
|
||||
Spacer(modifier = Modifier.width(10.dp))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ androidx-work = "2.10.3"
|
|||
androidx-testExt = "1.3.0"
|
||||
composeMultiplatform = "1.11.1"
|
||||
coil = "3.5.0-beta01"
|
||||
compottie = "2.1.0"
|
||||
kermit = "2.0.5"
|
||||
junit = "4.13.2"
|
||||
kotlin = "2.3.0"
|
||||
|
|
@ -54,6 +55,7 @@ compose-material3 = { module = "org.jetbrains.compose.material3:material3", vers
|
|||
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "composeMultiplatform" }
|
||||
compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "composeMultiplatform" }
|
||||
compose-uiToolingPreview = { module = "org.jetbrains.compose.ui:ui-tooling-preview", version.ref = "composeMultiplatform" }
|
||||
compottie = { module = "io.github.alexzhirkevich:compottie", version.ref = "compottie" }
|
||||
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" }
|
||||
coil-gif = { module = "io.coil-kt.coil3:coil-gif", version.ref = "coil" }
|
||||
coil-network-ktor3 = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coil" }
|
||||
|
|
|
|||
Loading…
Reference in a new issue