KhronosGroup / Vulkan-Samples

One stop solution for all Vulkan samples
Apache License 2.0
4.33k stars 648 forks source link

Fix and rework Android error notifications #1051

Closed SaschaWillems closed 5 months ago

SaschaWillems commented 6 months ago

Description

This PR completely overhauls the way our framework displays errors on Android. Initially the framework used a notification that would only display "something has crashed" with a link to the log file but no reason as to why a sample crashed or wasn't able to run. Displaying such notifications isn't a great way to display errors and also requires permissions starting with Android 13. Since we never requested those permissions, those messages weren't displayed and instead of gracefully closing, samples that don't work (e.g. because the device lacks a requested extension) would just result in a blank screen.

This PR replaces those notifications with a proper alert dialog, which is a better and cleaner way to display errors. The PR also adds a last error message member to the platform that is then displayed in this alert:

Note that error messages aren't optimal, but the way the framework currently handles errors is pretty convoluted, so this is the best I could do for now.

Fixes #1050

General Checklist:

Please ensure the following points are checked:

marty-johnson59 commented 5 months ago

Merging now that conflicts are resolved (per discussion on Monday's call)