-
Notifications
You must be signed in to change notification settings - Fork 309
Show "Connecting…" banner (or equivalent) when server data is stale #465
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
Comments
Bumping this in priority because even after #185 and #184, we're still sometimes showing the symptom of lacking an event queue, even when the device has a fine internet connection: And as Alex said there:
|
Maybe something like a toast? Or a thin, linear indeterminate progress indicator at the bottom of the app bar ( RPReplay_Final1709858536.mov(Huh, the screen capture seems to have included audio, so you can hear the music I was listening to at the time. 😆) |
Yeah, that sounds like the easiest thing to do that remains pretty clean-looking. We can always revise it to another design later. (Going with either I'm about to file another issue (→#555) for a toast with more detailed information, which might be too technical-looking for a general release but is fine for this beta and may help us pin down remaining issues in failing to connect. |
A toast might be easier to apply in all the right places than the The toast solution requires fewer things of the surrounding UI, I think. To show a toast, you just need to know which account (if any) the foregrounded page belongs to and whether its data is stale. But to show a I guess concretely, consider the lightbox, which is a per-account page: a saturated blue loading indicator might look jarring on the gray, semitransparent surface of the lightbox app bar, so we might want to tone that down, which might an annoying obstacle to making cleanly reusable code. Also, the lightbox app bar isn't even always visible, because you can tap it to make it go away. I think something like a toast might be the only thing that really works on the lightbox page, actually. And if we're doing it on that page, we might as well do it everywhere; what do you think? |
True, yeah. |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
The widget, comprising a StatefulWidget (SnackBarPage) and its corresponding state class (SnackBarPageState) Previously, the absence of a dedicated mechanism to display connection-related messages resulted in users experiencing ambiguity regarding Data Staleness. By leveraging the initState and didUpdateWidget methods, the SnackBar is displayed post-build and upon isStale updates. Fixes zulip#465
Previously, the absence of a dedicated mechanism to display connection-related messages resulted in users experiencing ambiguity regarding Data Staleness. By leveraging the initState and didUpdateWidget methods, the connecting SnackBar is displayed post-build and upon isStale updates. Fixes zulip#465
Ideally we may have test to exhaustively ensure that all pages specific to a single PerAccountStore use ZulipAppBar. Some pages with `AppBar`s are skipped, such as AboutZulip and lightboxes. Fixes zulip#465. Signed-off-by: Zixuan James Li <[email protected]>
Ideally we may have test to exhaustively ensure that all pages specific to a single PerAccountStore use ZulipAppBar. Some pages with `AppBar`s are skipped, such as AboutZulip and lightboxes. Fixes zulip#465. Signed-off-by: Zixuan James Li <[email protected]>
Ideally we may have test to exhaustively ensure that all pages specific to a single PerAccountStore use ZulipAppBar. Some pages with `AppBar`s are skipped, such as AboutZulip and lightboxes. Fixes zulip#465. Signed-off-by: Zixuan James Li <[email protected]>
Ideally we may have test to exhaustively ensure that all pages specific to a single PerAccountStore use ZulipAppBar. Some pages with `AppBar`s are skipped, such as AboutZulip and lightboxes. Fixes zulip#465. Signed-off-by: Zixuan James Li <[email protected]>
Ideally we may have test to exhaustively ensure that all pages specific to a single PerAccountStore use ZulipAppBar. Some pages with `AppBar`s are skipped, such as AboutZulip and lightboxes. Fixes zulip#465. Signed-off-by: Zixuan James Li <[email protected]>
Ideally we may have test to exhaustively ensure that all pages specific to a single PerAccountStore use ZulipAppBar. Some pages with `AppBar`s are skipped, such as AboutZulip (no PerAccountStore access) and lightboxes (progress indicator is occupied for other purposes, and the AppBar can be hidden). Fixes zulip#465. Signed-off-by: Zixuan James Li <[email protected]>
Ideally we may have test to exhaustively ensure that all pages specific to a single PerAccountStore use ZulipAppBar. Some pages with `AppBar`s are skipped, such as AboutZulip (no PerAccountStore access) and lightboxes (progress indicator is occupied for other purposes, and the AppBar can be hidden). Fixes zulip#465. Signed-off-by: Zixuan James Li <[email protected]>
Ideally we may have test to exhaustively ensure that all pages specific to a single PerAccountStore use ZulipAppBar. Some pages with `AppBar`s are skipped, such as AboutZulip (no PerAccountStore access) and lightboxes (progress indicator is occupied for other purposes, and the AppBar can be hidden). Fixes zulip#465. Signed-off-by: Zixuan James Li <[email protected]>
Ideally we may have test to exhaustively ensure that all pages specific to a single PerAccountStore use ZulipAppBar. Some pages with `AppBar`s are skipped, such as AboutZulip (no PerAccountStore access) and lightboxes (progress indicator is occupied for other purposes, and the AppBar can be hidden). Fixes zulip#465. Signed-off-by: Zixuan James Li <[email protected]>
When we lose our real-time stream of events from the server, either because of network failures or because the server has expired the event queue and we need to request a new one:
we continue to show the latest server data we had, but it may now be stale. We should communicate to the user that that's what's happening.
In the existing zulip-mobile app, we do this with a banner that reads "Connecting…" and appears just under the app bar.
In this app, we could do the same thing, or we could find a different design. One downside of the "Connecting…" banner is that it occupies some vertical space, which means the rest of the content needs to move down to make room (or else let its top portion be obscured by the banner). Nevertheless it might be the best available option.
Even if we use the same design concept, we'll want to pin down the details: the text style, the layout, the banner's background, the specifics of how it animates in and out.
(In zulip-mobile the details are in
src/common/LoadingBanner.js
; there's no animation. But the conceptually similar "No Internet connection" banner, found insrc/boot/OfflineNoticeProvider.js
, does have an animation… on iOS only, because React Native's implementation breaks on Android. Here on Flutter, we should have no such trouble implementing whatever animation we choose.)The text was updated successfully, but these errors were encountered: