refactor: remove hotkey_manager dependency
This commit is contained in:
@@ -359,13 +359,13 @@ jobs:
|
||||
- name: Cache APT packages
|
||||
uses: awalsh128/cache-apt-pkgs-action@latest
|
||||
with:
|
||||
packages: clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev libasound2-dev libmpv-dev mpv keybinder-3.0 ruby ruby-dev rubygems build-essential rpm libarchive-tools imagemagick
|
||||
packages: clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev libasound2-dev libmpv-dev mpv ruby ruby-dev rubygems build-essential rpm libarchive-tools imagemagick
|
||||
version: 1.1
|
||||
|
||||
- name: Install Linux dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev libasound2-dev libmpv-dev mpv keybinder-3.0 ruby ruby-dev rubygems build-essential rpm libarchive-tools imagemagick
|
||||
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev libasound2-dev libmpv-dev mpv ruby ruby-dev rubygems build-essential rpm libarchive-tools imagemagick
|
||||
|
||||
- name: Install fpm
|
||||
run: sudo gem install fpm
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
import 'dart:io' show Platform;
|
||||
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
/// Modifier keys that can be combined with a primary key to form a hotkey.
|
||||
///
|
||||
/// Each value holds the physical keys that correspond to it (e.g. shift maps
|
||||
/// to both shiftLeft and shiftRight). The [name] strings are used for
|
||||
/// serialization and must stay stable across versions.
|
||||
enum HotKeyModifier {
|
||||
alt([PhysicalKeyboardKey.altLeft, PhysicalKeyboardKey.altRight]),
|
||||
capsLock([PhysicalKeyboardKey.capsLock]),
|
||||
control([PhysicalKeyboardKey.controlLeft, PhysicalKeyboardKey.controlRight]),
|
||||
fn([PhysicalKeyboardKey.fn]),
|
||||
meta([PhysicalKeyboardKey.metaLeft, PhysicalKeyboardKey.metaRight]),
|
||||
shift([PhysicalKeyboardKey.shiftLeft, PhysicalKeyboardKey.shiftRight]);
|
||||
|
||||
const HotKeyModifier(this.physicalKeys);
|
||||
|
||||
final List<PhysicalKeyboardKey> physicalKeys;
|
||||
}
|
||||
|
||||
/// A keyboard shortcut consisting of a primary [key] and optional [modifiers].
|
||||
class HotKey {
|
||||
const HotKey({required this.key, this.modifiers});
|
||||
|
||||
final PhysicalKeyboardKey key;
|
||||
final List<HotKeyModifier>? modifiers;
|
||||
}
|
||||
|
||||
/// Whether to use macOS keyboard symbols.
|
||||
final bool _isMacOS = Platform.isMacOS;
|
||||
|
||||
/// Human-readable label for a [PhysicalKeyboardKey].
|
||||
///
|
||||
/// On macOS, returns standard symbols (⌘, ⇧, ⌥, ⌃, ←, etc.).
|
||||
/// Keyed by [PhysicalKeyboardKey.usbHidUsage] (an int) so maps can be const.
|
||||
String physicalKeyLabel(PhysicalKeyboardKey key) {
|
||||
if (_isMacOS) {
|
||||
final macLabel = _macKeyLabels[key.usbHidUsage];
|
||||
if (macLabel != null) return macLabel;
|
||||
}
|
||||
return _knownKeyLabels[key.usbHidUsage] ?? key.debugName ?? 'Unknown';
|
||||
}
|
||||
|
||||
/// macOS-specific overrides for keys that have standard symbols.
|
||||
const _macKeyLabels = <int, String>{
|
||||
0x00070028: '\u21a9', // enter → ↩
|
||||
0x00070029: '\u238b', // escape → ⎋
|
||||
0x0007002a: '\u232b', // backspace → ⌫
|
||||
0x0007002b: '\u21e5', // tab → ⇥
|
||||
0x00070039: '\u21ea', // capsLock → ⇪
|
||||
0x0007004a: '\u2196', // home → ↖
|
||||
0x0007004b: '\u21de', // pageUp → ⇞
|
||||
0x0007004c: '\u2326', // delete → ⌦
|
||||
0x0007004d: '\u2198', // end → ↘
|
||||
0x0007004e: '\u21df', // pageDown → ⇟
|
||||
0x0007004f: '\u2192', // arrowRight → →
|
||||
0x00070050: '\u2190', // arrowLeft → ←
|
||||
0x00070051: '\u2193', // arrowDown → ↓
|
||||
0x00070052: '\u2191', // arrowUp → ↑
|
||||
0x000700e0: '\u2303', // controlLeft → ⌃
|
||||
0x000700e1: '\u21e7', // shiftLeft → ⇧
|
||||
0x000700e2: '\u2325', // altLeft (Option) → ⌥
|
||||
0x000700e3: '\u2318', // metaLeft (Command) → ⌘
|
||||
0x000700e4: '\u2303', // controlRight → ⌃
|
||||
0x000700e5: '\u21e7', // shiftRight → ⇧
|
||||
0x000700e6: '\u2325', // altRight (Option) → ⌥
|
||||
0x000700e7: '\u2318', // metaRight (Command) → ⌘
|
||||
0x00000012: 'fn', // fn
|
||||
};
|
||||
|
||||
const _knownKeyLabels = <int, String>{
|
||||
0x00070004: 'A', // keyA
|
||||
0x00070005: 'B', // keyB
|
||||
0x00070006: 'C', // keyC
|
||||
0x00070007: 'D', // keyD
|
||||
0x00070008: 'E', // keyE
|
||||
0x00070009: 'F', // keyF
|
||||
0x0007000a: 'G', // keyG
|
||||
0x0007000b: 'H', // keyH
|
||||
0x0007000c: 'I', // keyI
|
||||
0x0007000d: 'J', // keyJ
|
||||
0x0007000e: 'K', // keyK
|
||||
0x0007000f: 'L', // keyL
|
||||
0x00070010: 'M', // keyM
|
||||
0x00070011: 'N', // keyN
|
||||
0x00070012: 'O', // keyO
|
||||
0x00070013: 'P', // keyP
|
||||
0x00070014: 'Q', // keyQ
|
||||
0x00070015: 'R', // keyR
|
||||
0x00070016: 'S', // keyS
|
||||
0x00070017: 'T', // keyT
|
||||
0x00070018: 'U', // keyU
|
||||
0x00070019: 'V', // keyV
|
||||
0x0007001a: 'W', // keyW
|
||||
0x0007001b: 'X', // keyX
|
||||
0x0007001c: 'Y', // keyY
|
||||
0x0007001d: 'Z', // keyZ
|
||||
0x0007001e: '1', // digit1
|
||||
0x0007001f: '2', // digit2
|
||||
0x00070020: '3', // digit3
|
||||
0x00070021: '4', // digit4
|
||||
0x00070022: '5', // digit5
|
||||
0x00070023: '6', // digit6
|
||||
0x00070024: '7', // digit7
|
||||
0x00070025: '8', // digit8
|
||||
0x00070026: '9', // digit9
|
||||
0x00070027: '0', // digit0
|
||||
0x00070028: 'Enter', // enter
|
||||
0x00070029: 'Escape', // escape
|
||||
0x0007002a: 'Backspace', // backspace
|
||||
0x0007002b: 'Tab', // tab
|
||||
0x0007002c: 'Space', // space
|
||||
0x0007002d: '=', // equal
|
||||
0x0007002e: '-', // minus
|
||||
0x0007002f: '[', // bracketLeft
|
||||
0x00070030: ']', // bracketRight
|
||||
0x00070031: r'\', // backslash
|
||||
0x00070033: ';', // semicolon
|
||||
0x00070034: "'", // quote
|
||||
0x00070035: '`', // backquote
|
||||
0x00070036: ',', // comma
|
||||
0x00070037: '.', // period
|
||||
0x00070038: '/', // slash
|
||||
0x00070039: 'CapsLock', // capsLock
|
||||
0x0007003a: 'F1',
|
||||
0x0007003b: 'F2',
|
||||
0x0007003c: 'F3',
|
||||
0x0007003d: 'F4',
|
||||
0x0007003e: 'F5',
|
||||
0x0007003f: 'F6',
|
||||
0x00070040: 'F7',
|
||||
0x00070041: 'F8',
|
||||
0x00070042: 'F9',
|
||||
0x00070043: 'F10',
|
||||
0x00070044: 'F11',
|
||||
0x00070045: 'F12',
|
||||
0x0007004a: 'Home', // home
|
||||
0x0007004b: 'Page Up', // pageUp
|
||||
0x0007004c: 'Delete', // delete
|
||||
0x0007004d: 'End', // end
|
||||
0x0007004e: 'Page Down', // pageDown
|
||||
0x0007004f: 'Arrow Right', // arrowRight
|
||||
0x00070050: 'Arrow Left', // arrowLeft
|
||||
0x00070051: 'Arrow Down', // arrowDown
|
||||
0x00070052: 'Arrow Up', // arrowUp
|
||||
0x000700e0: 'Ctrl', // controlLeft
|
||||
0x000700e1: 'Shift', // shiftLeft
|
||||
0x000700e2: 'Alt', // altLeft
|
||||
0x000700e3: 'Meta', // metaLeft
|
||||
0x000700e4: 'Ctrl', // controlRight
|
||||
0x000700e5: 'Shift', // shiftRight
|
||||
0x000700e6: 'Alt', // altRight
|
||||
0x000700e7: 'Meta', // metaRight
|
||||
0x00000012: 'Fn', // fn
|
||||
};
|
||||
@@ -1,7 +1,8 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:plezy/widgets/app_icon.dart';
|
||||
import 'package:material_symbols_icons/symbols.dart';
|
||||
import 'package:hotkey_manager/hotkey_manager.dart';
|
||||
import '../../models/hotkey_model.dart';
|
||||
import '../../widgets/hotkey_recorder.dart';
|
||||
import '../../i18n/strings.g.dart';
|
||||
|
||||
class HotKeyRecorderWidget extends StatefulWidget {
|
||||
|
||||
@@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:plezy/widgets/app_icon.dart';
|
||||
import 'package:material_symbols_icons/symbols.dart';
|
||||
import 'package:hotkey_manager/hotkey_manager.dart';
|
||||
import '../../models/hotkey_model.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:hotkey_manager/hotkey_manager.dart';
|
||||
import '../models/hotkey_model.dart';
|
||||
import '../i18n/strings.g.dart';
|
||||
import '../mpv/mpv.dart';
|
||||
import 'settings_service.dart';
|
||||
@@ -91,64 +91,36 @@ class KeyboardShortcutsService {
|
||||
String formatHotkey(HotKey? hotKey) {
|
||||
if (hotKey == null) return 'No shortcut set';
|
||||
|
||||
final modifiers = <String>[];
|
||||
for (final modifier in hotKey.modifiers ?? []) {
|
||||
switch (modifier) {
|
||||
case HotKeyModifier.alt:
|
||||
modifiers.add('Alt');
|
||||
break;
|
||||
case HotKeyModifier.control:
|
||||
modifiers.add('Ctrl');
|
||||
break;
|
||||
case HotKeyModifier.shift:
|
||||
modifiers.add('Shift');
|
||||
break;
|
||||
case HotKeyModifier.meta:
|
||||
modifiers.add('Meta');
|
||||
break;
|
||||
case HotKeyModifier.capsLock:
|
||||
modifiers.add('CapsLock');
|
||||
break;
|
||||
case HotKeyModifier.fn:
|
||||
modifiers.add('Fn');
|
||||
break;
|
||||
}
|
||||
}
|
||||
final isMac = Platform.isMacOS;
|
||||
|
||||
// Format the key name
|
||||
String keyName = hotKey.key.keyLabel;
|
||||
if (keyName.startsWith('PhysicalKeyboardKey#')) {
|
||||
keyName = keyName.substring(20, keyName.length - 1);
|
||||
}
|
||||
if (keyName.startsWith('key')) {
|
||||
keyName = keyName.substring(3).toUpperCase();
|
||||
}
|
||||
// macOS standard modifier order: ⌃ ⌥ ⇧ ⌘
|
||||
const macModifierLabels = <HotKeyModifier, String>{
|
||||
HotKeyModifier.control: '\u2303',
|
||||
HotKeyModifier.alt: '\u2325',
|
||||
HotKeyModifier.shift: '\u21e7',
|
||||
HotKeyModifier.meta: '\u2318',
|
||||
HotKeyModifier.capsLock: '\u21ea',
|
||||
HotKeyModifier.fn: 'fn',
|
||||
};
|
||||
|
||||
// Special cases for common keys
|
||||
switch (keyName.toLowerCase()) {
|
||||
case 'space':
|
||||
keyName = 'Space';
|
||||
break;
|
||||
case 'arrowup':
|
||||
keyName = 'Arrow Up';
|
||||
break;
|
||||
case 'arrowdown':
|
||||
keyName = 'Arrow Down';
|
||||
break;
|
||||
case 'arrowleft':
|
||||
keyName = 'Arrow Left';
|
||||
break;
|
||||
case 'arrowright':
|
||||
keyName = 'Arrow Right';
|
||||
break;
|
||||
case 'equal':
|
||||
keyName = 'Plus';
|
||||
break;
|
||||
case 'minus':
|
||||
keyName = 'Minus';
|
||||
break;
|
||||
}
|
||||
const defaultModifierLabels = <HotKeyModifier, String>{
|
||||
HotKeyModifier.alt: 'Alt',
|
||||
HotKeyModifier.control: 'Ctrl',
|
||||
HotKeyModifier.shift: 'Shift',
|
||||
HotKeyModifier.meta: 'Meta',
|
||||
HotKeyModifier.capsLock: 'CapsLock',
|
||||
HotKeyModifier.fn: 'Fn',
|
||||
};
|
||||
|
||||
final labels = isMac ? macModifierLabels : defaultModifierLabels;
|
||||
final modifiers = (hotKey.modifiers ?? []).map((m) => labels[m] ?? m.name).toList();
|
||||
|
||||
// The key label already uses macOS symbols via physicalKeyLabel()
|
||||
final keyName = physicalKeyLabel(hotKey.key);
|
||||
|
||||
if (isMac) {
|
||||
return [...modifiers, keyName].join();
|
||||
}
|
||||
return modifiers.isEmpty ? keyName : '${modifiers.join(' + ')} + $keyName';
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'dart:convert';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:hotkey_manager/hotkey_manager.dart';
|
||||
import '../models/hotkey_model.dart';
|
||||
import 'package:plezy/utils/app_logger.dart';
|
||||
import '../i18n/strings.g.dart';
|
||||
import '../models/mpv_config_models.dart';
|
||||
@@ -517,8 +517,7 @@ class SettingsService extends BaseSharedPreferencesService {
|
||||
|
||||
Map<String, dynamic> _serializeHotKey(HotKey hotKey) {
|
||||
// Use USB HID code for reliable serialization across debug/release modes
|
||||
final physicalKey = hotKey.key as PhysicalKeyboardKey;
|
||||
final usbHidCode = physicalKey.usbHidUsage.toRadixString(16).padLeft(8, '0');
|
||||
final usbHidCode = hotKey.key.usbHidUsage.toRadixString(16).padLeft(8, '0');
|
||||
return {'key': usbHidCode, 'modifiers': hotKey.modifiers?.map((m) => m.name).toList() ?? []};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import '../models/hotkey_model.dart';
|
||||
|
||||
/// Captures a key combination from the user and calls [onHotKeyRecorded].
|
||||
class HotKeyRecorder extends StatefulWidget {
|
||||
const HotKeyRecorder({super.key, this.initalHotKey, required this.onHotKeyRecorded});
|
||||
|
||||
final HotKey? initalHotKey;
|
||||
final ValueChanged<HotKey> onHotKeyRecorded;
|
||||
|
||||
@override
|
||||
State<HotKeyRecorder> createState() => _HotKeyRecorderState();
|
||||
}
|
||||
|
||||
class _HotKeyRecorderState extends State<HotKeyRecorder> {
|
||||
HotKey? _hotKey;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_hotKey = widget.initalHotKey;
|
||||
HardwareKeyboard.instance.addHandler(_handleKeyEvent);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
HardwareKeyboard.instance.removeHandler(_handleKeyEvent);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
bool _handleKeyEvent(KeyEvent keyEvent) {
|
||||
if (keyEvent is KeyUpEvent) return false;
|
||||
|
||||
final physicalKeysPressed = HardwareKeyboard.instance.physicalKeysPressed;
|
||||
final PhysicalKeyboardKey key = keyEvent.physicalKey;
|
||||
|
||||
// Detect which modifiers are currently held down, excluding the primary key
|
||||
List<HotKeyModifier> modifiers = HotKeyModifier.values
|
||||
.where((m) => m.physicalKeys.any(physicalKeysPressed.contains))
|
||||
.where((m) => !m.physicalKeys.contains(key))
|
||||
.toList();
|
||||
|
||||
_hotKey = HotKey(key: key, modifiers: modifiers.isNotEmpty ? modifiers : null);
|
||||
widget.onHotKeyRecorded(_hotKey!);
|
||||
setState(() {});
|
||||
return true;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (_hotKey == null) return const SizedBox.shrink();
|
||||
return HotKeyVirtualView(hotKey: _hotKey!);
|
||||
}
|
||||
}
|
||||
|
||||
/// Renders a [HotKey] as a row of styled key label chips.
|
||||
class HotKeyVirtualView extends StatelessWidget {
|
||||
const HotKeyVirtualView({super.key, required this.hotKey});
|
||||
|
||||
final HotKey hotKey;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Wrap(
|
||||
spacing: 8,
|
||||
children: [
|
||||
for (final modifier in hotKey.modifiers ?? [])
|
||||
_VirtualKeyView(keyLabel: physicalKeyLabel(modifier.physicalKeys.first)),
|
||||
_VirtualKeyView(keyLabel: physicalKeyLabel(hotKey.key)),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _VirtualKeyView extends StatelessWidget {
|
||||
const _VirtualKeyView({required this.keyLabel});
|
||||
|
||||
final String keyLabel;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 5, vertical: 3),
|
||||
decoration: BoxDecoration(
|
||||
color: Theme.of(context).canvasColor,
|
||||
border: Border.all(color: Theme.of(context).dividerColor),
|
||||
borderRadius: BorderRadius.circular(3),
|
||||
boxShadow: <BoxShadow>[BoxShadow(color: Colors.black.withOpacity(0.3), offset: const Offset(0.0, 1.0))],
|
||||
),
|
||||
child: Text(keyLabel, style: TextStyle(color: Theme.of(context).textTheme.bodyMedium?.color, fontSize: 12)),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "generated_plugin_registrant.h"
|
||||
|
||||
#include <flutter_webrtc/flutter_web_r_t_c_plugin.h>
|
||||
#include <hotkey_manager_linux/hotkey_manager_linux_plugin.h>
|
||||
#include <os_media_controls/os_media_controls_plugin.h>
|
||||
#include <screen_retriever_linux/screen_retriever_linux_plugin.h>
|
||||
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_plugin.h>
|
||||
@@ -19,9 +18,6 @@ void fl_register_plugins(FlPluginRegistry* registry) {
|
||||
g_autoptr(FlPluginRegistrar) flutter_webrtc_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterWebRTCPlugin");
|
||||
flutter_web_r_t_c_plugin_register_with_registrar(flutter_webrtc_registrar);
|
||||
g_autoptr(FlPluginRegistrar) hotkey_manager_linux_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "HotkeyManagerLinuxPlugin");
|
||||
hotkey_manager_linux_plugin_register_with_registrar(hotkey_manager_linux_registrar);
|
||||
g_autoptr(FlPluginRegistrar) os_media_controls_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "OsMediaControlsPlugin");
|
||||
os_media_controls_plugin_register_with_registrar(os_media_controls_registrar);
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
list(APPEND FLUTTER_PLUGIN_LIST
|
||||
flutter_webrtc
|
||||
hotkey_manager_linux
|
||||
os_media_controls
|
||||
screen_retriever_linux
|
||||
sqlite3_flutter_libs
|
||||
|
||||
@@ -36,7 +36,6 @@ DISTROS = {
|
||||
"libgtk-3-0",
|
||||
"libmpv2 | libmpv1",
|
||||
"libepoxy0",
|
||||
"libkeybinder-3.0-0",
|
||||
"libasound2",
|
||||
"libglib2.0-0",
|
||||
],
|
||||
@@ -51,7 +50,6 @@ DISTROS = {
|
||||
"gtk3",
|
||||
"mpv-libs",
|
||||
"libepoxy",
|
||||
"keybinder3",
|
||||
"alsa-lib",
|
||||
"glib2",
|
||||
],
|
||||
@@ -66,7 +64,6 @@ DISTROS = {
|
||||
"gtk3",
|
||||
"mpv",
|
||||
"libepoxy",
|
||||
"keybinder3",
|
||||
"alsa-lib",
|
||||
"glib2",
|
||||
],
|
||||
|
||||
@@ -9,7 +9,6 @@ import connectivity_plus
|
||||
import device_info_plus
|
||||
import file_picker
|
||||
import flutter_webrtc
|
||||
import hotkey_manager_macos
|
||||
import in_app_review
|
||||
import os_media_controls
|
||||
import package_info_plus
|
||||
@@ -28,7 +27,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||
FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin"))
|
||||
FlutterWebRTCPlugin.register(with: registry.registrar(forPlugin: "FlutterWebRTCPlugin"))
|
||||
HotkeyManagerMacosPlugin.register(with: registry.registrar(forPlugin: "HotkeyManagerMacosPlugin"))
|
||||
InAppReviewPlugin.register(with: registry.registrar(forPlugin: "InAppReviewPlugin"))
|
||||
OsMediaControlsPlugin.register(with: registry.registrar(forPlugin: "OsMediaControlsPlugin"))
|
||||
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
|
||||
|
||||
@@ -9,10 +9,6 @@ PODS:
|
||||
- FlutterMacOS
|
||||
- WebRTC-SDK (= 137.7151.04)
|
||||
- FlutterMacOS (1.0.0)
|
||||
- HotKey (0.2.1)
|
||||
- hotkey_manager_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- HotKey
|
||||
- in_app_review (2.0.0):
|
||||
- FlutterMacOS
|
||||
- os_media_controls (0.0.1):
|
||||
@@ -71,7 +67,6 @@ DEPENDENCIES:
|
||||
- file_picker (from `Flutter/ephemeral/.symlinks/plugins/file_picker/macos`)
|
||||
- flutter_webrtc (from `Flutter/ephemeral/.symlinks/plugins/flutter_webrtc/macos`)
|
||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||
- hotkey_manager_macos (from `Flutter/ephemeral/.symlinks/plugins/hotkey_manager_macos/macos`)
|
||||
- in_app_review (from `Flutter/ephemeral/.symlinks/plugins/in_app_review/macos`)
|
||||
- os_media_controls (from `Flutter/ephemeral/.symlinks/plugins/os_media_controls/macos`)
|
||||
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`)
|
||||
@@ -87,7 +82,6 @@ DEPENDENCIES:
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- HotKey
|
||||
- sqlite3
|
||||
- WebRTC-SDK
|
||||
|
||||
@@ -102,8 +96,6 @@ EXTERNAL SOURCES:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/flutter_webrtc/macos
|
||||
FlutterMacOS:
|
||||
:path: Flutter/ephemeral
|
||||
hotkey_manager_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/hotkey_manager_macos/macos
|
||||
in_app_review:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/in_app_review/macos
|
||||
os_media_controls:
|
||||
@@ -135,8 +127,6 @@ SPEC CHECKSUMS:
|
||||
file_picker: 7584aae6fa07a041af2b36a2655122d42f578c1a
|
||||
flutter_webrtc: 718eae22a371cd94e5d56aa4f301443ebc5bb737
|
||||
FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
|
||||
HotKey: 400beb7caa29054ea8d864c96f5ba7e5b4852277
|
||||
hotkey_manager_macos: a4317849af96d2430fa89944d3c58977ca089fbe
|
||||
in_app_review: 66e7680752b632d83f4f0e88b34d52ed303fbff4
|
||||
os_media_controls: c07c04c4afdf59dda0a3f398457a46823c4ce0ed
|
||||
package_info_plus: f0052d280d17aa382b932f399edf32507174e870
|
||||
|
||||
@@ -517,46 +517,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
hotkey_manager:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: hotkey_manager
|
||||
sha256: "06f0655b76c8dd322fb7101dc615afbdbf39c3d3414df9e059c33892104479cd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.3"
|
||||
hotkey_manager_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: hotkey_manager_linux
|
||||
sha256: "83676bda8210a3377bc6f1977f193bc1dbdd4c46f1bdd02875f44b6eff9a8473"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
hotkey_manager_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: hotkey_manager_macos
|
||||
sha256: "03b5967e64357b9ac05188ea4a5df6fe4ed4205762cb80aaccf8916ee1713c96"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
hotkey_manager_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: hotkey_manager_platform_interface
|
||||
sha256: "98ffca25b8cc9081552902747b2942e3bc37855389a4218c9d50ca316b653b13"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
hotkey_manager_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: hotkey_manager_windows
|
||||
sha256: "0d03ced9fe563ed0b68f0a0e1b22c9ffe26eb8053cb960e401f68a4f070e0117"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
html:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1299,14 +1259,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
uni_platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: uni_platform
|
||||
sha256: e02213a7ee5352212412ca026afd41d269eb00d982faa552f419ffc2debfad84
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.3"
|
||||
universal_gamepad:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
||||
@@ -21,7 +21,6 @@ dependencies:
|
||||
package_info_plus: ^9.0.0
|
||||
device_info_plus: ^11.0.0
|
||||
provider: ^6.1.2
|
||||
hotkey_manager: ^0.2.3
|
||||
flex_color_picker: ^3.6.0
|
||||
qr_flutter: ^4.1.0
|
||||
slang: ^4.12.0
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
#include <connectivity_plus/connectivity_plus_windows_plugin.h>
|
||||
#include <flutter_webrtc/flutter_web_r_t_c_plugin.h>
|
||||
#include <hotkey_manager_windows/hotkey_manager_windows_plugin_c_api.h>
|
||||
#include <os_media_controls/os_media_controls_plugin_c_api.h>
|
||||
#include <screen_retriever_windows/screen_retriever_windows_plugin_c_api.h>
|
||||
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_plugin.h>
|
||||
@@ -21,8 +20,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||
registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
|
||||
FlutterWebRTCPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("FlutterWebRTCPlugin"));
|
||||
HotkeyManagerWindowsPluginCApiRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("HotkeyManagerWindowsPluginCApi"));
|
||||
OsMediaControlsPluginCApiRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("OsMediaControlsPluginCApi"));
|
||||
ScreenRetrieverWindowsPluginCApiRegisterWithRegistrar(
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
list(APPEND FLUTTER_PLUGIN_LIST
|
||||
connectivity_plus
|
||||
flutter_webrtc
|
||||
hotkey_manager_windows
|
||||
os_media_controls
|
||||
screen_retriever_windows
|
||||
sqlite3_flutter_libs
|
||||
|
||||
Reference in New Issue
Block a user