Maybe fix extensions list crash

Also fix weird animation of last updated text in Updates
This commit is contained in:
arkon 2022-08-31 15:56:08 -04:00
parent dc62d0ea8b
commit 4c1da1bd1d
4 changed files with 24 additions and 23 deletions

View file

@ -164,10 +164,9 @@ fun UpdateScreen(
contentPadding = contentPaddingWithNavBar,
) {
if (presenter.lastUpdated > 0L) {
item(key = "last_updated") {
UpdatesLastUpdatedItem(presenter.lastUpdated)
}
updatesLastUpdatedItem(presenter.lastUpdated)
}
updatesUiItems(
uiModels = presenter.uiModels,
selectionMode = presenter.selectionMode,

View file

@ -49,16 +49,17 @@ import eu.kanade.tachiyomi.ui.recent.updates.UpdatesItem
import java.text.DateFormat
import java.util.Date
@Composable
fun UpdatesLastUpdatedItem(
fun LazyListScope.updatesLastUpdatedItem(
lastUpdated: Long,
) {
item(key = "last_updated") {
val time = remember(lastUpdated) {
DateUtils.getRelativeTimeSpanString(lastUpdated, Date().time, DateUtils.MINUTE_IN_MILLIS)
}
Box(
modifier = Modifier
.animateItemPlacement()
.padding(horizontal = horizontalPadding, vertical = 8.dp),
) {
Text(
@ -69,6 +70,7 @@ fun UpdatesLastUpdatedItem(
)
}
}
}
fun LazyListScope.updatesUiItems(
uiModels: List<UpdatesUiModel>,

View file

@ -202,16 +202,16 @@ sealed interface ExtensionUiModel {
data class Resource(@StringRes val textRes: Int) : Header
data class Text(val text: String) : Header
}
data class Item(
val extension: Extension,
val installStep: InstallStep,
) : ExtensionUiModel {
fun key(): String {
return when (extension) {
is Extension.Installed ->
if (extension.hasUpdate) "update_${extension.pkgName}" else extension.pkgName
else -> extension.pkgName
return when {
extension is Extension.Installed && extension.hasUpdate -> "${extension.pkgName}_update"
else -> "${extension.pkgName}_${installStep.name}"
}
}
}