Update library versions with required code migrations#427
Conversation
…tp 5.3.2, Kotlin 2.3.20, and many more - Update all library versions in gradle/libs.versions.toml - Upgrade Gradle wrapper to 9.4.1 (required by Metro 0.12.0+) - Reorder plugins in app/build.gradle.kts so kotlin-android applies before metro - Update compileSdk from 35 to 36 (required by activity 1.13.0 and core-ktx 1.18.0) - Add material-icons-extended dependency (no longer transitively available) - Fix ActivityKey.kt to add AnnotationTarget.FUNCTION (required by Metro 0.12.0+) - Remove @ContributesIntoSet + @nAmed from 6 notifier classes (unused named multibindings warned by Metro 0.11.2+) - Auto-format code with formatKotlin to fix stricter Kotlinter 5.4.2 rules Agent-Logs-Url: https://github.com/hossain-khan/android-remote-notify/sessions/6ba9881b-0063-451e-88b1-dee5ccd26e06 Co-authored-by: hossain-khan <99822+hossain-khan@users.noreply.github.com>
Code Coverage Report |
```
FAILURE: Build failed with an exception.
[Incubating] Problems report is available at: file:///home/runner/work/android-remote-notify/android-remote-notify/build/reports/problems/problems-report.html
* What went wrong:
A problem occurred configuring root project 'Remote Notify'.
> Could not resolve all artifacts for configuration 'classpath'.
> Could not resolve dev.zacsweers.metro:gradle-plugin:0.13.1.
Required by:
buildscript of root project 'Remote Notify' > dev.zacsweers.metro:dev.zacsweers.metro.gradle.plugin:0.13.1
> Dependency requires at least JVM runtime version 21. This build uses a Java 17 JVM.
```
📊 APK Size AnalysisComparing APKMANIFESTDEX |
| import java.util.Locale | ||
|
|
||
| @ContributesIntoSet(AppScope::class) | ||
| @Named("discord") |
There was a problem hiding this comment.
Reverted in 85f4411 — @ContributesIntoSet(AppScope::class) and @Named("discord") are restored.
| * - https://documentation.mailgun.com/en/latest/api-sending.html#sending | ||
| */ | ||
| @ContributesIntoSet(AppScope::class) | ||
| @Named("email") |
There was a problem hiding this comment.
Reverted in 85f4411 — @ContributesIntoSet(AppScope::class) and @Named("email") are restored.
| import timber.log.Timber | ||
|
|
||
| @ContributesIntoSet(AppScope::class) | ||
| @Named("slack") |
There was a problem hiding this comment.
Reverted in 85f4411 — @ContributesIntoSet(AppScope::class) and @Named("slack") are restored.
| import timber.log.Timber | ||
|
|
||
| @ContributesIntoSet(AppScope::class) | ||
| @Named("telegram") // Could not use `NotifierType.TELEGRAM.name` as it's not a constant. |
There was a problem hiding this comment.
Reverted in 85f4411 — @ContributesIntoSet(AppScope::class) and @Named("telegram") are restored.
| import timber.log.Timber | ||
|
|
||
| @ContributesIntoSet(AppScope::class) | ||
| @Named("twilio") |
There was a problem hiding this comment.
Reverted in 85f4411 — @ContributesIntoSet(AppScope::class) and @Named("twilio") are restored.
| import timber.log.Timber | ||
|
|
||
| @ContributesIntoSet(AppScope::class) | ||
| @Named("webhook") |
There was a problem hiding this comment.
Reverted in 85f4411 — @ContributesIntoSet(AppScope::class) and @Named("webhook") are restored.
…r classes Agent-Logs-Url: https://github.com/hossain-khan/android-remote-notify/sessions/f029019c-3b66-4c7b-8c22-b39c0e2b942b Co-authored-by: hossain-khan <99822+hossain-khan@users.noreply.github.com>
The @nAmed annotations were contributing each sender to separate named sets (e.g. @nAmed("email") Set<NotificationSender>) that nothing in the graph consumed, triggering Metro's SuspiciousUnusedMultibinding warning. Senders are already bound to the plain Set<NotificationSender> via NotificationSenderMultibindings, and are identified at runtime by their notifierType property, so the qualifiers were redundant.
Bumps all library versions to their latest targets as specified, with required code migrations for Metro 0.13.1, Compose BOM 2026.03.01, and Kotlinter 5.4.2.
Version Updates (
gradle/libs.versions.toml)Required Migrations
Gradle wrapper → 9.4.1 — Metro 0.12.0+ requires Gradle 9+ and JVM 21+
app/build.gradle.ktskotlin-androidmust be applied beforemetro(Metro 0.13.x requires the Kotlin extension to exist at plugin-apply time)compileSdk35 → 36 — required byactivity:1.13.0andcore-ktx:1.18.0material-icons-extendeddependency — no longer transitively available in the new Compose BOMActivityKey.kt— Metro 0.12.0+ requires all@MapKeyannotations to declareAnnotationTarget.FUNCTION:Code formatting — Applied
formatKotlinfor two new Kotlinter 5.4.2 rules:blank-line-between-when-conditionsandwhen-entry-bracing.