diff --git a/app/src/main/kotlin/com/hippo/ehviewer/dao/DownloadsDao.kt b/app/src/main/kotlin/com/hippo/ehviewer/dao/DownloadsDao.kt index 6756caf64..d388b5f79 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/dao/DownloadsDao.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/dao/DownloadsDao.kt @@ -5,6 +5,7 @@ import androidx.room.Delete import androidx.room.Insert import androidx.room.MapColumn import androidx.room.Query +import androidx.room.RoomWarnings import androidx.room.Transaction import androidx.room.Update import androidx.room.Upsert @@ -12,11 +13,12 @@ import kotlinx.coroutines.flow.Flow @Dao interface DownloadsDao { - @Suppress("ktlint:standard:annotation") + // https://issuetracker.google.com/327583152 + @Suppress("ktlint:standard:annotation", RoomWarnings.UNNECESSARY_NULLABILITY_IN_DAO_RETURN_TYPE) @Query("SELECT LABEL, COUNT(*) AS COUNT FROM DOWNLOADS LEFT JOIN DOWNLOAD_LABELS USING(LABEL) GROUP BY LABEL") fun countByLabel(): Flow> - @Suppress("ktlint:standard:annotation") + @Suppress("ktlint:standard:annotation", RoomWarnings.UNNECESSARY_NULLABILITY_IN_DAO_RETURN_TYPE) @Query("SELECT ARTIST, COUNT(*) AS COUNT FROM DOWNLOADS LEFT JOIN DOWNLOAD_ARTISTS USING(GID) GROUP BY ARTIST ORDER BY COUNT DESC, ARTIST") fun countByArtist(): Flow> diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/UrlOpener.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/UrlOpener.kt index 19f392cd5..4b2f4cc7a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/UrlOpener.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/UrlOpener.kt @@ -32,7 +32,7 @@ fun openBrowser(url: String) { if (url.isEmpty()) return try { intent.launchUrl(ctx, url.toUri()) - } catch (e: ActivityNotFoundException) { + } catch (_: ActivityNotFoundException) { Toast.makeText(ctx, R.string.no_browser_installed, Toast.LENGTH_LONG).show() } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt index fc7f93be1..7aefb36b2 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt @@ -156,7 +156,7 @@ fun FabLayout( } } onExpandChanged(false) - } catch (e: CancellationException) { + } catch (_: CancellationException) { launch { state.expand() } } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt index 83b371e57..ffd41499d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt @@ -121,7 +121,7 @@ suspend fun save(page: Page) { try { ctx.contentResolver.delete(imageUri, null, null) } catch (e: Exception) { - e.logcat(e) + logcat("SavePage", e) } snackbar(cannotSave) } else if (isAtLeastQ) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt index 4739576d3..d3c848f14 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt @@ -249,7 +249,7 @@ fun AnimatedVisibilityScope.GalleryDetailScreen(args: GalleryDetailScreenArgs, n ) { Text(text = stringResource(id = R.string.clear_image_cache_confirm)) } - (0..= 1024.0 && exp < units.length - 1) { + exp++ + result /= 1024.0 + } + return if (exp == -1) "$bytes B" else "%.1f %siB".format(result, units[exp]) } fun cleanupDirectory(dir: File?, maxFiles: Int = 10) { diff --git a/build-logic/convention/src/main/kotlin/com/ehviewer/Kotlin.kt b/build-logic/convention/src/main/kotlin/com/ehviewer/Kotlin.kt index 6ecb4f792..307eab499 100644 --- a/build-logic/convention/src/main/kotlin/com/ehviewer/Kotlin.kt +++ b/build-logic/convention/src/main/kotlin/com/ehviewer/Kotlin.kt @@ -6,6 +6,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions // https://kotlinlang.org/docs/gradle-compiler-options.html#all-compiler-options internal fun KotlinCommonCompilerOptions.configureKotlin() { progressiveMode = true + allWarningsAsErrors = true optIn.addAll( "kotlin.ExperimentalStdlibApi", "kotlin.concurrent.atomics.ExperimentalAtomicApi", diff --git a/gradle.properties b/gradle.properties index 225233070..d4cf90662 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,9 +18,14 @@ org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 -XX:+UseParallelGC org.gradle.parallel=true org.gradle.caching=true org.gradle.configuration-cache=true + +# TODO: These will become default in AGP 9.0 android.useAndroidX=true android.enableAppCompileTimeRClass=true -android.r8.integratedResourceShrinking=true +android.defaults.buildfeatures.resvalues=false +android.defaults.buildfeatures.shaders=false +android.r8.optimizedResourceShrinking=true +android.r8.strictFullModeForKeepRules=true # https://github.com/google/ksp/issues/2375 ksp.version.check=false