build: Android's built-in Kotlin, the three plugins applying KGP themselves patched in third_party/

AGP 9 compiles Kotlin itself (android.builtInKotlin=true in every app),
and warns that applying the Kotlin Gradle Plugin will soon fail.
flutter_web_auth_2 5.1.0, keyboard_height_plugin 0.3.0 and flutter_tts
4.2.5 still apply it unconditionally, so their pub releases are copied
into third_party/ with only their android/build.gradle changed, and
the root overrides them by path (third_party/README.md says when to
drop each). The servers' images copy third_party/, as pub refuses an
override whose path is missing. third_party/ isn't our own code: left
out of the analysis and the format check.

All four apps' APKs build without the warning. A Kotlin daemon's
session file that slipped into Train's android/ goes, and every app's
android/.gitignore keeps .kotlin/ out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-04 00:15:55 +01:00
commit 438ce20dbf
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

23
third_party/README.md vendored Normal file
View file

@ -0,0 +1,23 @@
# Others' plugins, patched
Android plugins whose latest release still applies the Kotlin Gradle plugin itself,
which Flutter warns will fail builds once Kotlin is built into the Android Gradle
plugin (`android.builtInKotlin=true`, which every Halkyon app sets since 4 Nov 2026).
The root `pubspec.yaml` takes each from here through `dependency_overrides`.
Each folder is the release from pub.dev as it was (its `example/`, `test/` and lint
options left out), under its own licence, but for `android/build.gradle`, changed as
[Flutter's guide for plugin authors](https://docs.flutter.dev/release/breaking-changes/migrate-to-built-in-kotlin/for-plugin-authors)
has it: `apply plugin: 'kotlin-android'`, the Kotlin Gradle plugin's classpath, the
`kotlinOptions` block and the explicit `kotlin-stdlib` dropped, a `kotlin {
compilerOptions { jvmTarget } }` block added with the same JVM target.
| Plugin | Release | Licence | Used by |
|---|---|---|---|
| `flutter_web_auth_2` | 5.1.0 | MIT | `halkyon_oidc_flutter` (signing in with SimpleLogin) |
| `keyboard_height_plugin` | 0.3.0 | BSD-3-Clause | `appflowy_editor` (Learn's notes) |
| `flutter_tts` | 4.2.5 | MIT | Learn's voice mode |
When a plugin's own release has migrated, take it from pub.dev again: drop its
override and its folder here. Before then, a newer release is brought in by copying
it here and making the same change.