hide
Remove the overlay if showing. Safe to call from any thread (off-main calls are posted to the main looper). The controller only forgets the view once WindowManager.removeView succeeds (or the view is already detached), so a failed removal can be retried.