package com.tadpolemusic.api;
import java.util.ArrayList;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import com.itap.voiceemoticon.db.DaoFactory;
import com.itap.voiceemoticon.third.WeixinHelper;
import com.itap.voiceemoticon.util.StringUtil;
import com.tadpolemusic.VEApplication;
import com.tadpolemusic.media.MusicData;
public class Voice extends MusicData {
public long id;
public String tags;
public int creatTime;
public String getFirstLetter() {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.UPPERCASE);
String str = PinyinHelper.toHanyuPinyinString(musicName, format, "");
if (str != null && str.length() > 0) {
if (Character.isLetter(str.toCharArray()[0])) {
return (String) str.subSequence(0, 1);
}
}
return "?";
}
public static Voice buildFromJSON(JSONObject jsonObject) {
Voice hotVoice = new Voice();
hotVoice.musicName = jsonObject.optString("title", "");
hotVoice.musicPath = jsonObject.optString("url", "");
hotVoice.tags = jsonObject.optString("metas", "");
return hotVoice;
}
public static PageList<Voice> buildPageListFromJSON(JSONObject jsonObject) {
PageList<Voice> pageList = new PageList<Voice>();
pageList.totalCount = jsonObject.optInt("total_results");
ArrayList<Voice> hostVoiceList = new ArrayList<Voice>();
JSONArray jsonArr = jsonObject.optJSONArray("voice");
for (int i = 0, len = jsonArr.length(); i < len; i++) {
JSONObject jsonObj;
try {
jsonObj = jsonArr.getJSONObject(i);
hostVoiceList.add(Voice.buildFromJSON(jsonObj));
} catch (JSONException e) {
e.printStackTrace();
}
}
pageList.records = hostVoiceList;
return pageList;
}
public void sendToWeixin(final Context context) {
new WeixinHelper(context).sendMusic(musicName, tags, musicPath);
VEApplication.runOnThread(new Runnable() {
@Override
public void run() {
sendStatisticsUrl(context);
}
});
}
public void sendStatisticsUrl(Context context) {
ArrayList<String> list = new ArrayList<String>();
list.add(musicPath);
VEApplication.getVoiceEmoticonApi().statistics(list);
}
/**
* add to my collection
*
* @param context
*/
public void saveToCollect(Context context) {
try {
DaoFactory.getInstance(context).getVoiceDao().saveOrUpdate(this);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* remove from collect
*
* @param context
*/
public void delete(Context context) {
try {
DaoFactory.getInstance(context).getVoiceDao().delete(this);
} catch (Exception e) {
e.printStackTrace();
}
}
}