refactor: move models to common package

This commit is contained in:
Tien Do Nam
2024-02-09 01:54:58 +01:00
parent 2457acd8a7
commit 7be55ac8e6
82 changed files with 178 additions and 161 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 34
/// Strings: 9632 (283 per locale)
/// Strings: 9635 (283 per locale)
// coverage:ignore-file
// ignore_for_file: type=lint
+3 -3
View File
@@ -633,7 +633,7 @@ class _StringsDialogsEncryptionDisabledNoticeRu extends _StringsDialogsEncryptio
// Translations
@override String get title => 'Шифрование отключено';
@override String get content => 'Связь происходит по незашифрованному HTTP-протоколу. Чтобы использовать HTTPS, включите шифрование.';
@override String get content => 'Связь теперь происходит по незашифрованному HTTP протоколу. Чтобы использовать HTTPS, снова включите шифрование.';
}
// Path: dialogs.errorDialog
@@ -821,9 +821,9 @@ class _StringsDialogsSendModeHelpRu extends _StringsDialogsSendModeHelpEn {
// Translations
@override String get title => 'Режимы отправки';
@override String get single => 'Отправляет файлы одному получателю. Выбор будет очищен после завершения передачи файла.';
@override String get single => 'Отправляет файлы одному получателю. После завершения передачи, выбор будет очищен.';
@override String get multiple => 'Отправляет файлы нескольким получателям. Выбор не будет очищен.';
@override String get link => 'Получатели, у которых не установлен LocalSend, могут загрузить выбранные файлы по ссылке.';
@override String get link => 'Получатели, у которых не установлен LocalSend, могут загрузить выбранные файлы, открыв ссылку в своем браузере.';
}
// Path: settingsTab.general.brightnessOptions
+4 -4
View File
@@ -457,7 +457,7 @@ class _StringsSendTabSendModesUk extends _StringsSendTabSendModesEn {
// Translations
@override String get single => 'Один одержувач';
@override String get multiple => 'Кілька одержувачів';
@override String get link => 'Поділіться через посилання';
@override String get link => 'Поділитися через посилання';
}
// Path: settingsTab.general
@@ -633,7 +633,7 @@ class _StringsDialogsEncryptionDisabledNoticeUk extends _StringsDialogsEncryptio
// Translations
@override String get title => 'Шифрування вимкнено';
@override String get content => 'Зв\'язок тепер відбувається через незашифрований протокол HTTP. Щоб використовувати HTTPS, знову ввімкніть шифрування.';
@override String get content => 'Зв\'язок тепер відбувається через незашифрований HTTP протокол. Щоб використовувати HTTPS, знову увімкніть шифрування.';
}
// Path: dialogs.errorDialog
@@ -821,9 +821,9 @@ class _StringsDialogsSendModeHelpUk extends _StringsDialogsSendModeHelpEn {
// Translations
@override String get title => 'Режими надсилання';
@override String get single => 'Надсилає файли одному одержувачу. Після завершення передачі файлу (-ів), виділення буде знято.';
@override String get single => 'Надсилає файли одному одержувачу. Після завершення передачі, виділення буде знято.';
@override String get multiple => 'Надсилає файли кільком одержувачам. Виділення не буде знято.';
@override String get link => 'Одержувачі, у яких не встановлено LocalSend, можуть завантажити вибрані файли, відкривши посилання у своєму браузері.';
@override String get link => 'Одержувачі, у яких не встановлений LocalSend, можуть завантажити вибрані файли, відкривши посилання у своєму браузері.';
}
// Path: settingsTab.general.brightnessOptions
+13
View File
@@ -133,6 +133,7 @@ class _StringsSettingsTabZhCn extends _StringsSettingsTabEn {
@override String get title => '设置';
@override late final _StringsSettingsTabGeneralZhCn general = _StringsSettingsTabGeneralZhCn._(_root);
@override late final _StringsSettingsTabReceiveZhCn receive = _StringsSettingsTabReceiveZhCn._(_root);
@override late final _StringsSettingsTabSendZhCn send = _StringsSettingsTabSendZhCn._(_root);
@override late final _StringsSettingsTabNetworkZhCn network = _StringsSettingsTabNetworkZhCn._(_root);
@override late final _StringsSettingsTabOtherZhCn other = _StringsSettingsTabOtherZhCn._(_root);
@override String get advancedSettings => '高级设置';
@@ -263,6 +264,7 @@ class _StringsWebSharePageZhCn extends _StringsWebSharePageEn {
@override String get requests => '请求';
@override String get noRequests => '尚无请求。';
@override String get encryption => '${_root.settingsTab.network.encryption}';
@override String get autoAccept => '自动接受请求';
@override String get encryptionHint => 'LocalSend 使用自签名证书。您需要在浏览器中接受它。';
@override String pendingRequests({required Object n}) => '待处理请求: ${n}';
}
@@ -497,6 +499,17 @@ class _StringsSettingsTabReceiveZhCn extends _StringsSettingsTabReceiveEn {
@override String get saveToHistory => '保存到历史记录';
}
// Path: settingsTab.send
class _StringsSettingsTabSendZhCn extends _StringsSettingsTabSendEn {
_StringsSettingsTabSendZhCn._(_StringsZhCn root) : this._root = root, super._(root);
@override final _StringsZhCn _root; // ignore: unused_field
// Translations
@override String get title => '发送';
@override String get shareViaLinkAutoAccept => '通过链接分享: 自动接受';
}
// Path: settingsTab.network
class _StringsSettingsTabNetworkZhCn extends _StringsSettingsTabNetworkEn {
_StringsSettingsTabNetworkZhCn._(_StringsZhCn root) : this._root = root, super._(root);
+1 -2
View File
@@ -1,12 +1,11 @@
import 'dart:async';
import 'dart:io';
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_displaymode/flutter_displaymode.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:localsend_app/pages/home_page.dart';
import 'package:localsend_app/provider/animation_provider.dart';
import 'package:localsend_app/provider/app_arguments_provider.dart';
+1 -1
View File
@@ -1,7 +1,7 @@
import 'dart:typed_data';
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:wechat_assets_picker/wechat_assets_picker.dart';
part 'cross_file.mapper.dart';
-20
View File
@@ -1,20 +0,0 @@
import 'package:dart_mappable/dart_mappable.dart';
import 'package:flutter/material.dart';
part 'file_type.mapper.dart';
/// Categorization of one file.
/// We use this information for a better UX.
@MappableEnum(defaultValue: FileType.other)
enum FileType {
image(Icons.image),
video(Icons.movie),
pdf(Icons.description),
text(Icons.subject),
apk(Icons.android),
other(Icons.file_present_sharp);
const FileType(this.icon);
final IconData icon;
}
@@ -1,7 +1,7 @@
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:intl/intl.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/file_type.dart';
part 'receive_history_entry.mapper.dart';
@@ -1,5 +1,5 @@
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/device.dart';
part 'nearby_devices_state.mapper.dart';
@@ -1,7 +1,6 @@
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:dio/dio.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/session_status.dart';
import 'package:localsend_app/model/state/send/sending_file.dart';
part 'send_session_state.mapper.dart';
+1 -2
View File
@@ -1,8 +1,7 @@
import 'dart:typed_data';
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:localsend_app/model/file_status.dart';
import 'package:wechat_assets_picker/wechat_assets_picker.dart';
part 'sending_file.mapper.dart';
@@ -1,5 +1,5 @@
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:wechat_assets_picker/wechat_assets_picker.dart';
part 'web_send_file.mapper.dart';
@@ -1,9 +1,7 @@
import 'dart:async';
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/model/session_status.dart';
import 'package:localsend_app/model/state/server/receiving_file.dart';
part 'receive_session_state.mapper.dart';
@@ -1,6 +1,5 @@
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:localsend_app/model/file_status.dart';
part 'receiving_file.mapper.dart';
+1 -1
View File
@@ -1,7 +1,7 @@
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/persistence/color_mode.dart';
import 'package:localsend_app/model/send_mode.dart';
+1 -1
View File
@@ -1,7 +1,7 @@
import 'package:common/common.dart';
import 'package:device_apps/device_apps.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/provider/apk_provider.dart';
import 'package:localsend_app/provider/selection/selected_sending_files_provider.dart';
import 'package:localsend_app/util/file_size_helper.dart';
+1 -3
View File
@@ -1,12 +1,10 @@
import 'dart:async';
import 'dart:typed_data';
import 'package:common/common.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:localsend_app/model/file_status.dart';
import 'package:localsend_app/model/session_status.dart';
import 'package:localsend_app/provider/network/send_provider.dart';
import 'package:localsend_app/provider/network/server/server_provider.dart';
import 'package:localsend_app/provider/progress_provider.dart';
+1
View File
@@ -3,6 +3,7 @@ import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/provider/network/server/server_provider.dart';
import 'package:localsend_app/provider/selection/selected_receiving_files_provider.dart';
import 'package:localsend_app/util/file_size_helper.dart';
import 'package:localsend_app/util/file_type_ext.dart';
import 'package:localsend_app/util/native/pick_directory_path.dart';
import 'package:localsend_app/util/native/platform_check.dart';
import 'package:localsend_app/widget/custom_dropdown_button.dart';
+2 -1
View File
@@ -1,11 +1,11 @@
import 'dart:async';
import 'package:collection/collection.dart';
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/persistence/color_mode.dart';
import 'package:localsend_app/model/session_status.dart';
import 'package:localsend_app/pages/progress_page.dart';
import 'package:localsend_app/pages/receive_options_page.dart';
import 'package:localsend_app/provider/favorites_provider.dart';
@@ -13,6 +13,7 @@ import 'package:localsend_app/provider/network/server/server_provider.dart';
import 'package:localsend_app/provider/selection/selected_receiving_files_provider.dart';
import 'package:localsend_app/provider/settings_provider.dart';
import 'package:localsend_app/theme.dart';
import 'package:localsend_app/util/device_type_ext.dart';
import 'package:localsend_app/util/ip_helper.dart';
import 'package:localsend_app/util/native/platform_check.dart';
import 'package:localsend_app/util/ui/snackbar.dart';
+1 -1
View File
@@ -1,8 +1,8 @@
import 'dart:convert';
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/provider/selection/selected_sending_files_provider.dart';
import 'package:localsend_app/util/file_size_helper.dart';
import 'package:localsend_app/util/native/open_file.dart';
+1 -2
View File
@@ -1,8 +1,7 @@
import 'package:collection/collection.dart';
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/session_status.dart';
import 'package:localsend_app/provider/device_info_provider.dart';
import 'package:localsend_app/provider/favorites_provider.dart';
import 'package:localsend_app/provider/network/send_provider.dart';
+1 -2
View File
@@ -1,9 +1,8 @@
import 'package:collection/collection.dart';
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/send_mode.dart';
import 'package:localsend_app/model/session_status.dart';
import 'package:localsend_app/pages/selected_files_page.dart';
import 'package:localsend_app/pages/tabs/send_tab_vm.dart';
import 'package:localsend_app/pages/troubleshoot_page.dart';
+1 -2
View File
@@ -1,10 +1,9 @@
import 'package:collection/collection.dart';
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/model/cross_file.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/persistence/favorite_device.dart';
import 'package:localsend_app/model/send_mode.dart';
import 'package:localsend_app/model/session_status.dart';
import 'package:localsend_app/pages/progress_page.dart';
import 'package:localsend_app/pages/send_page.dart';
import 'package:localsend_app/pages/web_send_page.dart';
+2 -2
View File
@@ -1,7 +1,6 @@
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/persistence/color_mode.dart';
import 'package:localsend_app/pages/about/about_page.dart';
import 'package:localsend_app/pages/changelog_page.dart';
@@ -11,6 +10,7 @@ import 'package:localsend_app/pages/tabs/settings_tab_controller.dart';
import 'package:localsend_app/provider/settings_provider.dart';
import 'package:localsend_app/provider/version_provider.dart';
import 'package:localsend_app/theme.dart';
import 'package:localsend_app/util/device_type_ext.dart';
import 'package:localsend_app/util/native/autostart_helper.dart';
import 'package:localsend_app/util/native/pick_directory_path.dart';
import 'package:localsend_app/util/native/platform_check.dart';
+1 -2
View File
@@ -1,6 +1,5 @@
import 'package:collection/collection.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/model/device.dart';
import 'package:common/common.dart';
import 'package:localsend_app/provider/local_ip_provider.dart';
import 'package:localsend_app/provider/network/server/server_provider.dart';
import 'package:localsend_app/provider/security_provider.dart';
+1 -1
View File
@@ -1,4 +1,4 @@
import 'package:localsend_app/model/device.dart';
import 'package:common/common.dart';
import 'package:refena_flutter/refena_flutter.dart';
/// This provider stores the last devices that the user sent a file to.
@@ -2,10 +2,7 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/dto/multicast_dto.dart';
import 'package:localsend_app/model/dto/register_dto.dart';
import 'package:common/common.dart';
import 'package:localsend_app/provider/device_info_provider.dart';
import 'package:localsend_app/provider/dio_provider.dart';
import 'package:localsend_app/provider/logging/discovery_logs_provider.dart';
@@ -1,7 +1,7 @@
import 'dart:async';
import 'package:collection/collection.dart';
import 'package:localsend_app/model/device.dart';
import 'package:common/common.dart';
import 'package:localsend_app/model/persistence/favorite_device.dart';
import 'package:localsend_app/model/state/nearby_devices_state.dart';
import 'package:localsend_app/provider/favorites_provider.dart';
+1 -9
View File
@@ -2,18 +2,10 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:common/common.dart';
import 'package:dio/dio.dart';
import 'package:localsend_app/model/cross_file.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:localsend_app/model/dto/info_register_dto.dart';
import 'package:localsend_app/model/dto/multicast_dto.dart';
import 'package:localsend_app/model/dto/prepare_upload_request_dto.dart';
import 'package:localsend_app/model/dto/prepare_upload_response_dto.dart';
import 'package:localsend_app/model/file_status.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/model/send_mode.dart';
import 'package:localsend_app/model/session_status.dart';
import 'package:localsend_app/model/state/send/send_session_state.dart';
import 'package:localsend_app/model/state/send/sending_file.dart';
import 'package:localsend_app/pages/home_page.dart';
@@ -3,16 +3,8 @@ import 'dart:convert';
import 'dart:io';
import 'package:collection/collection.dart';
import 'package:common/common.dart';
import 'package:flutter/foundation.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/model/dto/info_dto.dart';
import 'package:localsend_app/model/dto/info_register_dto.dart';
import 'package:localsend_app/model/dto/prepare_upload_request_dto.dart';
import 'package:localsend_app/model/dto/prepare_upload_response_dto.dart';
import 'package:localsend_app/model/dto/register_dto.dart';
import 'package:localsend_app/model/file_status.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/model/session_status.dart';
import 'package:localsend_app/model/state/send/send_session_state.dart';
import 'package:localsend_app/model/state/server/receive_session_state.dart';
import 'package:localsend_app/model/state/server/receiving_file.dart';
@@ -2,14 +2,10 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:localsend_app/constants.dart';
import 'package:common/common.dart';
import 'package:localsend_app/gen/assets.gen.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/cross_file.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:localsend_app/model/dto/info_dto.dart';
import 'package:localsend_app/model/dto/receive_request_response_dto.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/model/state/send/web/web_send_file.dart';
import 'package:localsend_app/model/state/send/web/web_send_session.dart';
import 'package:localsend_app/model/state/send/web/web_send_state.dart';
@@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:io';
import 'package:localsend_app/constants.dart';
import 'package:common/common.dart';
import 'package:localsend_app/model/cross_file.dart';
import 'package:localsend_app/model/state/server/server_state.dart';
import 'package:localsend_app/provider/network/server/controller/receive_controller.dart';
@@ -1,7 +1,5 @@
import 'package:common/common.dart';
import 'package:dio/dio.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/dto/info_dto.dart';
import 'package:localsend_app/provider/dio_provider.dart';
import 'package:localsend_app/provider/security_provider.dart';
import 'package:localsend_app/util/api_route_builder.dart';
+1 -2
View File
@@ -2,10 +2,9 @@ import 'dart:convert';
import 'dart:io';
import 'package:collection/collection.dart';
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/persistence/color_mode.dart';
import 'package:localsend_app/model/persistence/favorite_device.dart';
import 'package:localsend_app/model/persistence/receive_history_entry.dart';
@@ -1,4 +1,4 @@
import 'package:localsend_app/model/file_type.dart';
import 'package:common/common.dart';
import 'package:localsend_app/model/persistence/receive_history_entry.dart';
import 'package:localsend_app/provider/persistence_provider.dart';
import 'package:refena_flutter/refena_flutter.dart';
@@ -1,5 +1,5 @@
import 'package:collection/collection.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:common/common.dart';
import 'package:localsend_app/util/file_path_helper.dart';
import 'package:refena_flutter/refena_flutter.dart';
import 'package:uuid/uuid.dart';
@@ -2,8 +2,8 @@ import 'dart:convert' show utf8;
import 'dart:io';
import 'dart:typed_data';
import 'package:common/common.dart';
import 'package:localsend_app/model/cross_file.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/util/file_path_helper.dart';
import 'package:localsend_app/util/native/cache_helper.dart';
import 'package:localsend_app/util/native/cross_file_converters.dart';
+1 -1
View File
@@ -1,6 +1,6 @@
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/persistence/color_mode.dart';
import 'package:localsend_app/model/send_mode.dart';
import 'package:localsend_app/model/state/settings_state.dart';
+1 -1
View File
@@ -1,4 +1,4 @@
import 'package:localsend_app/model/device.dart';
import 'package:common/common.dart';
const _basePath = '/api/localsend';
+14
View File
@@ -0,0 +1,14 @@
import 'package:common/common.dart';
import 'package:flutter/material.dart';
extension DeviceTypeExt on DeviceType {
IconData get icon {
return switch (this) {
DeviceType.mobile => Icons.smartphone,
DeviceType.desktop => Icons.computer,
DeviceType.web => Icons.language,
DeviceType.headless => Icons.terminal,
DeviceType.server => Icons.dns,
};
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
import 'package:localsend_app/model/file_type.dart';
import 'package:common/common.dart';
/// Matches myFile-123 -> 123
final _fileNumberRegex = RegExp(r'^(.*)(?:-(\d+))$');
+15
View File
@@ -0,0 +1,15 @@
import 'package:common/common.dart';
import 'package:flutter/material.dart';
extension FileTypeExt on FileType {
IconData get icon {
return switch (this) {
FileType.image => Icons.image,
FileType.video => Icons.movie,
FileType.pdf => Icons.description,
FileType.text => Icons.subject,
FileType.apk => Icons.android,
FileType.other => Icons.file_present_sharp,
};
}
}
@@ -1,11 +1,11 @@
import 'dart:io';
import 'package:common/common.dart';
import 'package:device_apps/device_apps.dart';
import 'package:file_picker/file_picker.dart' as file_picker;
import 'package:flutter/foundation.dart';
import 'package:image_picker/image_picker.dart';
import 'package:localsend_app/model/cross_file.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/util/file_path_helper.dart';
import 'package:share_handler/share_handler.dart';
import 'package:wechat_assets_picker/wechat_assets_picker.dart';
+1 -1
View File
@@ -1,6 +1,6 @@
import 'package:common/common.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/foundation.dart';
import 'package:localsend_app/model/device.dart';
import 'package:slang/builder/model/enums.dart';
import 'package:slang/builder/utils/string_extensions.dart';
+4 -4
View File
@@ -1,12 +1,12 @@
import 'dart:async';
import 'package:file_picker/file_picker.dart';
import 'package:common/common.dart';
import 'package:file_picker/file_picker.dart' as file_picker;
import 'package:file_selector/file_selector.dart' as file_selector;
import 'package:file_selector/file_selector.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/file_type.dart' as file_type;
import 'package:localsend_app/pages/apk_picker_page.dart';
import 'package:localsend_app/provider/selection/selected_sending_files_provider.dart';
import 'package:localsend_app/theme.dart';
@@ -147,7 +147,7 @@ Future<void> _pickFiles(BuildContext context, Ref ref) async {
try {
if (checkPlatform([TargetPlatform.android])) {
// We also need to use the file_picker package because file_selector does not expose the raw path.
final result = await FilePicker.platform.pickFiles(allowMultiple: true);
final result = await file_picker.FilePicker.platform.pickFiles(allowMultiple: true);
if (result != null) {
await ref.redux(selectedSendingFilesProvider).dispatchAsync(AddFilesAction(
files: result.files,
@@ -265,7 +265,7 @@ Future<void> _pickClipboard(BuildContext context, Ref ref) async {
'clipboard_${now.year}-${now.month.twoDigitString}-${now.day.twoDigitString}_${now.hour.twoDigitString}-${now.minute.twoDigitString}.${determineImageType(image)}';
ref.redux(selectedSendingFilesProvider).dispatch(AddBinaryAction(
bytes: image,
fileType: file_type.FileType.image,
fileType: FileType.image,
fileName: fileName,
));
return;
+1 -1
View File
@@ -1,5 +1,5 @@
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/util/native/platform_check.dart';
import 'package:localsend_app/widget/dialogs/cannot_open_file_dialog.dart';
import 'package:open_filex/open_filex.dart';
@@ -1,8 +1,8 @@
import 'package:collection/collection.dart';
import 'package:common/common.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/gen/strings.g.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/provider/last_devices.provider.dart';
import 'package:localsend_app/provider/local_ip_provider.dart';
import 'package:localsend_app/provider/network/targeted_discovery_provider.dart';
+2 -1
View File
@@ -1,9 +1,10 @@
import 'dart:io';
import 'dart:typed_data';
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/model/cross_file.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:localsend_app/util/file_type_ext.dart';
import 'package:wechat_assets_picker/wechat_assets_picker.dart';
const double defaultThumbnailSize = 50;
@@ -1,5 +1,6 @@
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/util/device_type_ext.dart';
import 'package:localsend_app/util/ip_helper.dart';
import 'package:localsend_app/widget/custom_progress_bar.dart';
import 'package:localsend_app/widget/device_bage.dart';
@@ -1,6 +1,7 @@
import 'package:common/common.dart';
import 'package:flutter/material.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/provider/animation_provider.dart';
import 'package:localsend_app/util/device_type_ext.dart';
import 'package:localsend_app/widget/device_bage.dart';
import 'package:localsend_app/widget/list_tile/custom_list_tile.dart';
import 'package:localsend_app/widget/opacity_slideshow.dart';
+1 -1
View File
@@ -6,9 +6,9 @@
import 'dart:async' as _i4;
import 'dart:ui' as _i12;
import 'package:common/common.dart' as _i13;
import 'package:flutter/material.dart' as _i8;
import 'package:localsend_app/gen/strings.g.dart' as _i10;
import 'package:localsend_app/model/device.dart' as _i13;
import 'package:localsend_app/model/persistence/color_mode.dart' as _i9;
import 'package:localsend_app/model/persistence/favorite_device.dart' as _i6;
import 'package:localsend_app/model/persistence/receive_history_entry.dart'
@@ -1,11 +1,5 @@
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:localsend_app/model/dto/info_register_dto.dart';
import 'package:localsend_app/model/dto/multicast_dto.dart';
import 'package:localsend_app/model/dto/prepare_upload_request_dto.dart';
import 'package:localsend_app/model/dto/prepare_upload_response_dto.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:test/test.dart';
void main() {
@@ -1,4 +1,4 @@
import 'package:localsend_app/model/device.dart';
import 'package:common/common.dart';
import 'package:localsend_app/provider/last_devices.provider.dart';
import 'package:refena_flutter/refena_flutter.dart';
import 'package:test/test.dart';
@@ -1,4 +1,4 @@
import 'package:localsend_app/model/file_type.dart';
import 'package:common/common.dart';
import 'package:localsend_app/model/persistence/receive_history_entry.dart';
import 'package:localsend_app/provider/receive_history_provider.dart';
import 'package:mockito/mockito.dart';
@@ -1,4 +1,4 @@
import 'package:localsend_app/model/device.dart';
import 'package:common/common.dart';
import 'package:localsend_app/util/api_route_builder.dart';
import 'package:test/test.dart';
+2 -2
View File
@@ -1,5 +1,5 @@
import 'package:cli/main.dart' as m;
void main(List<String> arguments) {
m.main(arguments);
Future<void> main(List<String> arguments) async {
await m.main(arguments);
}
+16
View File
@@ -80,6 +80,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.3"
dart_mappable:
dependency: transitive
description:
name: dart_mappable
sha256: c2d4775336d7166590766a1c4451edde2a302efe2a2a35ac09eef9025102e10f
url: "https://pub.dev"
source: hosted
version: "4.0.1"
file:
dependency: transitive
description:
@@ -328,6 +336,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.5.6"
type_plus:
dependency: transitive
description:
name: type_plus
sha256: "2e33cfac2e129297d5874567bdf7587502ec359881e9318551e014d91b02f84a"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
typed_data:
dependency: transitive
description:
+13 -1
View File
@@ -1 +1,13 @@
export 'src/common_base.dart';
export 'package:common/src/constants.dart';
export 'package:common/src/model/device.dart';
export 'package:common/src/model/dto/file_dto.dart';
export 'package:common/src/model/dto/info_dto.dart';
export 'package:common/src/model/dto/info_register_dto.dart';
export 'package:common/src/model/dto/multicast_dto.dart';
export 'package:common/src/model/dto/prepare_upload_request_dto.dart';
export 'package:common/src/model/dto/prepare_upload_response_dto.dart';
export 'package:common/src/model/dto/receive_request_response_dto.dart';
export 'package:common/src/model/dto/register_dto.dart';
export 'package:common/src/model/file_status.dart';
export 'package:common/src/model/file_type.dart';
export 'package:common/src/model/session_status.dart';
-6
View File
@@ -1,6 +0,0 @@
// TODO: Put public facing types in this file.
/// Checks if you are awesome. Spoiler: you are.
class Awesome {
bool get isAwesome => true;
}
@@ -1,19 +1,14 @@
import 'package:dart_mappable/dart_mappable.dart';
import 'package:flutter/material.dart';
part 'device.mapper.dart';
@MappableEnum(defaultValue: DeviceType.desktop)
enum DeviceType {
mobile(Icons.smartphone),
desktop(Icons.computer),
web(Icons.language),
headless(Icons.terminal),
server(Icons.dns);
const DeviceType(this.icon);
final IconData icon;
mobile,
desktop,
web,
headless,
server,
}
/// Internal device model.
@@ -1,6 +1,6 @@
import 'package:collection/collection.dart';
import 'package:common/src/model/file_type.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/file_type.dart';
import 'package:mime/mime.dart';
/// The file DTO that is sent between server and client.
@@ -1,6 +1,6 @@
import 'package:common/src/constants.dart';
import 'package:common/src/model/device.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/model/device.dart';
part 'info_dto.mapper.dart';
@@ -1,7 +1,7 @@
import 'package:common/src/constants.dart';
import 'package:common/src/model/device.dart';
import 'package:common/src/model/dto/multicast_dto.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/dto/multicast_dto.dart';
part 'info_register_dto.mapper.dart';
@@ -33,7 +33,7 @@ class InfoRegisterDto with InfoRegisterDtoMappable {
static const fromJson = InfoRegisterDtoMapper.fromJson;
}
extension RegisterDtoExt on InfoRegisterDto {
extension InfoRegisterDtoExt on InfoRegisterDto {
Device toDevice(String ip, int ownPort, bool ownHttps) {
return Device(
ip: ip,
@@ -1,6 +1,5 @@
import 'package:common/common.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/model/device.dart';
part 'multicast_dto.mapper.dart';
@@ -36,7 +35,7 @@ class MulticastDto with MulticastDtoMappable {
static const fromJson = MulticastDtoMapper.fromJson;
}
extension InfoToDeviceExt on MulticastDto {
extension MulticastDtoToDeviceExt on MulticastDto {
Device toDevice(String ip, int ownPort, bool ownHttps) {
return Device(
ip: ip,
@@ -1,6 +1,6 @@
import 'package:common/src/model/dto/file_dto.dart';
import 'package:common/src/model/dto/info_register_dto.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:localsend_app/model/dto/info_register_dto.dart';
part 'prepare_upload_request_dto.mapper.dart';
@@ -1,6 +1,6 @@
import 'package:common/src/model/dto/file_dto.dart';
import 'package:common/src/model/dto/info_dto.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/model/dto/file_dto.dart';
import 'package:localsend_app/model/dto/info_dto.dart';
part 'receive_request_response_dto.mapper.dart';
@@ -1,7 +1,7 @@
import 'package:common/src/constants.dart';
import 'package:common/src/model/device.dart';
import 'package:common/src/model/dto/multicast_dto.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:localsend_app/constants.dart';
import 'package:localsend_app/model/device.dart';
import 'package:localsend_app/model/dto/multicast_dto.dart';
part 'register_dto.mapper.dart';
+15
View File
@@ -0,0 +1,15 @@
import 'package:dart_mappable/dart_mappable.dart';
part 'file_type.mapper.dart';
/// Categorization of one file.
/// We use this information for a better UX.
@MappableEnum(defaultValue: FileType.other)
enum FileType {
image,
video,
pdf,
text,
apk,
other,
}
+5 -2
View File
@@ -6,10 +6,13 @@ publish_to: "none"
environment:
sdk: ^3.1.1
# Add regular dependencies here.
dependencies:
# path: ^1.8.0
collection: ^1.17.2 # allow newer versions, so it can compile with newer Flutter versions
dart_mappable: 4.0.1
mime: 1.0.4
dev_dependencies:
build_runner: 2.4.7
dart_mappable_builder: 4.0.1
lints: ^2.0.0
test: ^1.21.0