android_shortcut.dart 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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:flutter/widgets.dart';
  5. import 'package:get/get.dart';
  6. import 'package:shortcut/shortcut.dart';
  7. class AndroidShortCut {
  8. AndroidShortCut._();
  9. final _flutterPinnedShortcutPlugin = FlutterShortcut();
  10. FlutterShortcut get flutterPinnedShortcutPlugin =>
  11. _flutterPinnedShortcutPlugin;
  12. void addRecordShortcut() {
  13. _flutterPinnedShortcutPlugin.createShortcut(
  14. id: "electronic_1",
  15. label: StringName.desktopShortcutRecordName.tr,
  16. action: LaunchAction.recordAudioAction,
  17. iconAssetName: Assets.images.logoRecordShortcut.path);
  18. }
  19. void register() {
  20. _flutterPinnedShortcutPlugin.actionStream().listen((action) {
  21. debugPrint('actionStream: $action');
  22. switch (action) {
  23. case LaunchAction.recordAudioAction:
  24. DesktopShortcutUtils.setRouteAction(LaunchAction.recordAudioAction);
  25. break;
  26. }
  27. });
  28. _flutterPinnedShortcutPlugin.getLaunchAction((action) {
  29. debugPrint('getLaunchAction: $action');
  30. switch (action) {
  31. case LaunchAction.recordAudioAction:
  32. DesktopShortcutUtils.setLaunchAction(LaunchAction.recordAudioAction);
  33. break;
  34. }
  35. });
  36. }
  37. }
  38. final androidShortCut = AndroidShortCut._();