mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-06 08:30:29 +00:00
feat(ui): support running as menubar app (#1216)
This commit is contained in:
1 parent
b0e133b554
commit
cb6331c20d
28 files changed
+214
-40
No files matched your search
@@ -319,7 +319,7 @@ jobs:
|
||||
channel: master
|
||||
- run: |
|
||||
sudo apt update -y
|
||||
sudo apt install -y ninja-build libgtk-3-dev libayatana-appindicator3-1 libayatana-appindicator3-dev rpm patchelf libfuse2 locate imagemagick potrace
|
||||
sudo apt install -y ninja-build libgtk-3-dev libayatana-appindicator3-1 libayatana-appindicator3-dev rpm patchelf libfuse2 locate imagemagick potrace libkeybinder-3.0-dev
|
||||
arch=$(uname -m)
|
||||
wget -O appimagetool "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-${arch}.AppImage"
|
||||
chmod +x appimagetool
|
||||
@@ -476,6 +476,7 @@ jobs:
|
||||
- cmake
|
||||
- curl
|
||||
- libgtk-3-dev
|
||||
- libkeybinder-3.0-dev
|
||||
- ninja-build
|
||||
- unzip
|
||||
- xz-utils
|
||||
@@ -491,6 +492,7 @@ jobs:
|
||||
plugin: nil
|
||||
stage-packages:
|
||||
- libgtk-3-dev
|
||||
- libkeybinder-3.0-dev
|
||||
- libappindicator3-dev
|
||||
override-build: |
|
||||
# work around pub get stack overflow # https://github.com/dart-lang/sdk/issues/51068#issuecomment-1396588253
|
||||
|
||||
@@ -94,7 +94,7 @@ jobs:
|
||||
- if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y ninja-build libgtk-3-dev libayatana-appindicator3-dev
|
||||
sudo apt-get install -y ninja-build libgtk-3-dev libayatana-appindicator3-dev libkeybinder-3.0-dev
|
||||
go build -tags nosqlite -ldflags="-w -s" -buildmode=c-shared -o ui/flutter/linux/bundle/lib/libgopeed.so github.com/GopeedLab/gopeed/bind/desktop
|
||||
cd ui/flutter
|
||||
flutter build linux
|
||||
|
||||
@@ -115,6 +115,9 @@ class AppController extends GetxController with WindowListener, TrayListener {
|
||||
@override
|
||||
void onWindowFocus() {
|
||||
refresh();
|
||||
if (Util.isMacos() && Database.instance.getRunAsMenubarApp()) {
|
||||
windowManager.setSkipTaskbar(true);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -9,9 +9,11 @@ import 'package:gopeed/app/views/copy_button.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:launch_at_startup/launch_at_startup.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
import '../../../../api/api.dart' as api;
|
||||
import '../../../../api/model/downloader_config.dart';
|
||||
import '../../../../database/database.dart';
|
||||
import '../../../../i18n/message.dart';
|
||||
import '../../../../util/input_formatter.dart';
|
||||
import '../../../../util/locale_manager.dart';
|
||||
@@ -369,6 +371,46 @@ class SettingView extends GetView<SettingController> {
|
||||
);
|
||||
});
|
||||
|
||||
// Menubar mode only for macOS
|
||||
final buildMenubarMode = !Util.isMacos()
|
||||
? () => null
|
||||
: _buildConfigItem('runAsMenubarApp', () {
|
||||
return Database.instance.getRunAsMenubarApp() ? 'on'.tr : 'off'.tr;
|
||||
}, (Key key) {
|
||||
return Container(
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Switch(
|
||||
value: Database.instance.getRunAsMenubarApp(),
|
||||
onChanged: (bool value) async {
|
||||
// Save to database (single source of truth)
|
||||
Database.instance.saveRunAsMenubarApp(value);
|
||||
// Apply dock icon visibility
|
||||
await windowManager.setSkipTaskbar(value);
|
||||
// Small delay to let macOS process the activation policy change
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
// Ensure window stays visible after toggle
|
||||
await windowManager.show();
|
||||
await windowManager.focus();
|
||||
// Force UI refresh
|
||||
controller.clearTap();
|
||||
await debounceSave();
|
||||
},
|
||||
),
|
||||
Text(
|
||||
'runAsMenubarAppDesc'.tr,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color: Theme.of(context).hintColor,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
// http config items start
|
||||
final httpConfig = downloaderCfg.value.protocolConfig.http;
|
||||
final buildHttpUa =
|
||||
@@ -1353,6 +1395,7 @@ class SettingView extends GetView<SettingController> {
|
||||
buildDefaultDirectDownload(),
|
||||
buildBrowserExtension(),
|
||||
buildAutoStartup(),
|
||||
buildMenubarMode(),
|
||||
]),
|
||||
)),
|
||||
Text('archives'.tr),
|
||||
|
||||
@@ -10,6 +10,7 @@ const String _windowState = 'windowState';
|
||||
const String _bookmark = 'bookmark';
|
||||
const String _createHistory = 'createHistory';
|
||||
const String _webToken = 'webToken';
|
||||
const String _runAsMenubarApp = 'runAsMenubarApp';
|
||||
|
||||
class Database {
|
||||
static final Database _instance = Database._internal();
|
||||
@@ -109,4 +110,12 @@ class Database {
|
||||
void clearCreateHistory() {
|
||||
clear(_createHistory);
|
||||
}
|
||||
|
||||
void saveRunAsMenubarApp(bool value) {
|
||||
box.put(_runAsMenubarApp, value);
|
||||
}
|
||||
|
||||
bool getRunAsMenubarApp() {
|
||||
return box.get(_runAsMenubarApp, defaultValue: false) as bool;
|
||||
}
|
||||
}
|
||||
@@ -106,6 +106,8 @@ const deDE = {
|
||||
'Vielen Dank an alle Mitwirkenden, die beim Aufbau und der Entwicklung der Gopeed-Community geholfen haben!',
|
||||
'browserExtension': 'Browsererweiterung',
|
||||
'launchAtStartup': 'Beim Start starten',
|
||||
'runAsMenubarApp': 'Als Menüleisten-App ausführen',
|
||||
'runAsMenubarAppDesc': 'Dock-Symbol ausblenden und nur in der Menüleiste ausführen',
|
||||
'seedConfig': 'Seed-Konfiguration',
|
||||
'seedKeep': 'Weiter-seeden bis manuell gestoppt',
|
||||
'seedRatio': 'Seed Verhältniss',
|
||||
|
||||
@@ -114,6 +114,8 @@ const enUS = {
|
||||
'Thanks to all the contributors who have helped build and develop the Gopeed community!',
|
||||
'browserExtension': 'Browser Extension',
|
||||
'launchAtStartup': 'Launch at Startup',
|
||||
'runAsMenubarApp': 'Run as menubar app',
|
||||
'runAsMenubarAppDesc': 'Hide dock icon and run in menubar only',
|
||||
'seedConfig': 'Seed Config',
|
||||
'seedKeep': 'Keep seeding until manually stopped',
|
||||
'seedRatio': 'Seed ratio',
|
||||
|
||||
@@ -99,6 +99,8 @@ const esES = {
|
||||
'¡Gracias a todos los contribuyentes que han ayudado a construir y desarrollar la comunidad Gopeed!',
|
||||
'browserExtension': 'Extensión del Navegador',
|
||||
'launchAtStartup': 'Iniciar al Arranque',
|
||||
'runAsMenubarApp': 'Ejecutar como aplicación de barra de menú',
|
||||
'runAsMenubarAppDesc': 'Ocultar icono del Dock y ejecutar solo en la barra de menú',
|
||||
'seedConfig': 'Configuración de Semilla',
|
||||
'seedKeep': 'Mantener sembrado',
|
||||
'seedRatio': 'Ratio de semilla',
|
||||
|
||||
@@ -86,5 +86,8 @@ const faIR = {
|
||||
'categoryPath': 'مسیر دستهبندی',
|
||||
'builtInCategory': 'دستهبندی داخلی قابل حذف نیست',
|
||||
'selectCategory': 'انتخاب دستهبندی',
|
||||
'launchAtStartup': 'راهاندازی در استارتآپ',
|
||||
'runAsMenubarApp': 'اجرا به عنوان برنامه نوار منو',
|
||||
'runAsMenubarAppDesc': 'پنهان کردن آیکون Dock و اجرا فقط در نوار منو',
|
||||
}
|
||||
};
|
||||
@@ -99,6 +99,8 @@ const frFR = {
|
||||
'Merci à tous les contributeurs qui ont aidé à construire et développer la communauté Gopeed !',
|
||||
'browserExtension': 'Extension du navigateur',
|
||||
'launchAtStartup': 'Lancer au démarrage',
|
||||
'runAsMenubarApp': 'Exécuter en tant qu\'application de barre de menus',
|
||||
'runAsMenubarAppDesc': 'Masquer l\'icône du Dock et exécuter uniquement dans la barre de menus',
|
||||
'skipVerifyCert': 'Ignorer la vérification du certificat',
|
||||
'archives': 'Archives',
|
||||
'autoExtract': 'Extraire automatiquement les archives',
|
||||
|
||||
@@ -106,6 +106,8 @@ const huHU = {
|
||||
'Köszönet minden hozzájárulónak, aki segített a Gopeed közösség építésében és fejlesztésében!',
|
||||
'browserExtension': 'Böngésző bővítmény',
|
||||
'launchAtStartup': 'Indítás indításkor',
|
||||
'runAsMenubarApp': 'Futtatás menüsáv alkalmazásként',
|
||||
'runAsMenubarAppDesc': 'Dock ikon elrejtése és csak a menüsávban való futtatás',
|
||||
'seedConfig': 'Seed beállítás',
|
||||
'seedKeep': 'Tartsa a seedet amíg manuálisan le nem állítják',
|
||||
'seedRatio': 'Seed arány',
|
||||
|
||||
@@ -101,6 +101,8 @@ const idID = {
|
||||
'Terima kasih kepada semua kontributor yang telah membantu membangun dan mengembangkan komunitas Gopeed!',
|
||||
'browserExtension': 'Ekstensi Perambanan',
|
||||
'launchAtStartup': 'Luncurkan saat Startup',
|
||||
'runAsMenubarApp': 'Jalankan sebagai aplikasi bilah menu',
|
||||
'runAsMenubarAppDesc': 'Sembunyikan ikon Dock dan jalankan hanya di bilah menu',
|
||||
'seedConfig': 'Konfigurasi Seed',
|
||||
'seedKeep': 'Terus seeding hingga dihentikan secara manual',
|
||||
'seedRatio': 'Rasio Seed',
|
||||
|
||||
@@ -97,6 +97,8 @@ const itIT = {
|
||||
'Grazie a tutti i contributori che hanno contribuito a costruire e sviluppare la comunità Gopeed!',
|
||||
'browserExtension': 'Estensione del browser',
|
||||
'launchAtStartup': "Lancia all'avvio",
|
||||
'runAsMenubarApp': 'Esegui come app della barra dei menu',
|
||||
'runAsMenubarAppDesc': 'Nascondi icona Dock ed esegui solo nella barra dei menu',
|
||||
'skipVerifyCert': 'Salta la verifica del certificato',
|
||||
'archives': 'Archivi',
|
||||
'autoExtract': 'Estrai automaticamente gli archivi',
|
||||
|
||||
@@ -87,5 +87,8 @@ const jaJP = {
|
||||
'categoryPath': 'カテゴリパス',
|
||||
'builtInCategory': '内蔵カテゴリは削除できません',
|
||||
'selectCategory': 'カテゴリを選択',
|
||||
'launchAtStartup': '起動時に起動',
|
||||
'runAsMenubarApp': 'メニューバーアプリとして実行',
|
||||
'runAsMenubarAppDesc': 'Dockアイコンを非表示にして、メニューバーのみで実行',
|
||||
}
|
||||
};
|
||||
@@ -95,6 +95,8 @@ const plPL = {
|
||||
'Dziękuję wszystkim za pomoc przy powstawaniu aplikacji Gopeed!',
|
||||
'browserExtension': 'Wtyczka dla przeglądarki',
|
||||
'launchAtStartup': 'Uruchom na starcie',
|
||||
'runAsMenubarApp': 'Uruchom jako aplikacja paska menu',
|
||||
'runAsMenubarAppDesc': 'Ukryj ikonę Docka i uruchom tylko w pasku menu',
|
||||
'skipVerifyCert': 'Pomiń weryfikację certyfikatu',
|
||||
'archives': 'Archiwa',
|
||||
'autoExtract': 'Automatycznie wyodrębnij archiwa',
|
||||
|
||||
@@ -103,6 +103,8 @@ const ptBR = {
|
||||
'Obrigado a todos os colaboradores que ajudaram a construir e desenvolver a comunidade Gopeed!',
|
||||
'browserExtension': 'Extensões para Navegadores',
|
||||
'launchAtStartup': 'Launch at Startup',
|
||||
'runAsMenubarApp': 'Executar como aplicativo da barra de menus',
|
||||
'runAsMenubarAppDesc': 'Ocultar ícone do Dock e executar apenas na barra de menus',
|
||||
'seedConfig': 'Seed Config',
|
||||
'seedKeep': 'Keep seeding until manually stopped',
|
||||
'seedRatio': 'Seed ratio',
|
||||
|
||||
@@ -103,6 +103,8 @@ const ruRU = {
|
||||
'Благодарим всех участников за их вклад в строительство и развитие сообщества Gopeed!',
|
||||
'browserExtension': 'Расширение браузера',
|
||||
'launchAtStartup': 'Запускать при загрузке системы',
|
||||
'runAsMenubarApp': 'Запускать как приложение в строке меню',
|
||||
'runAsMenubarAppDesc': 'Скрыть значок в Dock и запускать только в строке меню',
|
||||
'seedConfig': 'Настройка раздачи',
|
||||
'seedKeep': 'Раздавать пока не остановлю вручную',
|
||||
'seedRatio': 'Коэффициент раздачи',
|
||||
|
||||
@@ -97,6 +97,8 @@ const taTA = {
|
||||
'Gopeed சமூகத்தை உருவாக்கவும் மற்றும் மேம்படுத்த உதவிய அனைத்து பங்களிப்பாளர்களுக்கும் நன்றி!',
|
||||
'browserExtension': 'உலாவி நீட்டிப்பு',
|
||||
'launchAtStartup': 'தொடக்கத்தின் போது இயங்கு',
|
||||
'runAsMenubarApp': 'மெனுபார் பயன்பாடாக இயக்கு',
|
||||
'runAsMenubarAppDesc': 'டாக் ஐகானை மறைத்து மெனுபாரில் மட்டும் இயக்கு',
|
||||
'skipVerifyCert': 'திருத்தி சான்று சரிபார்க்கவும்',
|
||||
'archives': 'காப்பகங்கள்',
|
||||
'autoExtract': 'காப்பகங்களை தானாக பிரித்தெடு',
|
||||
|
||||
@@ -104,6 +104,8 @@ const trTR = {
|
||||
'Gopeed topluluğunun inşasında ve geliştirilmesinde katkıda bulunan herkese teşekkürler!',
|
||||
'browserExtension': 'Tarayıcı Eklentisi',
|
||||
'launchAtStartup': 'Başlangıçta Çalıştır',
|
||||
'runAsMenubarApp': 'Menü çubuğu uygulaması olarak çalıştır',
|
||||
'runAsMenubarAppDesc': 'Dock simgesini gizle ve yalnızca menü çubuğunda çalıştır',
|
||||
'seedConfig': 'Seed Ayarları',
|
||||
'seedKeep': 'Manuel olarak durdurulana kadar seed etmeye devam et',
|
||||
'seedRatio': 'Seed oranı',
|
||||
|
||||
@@ -103,6 +103,8 @@ const ukUA = {
|
||||
'Дякуємо всім учасникам, які допомогли створити та розвивати спільноту Gopeed!',
|
||||
'browserExtension': 'Розширення для браузера',
|
||||
'launchAtStartup': 'Запускати під час завантаження системи',
|
||||
'runAsMenubarApp': 'Запускати як додаток у рядку меню',
|
||||
'runAsMenubarAppDesc': 'Приховати значок у Dock і запускати лише в рядку меню',
|
||||
'seedConfig': 'Налаштування роздачі',
|
||||
'seedKeep': 'Роздавати доки не зупиню вручну',
|
||||
'seedRatio': 'Коефіцієнт роздачі',
|
||||
|
||||
@@ -114,5 +114,8 @@ const viVN = {
|
||||
'categoryPath': 'Đường dẫn danh mục',
|
||||
'builtInCategory': 'Không thể xóa danh mục tích hợp',
|
||||
'selectCategory': 'Chọn danh mục',
|
||||
'launchAtStartup': 'Khởi động cùng hệ thống',
|
||||
'runAsMenubarApp': 'Chạy như ứng dụng thanh menu',
|
||||
'runAsMenubarAppDesc': 'Ẩn biểu tượng Dock và chỉ chạy trong thanh menu',
|
||||
},
|
||||
};
|
||||
@@ -112,6 +112,8 @@ const zhCN = {
|
||||
'thanksDesc': '感谢所有为 Gopeed 社区建设添砖加瓦的贡献者们!',
|
||||
'browserExtension': '浏览器扩展',
|
||||
'launchAtStartup': '开机自动运行',
|
||||
'runAsMenubarApp': '以菜单栏应用运行',
|
||||
'runAsMenubarAppDesc': '隐藏程序坞图标,仅在菜单栏运行',
|
||||
'seedConfig': '做种设置',
|
||||
'seedKeep': '持续做种直到手动停止',
|
||||
'seedRatio': '做种分享率',
|
||||
|
||||
@@ -100,6 +100,8 @@ const zhTW = {
|
||||
'thanksDesc': '感謝所有幫助建立和發展 Gopeed 社群的貢獻者!',
|
||||
'browserExtension': '瀏覽器擴充功能',
|
||||
'launchAtStartup': '開機自動執行',
|
||||
'runAsMenubarApp': '以選單列應用程式執行',
|
||||
'runAsMenubarAppDesc': '隱藏 Dock 圖示,僅在選單列執行',
|
||||
'seedConfig': '做種設定',
|
||||
'seedKeep': '持續做種直到手動停止',
|
||||
'seedRatio': '做種分享率',
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import 'package:args/args.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_foreground_task/flutter_foreground_task.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:hotkey_manager/hotkey_manager.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
import 'api/api.dart' as api;
|
||||
@@ -67,10 +69,14 @@ Future<void> init(Args args) async {
|
||||
if (Util.isDesktop()) {
|
||||
await windowManager.ensureInitialized();
|
||||
final windowState = Database.instance.getWindowState();
|
||||
|
||||
// Check if menubar mode is enabled (only for macOS)
|
||||
final runAsMenubarApp = Util.isMacos() && Database.instance.getRunAsMenubarApp();
|
||||
|
||||
final windowOptions = WindowOptions(
|
||||
size: Size(windowState?.width ?? 800, windowState?.height ?? 600),
|
||||
center: true,
|
||||
skipTaskbar: false,
|
||||
skipTaskbar: runAsMenubarApp,
|
||||
);
|
||||
await windowManager.waitUntilReadyToShow(windowOptions, () async {
|
||||
if (!args.hidden) {
|
||||
@@ -84,6 +90,22 @@ Future<void> init(Args args) async {
|
||||
// await windowManager.maximize();
|
||||
// }
|
||||
});
|
||||
|
||||
// Register Cmd+W hotkey on macOS to close window
|
||||
if (Util.isMacos()) {
|
||||
await hotKeyManager.unregisterAll();
|
||||
HotKey hotKey = HotKey(
|
||||
key: PhysicalKeyboardKey.keyW,
|
||||
modifiers: [HotKeyModifier.meta],
|
||||
scope: HotKeyScope.inapp,
|
||||
);
|
||||
await hotKeyManager.register(
|
||||
hotKey,
|
||||
keyDownHandler: (hotKey) {
|
||||
windowManager.hide();
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
initLogger();
|
||||
|
||||
@@ -15,6 +15,7 @@ icon: assets/icon/icon.svg
|
||||
dependencies:
|
||||
- libayatana-appindicator3-1
|
||||
- gir1.2-ayatanaappindicator3-0.1
|
||||
- libkeybinder-3.0-0
|
||||
|
||||
keywords:
|
||||
- Application
|
||||
|
||||
@@ -6,6 +6,12 @@ PODS:
|
||||
- device_info_plus (0.0.1):
|
||||
- FlutterMacOS
|
||||
- FlutterMacOS (1.0.0)
|
||||
- HotKey (0.2.1)
|
||||
- hotkey_manager_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- HotKey
|
||||
- open_dir_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- package_info_plus (0.0.1):
|
||||
- FlutterMacOS
|
||||
- path_provider_foundation (0.0.1):
|
||||
@@ -30,6 +36,8 @@ DEPENDENCIES:
|
||||
- desktop_drop (from `Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos`)
|
||||
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
|
||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||
- hotkey_manager_macos (from `Flutter/ephemeral/.symlinks/plugins/hotkey_manager_macos/macos`)
|
||||
- open_dir_macos (from `Flutter/ephemeral/.symlinks/plugins/open_dir_macos/macos`)
|
||||
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`)
|
||||
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
|
||||
- screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`)
|
||||
@@ -39,6 +47,10 @@ DEPENDENCIES:
|
||||
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
|
||||
- window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- HotKey
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
app_links:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/app_links/macos
|
||||
@@ -48,6 +60,10 @@ EXTERNAL SOURCES:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos
|
||||
FlutterMacOS:
|
||||
:path: Flutter/ephemeral
|
||||
hotkey_manager_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/hotkey_manager_macos/macos
|
||||
open_dir_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/open_dir_macos/macos
|
||||
package_info_plus:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos
|
||||
path_provider_foundation:
|
||||
@@ -66,19 +82,22 @@ EXTERNAL SOURCES:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
app_links: 10e0a0ab602ffaf34d142cd4862f29d34b303b2a
|
||||
desktop_drop: 69eeff437544aa619c8db7f4481b3a65f7696898
|
||||
device_info_plus: 74e614483d05c89290d30a4c8feae15d555f7427
|
||||
app_links: 9028728e32c83a0831d9db8cf91c526d16cc5468
|
||||
desktop_drop: e0b672a7d84c0a6cbc378595e82cdb15f2970a43
|
||||
device_info_plus: 724ebb83a99d517430554a1810445ff28fe71fa3
|
||||
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
||||
package_info_plus: f5790acc797bf17c3e959e9d6cf162cc68ff7523
|
||||
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
|
||||
screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38
|
||||
share_plus: fd717ef89a2801d3491e737630112b80c310640e
|
||||
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
|
||||
tray_manager: 9064e219c56d75c476e46b9a21182087930baf90
|
||||
url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404
|
||||
window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8
|
||||
HotKey: 400beb7caa29054ea8d864c96f5ba7e5b4852277
|
||||
hotkey_manager_macos: a4317849af96d2430fa89944d3c58977ca089fbe
|
||||
open_dir_macos: 79810d7921d777f8732bf6358b3a0839a8fad9b5
|
||||
package_info_plus: 8147fd5037235202932580f35ebe195f7a55e3cd
|
||||
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
||||
screen_retriever: 4f97c103641aab8ce183fa5af3b87029df167936
|
||||
share_plus: b818fd6bf0e537317735186d977a68a125703488
|
||||
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
|
||||
tray_manager: a104b5c81b578d83f3c3d0f40a997c8b10810166
|
||||
url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673
|
||||
window_manager: 1d01fa7ac65a6e6f83b965471b1a7fdd3f06166c
|
||||
|
||||
PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7
|
||||
|
||||
COCOAPODS: 1.15.2
|
||||
COCOAPODS: 1.16.2
|
||||
+60
-25
@@ -5,15 +5,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: _fe_analyzer_shared
|
||||
sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834
|
||||
sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "72.0.0"
|
||||
_macros:
|
||||
dependency: transitive
|
||||
description: dart
|
||||
source: sdk
|
||||
version: "0.3.2"
|
||||
version: "67.0.0"
|
||||
after_layout:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -26,10 +21,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: analyzer
|
||||
sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139
|
||||
sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.7.0"
|
||||
version: "6.4.1"
|
||||
animations:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -298,10 +293,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: dart_style
|
||||
sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab"
|
||||
sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.7"
|
||||
version: "2.3.6"
|
||||
desktop_drop:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -530,6 +525,46 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.3"
|
||||
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"
|
||||
http:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -683,14 +718,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
macros:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: macros
|
||||
sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.2-main.4"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -783,10 +810,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: open_filex
|
||||
sha256: ba425ea49affd0a98a234aa9344b9ea5d4c4f7625a1377961eae9fe194c3d523
|
||||
sha256: "9976da61b6a72302cf3b1efbce259200cd40232643a467aac7370addf94d6900"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.5.0"
|
||||
version: "4.7.0"
|
||||
package_config:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1072,18 +1099,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences
|
||||
sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051"
|
||||
sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.5.3"
|
||||
shared_preferences_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_android
|
||||
sha256: "3b9febd815c9ca29c9e3520d50ec32f49157711e143b7a4ca039eb87e8ade5ab"
|
||||
sha256: "9f9f3d372d4304723e6136663bb291c0b93f5e4c8a4a6314347f481a33bda2b1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.3"
|
||||
version: "2.4.7"
|
||||
shared_preferences_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1274,6 +1301,14 @@ 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"
|
||||
uri_to_file:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
||||
@@ -53,6 +53,7 @@ dependencies:
|
||||
app_links: ^6.3.3
|
||||
uri_to_file: ^1.0.0
|
||||
window_manager: ^0.4.2
|
||||
hotkey_manager: ^0.2.3
|
||||
share_plus: ^10.1.0
|
||||
flutter_form_builder: ^9.5.0
|
||||
form_builder_validators: ^11.0.0
|
||||
|
||||
Reference in new issue
Block a user