Orange progress indicator bar (#803)

* Create ProgressBar composable with secondary default color

* Minor change

* Add import

---------

Co-authored-by: Ricki Hirner <hirner@bitfire.at>
This commit is contained in:
Sunik Kupfer 2024-05-25 20:21:33 +02:00 committed by GitHub
parent 71c57fc00d
commit c493fbd349
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 71 additions and 32 deletions

View file

@ -35,7 +35,6 @@ import androidx.compose.material3.ExtendedFloatingActionButton
import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.material3.IconToggleButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalDrawerSheet
import androidx.compose.material3.ModalNavigationDrawer
@ -56,7 +55,6 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalInspectionMode
@ -71,6 +69,7 @@ import at.bitfire.davdroid.BuildConfig
import at.bitfire.davdroid.R
import at.bitfire.davdroid.ui.account.AccountProgress
import at.bitfire.davdroid.ui.composable.ActionCard
import at.bitfire.davdroid.ui.composable.ProgressBar
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.isGranted
import com.google.accompanist.permissions.rememberPermissionState
@ -374,15 +373,15 @@ fun AccountList(
val progressAlpha = progress.rememberAlpha()
when (progress) {
AccountProgress.Active ->
LinearProgressIndicator(
ProgressBar(
modifier = Modifier
.alpha(progressAlpha)
.fillMaxWidth()
)
AccountProgress.Pending,
AccountProgress.Idle ->
LinearProgressIndicator(
progress = 1f,
ProgressBar(
progress = { 1f },
modifier = Modifier
.alpha(progressAlpha)
.fillMaxWidth()

View file

@ -18,7 +18,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Scaffold
@ -42,6 +41,7 @@ import at.bitfire.dav4jvm.exception.DavException
import at.bitfire.dav4jvm.exception.HttpException
import at.bitfire.davdroid.R
import at.bitfire.davdroid.ui.composable.CardWithImage
import at.bitfire.davdroid.ui.composable.ProgressBar
import java.io.File
import java.io.IOError
import java.io.IOException
@ -185,7 +185,7 @@ fun DebugInfoScreen(
.verticalScroll(rememberScrollState())
) {
if (!showDebugInfo || zipProgress)
LinearProgressIndicator()
ProgressBar()
if (showModelCause) {
CardWithImage(

View file

@ -29,7 +29,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ExtendedFloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.LocalMinimumInteractiveComponentEnforcement
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
@ -41,7 +40,6 @@ import androidx.compose.material3.SnackbarResult
import androidx.compose.material3.Tab
import androidx.compose.material3.TabRow
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.pulltorefresh.PullToRefreshContainer
import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState
@ -78,6 +76,7 @@ import at.bitfire.davdroid.ui.account.AccountScreenModel
import at.bitfire.davdroid.ui.account.CollectionsList
import at.bitfire.davdroid.ui.account.RenameAccountDialog
import at.bitfire.davdroid.ui.composable.ActionCard
import at.bitfire.davdroid.ui.composable.ProgressBar
import at.bitfire.davdroid.util.TaskUtils
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.rememberMultiplePermissionsState
@ -601,13 +600,13 @@ fun AccountScreen_ServiceTab(
// progress indicator
val progressAlpha = progress.rememberAlpha()
when (progress) {
AccountProgress.Active -> LinearProgressIndicator(
AccountProgress.Active -> ProgressBar(
modifier = Modifier
.alpha(progressAlpha)
.fillMaxWidth()
)
AccountProgress.Pending,
AccountProgress.Idle -> LinearProgressIndicator(
AccountProgress.Idle -> ProgressBar(
progress = { 1f },
modifier = Modifier
.alpha(progressAlpha)

View file

@ -29,14 +29,12 @@ import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.MediumTopAppBar
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Switch
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@ -57,6 +55,7 @@ import at.bitfire.davdroid.R
import at.bitfire.davdroid.repository.DavSyncStatsRepository
import at.bitfire.davdroid.ui.AppTheme
import at.bitfire.davdroid.ui.composable.ExceptionInfoDialog
import at.bitfire.davdroid.ui.composable.ProgressBar
import java.time.Instant
import java.time.ZoneId
import java.time.ZonedDateTime
@ -175,7 +174,7 @@ fun CollectionScreen(
.verticalScroll(rememberScrollState())
) {
if (inProgress)
LinearProgressIndicator(
ProgressBar(
Modifier
.fillMaxWidth()
.padding(bottom = 8.dp))

View file

@ -18,7 +18,6 @@ import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Scaffold
@ -40,6 +39,7 @@ import at.bitfire.davdroid.R
import at.bitfire.davdroid.db.HomeSet
import at.bitfire.davdroid.ui.AppTheme
import at.bitfire.davdroid.ui.composable.ExceptionInfoDialog
import at.bitfire.davdroid.ui.composable.ProgressBar
import okhttp3.HttpUrl.Companion.toHttpUrl
@Composable
@ -117,7 +117,7 @@ fun CreateAddressBookScreen(
.verticalScroll(rememberScrollState())
) {
if (isCreating)
LinearProgressIndicator(
ProgressBar(
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 8.dp)

View file

@ -28,7 +28,6 @@ import androidx.compose.material3.ExposedDropdownMenuBox
import androidx.compose.material3.ExposedDropdownMenuDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Scaffold
@ -58,6 +57,7 @@ import at.bitfire.davdroid.R
import at.bitfire.davdroid.db.HomeSet
import at.bitfire.davdroid.ui.AppTheme
import at.bitfire.davdroid.ui.composable.ExceptionInfoDialog
import at.bitfire.davdroid.ui.composable.ProgressBar
import at.bitfire.davdroid.ui.widget.CalendarColorPickerDialog
import at.bitfire.ical4android.Css3Color
import okhttp3.HttpUrl.Companion.toHttpUrl
@ -161,7 +161,7 @@ fun CreateCalendarScreen(
.verticalScroll(rememberScrollState())
) {
if (isCreating)
LinearProgressIndicator(
ProgressBar(
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 8.dp)

View file

@ -0,0 +1,42 @@
package at.bitfire.davdroid.ui.composable
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ProgressIndicatorDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.StrokeCap
@Composable
fun ProgressBar(
modifier: Modifier = Modifier,
color: Color = MaterialTheme.colorScheme.secondary,
trackColor: Color = ProgressIndicatorDefaults.linearTrackColor,
strokeCap: StrokeCap = ProgressIndicatorDefaults.LinearStrokeCap
) {
LinearProgressIndicator(
modifier = modifier,
color = color,
trackColor = trackColor,
strokeCap = strokeCap
)
}
@Composable
fun ProgressBar(
progress: () -> Float,
modifier: Modifier = Modifier,
color: Color = MaterialTheme.colorScheme.secondary,
trackColor: Color = ProgressIndicatorDefaults.linearTrackColor,
strokeCap: StrokeCap = ProgressIndicatorDefaults.LinearStrokeCap
) {
LinearProgressIndicator(
progress = progress,
modifier = modifier,
color = color,
trackColor = trackColor,
strokeCap = strokeCap
)
}

View file

@ -20,7 +20,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ExposedDropdownMenuBox
import androidx.compose.material3.ExposedDropdownMenuDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.RadioButton
@ -44,6 +43,7 @@ import androidx.compose.ui.window.PopupProperties
import androidx.lifecycle.viewmodel.compose.viewModel
import at.bitfire.davdroid.R
import at.bitfire.davdroid.ui.composable.Assistant
import at.bitfire.davdroid.ui.composable.ProgressBar
import at.bitfire.vcard4android.GroupMethod
@Composable
@ -99,7 +99,7 @@ fun AccountDetailsPageContent(
) {
Column(Modifier.padding(8.dp)) {
if (creatingAccount)
LinearProgressIndicator(
ProgressBar(
Modifier
.fillMaxWidth()
.padding(bottom = 8.dp))

View file

@ -15,7 +15,6 @@ import androidx.compose.material.icons.filled.CloudOff
import androidx.compose.material3.Button
import androidx.compose.material3.Card
import androidx.compose.material3.Icon
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
@ -32,6 +31,7 @@ import at.bitfire.davdroid.Constants.withStatParams
import at.bitfire.davdroid.R
import at.bitfire.davdroid.ui.DebugInfoActivity
import at.bitfire.davdroid.ui.UiUtils.toAnnotatedString
import at.bitfire.davdroid.ui.composable.ProgressBar
import at.bitfire.davdroid.ui.widget.ClickableTextWithLink
@Composable
@ -72,7 +72,7 @@ fun DetectResourcesPageContent(
@Preview
fun DetectResourcesPageContent_InProgress() {
Column(Modifier.fillMaxWidth()) {
LinearProgressIndicator(
ProgressBar(
//color = MaterialTheme.colors.secondary,
modifier = Modifier
.fillMaxWidth()

View file

@ -21,7 +21,6 @@ import androidx.compose.material.icons.filled.Cloud
import androidx.compose.material.icons.filled.Warning
import androidx.compose.material3.Card
import androidx.compose.material3.Icon
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.SnackbarHostState
@ -48,6 +47,7 @@ import at.bitfire.davdroid.Constants.withStatParams
import at.bitfire.davdroid.R
import at.bitfire.davdroid.ui.UiUtils.haveCustomTabs
import at.bitfire.davdroid.ui.composable.Assistant
import at.bitfire.davdroid.ui.composable.ProgressBar
import kotlinx.coroutines.launch
object NextcloudLogin : LoginType {
@ -146,7 +146,7 @@ fun NextcloudLoginScreen(
onNext = onLogin
) {
if (inProgress)
LinearProgressIndicator(
ProgressBar(
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 8.dp)

View file

@ -20,7 +20,6 @@ import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Scaffold
@ -44,6 +43,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel
import at.bitfire.davdroid.R
import at.bitfire.davdroid.ui.AppTheme
import at.bitfire.davdroid.ui.composable.PasswordTextField
import at.bitfire.davdroid.ui.composable.ProgressBar
import at.bitfire.davdroid.ui.composable.SelectClientCertificateCard
@Composable
@ -143,7 +143,7 @@ fun AddWebDavMountScreen(
.verticalScroll(rememberScrollState())
) {
if (isLoading)
LinearProgressIndicator(modifier = Modifier.fillMaxWidth())
ProgressBar(modifier = Modifier.fillMaxWidth())
Column(
modifier = Modifier

View file

@ -34,12 +34,10 @@ import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.pulltorefresh.PullToRefreshContainer
import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState
@ -69,6 +67,7 @@ import at.bitfire.davdroid.db.WebDavMount
import at.bitfire.davdroid.db.WebDavMountWithRootDocument
import at.bitfire.davdroid.ui.AppTheme
import at.bitfire.davdroid.ui.UiUtils.toAnnotatedString
import at.bitfire.davdroid.ui.composable.ProgressBar
import at.bitfire.davdroid.ui.widget.ClickableTextWithLink
import at.bitfire.davdroid.util.DavUtils
import okhttp3.HttpUrl
@ -168,9 +167,10 @@ fun WebdavMountsScreen(
else {
Column {
if (refreshingQuota)
LinearProgressIndicator(Modifier
.fillMaxWidth()
.height(4.dp))
ProgressBar(
modifier = Modifier
.fillMaxWidth()
.height(4.dp))
else
Spacer(Modifier.height(4.dp))
@ -287,7 +287,7 @@ fun WebdavMountsItem(
if (quotaUsed != null && quotaAvailable != null) {
val quotaTotal = quotaUsed + quotaAvailable
val progress = quotaUsed.toFloat() / quotaTotal
LinearProgressIndicator(
ProgressBar(
progress = { progress },
modifier = Modifier
.fillMaxWidth()