keyboard_android_platform.dart 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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'];
  31. var keyboardList = await keyboardRepository.getKeyboardList(
  32. type: type,
  33. );
  34. return jsonEncode(keyboardList.toJson());
  35. default:
  36. throw MissingPluginException('Not implemented');
  37. }
  38. });
  39. }
  40. Future<void> sendDynamicTextRequest(
  41. String method,
  42. String currentContent,
  43. ) async {
  44. switch (method) {
  45. case 'MethodA':
  46. AtmobLog.d(tag, 'MethodA');
  47. break;
  48. default:
  49. AtmobLog.d(tag, 'default');
  50. }
  51. }
  52. void enableFloatingWindow(bool enable) {
  53. debugPrint('enableFloatingWindow $enable');
  54. _keyboardAndroidPlugin.enableFloatingWindow(enable);
  55. }
  56. void openInputMethodSettings() {
  57. debugPrint('openInputMethodSettings');
  58. _keyboardAndroidPlugin.openInputMethodSettings();
  59. }
  60. Future<bool> isTargetKeyboardEnabled() {
  61. var enable = _keyboardAndroidPlugin.isTargetKeyboardEnabled();
  62. debugPrint('isTargetKeyboardEnabled value : $enable');
  63. return enable;
  64. }
  65. static KeyboardAndroidPlatform getInstance() {
  66. return getIt.get<KeyboardAndroidPlatform>();
  67. }
  68. }