private void setActions(@Nullable Action[] actions) {
    if (Arrays.equals(mActions, actions)) {
      // No need to notify listeners about this
      // change.
      return;
    }

    mActions = actions;
    mListener.onNotificationContentChanged(this, EVENT_ACTIONS_CHANGED);
  }
  private void setMessages(@Nullable CharSequence[] messages) {
    if (Arrays.equals(mMessages, messages)) {
      // No need to notify listeners about this
      // change.
      return;
    }

    mMessages = messages;
    mListener.onNotificationContentChanged(this, EVENT_MESSAGE_CHANGED);
  }
  private void setTimestamp(@Nullable CharSequence timestamp) {
    if (TextUtils.equals(mTimestamp, timestamp)) {
      // No need to notify listeners about this
      // change.
      return;
    }

    mTimestamp = timestamp;
    mListener.onNotificationContentChanged(this, EVENT_TIMESTAMP_CHANGED);
  }
  private void setSubtitle(@Nullable CharSequence subtitle) {
    if (TextUtils.equals(mSubtitle, subtitle)) {
      // No need to notify listeners about this
      // change.
      return;
    }

    mSubtitle = subtitle;
    mListener.onNotificationContentChanged(this, EVENT_SUBTITLE_CHANGED);
  }
  private void setLargeIcon(@Nullable Bitmap bitmap) {
    if (sameAs(mLargeIcon, bitmap)) {
      // No need to notify listeners about this
      // change.
      return;
    }

    mLargeIcon = bitmap;
    mListener.onNotificationContentChanged(this, EVENT_LARGE_ICON_CHANGED);
  }