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

Add-on Store update notifications should provide a ding on appearing, and should appear immediately on NVDA startup #17162

Closed
XLTechie opened this issue Sep 11, 2024 · 2 comments · Fixed by #17682
Labels
blocked/needs-product-decision A product decision needs to be made. Decisions about NVDA UX or supported use-cases. needs-triage
Milestone

Comments

@XLTechie
Copy link
Collaborator

Is your feature request related to a problem? Please describe.

The updatable add-ons window, doesn't appear the first time until a couple minutes after NVDA starts. That gives you just enough time to start doing something, and then have the window appear and interrupt you.

At first I didn't think this was much of a problem. After all, Add-on Updater has done the same thing for years.
But after considering it, I realize that Add-on Updater's window, appears immediately upon NVDA start. You don't have time to get into something else, and then have the updates window appear and disrupt your workflow. Therefore, it doesn't come off as nearly so obtrusive.

That aside, there is another issue. The Available Updates window appears, takes focus, and doesn't make it obvious that whatever you were doing, you aren't doing any more. So for a few seconds at least, if you were rapidly typing or the like, you'll still be doing that, but into the updates window.

Describe the solution you'd like

  1. Run the initial updates check, as soon as NVDA starts--as soon as practical, not after a two minute delay.
  2. Play a sound, or at least use the Windows alert sound, to signal the user that some kind of notification or window has appeared. It will not be perfect, but it is better than silently steeling focus. This is mostly to be useful when NVDA has been running for 24 hours, and the Available Updates window is appearing again, not after first appearing when starting NVDA.

Describe alternatives you've considered

Additional context

This is essentially the same issue as #17037, filed by @cyrmax. However the proposed solutions here are different, and irrespective of whether a toast notification mechanism is eventually implemented.

@RuturajL
Copy link

I propose following as a potential solution:
NVDA should use built-in Windows Notifications UI for delivering availability of addons.
The notification should be actionable, where clicking on that notification, or an update button in that notification, the addons update window opens, where the user can do further actions. If they don't want to take action, Notification simply stays in notification area for later use.
This could be also utilized for NVDA update notifications as well.
Potential things we might need to consider is backwards compatibility, Do Win10 and 11 use the similar APIs to deliver notifications?

@seanbudd seanbudd added blocked/needs-product-decision A product decision needs to be made. Decisions about NVDA UX or supported use-cases. needs-triage labels Sep 16, 2024
@CyrilleB79
Copy link
Collaborator

If I remember correctly, the update dialog does not pop up at startup to avoid that all dialogs pop up at the same time (welcome, stats, NVDA update, add-on update).

Rather than using the current schedule approach to guarantee that all dialogs do not pop up together, could we schedule one dialog immediately the previous one has been validated? e.g. open welcome dialog (if needed), when it's closed, open stat dialog, when it's closed, open add-ons update dialog (if applicable), and when it's closed, open NVDA update dialog (if applicable).

This way, one dialog would pop up just after another is closed (or just after the connection to retrieve update information), avoiding to interrupt a task

@seanbudd seanbudd added this to the 2025.1 milestone Jan 7, 2025
gexgd0419 pushed a commit to gexgd0419/nvda that referenced this issue Feb 22, 2025
Closes nvaccess#3208 
Closes nvaccess#17162

Summary of the issue:
To update add-ons automatically, users must click-through a dialog to confirm they wish to update all add-ons.
Instead, this can be done in the background, and the user just needs to confirm whether to restart NVDA once add-on updates are complete.

Additionally:
- Users couldn't automatically update to incompatible add-ons. this is useful for alpha/beta testers testing add-on compatibility in breaking releases
- The update notification was annoying - it queued too late and users should get a ding when it appeared.
- If the add-on store server failed, users didn't receive displayable error messages when using automatic update notification
- Since nvaccess#17597, the update notification panel will list all available updates for all channels. The update all button would update the add-on for each channel. Instead only the latest add-on version for any channel should be used/listed.
 
Description of user facing changes
- Added the ability to automatically update add-ons in the background.
This can be changed in the "automatic updates" section.
- Added the ability to update to incompatible add-ons. users can enable this via a new setting in the add-on store panel.
- The update notification is now queued sooner (1 minute not 3 minutes) and provides a ding before focusing the panel
- the update notification panel now only lists the most recent version of an add-on, rather than showing all add-ons that are newer across channels
- Server errors now log an error message if the update notification fails to fetch data

Description of development approach
- Refactored update status tracking so devs can compare add-ons to see which is newer more easily
- Re-designed message box tracking to make it work for pseudo-modals, e.g. the background update process
- use a shorter starting offset for daily scheduled jobs

Testing strategy:
- Installed an old add-on
- Tested automatic update notifications
- Tested background automatic updates
- Tested both of these without a server connection

Known issues with pull request:
None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked/needs-product-decision A product decision needs to be made. Decisions about NVDA UX or supported use-cases. needs-triage
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants