package com.ideabag.playtunes.fragment; import com.google.android.gms.analytics.HitBuilders; import com.google.android.gms.analytics.Tracker; import com.ideabag.playtunes.R; import com.ideabag.playtunes.activity.MainActivity; import com.ideabag.playtunes.adapter.ArtistsAllAdapter; import com.ideabag.playtunes.database.MediaQuery; import com.ideabag.playtunes.util.GAEvent.Playlist; import com.ideabag.playtunes.util.IMusicBrowser; import com.ideabag.playtunes.util.TrackerSingleton; import com.ideabag.playtunes.util.GAEvent.Categories; import android.app.Activity; import android.database.ContentObserver; import android.database.Cursor; import android.os.Bundle; import android.os.Handler; import android.provider.MediaStore; import android.view.View; import android.widget.ListView; public class ArtistsAllFragment extends SaveScrollListFragment implements IMusicBrowser { public static final String TAG = "All Artists Fragment"; ArtistsAllAdapter adapter; private MainActivity mActivity; private Tracker mTracker; @Override public void onAttach( Activity activity ) { super.onAttach( activity ); mActivity = ( MainActivity ) activity; mTracker = TrackerSingleton.getDefaultTracker( mActivity ); mTracker.setScreenName( TAG ); mActivity.setActionbarTitle( getString( R.string.artists_plural ) ); } @Override public void onActivityCreated( Bundle savedInstanceState ) { super.onActivityCreated( savedInstanceState ); adapter = new ArtistsAllAdapter( getActivity(), new MediaQuery.OnQueryCompletedListener() { @Override public void onQueryCompleted( MediaQuery mQuery, Cursor mResult ) { mActivity.setActionbarSubtitle( mResult.getCount() + " " + ( mResult.getCount() == 1 ? getString( R.string.artist_singular ) : getString( R.string.artists_plural ) ) ); restoreScrollPosition(); mTracker.send( new HitBuilders.EventBuilder() .setCategory( Categories.PLAYLIST ) .setAction( Playlist.ACTION_SHOWLIST ) .setValue( mResult.getCount() ) .build()); } }); getView().setBackgroundColor( getResources().getColor( android.R.color.white ) ); getListView().setDivider( getResources().getDrawable( R.drawable.list_divider ) ); getListView().setDividerHeight( 1 ); getListView().setSelector( R.drawable.list_item_background ); //getListView().addHeaderView( mActivity.AdContainer, null, true ); setListAdapter( adapter ); getActivity().getContentResolver().registerContentObserver( MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI, true, mediaStoreChanged ); } /* @Override public void onSaveInstanceState( Bundle outState ) { super.onSaveInstanceState( outState ); outState.putInt( getString( R.string.key_state_scroll ), getListView().getScrollY() ); } */ @Override public void onResume() { super.onResume(); mActivity.setActionbarTitle( getString( R.string.artists_plural ) ); mTracker.send( new HitBuilders.AppViewBuilder().build() ); } @Override public void onPause() { super.onPause(); } @Override public void onDestroyView() { super.onDestroyView(); //setListAdapter( null ); } @Override public void onDestroy() { super.onDestroy(); getActivity().getContentResolver().unregisterContentObserver( mediaStoreChanged ); } @Override public void onListItemClick( ListView l, View v, int position, long id ) { String artistID = ( String ) v.getTag( R.id.tag_artist_id ); //boolean artistUnknown = v.getTag( R.id.tag_artist_unknown ).equals( "1" ); //int albumCount = Integer.parseInt( ( ( TextView ) v.findViewById( R.id.AlbumCount ) ).getText().toString() ); /* if ( artistUnknown ) { ArtistAllSongsFragment artistAllFragment = new ArtistAllSongsFragment(); artistAllFragment.setMediaID( artistID ); mActivity.transactFragment( artistAllFragment ); } else { */ ArtistsOneFragment artistFragment = new ArtistsOneFragment(); artistFragment.setMediaID( artistID ); mActivity.transactFragment( artistFragment ); //} mTracker.send( new HitBuilders.EventBuilder() .setCategory( Categories.PLAYLIST ) .setAction( Playlist.ACTION_CLICK ) .setValue( position ) .build()); } // PlaylistBrowser interface methods @Override public void setMediaID(String media_id) { /* ... */ } @Override public String getMediaID() { return ""; } ContentObserver mediaStoreChanged = new ContentObserver(new Handler()) { @Override public void onChange( boolean selfChange ) { mActivity.runOnUiThread( new Runnable() { @Override public void run() { saveScrollPosition(); adapter.requery(); } }); super.onChange( selfChange ); } }; }