package com.konka.music.util;
import java.util.ArrayList;
import android.media.MediaMetadataRetriever;
import com.konka.music.musicexception.DownLoadException;
import com.konka.music.pojo.MusicInfo;
import com.konka.music.wedget.MusicApplication;
public class MusicInfoUtil {
public static void setMusicInfoToLike(MusicInfo musicinfo) {
String strWhere = "displayName = ?";
String[] selectionArgs = { musicinfo.getDisplayName() };
ArrayList<MusicInfo> musicinfos = MusicApplication.mKCommonToolDb.findAllByWhere(MusicInfo.class, strWhere, selectionArgs);
if (!ArrayUtils.isEmpty(musicinfos)) {
MusicInfo dbmusicinfo = musicinfos.get(0);
dbmusicinfo.setFavourite(musicinfo.getFavourite());
MusicApplication.mKCommonToolDb.insertOrReplace(dbmusicinfo);
} else {
MusicApplication.mKCommonToolDb.insertOrReplace(musicinfo);
}
}
public static void handleMyLikeFromDb(MusicInfo musicinfo) {
String strWhere = "displayName = ? and favourite != 0";
String[] selectionArgs = { musicinfo.getDisplayName() };
ArrayList<MusicInfo> musicinfos = MusicApplication.mKCommonToolDb.findAllByWhere(MusicInfo.class, strWhere, selectionArgs);
if (!ArrayUtils.isEmpty(musicinfos)) {
MusicInfo dbmusicinfo = musicinfos.get(0);
musicinfo.setFavourite(dbmusicinfo.getFavourite());
}
}
public static void checkMusicInfoDownload(MusicInfo musicinfo) throws DownLoadException {
String strWhere = "displayName = ? and download_id != 0";
String[] selectionArgs = { musicinfo.getDisplayName() };
ArrayList<MusicInfo> musicinfos = MusicApplication.mKCommonToolDb.findAllByWhere(MusicInfo.class, strWhere, selectionArgs);
if (!ArrayUtils.isEmpty(musicinfos)) {
for (MusicInfo m : musicinfos) {
System.out.println(m.getTitle());
System.out.println(m.getDownload_id());
System.out.println(m.getData());
}
throw new DownLoadException("已经在下载队列中");
}
}
public static void setMusicInfoToHistory(MusicInfo musicinfo) {
String strWhere = "displayName = ?";
String[] selectionArgs = { musicinfo.getDisplayName() };
ArrayList<MusicInfo> musicinfos = MusicApplication.mKCommonToolDb.findAllByWhere(MusicInfo.class, strWhere, selectionArgs);
if (!ArrayUtils.isEmpty(musicinfos)) {
MusicInfo dbmusicinfo = musicinfos.get(0);
dbmusicinfo.setHistory(musicinfo.getHistory());
MusicApplication.mKCommonToolDb.insertOrReplace(dbmusicinfo);
} else {
MusicApplication.mKCommonToolDb.insertOrReplace(musicinfo);
}
}
public static void clearAllHistory() {
String strWhere = "history != 0";
MusicApplication.mKCommonToolDb.update(MusicInfo.class, strWhere, new String[] { "history" }, new String[] { "0" });
}
public static void setMusicInfoToDownload(MusicInfo musicinfo) {
String strWhere = "displayName = ?";
String[] selectionArgs = { musicinfo.getDisplayName() };
ArrayList<MusicInfo> musicinfos = MusicApplication.mKCommonToolDb.findAllByWhere(MusicInfo.class, strWhere, selectionArgs);
if (!ArrayUtils.isEmpty(musicinfos)) {
MusicInfo dbmusicinfo = musicinfos.get(0);
dbmusicinfo.setDownload_id(musicinfo.getDownload_id());
MusicApplication.mKCommonToolDb.insertOrReplace(dbmusicinfo);
} else {
MusicApplication.mKCommonToolDb.insertOrReplace(musicinfo);
}
}
public static MusicInfo parseFile2MusicInfo(String path) {
MusicInfo musicInfo = new MusicInfo();
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(path);
String title = "";
String album = "";
String artist = "";
try {
title = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
album = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
} catch (Exception e) {
e.printStackTrace();
}
musicInfo.setTitle(title);
musicInfo.setAlbum(album);
musicInfo.setMusicname(title);
musicInfo.setArtist(artist);
musicInfo.setSinger(artist);
musicInfo.setData(path);
musicInfo.setDisplayName(artist + "-" + title);
return musicInfo;
}
}