android_shortcut.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import 'package:electronic_assistant/resource/assets.gen.dart';
  2. import 'package:electronic_assistant/resource/string.gen.dart';
  3. import 'package:electronic_assistant/utils/desktop_shortcut_utils.dart';
  4. import 'package:electronic_assistant/utils/toast_util.dart';
  5. import 'package:flutter/widgets.dart';
  6. import 'package:get/get.dart';
  7. import 'package:shortcut/shortcut.dart';
  8. class AndroidShortCut {
  9. AndroidShortCut._();
  10. final _flutterPinnedShortcutPlugin = FlutterShortcut();
  11. FlutterShortcut get flutterPinnedShortcutPlugin =>
  12. _flutterPinnedShortcutPlugin;
  13. void addRecordShortcut() {
  14. _flutterPinnedShortcutPlugin.createShortcut(
  15. id: "electronic_1",
  16. label: StringName.desktopShortcutRecordName.tr,
  17. action: LaunchAction.recordAudioAction,
  18. iconAssetName: Assets.images.iconFilesFile.path);
  19. }
  20. void register() {
  21. _flutterPinnedShortcutPlugin.actionStream().listen((action) {
  22. debugPrint('actionStream: $action');
  23. switch (action) {
  24. case LaunchAction.recordAudioAction:
  25. DesktopShortcutUtils.setRouteAction(LaunchAction.recordAudioAction);
  26. break;
  27. }
  28. });
  29. _flutterPinnedShortcutPlugin.getLaunchAction((action) {
  30. debugPrint('getLaunchAction: $action');
  31. switch (action) {
  32. case LaunchAction.recordAudioAction:
  33. DesktopShortcutUtils.setLaunchAction(LaunchAction.recordAudioAction);
  34. break;
  35. }
  36. });
  37. }
  38. }
  39. final androidShortCut = AndroidShortCut._();