2021-02-19 02:18:58 +01:00
|
|
|
package jp.juggler.subwaytooter.emoji.model
|
|
|
|
|
|
|
|
import jp.juggler.subwaytooter.emoji.log
|
|
|
|
|
2021-02-22 22:33:54 +01:00
|
|
|
class Category(val name: String, val url: String?) {
|
|
|
|
override fun equals(other: Any?) = name == (other as? Category)?.name
|
|
|
|
override fun hashCode(): Int = name.hashCode()
|
2021-02-19 02:18:58 +01:00
|
|
|
|
|
|
|
// ショートコード登場順序がある
|
2021-02-22 22:33:54 +01:00
|
|
|
private val _emojis = ArrayList<Emoji>()
|
|
|
|
val emojis:List<Emoji> get()=_emojis
|
2021-02-19 02:18:58 +01:00
|
|
|
|
2021-02-22 22:33:54 +01:00
|
|
|
fun addEmoji(item: Emoji, allowDuplicate: Boolean = false, addingName: String? = "?") {
|
|
|
|
if (!allowDuplicate) {
|
2021-02-19 02:18:58 +01:00
|
|
|
val oldCategory = item.usedInCategory
|
2021-02-22 22:33:54 +01:00
|
|
|
if (oldCategory != null) {
|
|
|
|
log.w("emoji ${item.shortNames.first()}, $addingName is already in category ${oldCategory.name}")
|
2021-02-19 02:18:58 +01:00
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
item.usedInCategory = this
|
2021-02-22 22:33:54 +01:00
|
|
|
if (!_emojis.contains(item)) _emojis.add(item)
|
2021-02-19 02:18:58 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-02-22 22:33:54 +01:00
|
|
|
val categoryNames = arrayOf(
|
|
|
|
Category("People", "https://emojipedia.org/people/"),
|
|
|
|
Category("ComplexTones", null),
|
|
|
|
Category("Nature", "https://emojipedia.org/nature/"),
|
|
|
|
Category("Foods", "https://emojipedia.org/food-drink/"),
|
|
|
|
Category("Activities", "https://emojipedia.org/activity/"),
|
|
|
|
Category("Places", "https://emojipedia.org/travel-places/"),
|
|
|
|
Category("Objects", "https://emojipedia.org/objects/"),
|
|
|
|
Category("Symbols", "https://emojipedia.org/symbols/"),
|
|
|
|
Category("Flags", "https://emojipedia.org/flags/"),
|
|
|
|
Category("Others", null),
|
|
|
|
)
|
2021-02-19 02:18:58 +01:00
|
|
|
|