I wonder what is the best way to use one button to support multiple function.
Let's say I have application to play music. There is one "play/pause" button. Should I:
1) Use one button and override its onClickListener to perform different actions (play or pause music)
2) Use one button and one onClickListener where i check what is current state and perform action depending on this state
3) Use two buttons with one onClickListeners for every button and show/hide buttons having only one button visible 
4) Something else ?
Is there any pattern or maybe it depends on the situation?
 
     
     
     
     
    