[feat] Task Statistics
This commit is contained in:
@@ -21,6 +21,8 @@ import androidx.compose.material.icons.filled.PlayArrow
|
|||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.Card
|
import androidx.compose.material3.Card
|
||||||
import androidx.compose.material3.CardDefaults
|
import androidx.compose.material3.CardDefaults
|
||||||
|
import androidx.compose.material3.DividerDefaults
|
||||||
|
import androidx.compose.material3.HorizontalDivider
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.LinearProgressIndicator
|
import androidx.compose.material3.LinearProgressIndicator
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -38,6 +40,7 @@ import androidx.compose.ui.unit.sp
|
|||||||
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
|
import androidx.room.util.TableInfo
|
||||||
import coil3.compose.AsyncImage
|
import coil3.compose.AsyncImage
|
||||||
import coil3.request.ImageRequest
|
import coil3.request.ImageRequest
|
||||||
import com.acitelight.aether.Global.updateRelate
|
import com.acitelight.aether.Global.updateRelate
|
||||||
@@ -59,11 +62,37 @@ fun TransmissionScreen(
|
|||||||
transmissionScreenViewModel: TransmissionScreenViewModel = hiltViewModel<TransmissionScreenViewModel>()
|
transmissionScreenViewModel: TransmissionScreenViewModel = hiltViewModel<TransmissionScreenViewModel>()
|
||||||
) {
|
) {
|
||||||
val downloads = transmissionScreenViewModel.downloads
|
val downloads = transmissionScreenViewModel.downloads
|
||||||
|
Column()
|
||||||
|
{
|
||||||
|
Text(
|
||||||
|
text = "Video Tasks",
|
||||||
|
style = MaterialTheme.typography.headlineMedium,
|
||||||
|
modifier = Modifier.padding(8.dp).align(Alignment.Start)
|
||||||
|
)
|
||||||
|
|
||||||
|
Text(
|
||||||
|
text = "All: ${downloads.count { it.type == "main" }}",
|
||||||
|
modifier = Modifier.padding(horizontal = 8.dp).align(Alignment.Start),
|
||||||
|
fontSize = 12.sp,
|
||||||
|
lineHeight = 13.sp,
|
||||||
|
maxLines = 1
|
||||||
|
)
|
||||||
|
|
||||||
|
Text(
|
||||||
|
text = "Completed: ${downloads.count { it.type == "main" && it.status == Status.COMPLETED }}",
|
||||||
|
modifier = Modifier.padding(horizontal = 8.dp).align(Alignment.Start),
|
||||||
|
fontSize = 12.sp,
|
||||||
|
lineHeight = 13.sp,
|
||||||
|
maxLines = 1
|
||||||
|
)
|
||||||
|
|
||||||
|
HorizontalDivider(Modifier.padding(8.dp), 2.dp, DividerDefaults.color)
|
||||||
|
|
||||||
LazyColumn(
|
LazyColumn(
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
verticalArrangement = Arrangement.spacedBy(8.dp)
|
verticalArrangement = Arrangement.spacedBy(8.dp)
|
||||||
) {
|
)
|
||||||
|
{
|
||||||
items(downloads.filter { it.type == "main" }, key = { it.id }) { item ->
|
items(downloads.filter { it.type == "main" }, key = { it.id }) { item ->
|
||||||
VideoDownloadCard(
|
VideoDownloadCard(
|
||||||
navigator = navigator,
|
navigator = navigator,
|
||||||
@@ -96,6 +125,7 @@ fun TransmissionScreen(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user