Android Open Source - PlayTunes Playlists All Fragment






From Project

Back to project page PlayTunes.

License

The source code is released under:

Copyright (c) 2014, Impeccable Labs, LLC. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions ar...

If you think the Android project PlayTunes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.ideabag.playtunes.fragment;
//w w w  .  j av  a  2 s  .  c o  m
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.PlaylistsAllAdapter;
import com.ideabag.playtunes.dialog.CreatePlaylistDialogFragment;
import com.ideabag.playtunes.dialog.PlaylistMenuDialogFragment;
import com.ideabag.playtunes.util.IMusicBrowser;
import com.ideabag.playtunes.util.TrackerSingleton;
import com.ideabag.playtunes.util.GAEvent.Categories;
import com.ideabag.playtunes.util.GAEvent.Playlist;

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.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.ListFragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class PlaylistsAllFragment extends SaveScrollListFragment implements IMusicBrowser {
  
  public static final String TAG = "All Playlists Fragment";
  
  PlaylistsAllAdapter adapter;
  //MergeAdapter adapter;
  
  private MainActivity mActivity;
  private Tracker mTracker;
  
  @Override public void onAttach( Activity activity ) {
    
    super.onAttach( activity );
    
    mActivity = ( MainActivity ) activity;
    mTracker = TrackerSingleton.getDefaultTracker( mActivity );
    
    mActivity.setActionbarTitle( getString( R.string.playlists_plural ) );
      mActivity.setActionbarSubtitle( null );
    
      // Set screen name.
    mTracker.setScreenName( TAG );
    
  }
    
  @Override public void onActivityCreated( Bundle savedInstanceState ) {
    super.onActivityCreated( savedInstanceState );
    
    adapter = new PlaylistsAllAdapter( getActivity(), playlistMenuClickListener );
    

      
      LayoutInflater inflater = mActivity.getLayoutInflater();
      LinearLayout starredPlaylist = ( LinearLayout ) inflater.inflate( R.layout.list_item_playlist_starred, null );
      
      starredPlaylist.setTag( R.id.tag_playlist_id, mActivity.PlaylistManager.createStarredIfNotExist() );
      
      Cursor mStarredCursor = mActivity.PlaylistManager.getStarredCursor();
      
      ( ( TextView ) starredPlaylist.findViewById( R.id.SongCount ) ).setText( "" + mStarredCursor.getCount() );
    
      mStarredCursor.close();
      
      setHasOptionsMenu( true );
      
      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().setOnItemLongClickListener( mPlaylistLongClickListener );
    
    //adapter.addView( mActivity.AdContainer, false );
    getListView().addHeaderView( starredPlaylist, null, true );
    
    
      setListAdapter( adapter );
      
    getActivity().getContentResolver().registerContentObserver(
        MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, true, mediaStoreChanged );
      
    
  }
  
  @Override public void onResume() {
    super.onResume();
    
      mActivity.setActionbarTitle( getString( R.string.playlists_plural ) );
      mActivity.setActionbarSubtitle( null );
    
    
      // Send a screen view.
    mTracker.send( new HitBuilders.AppViewBuilder().build() );
    
      mTracker.send( new HitBuilders.EventBuilder()
      .setCategory( Categories.PLAYLIST )
      .setAction( Playlist.ACTION_SHOWLIST )
      .setValue( adapter.getCount() )
      .build());
    
    //mActivity.AdView.resume();
    
  }
    
  @Override public void onPause() {
    super.onPause();
    
  }
  
  @Override public void onDestroy() {
    super.onDestroy();
    
    setHasOptionsMenu( false );
    //getListView().removeHeaderView( mActivity.AdContainer );
    getActivity().getContentResolver().unregisterContentObserver( mediaStoreChanged );
    
  }
  
  @Override public void onDestroyView() {
      super.onDestroyView();
      
      setListAdapter( null );
      
  }
  
  @Override public void onCreateOptionsMenu( Menu menu, MenuInflater inflater ) {
    super.onCreateOptionsMenu(menu, inflater);
    
    inflater.inflate( R.menu.menu_playlists_all, menu );
    
  }
  
  @Override public boolean onOptionsItemSelected( MenuItem item ) {
 
        super.onOptionsItemSelected(item);
        
        int id = item.getItemId();
        
        if ( id == R.id.MenuPlaylistsAdd ) {
          
          FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
          
          DialogFragment newFragment = new CreatePlaylistDialogFragment();
          
            newFragment.show(ft, "dialog");
          
          
        }
        
        return true;
        
  }
  
  @Override public void onListItemClick( ListView l, View v, int position, long id ) {
    
    String playlist_id = (String) v.getTag( R.id.tag_playlist_id );
    
    PlaylistsOneFragment playlistFragment = new PlaylistsOneFragment();
    
    playlistFragment.setMediaID( playlist_id );
    
    mActivity.transactFragment( playlistFragment );
    
      mTracker.send( new HitBuilders.EventBuilder()
      .setCategory( Categories.PLAYLIST )
      .setAction( Playlist.ACTION_CLICK )
      .setValue( position )
      .build());
      
  }
  
  protected AdapterView.OnItemLongClickListener mPlaylistLongClickListener = new AdapterView.OnItemLongClickListener() {
    
    @Override public boolean onItemLongClick( AdapterView<?> arg0, View v, int position, long id ) {
      
      // Subtract one from position because the starred playlist is seperate
      showPlaylistMenuDialog( "" + adapter.getItemId( position - 1 ) );
      
      mTracker.send( new HitBuilders.EventBuilder()
        .setCategory( Categories.PLAYLIST )
        .setAction( Playlist.ACTION_LONGCLICK )
        .setValue( position )
        .build());
      
      return true;
      
    }
    
  };
  
  public View.OnClickListener playlistMenuClickListener = new View.OnClickListener() {
    
    @Override public void onClick(View v) {
      
      //int id = v.getId();
      
      ViewGroup list_item = ( ViewGroup ) v.getParent();
      String playlist_id = ( String ) list_item.getTag( R.id.tag_playlist_id);
      
      showPlaylistMenuDialog( playlist_id );
      
    }
    
  };
  
  private void showPlaylistMenuDialog( String playlist_id ) {
    
    FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
      
    PlaylistMenuDialogFragment newFragment = new PlaylistMenuDialogFragment();
    newFragment.setMediaID( playlist_id );
      
        newFragment.show( ft, "dialog" );
    
  }


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

  };
  
}




Java Source Code List

com.ideabag.playtunes.PlaylistManager.java
com.ideabag.playtunes.DragNDrop.DragListener.java
com.ideabag.playtunes.DragNDrop.DragNDropListView.java
com.ideabag.playtunes.DragNDrop.DropListener.java
com.ideabag.playtunes.DragNDrop.RemoveListener.java
com.ideabag.playtunes.activity.MainActivity.java
com.ideabag.playtunes.activity.NowPlayingActivity.java
com.ideabag.playtunes.activity.SettingsActivity.java
com.ideabag.playtunes.adapter.AlbumListAdapter.java
com.ideabag.playtunes.adapter.AlbumsAllAdapter.java
com.ideabag.playtunes.adapter.AlbumsOneAdapter.java
com.ideabag.playtunes.adapter.ArtistAlbumsAdapter.java
com.ideabag.playtunes.adapter.ArtistAllSongsAdapter.java
com.ideabag.playtunes.adapter.ArtistListAdapter.java
com.ideabag.playtunes.adapter.ArtistSinglesAdapter.java
com.ideabag.playtunes.adapter.ArtistsAllAdapter.java
com.ideabag.playtunes.adapter.AsyncQueryAdapter.java
com.ideabag.playtunes.adapter.GenresAllAdapter.java
com.ideabag.playtunes.adapter.GenresOneAdapter.java
com.ideabag.playtunes.adapter.NavigationListAdapter.java
com.ideabag.playtunes.adapter.PlaylistsAllAdapter.java
com.ideabag.playtunes.adapter.PlaylistsOneAdapter.java
com.ideabag.playtunes.adapter.SongListAdapter.java
com.ideabag.playtunes.adapter.SongsAllAdapter.java
com.ideabag.playtunes.adapter.search.SearchAlbumsAdapter.java
com.ideabag.playtunes.adapter.search.SearchArtistsAdapter.java
com.ideabag.playtunes.adapter.search.SearchSongsAdapter.java
com.ideabag.playtunes.database.MediaQuery.java
com.ideabag.playtunes.dialog.AddToPlaylistDialogFragment.java
com.ideabag.playtunes.dialog.CreatePlaylistDialogFragment.java
com.ideabag.playtunes.dialog.FeedbackDialogFragment.java
com.ideabag.playtunes.dialog.PlaylistDeleteDialogFragment.java
com.ideabag.playtunes.dialog.PlaylistMenuDialogFragment.java
com.ideabag.playtunes.dialog.PlaylistRenameDialogFragment.java
com.ideabag.playtunes.dialog.RateAppDialogFragment.java
com.ideabag.playtunes.dialog.SongMenuDialogFragment.java
com.ideabag.playtunes.fragment.AlbumsAllFragment.java
com.ideabag.playtunes.fragment.AlbumsOneFragment.java
com.ideabag.playtunes.fragment.ArtistSinglesFragment.java
com.ideabag.playtunes.fragment.ArtistsAllFragment.java
com.ideabag.playtunes.fragment.ArtistsOneFragment.java
com.ideabag.playtunes.fragment.FooterControlsFragment.java
com.ideabag.playtunes.fragment.GenresAllFragment.java
com.ideabag.playtunes.fragment.GenresOneFragment.java
com.ideabag.playtunes.fragment.MusicBrowserFragment.java
com.ideabag.playtunes.fragment.NavigationDrawerFragment.java
com.ideabag.playtunes.fragment.NavigationFragment.java
com.ideabag.playtunes.fragment.PlaylistsAllFragment.java
com.ideabag.playtunes.fragment.PlaylistsOneFragment.java
com.ideabag.playtunes.fragment.SaveScrollListFragment.java
com.ideabag.playtunes.fragment.SongsFragment.java
com.ideabag.playtunes.fragment.TrackProgressFragment.java
com.ideabag.playtunes.fragment.search.SearchAlbumsFragment.java
com.ideabag.playtunes.fragment.search.SearchAllFragment.java
com.ideabag.playtunes.fragment.search.SearchArtistsFragment.java
com.ideabag.playtunes.fragment.search.SearchFragment.java
com.ideabag.playtunes.fragment.search.SearchSongsFragment.java
com.ideabag.playtunes.fragment.search.SearchSuggestionsFragment.java
com.ideabag.playtunes.media.AudioFocusHelper.java
com.ideabag.playtunes.media.MusicFocusable.java
com.ideabag.playtunes.media.MusicIntentReceiver.java
com.ideabag.playtunes.media.PlaylistMediaPlayer.java
com.ideabag.playtunes.media.RemoteControlClientCompat.java
com.ideabag.playtunes.media.RemoteControlHelper.java
com.ideabag.playtunes.service.LockscreenManager.java
com.ideabag.playtunes.service.MusicPlayerService.java
com.ideabag.playtunes.service.PlaybackNotification.java
com.ideabag.playtunes.util.AdmobUtil.java
com.ideabag.playtunes.util.AlbumSongsCountTask.java
com.ideabag.playtunes.util.AsyncDrawable.java
com.ideabag.playtunes.util.BitmapWorkerTask.java
com.ideabag.playtunes.util.CheckRemoteVersionFileTask.java
com.ideabag.playtunes.util.DrawerLayout.java
com.ideabag.playtunes.util.GAEvent.java
com.ideabag.playtunes.util.IMusicBrowser.java
com.ideabag.playtunes.util.ISearchableAdapter.java
com.ideabag.playtunes.util.LoadAlbumStackTask.java
com.ideabag.playtunes.util.MergeAdapter.java
com.ideabag.playtunes.util.QueryCountTask.java
com.ideabag.playtunes.util.SackOfViewsAdapter.java
com.ideabag.playtunes.util.SearchHistory.java
com.ideabag.playtunes.util.StarToggleTask.java
com.ideabag.playtunes.util.TrackerSingleton.java