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.
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:
[x] This PR describes the scope and expected impact of the changes I am making
Note: The Samples CI runs a number of checks including:
If this PR contains framework changes:
batch
command line argument to make sure all samples still work properly