package com.ideabag.playtunes.dialog; import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.provider.MediaStore; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.TextView; import android.widget.Toast; import com.ideabag.playtunes.PlaylistManager; import com.ideabag.playtunes.R; import com.ideabag.playtunes.database.MediaQuery; import com.ideabag.playtunes.util.QueryCountTask; public class PlaylistDeleteDialogFragment extends DialogFragment { private PlaylistManager mPlaylistManager; private String mMediaID = null; private String mPlaylistName = null; private int mSongCount; private TextView mTitle; private TextView mCount; public PlaylistDeleteDialogFragment() { setStyle( STYLE_NORMAL, 0 ); } public void setMediaID( String media_id ) { this.mMediaID = media_id; } @Override public void onAttach( Activity activity ) { super.onAttach( activity ); } @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate( R.layout.dialog_fragment_deleteplaylist, container); MediaQuery mPlaylistMembers = new MediaQuery( MediaStore.Audio.Playlists.Members.getContentUri( "external", Long.parseLong( mMediaID ) ), new String[] { MediaStore.Audio.Playlists.Members.AUDIO_ID, }, MediaStore.Audio.Playlists.Members.PLAYLIST_ID + " =?", new String[] { mMediaID }, null ); MediaQuery mPlaylistTitle = new MediaQuery( MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Audio.Playlists.NAME, MediaStore.Audio.Playlists._ID }, MediaStore.Audio.Playlists._ID + " =?", new String[] { mMediaID }, null ); getDialog().requestWindowFeature( Window.FEATURE_NO_TITLE ); mTitle = ( TextView ) view.findViewById( R.id.Title );//.setText( mPlaylistName ); mCount = ( TextView ) view.findViewById( R.id.BadgeCount );// ).setText( "" + mSongCount ); MediaQuery.executeAsync(getActivity(), mPlaylistMembers, new MediaQuery.OnQueryCompletedListener() { @Override public void onQueryCompleted( MediaQuery mQuery, Cursor mResult ) { mResult.moveToFirst(); mSongCount = mResult.getCount();//( mResult.getColumnIndex( MediaStore.Audio.Playlists.NAME ) ); mCount.setText( "" + mSongCount ); mResult.close(); } }); MediaQuery.executeAsync(getActivity(), mPlaylistTitle, new MediaQuery.OnQueryCompletedListener() { @Override public void onQueryCompleted( MediaQuery mQuery, Cursor mResult ) { mResult.moveToFirst(); mPlaylistName = mResult.getString( mResult.getColumnIndex( MediaStore.Audio.Playlists.NAME ) ); mTitle.setText( mPlaylistName ); mResult.close(); } }); mPlaylistManager = new PlaylistManager( getActivity() ); view.findViewById( R.id.DialogDeleteCancel ).setOnClickListener( buttonClickListener ); view.findViewById( R.id.DialogDeleteConfirm ).setOnClickListener( buttonClickListener ); return view; } @Override public void onStart() { super.onStart(); if ( android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB ) { getDialog().getWindow().setBackgroundDrawableResource( R.drawable.gb_dialog_background ); } } private View.OnClickListener buttonClickListener = new View.OnClickListener() { @Override public void onClick(View v) { int id = v.getId(); if ( id == R.id.DialogDeleteCancel ) { dismiss(); } else if ( id == R.id.DialogDeleteConfirm ) { deletePlaylist(); } } }; private void deletePlaylist() { if ( null != mMediaID ) { mPlaylistManager.deletePlaylist( mMediaID ); Toast.makeText( getActivity(), "Deleted playlist " + mPlaylistName, Toast.LENGTH_SHORT ).show(); dismiss(); } } }