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

The Update Check Notification interrupts reading the Add-on Compatibility Warning Notification, the Welcome Dialog and the Usage Stats Question #9174

Closed
DrSooom opened this issue Jan 20, 2019 · 11 comments

Comments

@DrSooom
Copy link

DrSooom commented Jan 20, 2019

Steps to reproduce:

  1. Download NVDA 2018.4 and install it as a portable copy.
  • Important note: At the moment NVDA 2018.4.1 is the latest version. For this Str an older one is required.
  1. Launch the portable copy of NVDA.
  2. The Welcome Dialog appears.

Actual behaviour:

  1. And if an internet connection is available, the update notification will appear within less than three seconds.

Expected behaviour:

There are several steps to do to fix this issue. All the below mentioned parameters regard to the "nvda.ini". (Hopefully I made no mistake here.) So, first of all …

Reasons:

  • The update notification interrupts reading the Welcome Dialog, which is unwanted for beginners.
  • The end user has no idea which data are sent to the update server during checking for updates, unless he had read the Usage Stats Dialog and chosen "Yes" or "no" on it.
  • Not tested, but maybe also possible: If the user wants that NVDA will continuing running from the installer – and no NVDA version is installed on his system –, the above unwanted behaviour could also exists.

Extend if-parameters on startup:

  • Do not check for updates if
    • showWelcomeDialogAtStartup = True
    • or askedAllowUsageStats = False
    • or autoCheck = False
    • or startupNotification = False
  • Check for updates if
    • showWelcomeDialogAtStartup = False
    • and askedAllowUsageStats = True
    • and startupNotification = True
    • and autoCheck = True

Extend if-parameters after closing the Welcome Dialog:

  • Do not check for updates if
    • askedAllowUsageStats = False
    • or autoCheck = False
    • or startupNotification = False
  • Check for updates if
    • askedAllowUsageStats = True
    • and startupNotification = True
    • and autoCheck = True

Extend if-parameters after closing the Usage Stats Dialog:

  • Do not check for updates if
    • askedAllowUsageStats = False
      • The user clicked on "Later" to close this Dialog.
    • or autoCheck = False
    • or startupNotification = False
  • Check for updates if
    • askedAllowUsageStats = True
      • The user clicked on "Yes" or "No" to close this Dialog.
    • and startupNotification = True
    • and autoCheck = True

Conclusion:

There are now three points at startup where NVDA checks for updates. After closing the Welcome Dialog with "OK" or "Cancel", and the Usage Stats Dialog with "Yes" or "no" ,the update check procedure will each time enforced again if "startupNotification = True" and "autoCheck = True".

System configuration

NVDA installed/portable/running from source:

Portable, but could be the same behaviour with an installed version.

NVDA version:

NVDA 2018.4 (stable)

Windows version:

Tested on Windows 7 64-Bit, but could be the same until win10-1809/win10-19h1.

Other questions

Does the issue still occur after restarting your PC?

Not tested. Well, I guess it doesn't matter.

Have you tried any other versions of NVDA?

No, but I guess it's the same with the 2018.3.x versions. Older versions of NVDA haven't the Usage Stats Dialog included.
CC: @michaelDCurran

@Adriani90
Copy link
Collaborator

It would be much simpler just to move the update check after the first restart of NVDA, instead of performing the update check at the first launch of NVDA.
In this case the user has already performed actions on the welcome dialog and the data usage stats.
@feerrenrut, @LeonarddeR I don't know if this is possible at all.

@DrSooom
Copy link
Author

DrSooom commented May 17, 2020

@Adriani90: That's not possible, because you cannot use the file "nvda-old.log" to figure out if NVDA was restarted. So you would need a new parameter in the file "nvda.ini" for doing this. And that new parameter isn't necessary in my above mentioned solution. Furthermore you must ensure that the user already know and set all the above mentioned parameters for performing or not performing the update check procedure correctly.

@Adriani90
Copy link
Collaborator

You don't need to call nvda_old.log to identify if NVDA has been restarted or not. I would assume there is another mechanism which also can be used (i.e. coresponding event in windows, a coresponding registry key delivering this information etc.
Doing it after restart would not require any parameter in nvda.ini. It would just be the default there. The current updatecheck behavior cannot be changed as it is now anyway, so it would not mean additional parameters but only the change of the current behavior.
What you suggest could indeed become confusing for an user and would mean much more conditional parameters which are not really needed. But this is just my opinion.

@JulienCochuyt what do you think?

@DrSooom
Copy link
Author

DrSooom commented May 17, 2020

What you suggest could indeed become confusing for an user and would mean much more conditional parameters which are not really needed.

Please explain this. The above checks are done in the background. The end user will only note that the update window no longer interrupts him in some situations on startup.

And the Windows Registry doesn't work for portable copies of NVDA.

@Adriani90
Copy link
Collaborator

Adriani90 commented May 17, 2020 via email

@DrSooom
Copy link
Author

DrSooom commented May 17, 2020

Sometimes the data usage stats appears first, after that the welcome dialog. Sometimes this behavior is the other way round.

This would be an issue and has to be fixed. I never noted such a behavior – on portable copies, which I set up for testing.

And sometimes there are other dialogs appearing, i.e. regarding addon compatibility if you already have a user configuration in %appdata% on your system from any previous NVDA installation.

I had no knowledge about this warning dialog. Well, then this also has to be fixed to get a strict order. And in my opinion if-then conditions are the best way to do this. And in the end the UX will be better.

@Adriani90
Copy link
Collaborator

Adriani90 commented May 17, 2020 via email

@JulienCochuyt
Copy link
Collaborator

@Adriani90 wrote:

@JulienCochuyt what do you think?

IMHO the update prompt shouldn't ever appear before the "Welcome" and the "Allow usage stats" dialogs have been dismissed - whatever the answers the user gave. This looks fairly easy to implement for what I can see in the code at a first glance.

@DrSooom for clarity, could you please re-title this ticket something like "Update check prompt interrupts reading the Welcome dialog" as this is clearly an issue.

Sometimes the data usage stats appears first, after that the welcome dialog. Sometimes this behavior is the other way round.

I can't find in the source code any way the "Allow usage stats" dialog could appear before the "Welcome" dialog.

And sometimes there are other dialogs appearing, i.e. regarding addon compatibility if you already have a user configuration in %appdata% on your system from any previous NVDA installation. That’s why it would be really difficult for a developer to implement your proposal consistently.

I agree this is much more tricky.
I guess this only affects users that already use NVDA, and we can expect from them to be much more at ease in reading dialogs than first-time users are.

Doing it after a restart would work around all dialogs that could possibly appear after the first launch.

Indeed, but my personal preference would still be to be prompted for update as soon as the "Allow usage stats" dialog has been dismissed on a fresh install on a new computer.

@DrSooom wrote:

The end user has no idea which data are sent to the update server during checking for updates, unless he had read the Usage Stats Dialog and chosen "Yes" or "no" on it.

I agree the update prompt should be displayed after, and only after the "Allow usage stats" dialog.
Nevertheless, as long as the user didn't answer "Yes", usage stats collection is disabled as if "No" was answered That is, answering "Later" is just like answering "No" except the question will be asked again the next time NVDA starts. I'm fairly fine with this behavior.

Not tested, but maybe also possible: If the user wants that NVDA will continuing running from the installer – and no NVDA version is installed on his system –, the above unwanted behaviour could also exists.

Tested and not reproduced with the 2019.3.1 installer.

@DrSooom DrSooom changed the title Change the update check behaviour after launching NVDA The Update Check Notification interrupts reading the Add-on Compatibility Warning Notification, the Welcome Dialog and the Usage Stats Question May 19, 2020
@DrSooom
Copy link
Author

DrSooom commented May 26, 2020

@JulienCochuyt: Do you know if it is possible to check which NVDA window, dialog or message is currently open? (I think I recently saw something like a window string in the logfiles.) If this is the case then it's enough just to add a short, new procedure before the Update Check Notification window appears. This procedure checks only if one of the three above mentioned windows are open and if this is true, then it will wait 300 seconds and repeat that step. This would be the easiest way to solve this issue.

@JulienCochuyt
Copy link
Collaborator

@DrSooom wrote:

@JulienCochuyt: Do you know if it is possible to check which NVDA window, dialog or message is currently open?

IIMNW, this info is not yet available. There are other tickets attempting to reach that goal, notably in order to facilitate focusing back open dialogs and ease shutdown. These won't however be as easy to solve as this very issue, due to the impact being much bigger.

If this is the case then it's enough just to add a short, new procedure before the Update Check Notification window appears. This procedure checks only if one of the three above mentioned windows are open and if this is true, then it will wait 300 seconds and repeat that step. This would be the easiest way to solve this issue.

For what I can see in the source code, there are far simpler approaches, at least to ensure proper announcement of the Welcome dialog and the Usage Stats prompt.
I'll try to come up with a concrete implementation proposal quickly.

@Adriani90
Copy link
Collaborator

I am closing this in favor of #2257. That discussion contains more concrete proposals and technical aspects to consider.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants