package cn.qylk.app;
import java.util.List;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import cn.qylk.QianQianLyrics.LyricResults;
import cn.qylk.lrc.LRCbean;
import cn.qylk.lrc.MediaLyric;
import cn.qylk.media.ArtistInfo;
public class Tasks {
static class InfoTask2 extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
return ArtistInfo.TryToGetInfo(APP.list.getTrackEntity());
}
@Override
protected void onPostExecute(String result) {
if (postinfo != null)
postinfo.onInfoGot(result);
isacting = false;
super.onPostExecute(result);
}
}
static class LocalLrcTask extends AsyncTask<Integer, Void, List<LRCbean>> {
private boolean usedweb;
@Override
protected List<LRCbean> doInBackground(Integer... params) {
usedweb = (params[0] >= 0);
return MediaLyric.FetchLyric(APP.list.getTrackEntity(), params[0]);
}
@Override
protected void onPostExecute(List<LRCbean> result) {
super.onPostExecute(result);
if (postlrc != null)
postlrc.onLrcGot(result, usedweb);
}
}
static class LrcSearchTask extends
AsyncTask<Boolean, Void, List<LyricResults>> {
@Override
protected List<LyricResults> doInBackground(Boolean... params) {
return MediaLyric.SearchLyrics(APP.list.getTrackEntity());
}
@Override
protected void onPostExecute(List<LyricResults> result) {
super.onPostExecute(result);
if (postlrcsearch != null)
postlrcsearch.onLrcSearchDone(result);
}
}
public interface onPostInfo {
public void onInfoGot(String info);
}
public interface onPostLrc {
public void onLrcGot(List<LRCbean> lrc, boolean usedweb);
}
public interface onPostLrcItems {
public void onLrcSearchDone(List<LyricResults> items);
}
public interface onPostPic {
public void onPicGot(Bitmap pic);
}
static class PicTask extends AsyncTask<Boolean, Void, Bitmap> {
@Override
protected Bitmap doInBackground(Boolean... params) {
return ArtistInfo.TryToGetPic(APP.list.getTrackEntity(), params[0]);
}
@Override
protected void onPostExecute(Bitmap result) {
if (postpic != null)
postpic.onPicGot(result);
}
}
private static boolean isacting;
private static onPostInfo postinfo;
private static onPostLrc postlrc;
private static onPostLrcItems postlrcsearch;
private static onPostPic postpic;
/**
* 开始执行获取艺术家信息的任务
*
* @param pi
*/
public static void startInfoTask2(onPostInfo pi) {
if (isacting)
return;
postinfo = pi;
isacting = true;
new InfoTask2().execute();
}
/**
* 开始执行搜索歌词的任务
*
* @param pls
*/
public static void startLrcSearchTask(onPostLrcItems pls) {
postlrcsearch = pls;
new LrcSearchTask().execute();
}
/**
* 开始执行获取歌词的任务
*
* @param pl
* @param id
* 千千歌词id,若还没有,置-1来计划下载
*/
public static void startLrcTask(onPostLrc pl, int id) {
postlrc = pl;
new LocalLrcTask().execute(id);
}
/**
* 开始执行获取图片的任务
*
* @param pp
* @param icon
*/
public static void startPicTask(onPostPic pp, boolean icon) {
postpic = pp;
new PicTask().execute(icon);
}
}