keyboard_android_platform.dart 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import 'dart:convert';
  2. import 'package:flutter/services.dart';
  3. import 'package:flutter/widgets.dart';
  4. import 'package:get/get_rx/src/rx_types/rx_types.dart';
  5. import 'package:injectable/injectable.dart';
  6. import 'package:keyboard/data/repository/chat_repository.dart';
  7. import 'package:keyboard/data/repository/keyboard_repository.dart';
  8. import 'package:keyboard/utils/atmob_log.dart';
  9. import 'package:keyboard_android/keyboard_android.dart';
  10. import '../../data/bean/stream_deepseek_data.dart' as deepseek_data;
  11. import '../../di/get_it.dart';
  12. import '../data/bean/keyboard_info.dart';
  13. @lazySingleton
  14. class KeyboardAndroidPlatform {
  15. static const MethodChannel _channel = MethodChannel('keyboard_android');
  16. var tag = "KeyboardAndroidPlatform";
  17. final KeyboardRepository keyboardRepository;
  18. /// 插件对象
  19. final _keyboardAndroidPlugin = KeyboardAndroid();
  20. RxList<KeyboardInfo> get keyboardInfoList =>
  21. keyboardRepository.keyboardInfoList;
  22. KeyboardAndroidPlatform(this.keyboardRepository) {
  23. AtmobLog.d(tag, '$tag....init');
  24. init();
  25. }
  26. void init() {
  27. _channel.setMethodCallHandler((MethodCall call) async {
  28. switch (call.method) {
  29. case 'getKeyboardList':
  30. String? type = call.arguments?['type'] as String?;
  31. var keyboardList = await keyboardRepository.getKeyboardList(
  32. type: type,
  33. );
  34. String json = jsonEncode(keyboardList.toJson());
  35. return json;
  36. default:
  37. throw MissingPluginException('Not implemented');
  38. }
  39. });
  40. }
  41. Future<void> sendDynamicTextRequest(
  42. String method,
  43. String currentContent,
  44. ) async {
  45. switch (method) {
  46. case 'MethodA':
  47. AtmobLog.d(tag, 'MethodA');
  48. break;
  49. default:
  50. AtmobLog.d(tag, 'default');
  51. }
  52. }
  53. void enableFloatingWindow(bool enable) {
  54. debugPrint('enableFloatingWindow $enable');
  55. _keyboardAndroidPlugin.enableFloatingWindow(enable);
  56. }
  57. void openInputMethodSettings() {
  58. debugPrint('openInputMethodSettings');
  59. _keyboardAndroidPlugin.openInputMethodSettings();
  60. }
  61. Future<bool> isTargetKeyboardEnabled() {
  62. var enable = _keyboardAndroidPlugin.isTargetKeyboardEnabled();
  63. debugPrint('isTargetKeyboardEnabled value : $enable');
  64. return enable;
  65. }
  66. static KeyboardAndroidPlatform getInstance() {
  67. return getIt.get<KeyboardAndroidPlatform>();
  68. }
  69. }