android: keyboard height tracking via JNI/FFI bridge

- C bridge (keyboard_bridge.c) stores keyboard state in globals.
  Kotlin writes via JNI, Dart reads via FFI — zero async delay,
  same architecture as iOS.
- WindowInsetsAnimation.Callback tracks open/close per-frame.
- OnGlobalLayoutListener catches silent height changes (emoji
  keyboard resize, floating keyboard toggle).
- Dart animation replay stays iOS-only; Android reads native
  per-frame values directly.
- Cleaned up old Java stub, updated build.gradle for Kotlin + CMake
  with 16KB page alignment (Android 15+).
- Example app rewritten to demonstrate UxKeyboard usage.
This commit is contained in:
agra
2026-04-15 23:49:16 +03:00
parent a1ab667178
commit 0be198e388
13 changed files with 336 additions and 151 deletions

View File

@@ -3,15 +3,4 @@ library ux;
export 'src/bend_box.dart';
export 'src/json_extension.dart';
export 'src/bezier.dart';
import 'dart:async';
import 'package:flutter/services.dart';
class UX {
static const MethodChannel _channel = const MethodChannel('ux');
static Future<String> get platformVersion async {
final String version = await _channel.invokeMethod('getPlatformVersion');
return version;
}
}
export 'src/keyboard.dart';