import 'dart:convert'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:injectable/injectable.dart'; import 'package:keyboard/data/repository/chat_repository.dart'; import 'package:keyboard/data/repository/keyboard_repository.dart'; import 'package:keyboard/utils/atmob_log.dart'; import 'package:keyboard_android/keyboard_android.dart'; import '../../data/bean/stream_deepseek_data.dart' as deepseek_data; import '../../di/get_it.dart'; import '../data/bean/keyboard_info.dart'; @lazySingleton class KeyboardAndroidPlatform { static const MethodChannel _channel = MethodChannel('keyboard_android'); var tag = "KeyboardAndroidPlatform"; final KeyboardRepository keyboardRepository; /// 插件对象 final _keyboardAndroidPlugin = KeyboardAndroid(); RxList get keyboardInfoList => keyboardRepository.keyboardInfoList; KeyboardAndroidPlatform(this.keyboardRepository) { AtmobLog.d(tag, '$tag....init'); init(); } void init() { _channel.setMethodCallHandler((MethodCall call) async { switch (call.method) { case 'getKeyboardList': String? type = call.arguments?['type'] as String?; var keyboardList = await keyboardRepository.getKeyboardList( type: type, ); String json = jsonEncode(keyboardList.toJson()); return json; default: throw MissingPluginException('Not implemented'); } }); } Future sendDynamicTextRequest( String method, String currentContent, ) async { switch (method) { case 'MethodA': AtmobLog.d(tag, 'MethodA'); break; default: AtmobLog.d(tag, 'default'); } } void enableFloatingWindow(bool enable) { debugPrint('enableFloatingWindow $enable'); _keyboardAndroidPlugin.enableFloatingWindow(enable); } void openInputMethodSettings() { debugPrint('openInputMethodSettings'); _keyboardAndroidPlugin.openInputMethodSettings(); } Future isTargetKeyboardEnabled() { var enable = _keyboardAndroidPlugin.isTargetKeyboardEnabled(); debugPrint('isTargetKeyboardEnabled value : $enable'); return enable; } static KeyboardAndroidPlatform getInstance() { return getIt.get(); } }