Fix/toast navigation and source add feedback - #5377
Gabriel Dufresne (GabrielDuf) merged 4 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Translation metadata remains stale, and the new validation feedback is not announced to screen readers.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Fixes warm-start toast navigation and adds visible validation feedback when creating custom sources.
Changes:
- Normalizes toast actions and compares them case-insensitively.
- Adds source name/URL validation feedback that clears on edits.
- Localizes validation messages across all 59 registered locale files.
File summaries
| File | Description |
|---|---|
src/UniGetUI.Avalonia/Infrastructure/WindowsAppNotificationBridge.cs |
Trims trailing separators from toast actions. |
src/UniGetUI.Avalonia/ViewModels/MainWindowViewModel.cs |
Matches notification actions case-insensitively. |
src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/SourceManagerCardViewModel.cs |
Adds and clears source validation errors. |
src/UniGetUI.Avalonia/Views/Pages/SettingsPages/SourceManagerCard.axaml |
Displays source validation errors. |
src/Languages/lang_af.json |
Adds localized validation strings. |
src/Languages/lang_ar.json |
Adds localized validation strings. |
src/Languages/lang_be.json |
Adds localized validation strings. |
src/Languages/lang_bg.json |
Adds localized validation strings. |
src/Languages/lang_bn.json |
Adds localized validation strings. |
src/Languages/lang_ca.json |
Adds localized validation strings. |
src/Languages/lang_cs.json |
Adds localized validation strings. |
src/Languages/lang_da.json |
Adds localized validation strings. |
src/Languages/lang_de.json |
Adds localized validation strings. |
src/Languages/lang_el.json |
Adds localized validation strings. |
src/Languages/lang_en.json |
Defines the validation source strings. |
src/Languages/lang_eo.json |
Adds localized validation strings. |
src/Languages/lang_es-MX.json |
Adds localized validation strings. |
src/Languages/lang_es.json |
Adds localized validation strings. |
src/Languages/lang_et.json |
Adds localized validation strings. |
src/Languages/lang_fa.json |
Adds localized validation strings. |
src/Languages/lang_fi.json |
Adds localized validation strings. |
src/Languages/lang_fil.json |
Adds localized validation strings. |
src/Languages/lang_fr.json |
Adds localized validation strings. |
src/Languages/lang_gl.json |
Adds localized validation strings. |
src/Languages/lang_gu.json |
Adds localized validation strings. |
src/Languages/lang_he.json |
Adds localized validation strings. |
src/Languages/lang_hi.json |
Adds localized validation strings. |
src/Languages/lang_hr.json |
Adds localized validation strings. |
src/Languages/lang_hu.json |
Adds localized validation strings. |
src/Languages/lang_id.json |
Adds localized validation strings. |
src/Languages/lang_it.json |
Adds localized validation strings. |
src/Languages/lang_ja.json |
Adds localized validation strings. |
src/Languages/lang_ka.json |
Adds localized validation strings. |
src/Languages/lang_kn.json |
Adds localized validation strings. |
src/Languages/lang_ko.json |
Adds localized validation strings. |
src/Languages/lang_ku.json |
Adds localized validation strings. |
src/Languages/lang_lt.json |
Adds localized validation strings. |
src/Languages/lang_mk.json |
Adds localized validation strings. |
src/Languages/lang_mr.json |
Adds localized validation strings. |
src/Languages/lang_nb.json |
Adds localized validation strings. |
src/Languages/lang_nl.json |
Adds localized validation strings. |
src/Languages/lang_nn.json |
Adds localized validation strings. |
src/Languages/lang_pl.json |
Adds localized validation strings. |
src/Languages/lang_pt_BR.json |
Adds localized validation strings. |
src/Languages/lang_pt_PT.json |
Adds localized validation strings. |
src/Languages/lang_ro.json |
Adds localized validation strings. |
src/Languages/lang_ru.json |
Adds localized validation strings. |
src/Languages/lang_sa.json |
Adds localized validation strings. |
src/Languages/lang_si.json |
Adds localized validation strings. |
src/Languages/lang_sk.json |
Adds localized validation strings. |
src/Languages/lang_sl.json |
Adds localized validation strings. |
src/Languages/lang_sq.json |
Adds localized validation strings. |
src/Languages/lang_sr.json |
Adds localized validation strings. |
src/Languages/lang_sv.json |
Adds localized validation strings. |
src/Languages/lang_ta.json |
Adds localized validation strings. |
src/Languages/lang_th.json |
Adds localized validation strings. |
src/Languages/lang_tl.json |
Adds localized validation strings. |
src/Languages/lang_tr.json |
Adds localized validation strings. |
src/Languages/lang_uk.json |
Adds localized validation strings. |
src/Languages/lang_ur.json |
Adds localized validation strings. |
src/Languages/lang_vi.json |
Adds localized validation strings. |
src/Languages/lang_zh_CN.json |
Adds localized validation strings. |
src/Languages/lang_zh_TW.json |
Adds localized validation strings. |
Review details
- Files reviewed: 63/63 changed files
- Comments generated: 2
- Review effort level: Balanced (auto)
Note
Copilot is running an experiment and ran this review at Balanced.
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
🟢 Approval recommended
The fixes match the reported defects, preserve accessibility behavior, and all registered locale files contain valid nonempty entries.
Review details
- Files reviewed: 63/63 changed files
- Comments generated: 0 new
- Review effort level: Balanced (auto)
Note
Copilot is running an experiment and ran this review at Balanced.
There was a problem hiding this comment.
🤖 Pull request was approved automatically: the AI review is complete and all its review threads are resolved. 🎉
Integration Details
{
"deliveryId": "311cdd70-b07a-11f1-9e5e-c434b32b37b5",
"headSha": "9ef875d79700d2f09c0624315dacd2aa792099f1",
"reviewer": "copilot-pull-request-reviewer[bot]"
}
Two defects found while testing the release.
The "updates available" toast never opened Software Updates. It activates with a
unigetui://<action>launch URI, and the shell appends a trailing separator before handing it to the handler, so the parsed action wasopenUniGetUIOnUpdatesTab/and matched no notification argument. The window still came forward because the secondary-instance handler foregrounds unconditionally, which is why it looked like the toast only raised the window. The action is now trimmed and matched case-insensitively. Verified by activating through the registered handler and reading the resulting page back over the IPC API.Adding a custom source did nothing, silently. The form returned early on a blank name or a URL that is not an absolute
Uri— no message, no log entry, no operation. A URL typed without its scheme is the usual way to hit it. The reason is now shown under the fields and cleared on the next edit.Both new strings are translated into all 58 active locales; Uzbek is skipped, as it is not in
LanguagesReference.jsonand an earlier review already removed new translations from that file.TranslatedPercentages.jsonis deliberately left out of this PR: its stored values are already stale onmain, where 21 languages compute at 99% with no missing keys at all, so refreshing it belongs in its own change rather than mixed in here.Not addressed: a toast clicked after UniGetUI has exited still will not navigate (the cold-start path never parses the deep link), and macOS routes no notification action at all.