package com.lqr.emoji;
|
|
|
import java.io.File;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class StickerCategory {
|
private static final long serialVersionUID = -81692490861539040L;
|
|
private String name;//贴图包名
|
private String title;//显示的标题
|
private boolean system;//是否是系统内置表情
|
private int order = 0;//默认顺序
|
|
private transient List<StickerItem> stickers;
|
|
public StickerCategory(String name, String title, boolean system, int order) {
|
this.name = name;
|
this.title = title;
|
this.system = system;
|
this.order = order;
|
loadStickerData();
|
}
|
|
|
public String getName() {
|
return name;
|
}
|
|
public void setName(String name) {
|
this.name = name;
|
}
|
|
public String getTitle() {
|
return title;
|
}
|
|
public void setTitle(String title) {
|
this.title = title;
|
}
|
|
public boolean isSystem() {
|
return system;
|
}
|
|
public void setSystem(boolean system) {
|
this.system = system;
|
}
|
|
public int getOrder() {
|
return order;
|
}
|
|
public void setOrder(int order) {
|
this.order = order;
|
}
|
|
public List<StickerItem> getStickers() {
|
return stickers;
|
}
|
|
public void setStickers(List<StickerItem> stickers) {
|
this.stickers = stickers;
|
}
|
|
public boolean hasStickers() {
|
return stickers != null && stickers.size() > 0;
|
}
|
|
public int getCount() {
|
if (stickers == null || stickers.isEmpty()) {
|
return 0;
|
}
|
|
return stickers.size();
|
}
|
|
public String getCoverImgPath() {
|
for (File file : new File(LQREmotionKit.getStickerPath()).listFiles()) {
|
if (file.isFile() && file.getName().startsWith(name)) {
|
return "file://" + file.getAbsolutePath();
|
}
|
}
|
return null;
|
}
|
|
public List<StickerItem> loadStickerData() {
|
List<StickerItem> stickers = new ArrayList<>();
|
File stickerDir = new File(LQREmotionKit.getStickerPath(), name);
|
if (stickerDir.exists()) {
|
File[] files = stickerDir.listFiles();
|
for (File file : files) {
|
//比如:tsj ---> tsj/tsj_001.gif
|
// stickers.add(new StickerItem(name, name + File.separator + file.getName()));
|
stickers.add(new StickerItem(name, file.getName()));
|
}
|
}
|
|
//补充最后一页缺少的贴图
|
int tmp = stickers.size() % EmotionLayout.STICKER_PER_PAGE;
|
if (tmp != 0) {
|
int tmp2 = EmotionLayout.STICKER_PER_PAGE - (stickers.size() - (stickers.size() / EmotionLayout.STICKER_PER_PAGE) * EmotionLayout.STICKER_PER_PAGE);
|
for (int i = 0; i < tmp2; i++) {
|
stickers.add(new StickerItem("", ""));
|
}
|
}
|
|
this.setStickers(stickers);
|
return stickers;
|
}
|
|
@Override
|
public boolean equals(Object obj) {
|
if (obj == null || !(obj instanceof StickerCategory)) {
|
return false;
|
}
|
if (obj == this) {
|
return true;
|
}
|
StickerCategory r = (StickerCategory) obj;
|
return r.getName().equals(getName());
|
}
|
|
@Override
|
public int hashCode() {
|
return name.hashCode();
|
}
|
}
|