apk(点击下载) / StickerManager.java
package com.netease.nim.uikit.business.session.emoji;
import com.netease.nim.uikit.api.NimUIKit;
import com.netease.nim.uikit.common.util.C;
import com.netease.nim.uikit.common.util.file.FileUtil;
import com.netease.nim.uikit.common.util.log.sdk.wrapper.AbsNimLog;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class StickerManager {
private static final String CATEGORY_AJMD = "ajmd";
private static final String CATEGORY_LT = "lt";
private static final String CATEGORY_XXY = "xxy";
private static final String TAG = "StickerManager";
private static StickerManager instance;
private List<StickerCategory> stickerCategories = new ArrayList();
private Map<String, StickerCategory> stickerCategoryMap = new HashMap();
private Map<String, Integer> stickerOrder = new HashMap(3);
public StickerManager() {
initStickerOrder();
loadStickerCategory();
}
public static StickerManager getInstance() {
if (instance == null) {
instance = new StickerManager();
}
return instance;
}
private int getStickerOrder(String str) {
if (this.stickerOrder.containsKey(str)) {
return this.stickerOrder.get(str).intValue();
}
return 100;
}
private void initStickerOrder() {
this.stickerOrder.put(CATEGORY_AJMD, 1);
this.stickerOrder.put(CATEGORY_XXY, 2);
this.stickerOrder.put(CATEGORY_LT, 3);
}
private boolean isSystemSticker(String str) {
return CATEGORY_XXY.equals(str) || CATEGORY_AJMD.equals(str) || CATEGORY_LT.equals(str);
}
private void loadStickerCategory() {
try {
String[] list = NimUIKit.getContext().getResources().getAssets().list("sticker");
for (String str : list) {
if (!FileUtil.hasExtentsion(str)) {
StickerCategory stickerCategory = new StickerCategory(str, str, true, getStickerOrder(str));
this.stickerCategories.add(stickerCategory);
this.stickerCategoryMap.put(str, stickerCategory);
}
}
Collections.sort(this.stickerCategories, new Comparator<StickerCategory>() {
/* class com.netease.nim.uikit.business.session.emoji.StickerManager.AnonymousClass1 */
public int compare(StickerCategory stickerCategory, StickerCategory stickerCategory2) {
return stickerCategory.getOrder() - stickerCategory2.getOrder();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
public synchronized List<StickerCategory> getCategories() {
return this.stickerCategories;
}
public synchronized StickerCategory getCategory(String str) {
return this.stickerCategoryMap.get(str);
}
public String getStickerUri(String str, String str2) {
StickerCategory category = getInstance().getCategory(str);
if (category == null || !isSystemSticker(str)) {
return null;
}
if (!str2.contains(C.FileSuffix.PNG)) {
str2 = str2 + C.FileSuffix.PNG;
}
return "file:///android_asset/" + ("sticker/" + category.getName() + "/" + str2);
}
public void init() {
AbsNimLog.i(TAG, "Sticker Manager init...");
}
}