/*
* This is the source code of DMPLayer for Android v. 1.0.0.
* You should have received a copy of the license in this archive (see LICENSE).
* Copyright @Dibakar_Mistry, 2015.
*/
package com.dmplayer.activities;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.dmplayer.R;
import com.dmplayer.models.SongDetail;
import com.dmplayer.phonemidea.DMPlayerUtility;
import com.dmplayer.phonemidea.PhoneMediaControl;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
public class MusicChooserActivity extends ActionBarActivity {
private SharedPreferences sharedPreferences;
private int color = 0xFFFFFF;
private Context context;
private ListView recycler_songslist;
private AllSongsListAdapter mAllSongsListAdapter;
private ArrayList<SongDetail> songList = new ArrayList<SongDetail>();
@Override
protected void onCreate(Bundle savedInstanceState) {
//Set your theme first
context = MusicChooserActivity.this;
theme();
//Set your Layout view
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_musicchooser);
initialize();
loadAllSongs();
}
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(0, 0);
finish();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
//Catch theme changed from settings
public void theme() {
sharedPreferences = getSharedPreferences("VALUES", Context.MODE_PRIVATE);
int theme = sharedPreferences.getInt("THEME", 0);
DMPlayerUtility.settingTheme(context, theme);
}
private void initialize() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(true);
recycler_songslist = (ListView) findViewById(R.id.recycler_allSongs);
mAllSongsListAdapter = new AllSongsListAdapter(context);
recycler_songslist.setAdapter(mAllSongsListAdapter);
}
private void loadAllSongs() {
PhoneMediaControl mPhoneMediaControl = PhoneMediaControl.getInstance();
PhoneMediaControl.setPhonemediacontrolinterface(new PhoneMediaControl.PhoneMediaControlINterface() {
@Override
public void loadSongsComplete(ArrayList<SongDetail> songsList_) {
songList = songsList_;
mAllSongsListAdapter.notifyDataSetChanged();
}
});
mPhoneMediaControl.loadMusicList(context, -1, PhoneMediaControl.SonLoadFor.All,"");
}
public class AllSongsListAdapter extends BaseAdapter {
private Context context = null;
private LayoutInflater layoutInflater;
private DisplayImageOptions options;
private ImageLoader imageLoader = ImageLoader.getInstance();
public AllSongsListAdapter(Context mContext) {
this.context = mContext;
this.layoutInflater = LayoutInflater.from(mContext);
this.options = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.bg_default_album_art)
.showImageForEmptyUri(R.drawable.bg_default_album_art).showImageOnFail(R.drawable.bg_default_album_art).cacheInMemory(true)
.cacheOnDisk(true).considerExifParams(true).bitmapConfig(Bitmap.Config.RGB_565).build();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder mViewHolder;
if (convertView == null) {
mViewHolder = new ViewHolder();
convertView = layoutInflater.inflate(R.layout.inflate_allsongsitem, null);
mViewHolder.song_row = (LinearLayout) convertView.findViewById(R.id.inflate_allsong_row);
mViewHolder.textViewSongName = (TextView) convertView.findViewById(R.id.inflate_allsong_textsongname);
mViewHolder.textViewSongArtisNameAndDuration = (TextView) convertView.findViewById(R.id.inflate_allsong_textsongArtisName_duration);
mViewHolder.imageSongThm = (ImageView) convertView.findViewById(R.id.inflate_allsong_imgSongThumb);
convertView.setTag(mViewHolder);
} else {
mViewHolder = (ViewHolder) convertView.getTag();
}
SongDetail mDetail = songList.get(position);
String audioDuration = "";
try {
audioDuration = DMPlayerUtility.getAudioDuration(Long.parseLong(mDetail.getDuration()));
} catch (NumberFormatException e) {
e.printStackTrace();
}
mViewHolder.textViewSongArtisNameAndDuration.setText((audioDuration.isEmpty() ? "" : audioDuration + " | ") + mDetail.getArtist());
mViewHolder.textViewSongName.setText(mDetail.getTitle());
String contentURI = "content://media/external/audio/media/" + mDetail.getId() + "/albumart";
imageLoader.displayImage(contentURI, mViewHolder.imageSongThm, options);
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_OK, (new Intent()).setData(Uri.parse(songList.get(position).getPath())));
overridePendingTransition(0, 0);
finish();
}
});
return convertView;
}
@Override
public int getCount() {
return (songList != null) ? songList.size() : 0;
}
class ViewHolder {
TextView textViewSongName;
ImageView imageSongThm;
TextView textViewSongArtisNameAndDuration;
LinearLayout song_row;
}
}
}