newSkin method

Emoji newSkin(
  1. fitzpatrick skinTone
)

Returns current Emoji with New requested skinTone if modifiable, else Returns current Emoji

Implementation

Emoji newSkin(fitzpatrick skinTone) {
  if (modifiable) {
    switch (skinTone) {
      case fitzpatrick.light:
        return Emoji(
            name: this.name + ', tone1',
            char: modify(this.char, skinTone),
            shortName: this.shortName + '_tone1',
            emojiGroup: this.emojiGroup,
            emojiSubgroup: this.emojiSubgroup,
            keywords: this.keywords,
            modifiable: true);
      case fitzpatrick.mediumLight:
        return Emoji(
            name: this.name + ', tone2',
            char: modify(this.char, skinTone),
            shortName: this.shortName + '_tone2',
            emojiGroup: this.emojiGroup,
            emojiSubgroup: this.emojiSubgroup,
            keywords: this.keywords,
            modifiable: true);
      case fitzpatrick.medium:
        return Emoji(
            name: this.name + ', tone3',
            char: modify(this.char, skinTone),
            shortName: this.shortName + '_tone3',
            emojiGroup: this.emojiGroup,
            emojiSubgroup: this.emojiSubgroup,
            keywords: this.keywords,
            modifiable: true);
      case fitzpatrick.mediumDark:
        return Emoji(
            name: this.name + ', tone4',
            char: modify(this.char, skinTone),
            shortName: this.shortName + '_tone4',
            emojiGroup: this.emojiGroup,
            emojiSubgroup: this.emojiSubgroup,
            keywords: this.keywords,
            modifiable: true);
      case fitzpatrick.dark:
        return Emoji(
            name: this.name + ', tone5',
            char: modify(this.char, skinTone),
            shortName: this.shortName + '_tone5',
            emojiGroup: this.emojiGroup,
            emojiSubgroup: this.emojiSubgroup,
            keywords: this.keywords,
            modifiable: true);
      case fitzpatrick.None:
        return Emoji.byChar(stabilize(this.char));
    }
  }
  return this;
}