Bug 1909223 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

While helping review the patches proposed for bug 1906657 :gl came with the idea of initializing `SnackbarBinding` from just one place - `HomeActivity` 
After bug 1906657 we'd initialize `SnackbarBinding` in multiple places because it needs a `FenixSnackbarDelegate` that needs to know where to place the snackbar layout.

As a general overview of the current flow:
For the scenarios in which we need the snackbar to be places in relation to other `View`s on the screen we make use of a simple `ViewGroup` with the `id` - `dynamicSnackbarContainer` which needs to be a child of a `CoordinatorLayout`. 
This `dynamicSnackbarContainer` as the parent of the snackbar will serve as the handle by which to move it inside the `CoordinatorLayout`.
For this we use a `CoordinatorLayout.Behavior` which allows moving any child as a side effect of changes to any of it's siblings - `dynamicSnackbarContainer` can be placed on top of it's "toolbarLayout" sibling.

This ^^ means that whenever a new screen (fragment) is opened the previous snackbar would not continue to show.
While not strictly needed at this time ensuring a snackbar persists on multiple screens (fragments) is a nice functionality to support and could be accomplished by 
- using the activity layout as the parent of the snackbar
- updating `FenixSnackbar` / `FenixSnackbarBehavior` to support rightly placing the snackbar whenever the user navigates to a new screen.

(This will be highly useful in the scenario of "indefinite" snackbars).
While helping review the patches proposed for bug 1906657 :gl came with the idea of initializing `SnackbarBinding` from just one place - `HomeActivity` 
After bug 1906657 we'd initialize `SnackbarBinding` in multiple places because it needs a `FenixSnackbarDelegate` that needs to know where to place the snackbar layout.

As a general overview of the current flow:
For the scenarios in which we need the snackbar to be places in relation to other `View`s on the screen we make use of a simple `ViewGroup` with the `id` - `dynamicSnackbarContainer` which needs to be a child of a `CoordinatorLayout`. 
This `dynamicSnackbarContainer` as the parent of the snackbar will serve as the handle by which to move it inside the `CoordinatorLayout`.
For this we use a `CoordinatorLayout.Behavior` which allows moving any child as a side effect of changes to any of it's siblings - `dynamicSnackbarContainer` can be placed on top of it's "toolbarLayout" sibling.

This ^^ means that whenever a new screen (fragment) is opened the previous snackbar would not continue to show.
While not strictly needed at this time ensuring a snackbar persists on multiple screens (fragments) is a nice functionality to support and could be accomplished by 
- using the activity layout as the parent of the snackbar and initializing `SnackbarBinding` only once in `HomeActivity`
- updating `FenixSnackbar` / `FenixSnackbarBehavior` to support rightly placing the snackbar whenever the user navigates to a new screen.

(This will be highly useful in the scenario of "indefinite" snackbars).

Back to Bug 1909223 Comment 0