clear the build warnings and fail on new ones

A clean build now emits no warnings of its own, and Kotlin
`allWarningsAsErrors` plus lint `warningsAsErrors` stop new ones from
sneaking back in.

- Kotlin: give SearchFilter's @StringRes parameter an explicit @param:
  target; use safe calls for File.parentFile in StringResourcesTest.
- Packaging: keep debug symbols for the prebuilt .so files that have no
  symbol table, which is what the "unable to strip" warning was about.
- Lint: move `modifier` to the first optional parameter across the Compose
  screens, use mutableIntStateOf for int state, read Resources via
  LocalResources, use the KTX Bitmap.get/String.toUri, drop the unused
  ic_action_name and ic_stat_name bitmaps and the dead -v24 qualifier on
  the notification vector, fix the pt-BR "album" accents and the unused
  Vietnamese/Thai plural quantities, and suppress the intentional
  cleartext/user-certificate, backup, exported-service and
  plural-candidate findings. Disable the version-update nags, which the
  dependency-update process owns.

The AboutLibraries plugin still resolves the variant classpaths during
configuration, so AGP keeps warning about that one; upstream in
mikepenz/AboutLibraries#1369.
This commit is contained in:
austinried
2026-10-08 10:27:09 +00:00
parent eef94eff63
commit 05de10c912
38 changed files with 85 additions and 50 deletions
@@ -34,17 +34,17 @@ class StringResourcesTest {
val locale = parse(file)
locale.forEach { (name, resource) ->
val base = default[name]
assertTrue("$name in ${file.parentFile.name} is missing from values/strings.xml", base != null)
assertEquals("$name kind differs in ${file.parentFile.name}", base!!.kind, resource.kind)
assertTrue("$name in ${file.parentFile?.name} is missing from values/strings.xml", base != null)
assertEquals("$name kind differs in ${file.parentFile?.name}", base!!.kind, resource.kind)
if (resource.kind == "plurals") {
assertTrue(
"$name has an invalid quantity in ${file.parentFile.name}",
"$name has an invalid quantity in ${file.parentFile?.name}",
resource.quantities.all { it in validQuantities },
)
assertTrue("$name in ${file.parentFile.name} is missing the required 'other' quantity", "other" in resource.quantities)
assertTrue("$name in ${file.parentFile?.name} is missing the required 'other' quantity", "other" in resource.quantities)
}
assertEquals(
"$name placeholders differ in ${file.parentFile.name}",
"$name placeholders differ in ${file.parentFile?.name}",
placeholders(base.text),
placeholders(resource.text),
)
@@ -275,8 +275,8 @@ class DemoScreenshotTest {
private fun DemoData.MiniPlayerOverlay(
song: Song,
album: Album,
progressInset: Boolean = false,
modifier: Modifier = Modifier,
progressInset: Boolean = false,
) {
MiniPlayer(
state = playbackFor(song, album),