Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement attachments saving (#11) #12

Merged
merged 47 commits into from
Sep 16, 2022
Merged

Implement attachments saving (#11) #12

merged 47 commits into from
Sep 16, 2022

Conversation

krida2000
Copy link
Contributor

@krida2000 krida2000 commented Jun 22, 2022

Resolves #11

Synopsis

При разработке галереи была обусловлена возможность скачивать прикрепления.

Solution

Необходимый функционал будет добавлен.

Checklist

  • Created PR:
    • In draft mode
    • Name contains issue reference
    • Has type and k:: labels applied
  • Before review:
    • Documentation is updated (if required)
    • Tests are updated (if required)
    • Changes conform code style
    • CHANGELOG entry is added (if required)
    • FCM (final commit message) is posted or updated
    • Draft mode is removed
  • Review is completed and changes are approved
    • FCM (final commit message) is approved
  • Before merge:
    • Milestone is set
    • PR's name and description are correct and up-to-date
    • All temporary labels are removed

@krida2000 krida2000 marked this pull request as draft June 22, 2022 07:15
@krida2000 krida2000 changed the title Bootstrap attachments saving Bootstrap attachments saving (#11) Jun 22, 2022
@krida2000 krida2000 self-assigned this Jun 22, 2022
@krida2000 krida2000 added feature New feature or request k::UI/UX UI (user interface) and UX (user experience) changes labels Jun 22, 2022
@krida2000 krida2000 added this to the 0.1.0-alpha.6 milestone Jun 22, 2022
@krida2000
Copy link
Contributor Author

krida2000 commented Jun 22, 2022

FCM

Implement `Attachment`s downloading (#12, #11)

- add `Config.downloads` directory specifying
- impl `FileAttachment`s downloading and determining its download status
- impl downloading, saving and sharing `GalleryItem`s

Additionally:
- fix `PreciseDateTime.subtract` incorrect behaviour
- refactor `PlatformUtils` into `PlatformUtilsImpl` to allow mocking

@krida2000 krida2000 changed the title Bootstrap attachments saving (#11) Implement attachments saving (#11) Jun 22, 2022
@krida2000
Copy link
Contributor Author

krida2000 commented Jun 24, 2022

@SleepySquash Нужно еще добавить сохранение пути к файлу при его отправке, чтобы файлы которые мы отправляем нам всегда показывались как уже загруженые. Предлагаю это сделать после мержа статусов сообщений, так как там мы очень сильно поменяли алгоритм отправки аттачметов, а сейчас оформить Issue на это.

@krida2000
Copy link
Contributor Author

@SleepySquash По тому где хранить статусы аттачментов, я вижу два варианта:

  1. Оставить как есть
  2. Перенести логику определение того скачан ли файл в контроллер сообщения чата(контроллер для chat_item)

Не уверен что из этого лучше. Может есть еще какие-то варианты?

@SleepySquash
Copy link
Contributor

SleepySquash commented Jun 24, 2022

@SleepySquash По тому где хранить статусы аттачментов, я вижу два варианта:

  1. Оставить как есть
  2. Перенести логику определение того скачан ли файл в контроллер сообщения чата(контроллер для chat_item)

Не уверен что из этого лучше. Может есть еще какие-то варианты?

@krida2000, я тоже не очень уверен, но, наверное, правильнее оставить статусы всё-таки в модельках, т.к. можно представить, как кто-то захочет использовать наш слой бизнес логики в своём приложении, но полностью переделать интерфейс. Тогда получится, что он потерял бы определение скачанности аттачментов и их статусы вместе со слоем интерфейса, поэтому эта фича должна лежать в бизнес-логике.

@krida2000 krida2000 marked this pull request as ready for review June 24, 2022 08:36
@krida2000 krida2000 requested a review from SleepySquash June 24, 2022 08:37
Copy link
Contributor

@SleepySquash SleepySquash left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@krida2000, просьба попробовать перенести логику скачивания и определения скачанности в модельку FileAttachment. И если получится и станет чище и опрятнее, то хочется ещё как-то замокать PlatformUtils, чтобы симулировать общение с платформой в тестах.

test/e2e/features/home/chat/attachments_saving/.feature Outdated Show resolved Hide resolved
lib/ui/page/home/page/chat/controller.dart Outdated Show resolved Hide resolved
lib/ui/page/home/widget/gallery_popup.dart Outdated Show resolved Hide resolved
lib/util/platform_utils.dart Outdated Show resolved Hide resolved
lib/ui/page/home/page/chat/widget/chat_item.dart Outdated Show resolved Hide resolved
lib/ui/page/home/page/chat/controller.dart Outdated Show resolved Hide resolved
@SleepySquash SleepySquash marked this pull request as draft July 4, 2022 10:56
lib/store/chat_rx.dart Outdated Show resolved Hide resolved
lib/store/chat_rx.dart Outdated Show resolved Hide resolved
lib/store/chat_rx.dart Outdated Show resolved Hide resolved
lib/util/platform_utils.dart Outdated Show resolved Hide resolved
lib/domain/model/attachment.dart Outdated Show resolved Hide resolved
test/e2e/steps/wait_until_file_status.dart Outdated Show resolved Hide resolved
lib/util/web/web.dart Outdated Show resolved Hide resolved
@SleepySquash SleepySquash marked this pull request as draft September 13, 2022 09:09
@SleepySquash SleepySquash marked this pull request as ready for review September 15, 2022 11:55
lib/store/chat_rx.dart Outdated Show resolved Hide resolved
pubspec.yaml Outdated Show resolved Hide resolved
@SleepySquash SleepySquash added the k::refactor Refactor changes of existing code label Sep 16, 2022
@SleepySquash SleepySquash added the enhancement Improvement of existing features or bugfix label Sep 16, 2022
@tyranron tyranron added the k::config Configuration changes of application label Sep 16, 2022
@tyranron tyranron enabled auto-merge (squash) September 16, 2022 15:24
@tyranron tyranron merged commit 1ac18a8 into main Sep 16, 2022
@tyranron tyranron deleted the 11-attachments-saving branch September 16, 2022 15:42
github-actions bot added a commit that referenced this pull request Sep 16, 2022
- add `Config.downloads` directory specifying
- impl `FileAttachment`s downloading and determining its download status
- impl downloading, saving and sharing `GalleryItem`s

Additionally:
- fix `PreciseDateTime.subtract` incorrect behaviour
- refactor `PlatformUtils` into `PlatformUtilsImpl` to allow mocking

Co-authored-by: SleepySquash <[email protected]> 1ac18a8
@krida2000 krida2000 mentioned this pull request Sep 19, 2022
14 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improvement of existing features or bugfix feature New feature or request k::config Configuration changes of application k::refactor Refactor changes of existing code k::UI/UX UI (user interface) and UX (user experience) changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement attachments saving
3 participants