newSkin method
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;
}