Fix and rework Android error notifications #1051
Open
+58
−30
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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:
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