diff --git a/app/lib/gen/strings.g.dart b/app/lib/gen/strings.g.dart index beddfcfd..9d1a163b 100644 --- a/app/lib/gen/strings.g.dart +++ b/app/lib/gen/strings.g.dart @@ -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 diff --git a/app/lib/gen/strings_ru.g.dart b/app/lib/gen/strings_ru.g.dart index 34e81592..f535977c 100644 --- a/app/lib/gen/strings_ru.g.dart +++ b/app/lib/gen/strings_ru.g.dart @@ -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 diff --git a/app/lib/gen/strings_uk.g.dart b/app/lib/gen/strings_uk.g.dart index 9b804be0..41f33385 100644 --- a/app/lib/gen/strings_uk.g.dart +++ b/app/lib/gen/strings_uk.g.dart @@ -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 diff --git a/app/lib/gen/strings_zh_CN.g.dart b/app/lib/gen/strings_zh_CN.g.dart index b79ef777..e8407558 100644 --- a/app/lib/gen/strings_zh_CN.g.dart +++ b/app/lib/gen/strings_zh_CN.g.dart @@ -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); diff --git a/app/lib/init.dart b/app/lib/init.dart index f199c462..ef46e600 100644 --- a/app/lib/init.dart +++ b/app/lib/init.dart @@ -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'; diff --git a/app/lib/model/cross_file.dart b/app/lib/model/cross_file.dart index 614cbdae..ba7d1021 100644 --- a/app/lib/model/cross_file.dart +++ b/app/lib/model/cross_file.dart @@ -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'; diff --git a/app/lib/model/file_type.dart b/app/lib/model/file_type.dart deleted file mode 100644 index 7973b125..00000000 --- a/app/lib/model/file_type.dart +++ /dev/null @@ -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; -} diff --git a/app/lib/model/persistence/receive_history_entry.dart b/app/lib/model/persistence/receive_history_entry.dart index 07e1c49d..9b082fc0 100644 --- a/app/lib/model/persistence/receive_history_entry.dart +++ b/app/lib/model/persistence/receive_history_entry.dart @@ -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'; diff --git a/app/lib/model/state/nearby_devices_state.dart b/app/lib/model/state/nearby_devices_state.dart index 57d47885..17d87d13 100644 --- a/app/lib/model/state/nearby_devices_state.dart +++ b/app/lib/model/state/nearby_devices_state.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'; diff --git a/app/lib/model/state/send/send_session_state.dart b/app/lib/model/state/send/send_session_state.dart index 3ed2bbdf..659ab705 100644 --- a/app/lib/model/state/send/send_session_state.dart +++ b/app/lib/model/state/send/send_session_state.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'; diff --git a/app/lib/model/state/send/sending_file.dart b/app/lib/model/state/send/sending_file.dart index 8f8516ad..de63c9d3 100644 --- a/app/lib/model/state/send/sending_file.dart +++ b/app/lib/model/state/send/sending_file.dart @@ -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'; diff --git a/app/lib/model/state/send/web/web_send_file.dart b/app/lib/model/state/send/web/web_send_file.dart index b0281071..e0617189 100644 --- a/app/lib/model/state/send/web/web_send_file.dart +++ b/app/lib/model/state/send/web/web_send_file.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'; diff --git a/app/lib/model/state/server/receive_session_state.dart b/app/lib/model/state/server/receive_session_state.dart index a28a0e3f..4f1e77cf 100644 --- a/app/lib/model/state/server/receive_session_state.dart +++ b/app/lib/model/state/server/receive_session_state.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'; diff --git a/app/lib/model/state/server/receiving_file.dart b/app/lib/model/state/server/receiving_file.dart index 87d85dc6..bd338a11 100644 --- a/app/lib/model/state/server/receiving_file.dart +++ b/app/lib/model/state/server/receiving_file.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'; diff --git a/app/lib/model/state/settings_state.dart b/app/lib/model/state/settings_state.dart index 6533d505..8aa50375 100644 --- a/app/lib/model/state/settings_state.dart +++ b/app/lib/model/state/settings_state.dart @@ -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'; diff --git a/app/lib/pages/apk_picker_page.dart b/app/lib/pages/apk_picker_page.dart index 7bb23075..eacecbd1 100644 --- a/app/lib/pages/apk_picker_page.dart +++ b/app/lib/pages/apk_picker_page.dart @@ -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'; diff --git a/app/lib/pages/progress_page.dart b/app/lib/pages/progress_page.dart index 6c1d2314..53b87955 100644 --- a/app/lib/pages/progress_page.dart +++ b/app/lib/pages/progress_page.dart @@ -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'; diff --git a/app/lib/pages/receive_options_page.dart b/app/lib/pages/receive_options_page.dart index 7b933755..f38cd638 100644 --- a/app/lib/pages/receive_options_page.dart +++ b/app/lib/pages/receive_options_page.dart @@ -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'; diff --git a/app/lib/pages/receive_page.dart b/app/lib/pages/receive_page.dart index 16396866..b23d2fd1 100644 --- a/app/lib/pages/receive_page.dart +++ b/app/lib/pages/receive_page.dart @@ -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'; diff --git a/app/lib/pages/selected_files_page.dart b/app/lib/pages/selected_files_page.dart index 4669bf42..f9795cbb 100644 --- a/app/lib/pages/selected_files_page.dart +++ b/app/lib/pages/selected_files_page.dart @@ -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'; diff --git a/app/lib/pages/send_page.dart b/app/lib/pages/send_page.dart index 3264c769..32649e92 100644 --- a/app/lib/pages/send_page.dart +++ b/app/lib/pages/send_page.dart @@ -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'; diff --git a/app/lib/pages/tabs/send_tab.dart b/app/lib/pages/tabs/send_tab.dart index 37e68f73..bedb87a5 100644 --- a/app/lib/pages/tabs/send_tab.dart +++ b/app/lib/pages/tabs/send_tab.dart @@ -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'; diff --git a/app/lib/pages/tabs/send_tab_vm.dart b/app/lib/pages/tabs/send_tab_vm.dart index e6d6ff86..5c3c2840 100644 --- a/app/lib/pages/tabs/send_tab_vm.dart +++ b/app/lib/pages/tabs/send_tab_vm.dart @@ -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'; diff --git a/app/lib/pages/tabs/settings_tab.dart b/app/lib/pages/tabs/settings_tab.dart index 6ed77a42..09000e02 100644 --- a/app/lib/pages/tabs/settings_tab.dart +++ b/app/lib/pages/tabs/settings_tab.dart @@ -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'; diff --git a/app/lib/provider/device_info_provider.dart b/app/lib/provider/device_info_provider.dart index e5b5751b..2b586e34 100644 --- a/app/lib/provider/device_info_provider.dart +++ b/app/lib/provider/device_info_provider.dart @@ -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'; diff --git a/app/lib/provider/last_devices.provider.dart b/app/lib/provider/last_devices.provider.dart index 937a2753..631b132a 100644 --- a/app/lib/provider/last_devices.provider.dart +++ b/app/lib/provider/last_devices.provider.dart @@ -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. diff --git a/app/lib/provider/network/multicast_provider.dart b/app/lib/provider/network/multicast_provider.dart index 9b757339..c0951bef 100644 --- a/app/lib/provider/network/multicast_provider.dart +++ b/app/lib/provider/network/multicast_provider.dart @@ -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'; diff --git a/app/lib/provider/network/nearby_devices_provider.dart b/app/lib/provider/network/nearby_devices_provider.dart index ef3c9710..4550cc8b 100644 --- a/app/lib/provider/network/nearby_devices_provider.dart +++ b/app/lib/provider/network/nearby_devices_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'; diff --git a/app/lib/provider/network/send_provider.dart b/app/lib/provider/network/send_provider.dart index 556bb1ce..616d7aae 100644 --- a/app/lib/provider/network/send_provider.dart +++ b/app/lib/provider/network/send_provider.dart @@ -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'; diff --git a/app/lib/provider/network/server/controller/receive_controller.dart b/app/lib/provider/network/server/controller/receive_controller.dart index 0c391783..a1f321c6 100644 --- a/app/lib/provider/network/server/controller/receive_controller.dart +++ b/app/lib/provider/network/server/controller/receive_controller.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'; diff --git a/app/lib/provider/network/server/controller/send_controller.dart b/app/lib/provider/network/server/controller/send_controller.dart index b127e59e..bf9973b1 100644 --- a/app/lib/provider/network/server/controller/send_controller.dart +++ b/app/lib/provider/network/server/controller/send_controller.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'; diff --git a/app/lib/provider/network/server/server_provider.dart b/app/lib/provider/network/server/server_provider.dart index 70d8ac19..fe7c54e3 100644 --- a/app/lib/provider/network/server/server_provider.dart +++ b/app/lib/provider/network/server/server_provider.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'; diff --git a/app/lib/provider/network/targeted_discovery_provider.dart b/app/lib/provider/network/targeted_discovery_provider.dart index af736293..14b43a7b 100644 --- a/app/lib/provider/network/targeted_discovery_provider.dart +++ b/app/lib/provider/network/targeted_discovery_provider.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'; diff --git a/app/lib/provider/persistence_provider.dart b/app/lib/provider/persistence_provider.dart index 00fe5673..490e6bfe 100644 --- a/app/lib/provider/persistence_provider.dart +++ b/app/lib/provider/persistence_provider.dart @@ -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'; diff --git a/app/lib/provider/receive_history_provider.dart b/app/lib/provider/receive_history_provider.dart index 33ddbd25..796b01c1 100644 --- a/app/lib/provider/receive_history_provider.dart +++ b/app/lib/provider/receive_history_provider.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'; diff --git a/app/lib/provider/selection/selected_receiving_files_provider.dart b/app/lib/provider/selection/selected_receiving_files_provider.dart index 30c21cec..a3b68b5d 100644 --- a/app/lib/provider/selection/selected_receiving_files_provider.dart +++ b/app/lib/provider/selection/selected_receiving_files_provider.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'; diff --git a/app/lib/provider/selection/selected_sending_files_provider.dart b/app/lib/provider/selection/selected_sending_files_provider.dart index 461c0b21..5cf3fb1c 100644 --- a/app/lib/provider/selection/selected_sending_files_provider.dart +++ b/app/lib/provider/selection/selected_sending_files_provider.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'; diff --git a/app/lib/provider/settings_provider.dart b/app/lib/provider/settings_provider.dart index 67f28c89..414f4073 100644 --- a/app/lib/provider/settings_provider.dart +++ b/app/lib/provider/settings_provider.dart @@ -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'; diff --git a/app/lib/util/api_route_builder.dart b/app/lib/util/api_route_builder.dart index 9f5050db..b7574ec3 100644 --- a/app/lib/util/api_route_builder.dart +++ b/app/lib/util/api_route_builder.dart @@ -1,4 +1,4 @@ -import 'package:localsend_app/model/device.dart'; +import 'package:common/common.dart'; const _basePath = '/api/localsend'; diff --git a/app/lib/util/device_type_ext.dart b/app/lib/util/device_type_ext.dart new file mode 100644 index 00000000..c72da4f3 --- /dev/null +++ b/app/lib/util/device_type_ext.dart @@ -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, + }; + } +} diff --git a/app/lib/util/file_path_helper.dart b/app/lib/util/file_path_helper.dart index 11cbd154..2a6a5f90 100644 --- a/app/lib/util/file_path_helper.dart +++ b/app/lib/util/file_path_helper.dart @@ -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+))$'); diff --git a/app/lib/util/file_type_ext.dart b/app/lib/util/file_type_ext.dart new file mode 100644 index 00000000..a54e553b --- /dev/null +++ b/app/lib/util/file_type_ext.dart @@ -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, + }; + } +} diff --git a/app/lib/util/native/cross_file_converters.dart b/app/lib/util/native/cross_file_converters.dart index 584322fe..1cfa6157 100644 --- a/app/lib/util/native/cross_file_converters.dart +++ b/app/lib/util/native/cross_file_converters.dart @@ -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'; diff --git a/app/lib/util/native/device_info_helper.dart b/app/lib/util/native/device_info_helper.dart index 9987575c..77ea76d9 100644 --- a/app/lib/util/native/device_info_helper.dart +++ b/app/lib/util/native/device_info_helper.dart @@ -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'; diff --git a/app/lib/util/native/file_picker.dart b/app/lib/util/native/file_picker.dart index 8c616775..13e53730 100644 --- a/app/lib/util/native/file_picker.dart +++ b/app/lib/util/native/file_picker.dart @@ -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 _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 _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; diff --git a/app/lib/util/native/open_file.dart b/app/lib/util/native/open_file.dart index 413bff27..342cbf61 100644 --- a/app/lib/util/native/open_file.dart +++ b/app/lib/util/native/open_file.dart @@ -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'; diff --git a/app/lib/widget/dialogs/address_input_dialog.dart b/app/lib/widget/dialogs/address_input_dialog.dart index f4a9a61f..47596475 100644 --- a/app/lib/widget/dialogs/address_input_dialog.dart +++ b/app/lib/widget/dialogs/address_input_dialog.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'; diff --git a/app/lib/widget/file_thumbnail.dart b/app/lib/widget/file_thumbnail.dart index f31f1361..8ebe65a1 100644 --- a/app/lib/widget/file_thumbnail.dart +++ b/app/lib/widget/file_thumbnail.dart @@ -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; diff --git a/app/lib/widget/list_tile/device_list_tile.dart b/app/lib/widget/list_tile/device_list_tile.dart index 21ac96d8..ba3af21c 100644 --- a/app/lib/widget/list_tile/device_list_tile.dart +++ b/app/lib/widget/list_tile/device_list_tile.dart @@ -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'; diff --git a/app/lib/widget/list_tile/device_placeholder_list_tile.dart b/app/lib/widget/list_tile/device_placeholder_list_tile.dart index f02b6880..d46321f4 100644 --- a/app/lib/widget/list_tile/device_placeholder_list_tile.dart +++ b/app/lib/widget/list_tile/device_placeholder_list_tile.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'; diff --git a/app/test/mocks.mocks.dart b/app/test/mocks.mocks.dart index b3d7cb63..14d5b5ff 100644 --- a/app/test/mocks.mocks.dart +++ b/app/test/mocks.mocks.dart @@ -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' diff --git a/app/test/unit/model/dto/prepare_upload_request_dto_test.dart b/app/test/unit/model/dto/prepare_upload_request_dto_test.dart index a9646a91..4d781ebe 100644 --- a/app/test/unit/model/dto/prepare_upload_request_dto_test.dart +++ b/app/test/unit/model/dto/prepare_upload_request_dto_test.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() { diff --git a/app/test/unit/provider/last_devices_provider_test.dart b/app/test/unit/provider/last_devices_provider_test.dart index 68dfacff..ab0ee457 100644 --- a/app/test/unit/provider/last_devices_provider_test.dart +++ b/app/test/unit/provider/last_devices_provider_test.dart @@ -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'; diff --git a/app/test/unit/provider/receive_history_provider_test.dart b/app/test/unit/provider/receive_history_provider_test.dart index 5177ecbc..9a784b8d 100644 --- a/app/test/unit/provider/receive_history_provider_test.dart +++ b/app/test/unit/provider/receive_history_provider_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'; diff --git a/app/test/unit/util/api_route_builder_test.dart b/app/test/unit/util/api_route_builder_test.dart index 5a940d7c..389e022b 100644 --- a/app/test/unit/util/api_route_builder_test.dart +++ b/app/test/unit/util/api_route_builder_test.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'; diff --git a/cli/bin/cli.dart b/cli/bin/cli.dart index c684c132..f3e4ba16 100644 --- a/cli/bin/cli.dart +++ b/cli/bin/cli.dart @@ -1,5 +1,5 @@ import 'package:cli/main.dart' as m; -void main(List arguments) { - m.main(arguments); +Future main(List arguments) async { + await m.main(arguments); } diff --git a/cli/pubspec.lock b/cli/pubspec.lock index 2a0ba1dc..f6668397 100644 --- a/cli/pubspec.lock +++ b/cli/pubspec.lock @@ -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: diff --git a/common/lib/common.dart b/common/lib/common.dart index 8f479357..fbb8fc0d 100644 --- a/common/lib/common.dart +++ b/common/lib/common.dart @@ -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'; diff --git a/common/lib/src/common_base.dart b/common/lib/src/common_base.dart deleted file mode 100644 index e8a6f159..00000000 --- a/common/lib/src/common_base.dart +++ /dev/null @@ -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; -} diff --git a/app/lib/constants.dart b/common/lib/src/constants.dart similarity index 100% rename from app/lib/constants.dart rename to common/lib/src/constants.dart diff --git a/app/lib/model/device.dart b/common/lib/src/model/device.dart similarity index 76% rename from app/lib/model/device.dart rename to common/lib/src/model/device.dart index a8c57106..14ac40f3 100644 --- a/app/lib/model/device.dart +++ b/common/lib/src/model/device.dart @@ -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. diff --git a/app/lib/model/device.mapper.dart b/common/lib/src/model/device.mapper.dart similarity index 100% rename from app/lib/model/device.mapper.dart rename to common/lib/src/model/device.mapper.dart diff --git a/app/lib/model/dto/file_dto.dart b/common/lib/src/model/dto/file_dto.dart similarity index 98% rename from app/lib/model/dto/file_dto.dart rename to common/lib/src/model/dto/file_dto.dart index bd0e5a36..0d8e57c0 100644 --- a/app/lib/model/dto/file_dto.dart +++ b/common/lib/src/model/dto/file_dto.dart @@ -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. diff --git a/app/lib/model/dto/info_dto.dart b/common/lib/src/model/dto/info_dto.dart similarity index 91% rename from app/lib/model/dto/info_dto.dart rename to common/lib/src/model/dto/info_dto.dart index 73640562..e44a8573 100644 --- a/app/lib/model/dto/info_dto.dart +++ b/common/lib/src/model/dto/info_dto.dart @@ -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'; diff --git a/app/lib/model/dto/info_dto.mapper.dart b/common/lib/src/model/dto/info_dto.mapper.dart similarity index 100% rename from app/lib/model/dto/info_dto.mapper.dart rename to common/lib/src/model/dto/info_dto.mapper.dart diff --git a/app/lib/model/dto/info_register_dto.dart b/common/lib/src/model/dto/info_register_dto.dart similarity index 87% rename from app/lib/model/dto/info_register_dto.dart rename to common/lib/src/model/dto/info_register_dto.dart index 9b96ae96..962031c8 100644 --- a/app/lib/model/dto/info_register_dto.dart +++ b/common/lib/src/model/dto/info_register_dto.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, diff --git a/app/lib/model/dto/info_register_dto.mapper.dart b/common/lib/src/model/dto/info_register_dto.mapper.dart similarity index 100% rename from app/lib/model/dto/info_register_dto.mapper.dart rename to common/lib/src/model/dto/info_register_dto.mapper.dart diff --git a/app/lib/model/dto/multicast_dto.dart b/common/lib/src/model/dto/multicast_dto.dart similarity index 90% rename from app/lib/model/dto/multicast_dto.dart rename to common/lib/src/model/dto/multicast_dto.dart index cdd9658b..0d18d27f 100644 --- a/app/lib/model/dto/multicast_dto.dart +++ b/common/lib/src/model/dto/multicast_dto.dart @@ -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, diff --git a/app/lib/model/dto/multicast_dto.mapper.dart b/common/lib/src/model/dto/multicast_dto.mapper.dart similarity index 100% rename from app/lib/model/dto/multicast_dto.mapper.dart rename to common/lib/src/model/dto/multicast_dto.mapper.dart diff --git a/app/lib/model/dto/prepare_upload_request_dto.dart b/common/lib/src/model/dto/prepare_upload_request_dto.dart similarity index 77% rename from app/lib/model/dto/prepare_upload_request_dto.dart rename to common/lib/src/model/dto/prepare_upload_request_dto.dart index f11fffd9..0431edd0 100644 --- a/app/lib/model/dto/prepare_upload_request_dto.dart +++ b/common/lib/src/model/dto/prepare_upload_request_dto.dart @@ -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'; diff --git a/app/lib/model/dto/prepare_upload_request_dto.mapper.dart b/common/lib/src/model/dto/prepare_upload_request_dto.mapper.dart similarity index 100% rename from app/lib/model/dto/prepare_upload_request_dto.mapper.dart rename to common/lib/src/model/dto/prepare_upload_request_dto.mapper.dart diff --git a/app/lib/model/dto/prepare_upload_response_dto.dart b/common/lib/src/model/dto/prepare_upload_response_dto.dart similarity index 100% rename from app/lib/model/dto/prepare_upload_response_dto.dart rename to common/lib/src/model/dto/prepare_upload_response_dto.dart diff --git a/app/lib/model/dto/prepare_upload_response_dto.mapper.dart b/common/lib/src/model/dto/prepare_upload_response_dto.mapper.dart similarity index 100% rename from app/lib/model/dto/prepare_upload_response_dto.mapper.dart rename to common/lib/src/model/dto/prepare_upload_response_dto.mapper.dart diff --git a/app/lib/model/dto/receive_request_response_dto.dart b/common/lib/src/model/dto/receive_request_response_dto.dart similarity index 78% rename from app/lib/model/dto/receive_request_response_dto.dart rename to common/lib/src/model/dto/receive_request_response_dto.dart index 523e22c3..08038a7f 100644 --- a/app/lib/model/dto/receive_request_response_dto.dart +++ b/common/lib/src/model/dto/receive_request_response_dto.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'; diff --git a/app/lib/model/dto/receive_request_response_dto.mapper.dart b/common/lib/src/model/dto/receive_request_response_dto.mapper.dart similarity index 100% rename from app/lib/model/dto/receive_request_response_dto.mapper.dart rename to common/lib/src/model/dto/receive_request_response_dto.mapper.dart diff --git a/app/lib/model/dto/register_dto.dart b/common/lib/src/model/dto/register_dto.dart similarity index 88% rename from app/lib/model/dto/register_dto.dart rename to common/lib/src/model/dto/register_dto.dart index f583fc2e..fa416795 100644 --- a/app/lib/model/dto/register_dto.dart +++ b/common/lib/src/model/dto/register_dto.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'; diff --git a/app/lib/model/dto/register_dto.mapper.dart b/common/lib/src/model/dto/register_dto.mapper.dart similarity index 100% rename from app/lib/model/dto/register_dto.mapper.dart rename to common/lib/src/model/dto/register_dto.mapper.dart diff --git a/app/lib/model/file_status.dart b/common/lib/src/model/file_status.dart similarity index 100% rename from app/lib/model/file_status.dart rename to common/lib/src/model/file_status.dart diff --git a/common/lib/src/model/file_type.dart b/common/lib/src/model/file_type.dart new file mode 100644 index 00000000..6e5675dd --- /dev/null +++ b/common/lib/src/model/file_type.dart @@ -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, +} diff --git a/app/lib/model/file_type.mapper.dart b/common/lib/src/model/file_type.mapper.dart similarity index 100% rename from app/lib/model/file_type.mapper.dart rename to common/lib/src/model/file_type.mapper.dart diff --git a/app/lib/model/session_status.dart b/common/lib/src/model/session_status.dart similarity index 100% rename from app/lib/model/session_status.dart rename to common/lib/src/model/session_status.dart diff --git a/common/pubspec.yaml b/common/pubspec.yaml index 6eba7a5e..8231e7ee 100644 --- a/common/pubspec.yaml +++ b/common/pubspec.yaml @@ -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