2015-05-06 13:53:55 -07:00
|
|
|
package org.thoughtcrime.securesms.components.emoji;
|
|
|
|
|
|
2015-06-08 17:54:16 +02:00
|
|
|
import android.support.annotation.AttrRes;
|
2015-05-06 13:53:55 -07:00
|
|
|
import android.support.annotation.NonNull;
|
2015-05-21 17:29:23 -07:00
|
|
|
import android.support.annotation.Nullable;
|
2015-05-06 13:53:55 -07:00
|
|
|
|
2018-10-23 23:37:09 -07:00
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.LinkedList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
2015-05-20 16:51:09 -07:00
|
|
|
public class StaticEmojiPageModel implements EmojiPageModel {
|
2018-10-23 23:37:09 -07:00
|
|
|
@AttrRes private final int iconAttr;
|
|
|
|
|
@NonNull private final List<Emoji> emoji;
|
|
|
|
|
@Nullable private final String sprite;
|
|
|
|
|
|
|
|
|
|
public StaticEmojiPageModel(@AttrRes int iconAttr, @NonNull String[] strings, @Nullable String sprite) {
|
|
|
|
|
List<Emoji> emoji = new ArrayList<>(strings.length);
|
|
|
|
|
for (String s : strings) {
|
|
|
|
|
emoji.add(new Emoji(s));
|
|
|
|
|
}
|
2015-06-08 17:54:16 +02:00
|
|
|
|
2018-10-23 23:37:09 -07:00
|
|
|
this.iconAttr = iconAttr;
|
|
|
|
|
this.emoji = emoji;
|
|
|
|
|
this.sprite = sprite;
|
2018-10-16 09:31:46 -07:00
|
|
|
}
|
|
|
|
|
|
2018-10-23 23:37:09 -07:00
|
|
|
public StaticEmojiPageModel(@AttrRes int iconAttr, @NonNull Emoji[] emoji, @Nullable String sprite) {
|
2018-10-16 09:31:46 -07:00
|
|
|
this.iconAttr = iconAttr;
|
2018-10-23 23:37:09 -07:00
|
|
|
this.emoji = Arrays.asList(emoji);
|
2018-10-16 09:31:46 -07:00
|
|
|
this.sprite = sprite;
|
2015-05-06 13:53:55 -07:00
|
|
|
}
|
|
|
|
|
|
2015-06-08 17:54:16 +02:00
|
|
|
public int getIconAttr() {
|
|
|
|
|
return iconAttr;
|
2015-05-06 13:53:55 -07:00
|
|
|
}
|
|
|
|
|
|
2018-10-16 09:31:46 -07:00
|
|
|
@Override
|
2018-10-23 23:37:09 -07:00
|
|
|
public @NonNull List<String> getEmoji() {
|
|
|
|
|
List<String> emojis = new LinkedList<>();
|
|
|
|
|
for (Emoji e : emoji) {
|
|
|
|
|
emojis.addAll(e.getVariations());
|
|
|
|
|
}
|
|
|
|
|
return emojis;
|
2015-05-21 17:29:23 -07:00
|
|
|
}
|
|
|
|
|
|
2018-10-16 09:31:46 -07:00
|
|
|
@Override
|
2018-10-23 23:37:09 -07:00
|
|
|
public @NonNull List<Emoji> getDisplayEmoji() {
|
|
|
|
|
return emoji;
|
2018-10-16 09:31:46 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean hasSpriteMap() {
|
2015-05-21 17:29:23 -07:00
|
|
|
return sprite != null;
|
|
|
|
|
}
|
|
|
|
|
|
2018-10-16 09:31:46 -07:00
|
|
|
@Override
|
|
|
|
|
public @Nullable String getSprite() {
|
2015-05-21 17:29:23 -07:00
|
|
|
return sprite;
|
2015-05-06 13:53:55 -07:00
|
|
|
}
|
2015-05-20 16:51:09 -07:00
|
|
|
|
2018-10-16 09:31:46 -07:00
|
|
|
@Override
|
|
|
|
|
public boolean isDynamic() {
|
2015-05-20 16:51:09 -07:00
|
|
|
return false;
|
|
|
|
|
}
|
2015-05-06 13:53:55 -07:00
|
|
|
}
|