code: protected final void setUserCommands(List<UserCommand> commands) {
          mCurrentState.setUserCommands(commands);
          mServiceHandler.removeCallbacks(mPublishStateRunnable);
          mServiceHandler.post(mPublishStateRunnable);
      }
docs: Sets the list of available user-visible commands for the source. Commands can be built-in,
  such as {@link #BUILTIN_COMMAND_ID_NEXT_ARTWORK}, or custom-defined. Custom commands must
  have identifiers below {@link #MAX_CUSTOM_COMMAND_ID}.
  
  @param commands the new set of user-visible commands the source supports.
  
  @see #BUILTIN_COMMAND_ID_NEXT_ARTWORK
  @see #MAX_CUSTOM_COMMAND_ID