/* * 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; } } }