#1 useless synchronized -- createDrawer always called in a synchronized block
#1 avoid calling getSurfaceHolder when not visible