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>
29 lines
788 B
Dart
29 lines
788 B
Dart
import 'dart:async';
|
|
import 'package:flutter/services.dart';
|
|
|
|
typedef KeyboardHeightCallback = void Function(double height);
|
|
|
|
class KeyboardHeightPlugin {
|
|
static const EventChannel _keyboardHeightEventChannel =
|
|
EventChannel('keyboardHeightEventChannel');
|
|
|
|
StreamSubscription? _keyboardHeightSubscription;
|
|
|
|
void onKeyboardHeightChanged(KeyboardHeightCallback callback) {
|
|
if (_keyboardHeightSubscription != null) {
|
|
_keyboardHeightSubscription!.cancel();
|
|
}
|
|
_keyboardHeightSubscription =
|
|
_keyboardHeightEventChannel.receiveBroadcastStream().listen(
|
|
(dynamic height) {
|
|
callback(height as double);
|
|
},
|
|
);
|
|
}
|
|
|
|
void dispose() {
|
|
if (_keyboardHeightSubscription != null) {
|
|
_keyboardHeightSubscription!.cancel();
|
|
}
|
|
}
|
|
}
|