Have just noticed that View.invalidate API is different than View.postInvalidate.
If I understand this correctly, functions should be very similar as they have the same goal of invalidating the view or a region, so how come invalidate can accept a Rect while postInvalidate doesn’t?