Commit Graph

22 Commits (de93b05cac26a5eb1bac1dd27a4022b3b1182244)

Author SHA1 Message Date
Colin Lee de93b05cac For #2754 Add tab cards to share sheet (#5493)
* For #2754 Add tab cards to share sheet

* For #2754: Fix background near rounded corners and ShareButtonAppearanceTest

* Add license to share_tab_item
5 years ago
Mugurell c5330c6880 For 5092 - Show a Snackbar with retry option if sharing to devices fails (#5158)
* For #5092 - Show a Snackbar with retry option if sharing to devices fails

ShareController will contain all the business logic for checking the result
status of the `share to device` operations. When this fails it will show a
snackbar which also offer the possibility to retry the just failed operation.
To allow this even in the event the user has closed the share fragment we'll
use a GlobalScope's coroutine.
Refactored out the TabsSharedCallback from ShareFragment because otherwise we
would have neede to sent through that the just failed operation. After the
refactor the ShareController is solely responsable for showing the right
snackbar and handling the retry actions.

* For #5092 - Refactor ShareControllerTest

* For #5092: Adds color theming of snackbars
5 years ago
ekager 464122fda1 For #5421 - Make share dialog scrim dismiss fragment 5 years ago
Tiger Oakes 284cbab9ea Use .orEmpty() 5 years ago
Emily Kager 9a4610f068 For #2897 - Add Action States To Share Sheet 5 years ago
Sawyer Blatz e240de7e31 For #4908: Adds telemetry for send tab 5 years ago
Petru Lingurar f7087e46e3 Fix #5067 - Refactor ShareController to use SendTabUseCases
Navigation between app fragments uses ShareTab as arguments. The newly used
SendTabUseCases uses TabData which is not Parcelable.
For minimal changes we'll keep both data classes and ShareController will know
how to map between the two.
Removed the `sessionId` property of ShareTab as it isn't needed anymore.
5 years ago
Mugurell e165868a53 For #4007 - Add ShareController for handling ShareFragment's business logic
`ShareController` defines a contract with all possible `ShareFragment`'s
behavior changes and comes with a default implementation -
`DefaultShareController`.
It is to be delegated by all `ShareFragment`s contained Views' Interactors
following any user interactions.
5 years ago
Mugurell 16eba61b25 For #4007 - ShareFragment will set the contained Views' state
ShareFragment which acts as a container would contain all business logic needed
for populating it's Views.
Data initialization should be done only once since the app state has no reason
to change after the ShareFragment is created and is done as soon as possible,
in onAttach().
Because of the expected short lifespan of this fragment, given the fact that
the state has no reason to change and we handle orientation changes ourselves
to keep things simple I didn't use a ViewModel to persist the state.
5 years ago
Mugurell 095870145f For #4007 - Refactor AppShareView in standalone Share Views
In an effort to respect the initial MVI architecture I've broken the
complex `AppShareView` in 3 separate Views
- `ShareCloseView`
- `ShareToAccountDevicesView`
- `ShareToAppsView`
They are standalone Views (extending LayoutContainer) which know nothing about
each other or their parent and so offer their container the possibility to
order or display them in any form later.
According to the lib-state contract they are only responsible to
- inflate themselves in their injected containerView
- render a certain state (to be added in later commits)
- delegate all user interaction to an associated Interactor
5 years ago
Nikit Bhandari 671727c3e8 For #4341 use camelCase for views referenced from code 5 years ago
Emily Kager 867067537a For #3568 - Use correct styling for QR and Share Alert Dialogs 5 years ago
Tiger Oakes ef8d9604ae No issue: Normalize license header comment (#3909) 5 years ago
Emily Kager 21c75ca1bb For #3478 - Add Tab sent snackbar confirmation for device sharing 5 years ago
Tiger Oakes 55f5c5d049 Use lifecycleScope for settings fragments 5 years ago
Colin Lee 1e6da54263 For #3238: fixes race condition crash, nav destination unknown 5 years ago
Jonathan Almeida b05e9ab14b Closes #2968: Specify the activity name in the share item 5 years ago
Jonathan Almeida 540b0939d2 Closes #2878: Cleanup with card-like styling 5 years ago
Jonathan Almeida 3da6cfd98a For #2886: Fix sending multiple tabs to another device (#2923)
* For #2886: Fix sending multiple tabs to another device

* Update share methods to use new API
5 years ago
Jonathan Almeida 3c84807474 Add connect another device dialog (#2803) 5 years ago
Jonathan Almeida 8fbbcceb21 Adds send tab functionality to UI (#2790)
* Closes #2782: Hide send tab when no devices available

* For #2752: Enabled send tab for debug and nightly builds

* For #2753: Add Send Tab functionality to UI
5 years ago
Jonathan Almeida eb7646f073 Add custom share sheet and send tab support (#2757)
* Closes #2751: Add custom app share sheet

* Closes #2753: Add send tab devices to share sheet

* Closes #2752: Add build flag for send tab

* Replace Context.share with ShareFragment
5 years ago