Add-on store: fix download pending install status loss (#14992)
Fixes #14978
Summary of the issue:
Downloading and installing an add-on follows these steps:
Download and install is triggered by the user
Download begins and writes to addonStore/_dl/addonId.download
Download completes, and the file is renamed and cached addonStore/_dl/addonId-1.23.nvda-addon
i. if you change tab here, the add-on state can be lost
User exits NVDA add-on store
Add-on installation is triggered, add-on is unzipped and written to addons/addonId.pendingInstall
User is prompted to restart
On restart addons/addonId.pendingInstall is installed to addons/addonId
When changing tabs before exiting the add-on store, the state "download pending install" is lost.
Description of user facing changes
When changing tabs before exiting the add-on store, the state "download pending install" is no longer lost.
Description of development approach
The pending install state check was updated for the add-on store add-on model to include checks for download state.
Add-ons that are downloaded pending install should now be treated as if they are pending install.
The add-on state determiner now returns the correct state for add-ons which are downloaded but yet to start the install process.