package me.wcy.music.executor;
import android.text.TextUtils;
import me.wcy.music.http.HttpCallback;
import me.wcy.music.http.HttpClient;
import me.wcy.music.model.Lrc;
import me.wcy.music.model.SearchMusic;
import me.wcy.music.utils.FileUtils;
/**
* 如果本地歌曲没有歌词则从网络搜索歌词
* Created by wcy on 2016/4/26.
*/
public abstract class SearchLrc implements IExecutor<String> {
private String artist;
private String title;
public SearchLrc(String artist, String title) {
this.artist = artist;
this.title = title;
}
@Override
public void execute() {
onPrepare();
searchLrc();
}
private void searchLrc() {
HttpClient.searchMusic(title + "-" + artist, new HttpCallback<SearchMusic>() {
@Override
public void onSuccess(SearchMusic response) {
if (response == null || response.getSong() == null || response.getSong().isEmpty()) {
onFail(null);
return;
}
downloadLrc(response.getSong().get(0).getSongid());
}
@Override
public void onFail(Exception e) {
onExecuteFail(e);
}
});
}
private void downloadLrc(String songId) {
HttpClient.getLrc(songId, new HttpCallback<Lrc>() {
@Override
public void onSuccess(Lrc response) {
if (response == null || TextUtils.isEmpty(response.getLrcContent())) {
onFail(null);
return;
}
String filePath = FileUtils.getLrcDir() + FileUtils.getLrcFileName(artist, title);
FileUtils.saveLrcFile(filePath, response.getLrcContent());
onExecuteSuccess(filePath);
}
@Override
public void onFail(Exception e) {
onExecuteFail(e);
}
});
}
}