Răsfoiți Sursa

Maybe fix extensions list crash

Also fix weird animation of last updated text in Updates
arkon 2 ani în urmă
părinte
comite
4c1da1bd1d

+ 1 - 1
app/build.gradle.kts

@@ -288,7 +288,7 @@ tasks {
     }
 
     withType<org.jmailen.gradle.kotlinter.tasks.LintTask>().configureEach {
-        exclude { it.file.path.contains("generated[\\\\/]".toRegex())}
+        exclude { it.file.path.contains("generated[\\\\/]".toRegex()) }
     }
 
     // See https://kotlinlang.org/docs/reference/experimental.html#experimental-status-of-experimental-api(-markers)

+ 2 - 3
app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt

@@ -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,

+ 17 - 15
app/src/main/java/eu/kanade/presentation/updates/UpdatesUiItem.kt

@@ -49,24 +49,26 @@ import eu.kanade.tachiyomi.ui.recent.updates.UpdatesItem
 import java.text.DateFormat
 import java.util.Date
 
-@Composable
-fun UpdatesLastUpdatedItem(
+fun LazyListScope.updatesLastUpdatedItem(
     lastUpdated: Long,
 ) {
-    val time = remember(lastUpdated) {
-        DateUtils.getRelativeTimeSpanString(lastUpdated, Date().time, DateUtils.MINUTE_IN_MILLIS)
-    }
+    item(key = "last_updated") {
+        val time = remember(lastUpdated) {
+            DateUtils.getRelativeTimeSpanString(lastUpdated, Date().time, DateUtils.MINUTE_IN_MILLIS)
+        }
 
-    Box(
-        modifier = Modifier
-            .padding(horizontal = horizontalPadding, vertical = 8.dp),
-    ) {
-        Text(
-            text = stringResource(R.string.updates_last_update_info, time),
-            style = LocalTextStyle.current.copy(
-                fontStyle = FontStyle.Italic,
-            ),
-        )
+        Box(
+            modifier = Modifier
+                .animateItemPlacement()
+                .padding(horizontal = horizontalPadding, vertical = 8.dp),
+        ) {
+            Text(
+                text = stringResource(R.string.updates_last_update_info, time),
+                style = LocalTextStyle.current.copy(
+                    fontStyle = FontStyle.Italic,
+                ),
+            )
+        }
     }
 }
 

+ 4 - 4
app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsPresenter.kt

@@ -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}"
             }
         }
     }