No need to synchronize UI thread called methods
Do not try to compute the reverse canvas rotation by hand

save() and restore() are more adequate to restore the initial state and
prevent rounding errors.
Add more @NonNull annotations
refactoring: simplify CompassMiniView logic