|
|
@@ -2,13 +2,16 @@ import 'package:flutter/cupertino.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
import 'package:injectable/injectable.dart';
|
|
|
import 'package:keyboard/module/keyboard_guide/enums/keyboard_guide_msg_type.dart';
|
|
|
+import 'package:keyboard/module/keyboard_tutorial/keyboard_tutorial_page.dart';
|
|
|
import 'package:keyboard/resource/string.gen.dart';
|
|
|
|
|
|
import '../../base/base_controller.dart';
|
|
|
import '../../data/bean/keyboard_guide_msg.dart';
|
|
|
import '../../plugins/default_keyboard_change_listener.dart';
|
|
|
import '../../plugins/keyboard_android_platform.dart';
|
|
|
+import '../../utils/floating_window_util.dart';
|
|
|
import '../../utils/keyboard_guide_record_util.dart';
|
|
|
+import '../../utils/keyboard_tutorial_util.dart';
|
|
|
import '../../utils/toast_util.dart';
|
|
|
import 'guide_overlay/keyboard_guide_overlay_dialog.dart';
|
|
|
|
|
|
@@ -42,9 +45,14 @@ class KeyboardGuidePageController extends BaseController {
|
|
|
inputFocusNode.addListener(_handleTextFieldFocusChange);
|
|
|
// 初始化消息列表
|
|
|
_initMsgList();
|
|
|
+ // 监听默认键盘切换事件
|
|
|
+ DefaultKeyboardMonitor.registerDefaultKeyboardChangeEvent(
|
|
|
+ _handleDefaultKeyboardChange,
|
|
|
+ );
|
|
|
+ checkSetting();
|
|
|
+
|
|
|
// 进入页面,就获取输入框焦点
|
|
|
// inputFocusNode.requestFocus();
|
|
|
- _registerDefaultKeyboardChangeEvent();
|
|
|
}
|
|
|
|
|
|
@override
|
|
|
@@ -54,29 +62,31 @@ class KeyboardGuidePageController extends BaseController {
|
|
|
inputFocusNode.dispose();
|
|
|
editingController.dispose();
|
|
|
scrollController.dispose();
|
|
|
- _unRegisterDefaultKeyboardChangeEvent();
|
|
|
- super.onClose();
|
|
|
- }
|
|
|
-
|
|
|
- /// 监听默认键盘切换事件
|
|
|
- void _registerDefaultKeyboardChangeEvent() {
|
|
|
- DefaultKeyboardMonitor.registerDefaultKeyboardChangeEvent(
|
|
|
- handleDefaultKeyboardChange,
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- /// 取消监听默认键盘切换事件
|
|
|
- void _unRegisterDefaultKeyboardChangeEvent() {
|
|
|
+ // 取消监听默认键盘切换事件
|
|
|
DefaultKeyboardMonitor.unRegisterDefaultKeyboardChangeEvent(
|
|
|
- handleDefaultKeyboardChange,
|
|
|
+ _handleDefaultKeyboardChange,
|
|
|
);
|
|
|
+ super.onClose();
|
|
|
}
|
|
|
|
|
|
/// 处理默认键盘切换
|
|
|
- void handleDefaultKeyboardChange(bool isDefaultKeyboard) {
|
|
|
+ void _handleDefaultKeyboardChange(bool isDefaultKeyboard) {
|
|
|
isChooseDefaultKeyboard.value = isDefaultKeyboard;
|
|
|
}
|
|
|
|
|
|
+ /// 马上检查设置
|
|
|
+ void checkSetting() async {
|
|
|
+ KeyboardAndroidPlatform.isDefaultKeyboard().then((isDefaultKeyboard) {
|
|
|
+ _handleDefaultKeyboardChange(isDefaultKeyboard);
|
|
|
+ });
|
|
|
+ // 没有完成键盘教程,却跳到了键盘引导页,说明是用户手动去设置修改了权限,则关闭该页面,跳回键盘教程页
|
|
|
+ if (!await KeyboardTutorialUtil.isTutorialComplete()) {
|
|
|
+ KeyboardTutorialPage.startAndOffMe();
|
|
|
+ }
|
|
|
+ // 有权限,则马上显示悬浮窗
|
|
|
+ FloatingWindowUtil.showFloatingBall();
|
|
|
+ }
|
|
|
+
|
|
|
/// 关闭页面
|
|
|
clickBack() {
|
|
|
Get.back();
|