keyboard_tutorial_controller.dart 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import 'package:get/get.dart';
  2. import 'package:injectable/injectable.dart';
  3. import 'package:keyboard/base/base_controller.dart';
  4. import 'package:keyboard/module/keyboard_guide/keyboard_guide_page.dart';
  5. import '../../plugins/keyboard_android_platform.dart';
  6. /// 键盘使用教程-引导页Controller
  7. @injectable
  8. class KeyboardTutorialController extends BaseController {
  9. /// 键盘是否启用
  10. Rx<bool> isKeyboardEnable = false.obs;
  11. /// 悬浮球是否启用
  12. Rx<bool> isFloatingWindowEnable = false.obs;
  13. /// 是否步骤都允许了
  14. bool get isStepComplete =>
  15. isKeyboardEnable.value && isFloatingWindowEnable.value;
  16. @override
  17. void onInit() {
  18. super.onInit();
  19. checkSetting();
  20. }
  21. /// 检查设置
  22. void checkSetting() {
  23. // 检查键盘是否启用
  24. KeyboardAndroidPlatform.isTargetKeyboardEnabled().then((enable) {
  25. isKeyboardEnable.value = enable;
  26. });
  27. // 检查是否有悬浮窗权限
  28. KeyboardAndroidPlatform.hasFloatingWindowPermission().then((hasPermission) {
  29. isFloatingWindowEnable.value = hasPermission;
  30. // 有权限,则启动悬浮窗
  31. if (hasPermission) {
  32. KeyboardAndroidPlatform.enableFloatingWindow(true);
  33. }
  34. });
  35. }
  36. /// 点击返回
  37. void clickBack() {
  38. Get.back();
  39. }
  40. /// 点击跳过
  41. void clickSkip() {
  42. Get.back();
  43. }
  44. /// 去启用键盘
  45. void goEnableKeyboard() {
  46. KeyboardAndroidPlatform.openInputMethodSettings();
  47. }
  48. /// 去启用悬浮窗
  49. void jumpFloatingWindowSetting() {
  50. KeyboardAndroidPlatform.jumpFloatingWindowSetting();
  51. }
  52. /// 跳转到键盘引导页
  53. void jump2KeyboardGuide() {
  54. KeyboardGuidePage.startAndOffMe();
  55. }
  56. /// 检查,是否步骤都完成了
  57. bool checkHasComplete() {
  58. // 都完成了,则跳转到键盘引导页
  59. if (isStepComplete) {
  60. jump2KeyboardGuide();
  61. return true;
  62. }
  63. return false;
  64. }
  65. }