|
|
@@ -1,81 +1,66 @@
|
|
|
-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/characters_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';
|
|
|
+import 'keyboard_android_service.dart';
|
|
|
+import 'keyboard_method_handler.dart';
|
|
|
|
|
|
@lazySingleton
|
|
|
class KeyboardAndroidPlatform {
|
|
|
- static const MethodChannel _channel = MethodChannel('keyboard_android');
|
|
|
- var tag = "KeyboardAndroidPlatform";
|
|
|
+ static const _channel = MethodChannel('keyboard_android');
|
|
|
+ final _tag = 'KeyboardAndroidPlatform';
|
|
|
|
|
|
final KeyboardRepository keyboardRepository;
|
|
|
+ final CharactersRepository charactersRepository;
|
|
|
+ final KeyboardAndroidService _keyboardAndroidService;
|
|
|
+ final KeyboardMethodHandler _methodHandler;
|
|
|
|
|
|
- /// 插件对象
|
|
|
- final _keyboardAndroidPlugin = KeyboardAndroid();
|
|
|
-
|
|
|
- RxList<KeyboardInfo> get keyboardInfoList =>
|
|
|
- keyboardRepository.keyboardInfoList;
|
|
|
-
|
|
|
- KeyboardAndroidPlatform(this.keyboardRepository) {
|
|
|
- AtmobLog.d(tag, '$tag....init');
|
|
|
- init();
|
|
|
+ KeyboardAndroidPlatform(this.keyboardRepository, this.charactersRepository)
|
|
|
+ : _keyboardAndroidService = KeyboardAndroidService(),
|
|
|
+ _methodHandler = KeyboardMethodHandler(
|
|
|
+ keyboardRepository,
|
|
|
+ charactersRepository,
|
|
|
+ ) {
|
|
|
+ AtmobLog.d(_tag, '初始化 KeyboardAndroidPlatform');
|
|
|
+ _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');
|
|
|
- }
|
|
|
- });
|
|
|
+ void _init() {
|
|
|
+ _channel.setMethodCallHandler(_methodHandler.handleMethodCall);
|
|
|
}
|
|
|
|
|
|
Future<void> sendDynamicTextRequest(
|
|
|
String method,
|
|
|
String currentContent,
|
|
|
) async {
|
|
|
+ AtmobLog.d(_tag, 'sendDynamicTextRequest: $method');
|
|
|
switch (method) {
|
|
|
case 'MethodA':
|
|
|
- AtmobLog.d(tag, 'MethodA');
|
|
|
-
|
|
|
+ AtmobLog.d(_tag, '处理 MethodA');
|
|
|
break;
|
|
|
default:
|
|
|
- AtmobLog.d(tag, 'default');
|
|
|
+ AtmobLog.d(_tag, '默认处理');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void enableFloatingWindow(bool enable) {
|
|
|
debugPrint('enableFloatingWindow $enable');
|
|
|
- _keyboardAndroidPlugin.enableFloatingWindow(enable);
|
|
|
+ _keyboardAndroidService.enableFloatingWindow(enable);
|
|
|
}
|
|
|
|
|
|
void openInputMethodSettings() {
|
|
|
debugPrint('openInputMethodSettings');
|
|
|
- _keyboardAndroidPlugin.openInputMethodSettings();
|
|
|
+ _keyboardAndroidService.openInputMethodSettings();
|
|
|
}
|
|
|
|
|
|
Future<bool> isTargetKeyboardEnabled() {
|
|
|
- var enable = _keyboardAndroidPlugin.isTargetKeyboardEnabled();
|
|
|
- debugPrint('isTargetKeyboardEnabled value : $enable');
|
|
|
- return enable;
|
|
|
+ final result = _keyboardAndroidService.isTargetKeyboardEnabled();
|
|
|
+ debugPrint('isTargetKeyboardEnabled value: $result');
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
static KeyboardAndroidPlatform getInstance() {
|