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.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.TextView; import com.ideabag.playtunes.R; import com.ideabag.playtunes.activity.MainActivity; import com.ideabag.playtunes.database.MediaQuery; import com.ideabag.playtunes.fragment.AlbumsOneFragment; import com.ideabag.playtunes.fragment.ArtistsOneFragment; public class SongMenuDialogFragment extends DialogFragment { String mMediaID; //Cursor mSongCursor = null; MediaQuery mSongQuery; private MainActivity mActivity; TextView mSongArtist; TextView mSongAlbum; View songArtistButton; View songAlbumButton; public SongMenuDialogFragment() { // Empty constructor required for DialogFragment setStyle( STYLE_NORMAL, 0 ); } public void setMediaID( String media_id ) { this.mMediaID = media_id; mSongQuery = new MediaQuery( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.ALBUM_ID, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ARTIST_ID, MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media._ID }, MediaStore.Audio.Media._ID + "=?", new String[] { mMediaID }, null ); } @Override public void onAttach( Activity activity ) { super.onAttach( activity ); mActivity = ( MainActivity ) activity; } @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.dialog_fragment_songmenu, container); //mEditText = (EditText) view.findViewById(R.id.txt_your_name); getDialog().requestWindowFeature( Window.FEATURE_NO_TITLE ); mSongArtist = ( TextView ) view.findViewById( R.id.SongMenuArtistTitle ); mSongAlbum = ( TextView ) view.findViewById( R.id.SongMenuAlbumTitle ); songArtistButton = view.findViewById( R.id.SongMenuArtist ); songAlbumButton = view.findViewById( R.id.SongMenuAlbum ); view.findViewById( R.id.ButtonCancel ).setOnClickListener( mMenuClickListener ); songAlbumButton.setOnClickListener( mMenuClickListener ); songArtistButton.setOnClickListener( mMenuClickListener ); view.findViewById( R.id.SongMenuAddTo ).setOnClickListener( mMenuClickListener ); MediaQuery.executeAsync( getActivity(), mSongQuery, new MediaQuery.OnQueryCompletedListener() { @Override public void onQueryCompleted( MediaQuery mQuery, Cursor mResult ) { mResult.moveToFirst(); String songArtist = mResult.getString( mResult.getColumnIndex( MediaStore.Audio.Media.ARTIST ) ); String songArtistID = mResult.getString( mResult.getColumnIndex( MediaStore.Audio.Media.ARTIST_ID ) ); String songAlbum = mResult.getString( mResult.getColumnIndex( MediaStore.Audio.Media.ALBUM ) ); String songAlbumID = mResult.getString( mResult.getColumnIndex( MediaStore.Audio.Media.ALBUM_ID ) ); // Show Artist name if ( songArtist == null || songArtist.equals( getString( R.string.no_artist_string ) ) || songArtist.equals("") ) { songArtistButton.setVisibility( View.GONE ); } else { mSongArtist.setText( songArtist ); songArtistButton.setTag( R.id.tag_artist_id, songArtistID ); } // Show album name if ( songAlbum == null || songAlbum.equals( getString( R.string.no_album_string ) ) || songAlbum.equals("") ) { songAlbumButton.setVisibility( View.GONE ); } else { mSongAlbum.setText( songAlbum ); songAlbumButton.setTag( R.id.tag_album_id, songAlbumID ); } mResult.close(); } }); 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 ); } } View.OnClickListener mMenuClickListener = new View.OnClickListener() { @Override public void onClick( View v ) { int id = v.getId(); if ( id == R.id.SongMenuAddTo ) { FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); Fragment prev = getActivity().getSupportFragmentManager().findFragmentByTag("dialog"); if ( prev != null ) { ft.remove( prev ); } AddToPlaylistDialogFragment newFragment = new AddToPlaylistDialogFragment(); newFragment.setMediaID( mMediaID ); //ft.addToBackStack( null ); newFragment.show( ft, "dialog" ); } else if ( id == R.id.SongMenuArtist ) { String artist_id = "" + v.getTag( R.id.tag_artist_id ); ArtistsOneFragment artistOneFragment = new ArtistsOneFragment(); artistOneFragment.setMediaID( artist_id ); mActivity.transactFragment( artistOneFragment ); dismiss(); } else if ( id == R.id.SongMenuAlbum ) { String album_id = "" + v.getTag( R.id.tag_album_id ); AlbumsOneFragment albumsOneFragment = new AlbumsOneFragment(); albumsOneFragment.setMediaID( album_id ); mActivity.transactFragment( albumsOneFragment ); dismiss(); } else if ( id == R.id.ButtonCancel ) { dismiss(); } } }; }