feat: queue extractions (#1227)

This commit is contained in:
Matteo Pietro Dazzi authored and GitHub committed 2026-01-05 15:53:19 +08:00
1 parent de0afb1481
commit 24db9bb58b
35 files changed
+1047 -159

No files matched your search

+3 -1
View File
@@ -17,7 +17,9 @@ enum ExtractStatus {
@JsonValue('done')
done,
@JsonValue('error')
error
error,
@JsonValue('waitingParts')
waitingParts
}
@JsonSerializable(explicitToJson: true)
+4 -3
View File
@@ -58,6 +58,7 @@ const _$ExtractStatusEnumMap = {
ExtractStatus.extracting: 'extracting',
ExtractStatus.done: 'done',
ExtractStatus.error: 'error',
ExtractStatus.waitingParts: 'waitingParts',
};
Progress _$ProgressFromJson(Map<String, dynamic> json) => Progress(
@@ -66,9 +67,9 @@ Progress _$ProgressFromJson(Map<String, dynamic> json) => Progress(
downloaded: (json['downloaded'] as num).toInt(),
uploadSpeed: (json['uploadSpeed'] as num).toInt(),
uploaded: (json['uploaded'] as num).toInt(),
extractStatus: $enumDecodeNullable(
_$ExtractStatusEnumMap, json['extractStatus']) ??
ExtractStatus.none,
extractStatus:
$enumDecodeNullable(_$ExtractStatusEnumMap, json['extractStatus']) ??
ExtractStatus.none,
extractProgress: (json['extractProgress'] as num?)?.toInt() ?? 0,
);
@@ -2,12 +2,12 @@ import 'package:flutter/material.dart';
import 'package:flutter_foreground_task/flutter_foreground_task.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:get/get.dart';
import 'package:window_manager/window_manager.dart'; // Import the required packages
import 'package:window_manager/window_manager.dart'; // Import the required packages
import '../../../../i18n/message.dart';
import '../../../../theme/theme.dart';
import '../../../../util/locale_manager.dart';
import '../../../../util/util.dart'; // Import the required packages
import '../../../../util/util.dart'; // Import the required packages
import '../../../routes/app_pages.dart';
import '../controllers/app_controller.dart';
@@ -38,7 +38,7 @@ class AppView extends GetView<AppController> {
// Add listening to theme changes, set the title bar color according to the current system theme.
builder: (context, child) {
// if platform is desktop
if (Util.isDesktop()){
if (Util.isDesktop()) {
// actual brightness of the UI
Brightness brightness = Theme.of(context).brightness;
// Set the title bar to use the actual brightness of the UI
@@ -46,7 +46,6 @@ class AppView extends GetView<AppController> {
}
return child!;
},
),
);
}
@@ -626,10 +626,11 @@ class CreateView extends GetView<CreateController> {
child: CompactCheckbox(
label: 'autoExtract'.tr,
value: _autoExtractController
.value ?? false,
.value ??
false,
onChanged: (bool? value) {
_autoExtractController
.value = value ?? false;
_autoExtractController.value =
value ?? false;
},
textStyle: const TextStyle(
color: Colors.grey,
@@ -638,33 +639,49 @@ class CreateView extends GetView<CreateController> {
),
Obx(
() => Visibility(
visible: _autoExtractController.value ?? false,
visible: _autoExtractController
.value ??
false,
child: Column(
children: [
Padding(
padding:
const EdgeInsets.only(top: 10),
const EdgeInsets.only(
top: 10),
child: TextFormField(
controller: _archivePasswordController,
controller:
_archivePasswordController,
obscureText: true,
decoration: InputDecoration(
labelText: 'archivePassword'.tr,
hintText: 'archivePasswordHint'.tr,
decoration:
InputDecoration(
labelText:
'archivePassword'
.tr,
hintText:
'archivePasswordHint'
.tr,
),
),
),
Padding(
padding:
const EdgeInsets.only(top: 10),
const EdgeInsets.only(
top: 10),
child: CompactCheckbox(
label: 'deleteAfterExtract'.tr,
value: _deleteAfterExtractController
.value ?? false,
label:
'deleteAfterExtract'
.tr,
value:
_deleteAfterExtractController
.value ??
false,
onChanged: (bool? value) {
_deleteAfterExtractController
.value = value ?? false;
.value =
value ?? false;
},
textStyle: const TextStyle(
textStyle:
const TextStyle(
color: Colors.grey,
),
),
@@ -1031,7 +1048,8 @@ class CreateView extends GetView<CreateController> {
padding: const EdgeInsets.only(right: 8),
child: OutlinedButton(
onPressed: () {
_pathController.text = renderPathPlaceholders(category.path);
_pathController.text =
renderPathPlaceholders(category.path);
},
style: OutlinedButton.styleFrom(
padding: const EdgeInsets.symmetric(
@@ -179,7 +179,8 @@ class SettingView extends GetView<SettingController> {
return Container(
alignment: Alignment.centerLeft,
child: Switch(
value: appController.downloaderConfig.value.archive.deleteAfterExtract,
value:
appController.downloaderConfig.value.archive.deleteAfterExtract,
onChanged: (bool value) async {
appController.downloaderConfig.update((val) {
val!.archive.deleteAfterExtract = value;
@@ -195,6 +195,8 @@ class BuildTaskListView extends GetView {
return 'extractDone'.tr;
case ExtractStatus.error:
return 'extractError'.tr;
case ExtractStatus.waitingParts:
return 'waitingParts'.tr;
default:
return '';
}
@@ -333,13 +335,19 @@ class BuildTaskListView extends GetView {
// Extraction status row
if (task.progress.extractStatus != ExtractStatus.none)
Builder(builder: (context) {
final isExtracting =
task.progress.extractStatus == ExtractStatus.extracting;
final isExtracting = task.progress.extractStatus ==
ExtractStatus.extracting;
final isExtractDone =
task.progress.extractStatus == ExtractStatus.done;
final isWaitingParts = task.progress.extractStatus ==
ExtractStatus.waitingParts;
final statusColor = isExtracting
? Get.theme.colorScheme.primary
: (isExtractDone ? Colors.green : Colors.red);
: (isExtractDone
? Colors.green
: isWaitingParts
? Colors.orange
: Colors.red);
return Column(
children: [
Row(
@@ -367,7 +375,7 @@ class BuildTaskListView extends GetView {
).padding(left: 18),
),
],
).padding(top: 4, bottom: isExtracting ? 0 : 8),
).padding(top: 4, bottom: 8),
// Extraction progress bar
if (isExtracting)
LinearProgressIndicator(
@@ -52,9 +52,9 @@ class _CompactCheckboxState extends State<CompactCheckbox> {
widget.scale == null
? checkbox
: Transform.scale(
scale: widget.scale,
child: checkbox,
),
scale: widget.scale,
child: checkbox,
),
Text(
widget.label,
style: widget.textStyle,
@@ -246,7 +246,8 @@ class _DirectorySelectorState extends State<DirectorySelector> {
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.arrow_forward, size: 14, color: Colors.blue[700]),
Icon(Icons.arrow_forward,
size: 14, color: Colors.blue[700]),
const SizedBox(width: 4),
Flexible(
child: Text(
@@ -263,9 +264,10 @@ class _DirectorySelectorState extends State<DirectorySelector> {
),
);
}
return TextFormField(
readOnly: widget.allowEdit ? false : (Util.isWeb() ? false : true),
readOnly:
widget.allowEdit ? false : (Util.isWeb() ? false : true),
controller: widget.controller,
decoration: widget.showLabel
? InputDecoration(
+3 -1
View File
@@ -107,7 +107,8 @@ const deDE = {
'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',
'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',
@@ -126,6 +127,7 @@ const deDE = {
'extracting': 'Wird entpackt',
'extractDone': 'Entpacken abgeschlossen',
'extractError': 'Entpacken fehlgeschlagen',
'waitingParts': 'Warte auf Teile',
'name': 'Name',
'size': 'Größe',
'unknown': 'Unbekannt',
+1
View File
@@ -134,6 +134,7 @@ const enUS = {
'extracting': 'Extracting',
'extractDone': 'Extraction completed',
'extractError': 'Extraction failed',
'waitingParts': 'Waiting for parts',
'name': 'Name',
'size': 'Size',
'unknown': 'Unknown',
+3 -1
View File
@@ -100,7 +100,8 @@ const esES = {
'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ú',
'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',
@@ -118,6 +119,7 @@ const esES = {
'extracting': 'Extrayendo',
'extractDone': 'Extracción completada',
'extractError': 'Error en la extracción',
'waitingParts': 'Esperando partes',
'insertPlaceholder': 'Insertar marcador de posición',
'placeholderYear': 'Año actual',
'placeholderMonth': 'Mes actual (01-12)',
+1
View File
@@ -71,6 +71,7 @@ const faIR = {
'extracting': 'در حال استخراج',
'extractDone': 'استخراج کامل شد',
'extractError': 'استخراج ناموفق بود',
'waitingParts': 'در انتظار قسمت‌ها',
'insertPlaceholder': 'درج نگهدارنده',
'placeholderYear': 'سال جاری',
'placeholderMonth': 'ماه جاری (01-12)',
+3 -1
View File
@@ -100,7 +100,8 @@ const frFR = {
'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',
'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',
@@ -110,6 +111,7 @@ const frFR = {
'extracting': 'Extraction en cours',
'extractDone': 'Extraction terminée',
'extractError': 'Échec de l\'extraction',
'waitingParts': 'En attente des parties',
'insertPlaceholder': 'Insérer un espace réservé',
'placeholderYear': 'Année en cours',
'placeholderMonth': 'Mois en cours (01-12)',
+3 -1
View File
@@ -107,7 +107,8 @@ const huHU = {
'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',
'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',
@@ -126,6 +127,7 @@ const huHU = {
'extracting': 'Kicsomagolás',
'extractDone': 'Kicsomagolás befejezve',
'extractError': 'Kicsomagolás sikertelen',
'waitingParts': 'Várakozás a részekre',
'name': 'Név',
'size': 'Méret',
'unknown': 'Ismeretlen',
+3 -1
View File
@@ -102,7 +102,8 @@ const idID = {
'browserExtension': 'Ekstensi Perambanan',
'launchAtStartup': 'Luncurkan saat Startup',
'runAsMenubarApp': 'Jalankan sebagai aplikasi bilah menu',
'runAsMenubarAppDesc': 'Sembunyikan ikon Dock dan jalankan hanya di 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',
@@ -120,6 +121,7 @@ const idID = {
'extracting': 'Mengekstrak',
'extractDone': 'Ekstraksi selesai',
'extractError': 'Ekstraksi gagal',
'waitingParts': 'Menunggu bagian',
'insertPlaceholder': 'Sisipkan placeholder',
'placeholderYear': 'Tahun saat ini',
'placeholderMonth': 'Bulan saat ini (01-12)',
+3 -1
View File
@@ -98,7 +98,8 @@ const itIT = {
'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',
'runAsMenubarAppDesc':
'Nascondi icona Dock ed esegui solo nella barra dei menu',
'skipVerifyCert': 'Salta la verifica del certificato',
'archives': 'Archivi',
'autoExtract': 'Estrai automaticamente gli archivi',
@@ -108,6 +109,7 @@ const itIT = {
'extracting': 'Estrazione in corso',
'extractDone': 'Estrazione completata',
'extractError': 'Estrazione fallita',
'waitingParts': 'In attesa delle parti',
'insertPlaceholder': 'Inserisci segnaposto',
'placeholderYear': 'Anno corrente',
'placeholderMonth': 'Mese corrente (01-12)',
+1
View File
@@ -72,6 +72,7 @@ const jaJP = {
'extracting': '展開中',
'extractDone': '展開完了',
'extractError': '展開失敗',
'waitingParts': '分割ファイルを待っています',
'insertPlaceholder': 'プレースホルダーを挿入',
'placeholderYear': '現在の年',
'placeholderMonth': '現在の月 (01-12)',
+1
View File
@@ -106,6 +106,7 @@ const plPL = {
'extracting': 'Rozpakowywanie',
'extractDone': 'Rozpakowywanie zakończone',
'extractError': 'Rozpakowywanie nie powiodło się',
'waitingParts': 'Oczekiwanie na części',
'insertPlaceholder': 'Wstaw placeholder',
'placeholderYear': 'Bieżący rok',
'placeholderMonth': 'Bieżący miesiąc (01-12)',
+3 -1
View File
@@ -104,7 +104,8 @@ const ptBR = {
'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',
'runAsMenubarAppDesc':
'Ocultar ícone do Dock e executar apenas na barra de menus',
'seedConfig': 'Seed Config',
'seedKeep': 'Keep seeding until manually stopped',
'seedRatio': 'Seed ratio',
@@ -123,6 +124,7 @@ const ptBR = {
'extracting': 'Extraindo',
'extractDone': 'Extração concluída',
'extractError': 'Falha na extração',
'waitingParts': 'Aguardando partes',
'name': 'Nome',
'size': 'Tamanho',
'unknown': 'Desconhecido',
+3 -1
View File
@@ -104,7 +104,8 @@ const ruRU = {
'browserExtension': 'Расширение браузера',
'launchAtStartup': 'Запускать при загрузке системы',
'runAsMenubarApp': 'Запускать как приложение в строке меню',
'runAsMenubarAppDesc': 'Скрыть значок в Dock и запускать только в строке меню',
'runAsMenubarAppDesc':
'Скрыть значок в Dock и запускать только в строке меню',
'seedConfig': 'Настройка раздачи',
'seedKeep': 'Раздавать пока не остановлю вручную',
'seedRatio': 'Коэффициент раздачи',
@@ -123,6 +124,7 @@ const ruRU = {
'extracting': 'Распаковка',
'extractDone': 'Распаковка завершена',
'extractError': 'Ошибка распаковки',
'waitingParts': 'Ожидание частей',
'name': 'Название',
'size': 'Размер',
'unknown': 'Неизвестно',
+1
View File
@@ -108,6 +108,7 @@ const taTA = {
'extracting': 'பிரித்தெடுக்கிறது',
'extractDone': 'பிரித்தெடுத்தல் முடிந்தது',
'extractError': 'பிரித்தெடுத்தல் தோல்வியடைந்தது',
'waitingParts': 'பாகங்களுக்காக காத்திருக்கிறது',
'insertPlaceholder': 'இடங்காட்டி செருக',
'placeholderYear': 'தற்போதைய ஆண்டு',
'placeholderMonth': 'தற்போதைய மாதம் (01-12)',
+3 -1
View File
@@ -105,7 +105,8 @@ const trTR = {
'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',
'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ı',
@@ -124,6 +125,7 @@ const trTR = {
'extracting': 'Çıkarılıyor',
'extractDone': 'Çıkarma tamamlandı',
'extractError': 'Çıkarma başarısız',
'waitingParts': 'Parçalar bekleniyor',
'name': 'Ad',
'size': 'Boyut',
'unknown': 'Bilinmeyen',
+3 -1
View File
@@ -104,7 +104,8 @@ const ukUA = {
'browserExtension': 'Розширення для браузера',
'launchAtStartup': 'Запускати під час завантаження системи',
'runAsMenubarApp': 'Запускати як додаток у рядку меню',
'runAsMenubarAppDesc': 'Приховати значок у Dock і запускати лише в рядку меню',
'runAsMenubarAppDesc':
'Приховати значок у Dock і запускати лише в рядку меню',
'seedConfig': 'Налаштування роздачі',
'seedKeep': 'Роздавати доки не зупиню вручну',
'seedRatio': 'Коефіцієнт роздачі',
@@ -123,6 +124,7 @@ const ukUA = {
'extracting': 'Розпакування',
'extractDone': 'Розпакування завершено',
'extractError': 'Помилка розпакування',
'waitingParts': 'Очікування частин',
'name': 'Назва',
'size': 'Розмір',
'unknown': 'Невідомо',
+1
View File
@@ -99,6 +99,7 @@ const viVN = {
'extracting': 'Đang giải nén',
'extractDone': 'Giải nén hoàn tất',
'extractError': 'Giải nén thất bại',
'waitingParts': 'Đang chờ các phần',
'insertPlaceholder': 'Chèn placeholder',
'placeholderYear': 'Năm hiện tại',
'placeholderMonth': 'Tháng hiện tại (01-12)',
+1
View File
@@ -132,6 +132,7 @@ const zhCN = {
'extracting': '正在解压',
'extractDone': '解压完成',
'extractError': '解压失败',
'waitingParts': '等待分卷',
'name': '名称',
'size': '大小',
'unknown': '未知',
+1
View File
@@ -120,6 +120,7 @@ const zhTW = {
'extracting': '正在解壓',
'extractDone': '解壓完成',
'extractError': '解壓失敗',
'waitingParts': '等待分卷',
'name': '名稱',
'size': '大小',
'unknown': '未知',
+41 -21
View File
@@ -11,7 +11,7 @@
/// fonts:
/// - asset: fonts/Gopeed.ttf
///
///
///
/// * Entypo, Copyright (C) 2012 by Daniel Bruce
/// Author: Daniel Bruce
/// License: SIL (http://scripts.sil.org/OFL)
@@ -33,24 +33,44 @@ class Gopeed {
static const _kFontFam = 'Gopeed';
static const String? _kFontPkg = null;
static const IconData install = IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData android = IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData cd = IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData folder_bt = IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_bt = IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData folder = IconData(0xf07b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData sort = IconData(0xf0dc, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData html5 = IconData(0xf13b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file = IconData(0xf15b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_alt = IconData(0xf15c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_pdf = IconData(0xf1c1, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_word = IconData(0xf1c2, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_excel = IconData(0xf1c3, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_powerpoint = IconData(0xf1c4, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_image = IconData(0xf1c5, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_archive = IconData(0xf1c6, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_audio = IconData(0xf1c7, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_video = IconData(0xf1c8, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_code = IconData(0xf1c9, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData app_store_ios = IconData(0xf370, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData install =
IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData android =
IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData cd =
IconData(0xe802, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData folder_bt =
IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_bt =
IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData folder =
IconData(0xf07b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData sort =
IconData(0xf0dc, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData html5 =
IconData(0xf13b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file =
IconData(0xf15b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_alt =
IconData(0xf15c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_pdf =
IconData(0xf1c1, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_word =
IconData(0xf1c2, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_excel =
IconData(0xf1c3, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_powerpoint =
IconData(0xf1c4, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_image =
IconData(0xf1c5, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_archive =
IconData(0xf1c6, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_audio =
IconData(0xf1c7, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_video =
IconData(0xf1c8, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData file_code =
IconData(0xf1c9, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData app_store_ios =
IconData(0xf370, fontFamily: _kFontFam, fontPackage: _kFontPkg);
}
+2 -1
View File
@@ -71,7 +71,8 @@ Future<void> init(Args args) async {
final windowState = Database.instance.getWindowState();
// Check if menubar mode is enabled (only for macOS)
final runAsMenubarApp = Util.isMacos() && Database.instance.getRunAsMenubarApp();
final runAsMenubarApp =
Util.isMacos() && Database.instance.getRunAsMenubarApp();
final windowOptions = WindowOptions(
size: Size(windowState?.width ?? 800, windowState?.height ?? 600),
+2 -2
View File
@@ -1,6 +1,6 @@
import 'arch_stub.dart'
if (dart.library.io) 'entry/arch_native.dart'
if (dart.library.html) 'entry/arch_web.dart';
if (dart.library.io) 'entry/arch_native.dart'
if (dart.library.html) 'entry/arch_web.dart';
// Copy from pkg/sky_engine/lib/ffi/abi.dart
enum Architecture {
@@ -8,4 +8,3 @@ unregisterUrlScheme(String scheme) => doUnregisterUrlScheme(scheme);
registerDefaultTorrentClient() => doRegisterDefaultTorrentClient();
unregisterDefaultTorrentClient() => doUnregisterDefaultTorrentClient();
-1
View File
@@ -7,7 +7,6 @@
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {});
}