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

[Updater; Runner] Optimized notifications #2337

Closed
htcfreek opened this issue Apr 22, 2020 · 39 comments
Closed

[Updater; Runner] Optimized notifications #2337

htcfreek opened this issue Apr 22, 2020 · 39 comments
Assignees
Labels
Area-Quality Stability, Performance, Etc. Area-Setup/Install Refers to installation mechanism Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release.

Comments

@htcfreek
Copy link
Collaborator

htcfreek commented Apr 22, 2020

Like suggested by @crutkas and me in PR #2141 we should optimize the updaters' toast notifications.
If you have further ideas please comment them.

It would be nice if someone of the other project contributors could create the necessary PRs.
⚠ Please add screenshots of the new notifications, so that other contributors don't have to run your code to see the changes.

Screenshot of the current toast notification:
current-notification

1. Adding version numbers

The following texts are examples and the images are created with an image editing tool. If I have forgotten some texts feel free to also add them a version number.

a) update is available

Variant 1 (short version) Variant 2 (long version)
VersionNumber-OneLines VersionNumber-TwoLines
  • My favorite is the short version.
  • Feel free to write in the comments which version you prefer.

b) update successfully installed

Update to version 0.17 of PowerToys successfully installed.

c) update failed

Update to version 0.17 of PowerToys failed.

d) Old version detected

We have detect an old version (0.15.2) of PowerToys installed on your System. Want you remove it?

e) Uninstall old version failed
ℹ Here the version number is important that the user knows which version he has to uninstall.

Error: Uninstalling the old version (0.15.2) failed. Please uninstall it manually.

2. Optimice button layout

I think we could optimize the message by adding an title for the time dropdown like this:
Reminder-Title

3. Metered connections

I don't known how we actually react on metered connections. But a notification like this would be a great idea:

An update to PowerToys is available. The update will be downloaded when the internet connection is not metered anymore.
<Version_Info>

4. Definition of "is ready to install"

In the update notify we have the following text: An update to PowerToys is ready to install.
Is the update downloaded already when this notification gets shown or must text been like the following: An Update to PowerToys is ready to download and install.

@niels9001
Copy link
Contributor

Would be nice to have a 'What's new' button in the toast, that will take you to the latest release notes.

@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 23, 2020

Would be nice to have a 'What's new' button in the toast, that will take you to the latest release notes.

Or as a link if this would work.
Because we have already three buttons plus dropdown.

@crutkas
Copy link
Member

crutkas commented Apr 23, 2020

I think that should be part of OOBE for what is new on upgrade.

This could be a combo as well

@yuyoyuppe yuyoyuppe self-assigned this Apr 23, 2020
@enricogior
Copy link
Contributor

I don't known how we actually react on metered connections

We don't auto download and we show the same notification we are showing in the current version.

@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 23, 2020

I don't known how we actually react on metered connections

We don't auto download and we show the same notification we are showing in the current version.

Then I think the notification when a Update is available could be misunderstanding.

@enricogior
Copy link
Contributor

could be misunderstanding.

What do you mean?

@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 23, 2020

What do you mean?

I mean ready to install implies that the software has been downloaded. And when the user cut off network connection and tries to update, the update will fail.

That's why I would write:

  • ... is reday to download and install.
  • ... ready to download and install if the network connection isn't metered anymore.

Or we can use the word "available":

  • ... is available.
  • ... is available to download and install if the network connection isn't metered anymore.

@htcfreek
Copy link
Collaborator Author

@enricogior That we don't missunderstanding each other: What is the current message on metered connections?

@yuyoyuppe
Copy link
Collaborator

@htcfreek
Copy link
Collaborator Author

@yuyoyuppe What do you think on adding the title for the time dropdown or is that idea not relizable?

@yuyoyuppe
Copy link
Collaborator

@htcfreek, I don't think toast notifications support this unfortunately.

@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 23, 2020

@htcfreek, I don't think toast notifications support this unfortunately.

Interesting. Because I have found this image at the ms docs. I think it is realized as bold text in the message.

Great thing! Here have found a code example (Not tested by me!): https://automationsynd.github.io/sccm/2018/12/26/sccm-toasts.html

@yuyoyuppe
Copy link
Collaborator

@htcfreek oh, that's a great find! I'll add it.

@htcfreek
Copy link
Collaborator Author

@yuyoyuppe

  • Would it be interesting to be allowed to snooze also the download notify (when auto download is disabled/metered connection)? Or does PT renotify at the next start?
  • Can you also add the version on the uninstall toasts (especially when failed)? But only the version which has to bee uninstalled.

@yuyoyuppe
Copy link
Collaborator

@htcfreek

Would it be interesting to be allowed to snooze also the download notify (when auto download is disabled/metered connection)? Or does PT renotify at the next start?

PT checks for the update once per 24 hours and shows you a corresponding notification if it's not already in your action center. Regarding the Snooze functionality for other toasts, I don't really have a preference either way, perhaps @enricogior or @crutkas could weight in?

Can you also add the version on the uninstall toasts (especially when failed)? But only the version which has to bee uninstalled.

Regarding the uninstall toasts, you probably seen some of the logic we've done previously for migration from/to MSI/MSIX, which isn't currently used, because we currently do not support MSIX (that might change in the future). For the current update flow, we do not uninstall the previous version explicitly, we install the new msi directly, and WiX toolset handles the detection and uninstallation of the previous version. We also do not report any errors ourselves, because a user will see a error which was generated by MSI itself.

@htcfreek
Copy link
Collaborator Author

@yuyoyuppe Okay.

@enricogior
Copy link
Contributor

PT checks for the update once per 24 hours and shows you a corresponding notification if it's not already in your action center. Regarding the Snooze functionality for other toasts, I don't really have a preference either way, perhaps @enricogior or @crutkas could weight in?

For 0.17 we should be good as we are. We don't have a lot of time to test more changes, we can revisit it in 0.18 or more likely in 0.19.

@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 23, 2020

@enricogior

  • Can you add the necessary lables, etc. I am not allowed to do this.

  • Only to know if we should have this in mind for a later build: What do you mean about the "ready to install" text thing? (Please see my comments above.)

@enricogior enricogior added Area-Quality Stability, Performance, Etc. Area-Setup/Install Refers to installation mechanism labels Apr 23, 2020
@enricogior
Copy link
Contributor

On metered connections we don't offer the possibility to auto download, we only notify the user that a new version is available and to visit the release page.
For sure we can improve the UX and offer to download but only after notifying how big is the file.
With the new module being added soon to the MSI the file size will increase significantly and it would be better to add the code to not only retrieve the new release version number but also its size.

@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 23, 2020

For sure we can improve the UX and offer to download but only after notifying how big is the file.

I think on metered connections we shouldn't download anything.

With the new module being added soon to the MSI the file size will increase significantly and it would be better to add the code to not only retrieve the new release version number but also its size.

The size information is an interesting idea.

But my main intention is to say the user, that at the point of notify that an update is ready to install, we have nothing downloaded. (Please correct me if this is wrong.) That's what I mean with "is ready to install" could be misunderstanding.

@enricogior
Copy link
Contributor

We don't say "ready to install" before downloading.
If the connection is not metered, we first download, and then we notify that is ready to install.
On metered connections we simply say that a new version is available and we offer to visit the release page.

@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 24, 2020

@yuyoyuppe Have you used the default snooze button with an empty content attribute?
Then you should fill the attribute with "Snooze". Otherwice Windows will localize the button name and then the dropdown title is incorrect.

Sample:

image
Generated with the Store App "Notifications Visualizer".

@yuyoyuppe
Copy link
Collaborator

yuyoyuppe commented Apr 24, 2020

@htcfreek hmm, we will add localization in the future, so reverting it seems like a wrong thing to do. I'd rather change the title to something like "You can snooze it to be reminded in:".

@enricogior thoughts?

@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 24, 2020

@yuyoyuppe I wouldn't reverting it. You only must give the button a fixed name via the attribute. Then Windows won't translate.

P. S.: I have more nice mocups, that I will comment later this day. One includs the update size. - Let me surprise you. 😉

@enricogior
Copy link
Contributor

@yuyoyuppe
we should fix it now.

@yuyoyuppe
Copy link
Collaborator

@htcfreek I meant giving a fixed name to implicitly localized button is akin to reverting localization 🙂

@enricogior ok, I'll fix it.

@htcfreek
Copy link
Collaborator Author

I'd rather change the title to something like "You can snooze it to be reminded in:".

Should we write "reminded again"?

@htcfreek
Copy link
Collaborator Author

I'd rather change the title to something like "You can snooze it to be reminded in:".

Should we write "reminded again"?

@yuyoyuppe Oops you were faster than me. Then we will let it without the word "again".

@enricogior enricogior added the Status-In progress This issue or work-item is under development label Apr 24, 2020
@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 24, 2020

@yuyoyuppe
Two Informations I need for my mockups and not finding in the code 🙈:

  • Which tipe of notofication do we use?
  • Do we have an timestamp and the app name within the foother? - On the newer images that is not shown.

@yuyoyuppe
Copy link
Collaborator

@htcfreek, hmm, I don't think so. here's how the latest update toast looks:
image

@htcfreek
Copy link
Collaborator Author

@yuyoyuppe Tomorrow I will do some tests when I rework my new mockup.

@htcfreek
Copy link
Collaborator Author

@enricogior @yuyoyuppe: Sory for let you waiting. But here they are: The new layout mockups.
@crutkas: In this mockups you can see why I have asked for state showing icons.

These mockups should show what we can do/use.
I think that we shoudn't do any changes to the codebase for release 0.17. Because the changes need their time and the release is next week.

@yuyoyuppe: On my test notifications the footer with app name and time is shown. I have used the notification type "ToastGeneric".

Changes made in this mockup

  • Bigger app icon.
  • Using app icons which visualize the message type.
  • Using the notification title for a short description of the message.
  • Some small text optimizations for the following notifications: Update failed, Update is ready
  • Showing the update size within the notification if the user has to download PT manually.

Toasts
image image

Notification area
image image

Creation of the notifications for this mockup

  • The notifications were created with the Store App "Notifications Visualizer".
  • With an image editing software I have removed then text "sent via Notifications Visualizer" from the screenshots.

PT icons

The PT icons are based on the new PT icon created by @enricogior and the icon team. (See PR #2289 and issue #1118.) The icons showing the message type are my own work and only samples.
👉 If we want to have such icons, then @enricogior and the icon team have to create them for us.
Newly created icons:
image image image

Code for the notifications

XML files for "Notification Visualizer"
xml-files.zip
C++- Code exported by "Notification Visualizer"
cpp-files.zip

@enricogior
Copy link
Contributor

I like the larger icon, I don't like the idea of icon overlays, in particular I don't think the info and the warning overlays are necessary, they are not really providing useful information.
For the error notification we can definitely add some type of extra information like the error overlay but not as an overly but an icon before or after the "Update failed" text.

@htcfreek
Copy link
Collaborator Author

@yuyoyuppe I have found an explanation why my notifications shows the footer with app name and the productively notifications doesn't shows that. The reason is that I use the appLogoOverride feature: https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/adaptive-interactive-toasts#visual

@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 25, 2020

@enricogior
Do you mean like this? (I have used an emoji.)
And you are right. This looks realy better.
image
Generated with the Store App "Notifications Visualizer".

An other idea
An other idea which is discussed within the issue #1118 would be something this. But I don't like it. The icon don't looks like PT.

  • Notifications generated with the Store App "Notifications Visualizer".
  • The state showing PT icon is my own work and based on the new PT icon.
Toast Notification area Icon
image image image

@enricogior
Copy link
Contributor

Do you mean like this?

Yes.

I'm not a big fan of the concept of changing icons color to describe state, it's not just a personal opinion, it's a matter of accessibility.
I'm OK with simple concepts like an overlay badge to indicate for example a new message on a email client app, but in general icons should remain as they are because their goal is to associate an image to a program, changing the icon breaks that implicit link.

@yuyoyuppe yuyoyuppe removed the Status-In progress This issue or work-item is under development label Apr 27, 2020
@enricogior enricogior added the Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release. label Apr 27, 2020
@htcfreek
Copy link
Collaborator Author

htcfreek commented Apr 27, 2020

@enricogior Do we open a new issue if we want to implement some of the new ideas or do we reopen the issue after the release of 0.17?

I am asking because of the lable Resolution-Fix-Comitted.

@enricogior
Copy link
Contributor

We open a new one, since this one has been fixed.

@enricogior
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Quality Stability, Performance, Etc. Area-Setup/Install Refers to installation mechanism Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release.
Projects
None yet
Development

No branches or pull requests

5 participants