package com.example.ipcplayer.convert;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import com.example.ipcplayer.object.MusicFile;
import com.example.ipcplayer.provider.MusicDB;
import com.example.ipcplayer.provider.MusicDBHelper;
import com.example.ipcplayer.provider.MusicDBManager;
import com.example.ipcplayer.utils.LogUtil;
import com.example.ipcplayer.utils.StringUtil;
public class ConvertToMusicFile{
private static final String TAG = ConvertToMusicFile.class.getSimpleName();
private Context mContext;
private static ConvertToMusicFile mInstance;
public ConvertToMusicFile(Context context){
mContext = context;
}
public static ConvertToMusicFile getInstance(Context context){
if(mInstance == null){
mInstance = new ConvertToMusicFile(context);
}
return mInstance;
}
public MusicFile idToMusicFile(long id){
LogUtil.d(TAG + " idToMusicFile id: " + id);
if(id < 1){
return null;
}
String[] cols = new String[]{
MusicDB.MusicInfoColumns._ID,
MusicDB.MusicInfoColumns.DATA,
MusicDB.MusicInfoColumns.ARTIST,
MusicDB.MusicInfoColumns.ALBUMN,
MusicDB.MusicInfoColumns.MUSICNAME
};
LogUtil.d(TAG + " idToMusicFile cols: " + cols.toString());
//there is some problem with ContentProvider and need to test it;
// Uri uri = ContentUris.withAppendedId(MusicDB.MusicInfoColumns.getContentUri(), id);
// LogUtil.d(TAG + " idToMusicFile uri: " + uri.toString());
// Cursor cursor = mContext.getContentResolver().query(uri, cols, null, null, null);
String where = MusicDB.MusicInfoColumns._ID + " = " + id;
LogUtil.d(TAG + " idToMusicFile where: " + where);
Cursor cursor = MusicDBManager.getInstance(mContext).query(MusicDBHelper.TABLE_MUSICINFO, cols, where, null, null, null, null);
LogUtil.d(TAG + " idToMusicFile cursor: " + cursor.toString());
MusicFile musicFile = new MusicFile();
try {
musicFile.id = id;
LogUtil.d(TAG + " idToMusicFile id: " + id);
if (cursor.moveToFirst()) {
musicFile.path = cursor.getString(cursor
.getColumnIndexOrThrow(MusicDB.MusicInfoColumns.DATA));
String musicName = cursor.getString(4);
if (StringUtil.isEmpty(musicName)) {
musicFile.musicName = "";
} else {
musicFile.musicName = musicName;
}
String artistName = cursor.getString(4);
if (StringUtil.isEmpty(artistName)) {
musicFile.artistName = "";
} else {
musicFile.artistName = musicName;
}
String albumnName = cursor.getString(4);
if (StringUtil.isEmpty(albumnName)) {
musicFile.albumnName = "";
} else {
musicFile.albumnName = musicName;
}
}
}catch(Exception e){
e.printStackTrace();
} finally {
if(cursor != null){
cursor.close();
cursor = null;
}
}
return musicFile;
}
}