Android Open Source - PlayTunes Playlists One Adapter






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.adapter;
//from   w  w w  . ja va 2  s . c  o m
import com.ideabag.playtunes.R;
import com.ideabag.playtunes.database.MediaQuery;
import com.ideabag.playtunes.util.StarToggleTask;

import android.content.Context;
import android.provider.MediaStore;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.ToggleButton;

public class PlaylistsOneAdapter extends SongListAdapter {
  
  private String PLAYLIST_ID;
  public String PLAYLIST_NAME;
  
  public boolean isEditing = false;
  
    private static final String[] singlePlaylistSelection = new String[] {
      
      // The ID of the media item must be the first thing in the selection
      MediaStore.Audio.Playlists.Members.AUDIO_ID,
      
      MediaStore.Audio.Playlists.Members.TITLE,
      MediaStore.Audio.Playlists.Members.ARTIST,
      MediaStore.Audio.Playlists.Members.ALBUM,
      MediaStore.Audio.Playlists.Members.DATA,
      MediaStore.Audio.Playlists.Members._ID,
      MediaStore.Audio.Playlists.Members.PLAYLIST_ID,
      MediaStore.Audio.Playlists.Members.PLAY_ORDER
    
  };
    
    public PlaylistsOneAdapter( Context context, String playlist_id, View.OnClickListener menuClickListener, MediaQuery.OnQueryCompletedListener listener ) {
      this( context, playlist_id, menuClickListener );
      
      setOnQueryCompletedListener( listener );
      
    }
    public PlaylistsOneAdapter( Context context, String playlist_id, View.OnClickListener menuClickListener ) {
    
    super( context, menuClickListener );
    PLAYLIST_ID = playlist_id;
    
    //android.util.Log.i( "starred adapter", "" + playlist_id );
    
    mQuery = new MediaQuery(
        MediaStore.Audio.Playlists.Members.getContentUri( "external", Long.parseLong( PLAYLIST_ID ) ),
        singlePlaylistSelection,
        MediaStore.Audio.Playlists.Members.PLAYLIST_ID + "=?",
        new String[] {
          
          PLAYLIST_ID
          
        },
        MediaStore.Audio.Playlists.Members.PLAY_ORDER
      );
    
    requery();
    
  }

  @Override public View getView( int position, View convertView, ViewGroup parent ) {
    
    ViewHolder holder;
    
    if ( null == convertView ) {
      
      holder = new ViewHolder();
      
      convertView = inflater.inflate( R.layout.list_item_playlist_song, null );
      
      holder.starButton = ( ToggleButton ) convertView.findViewById( R.id.StarButton );
      holder.starButton.setOnClickListener( songMenuClickListener );
      
      holder.menuButton = ( ImageButton ) convertView.findViewById( R.id.MenuButton );
      holder.menuButton.setOnClickListener( songMenuClickListener );
      
      holder.removeButton = ( ImageButton ) convertView.findViewById( R.id.RemoveButton );
      holder.removeButton.setOnClickListener( songMenuClickListener );
      
      holder.dragButton = convertView.findViewById( R.id.DragButton );
      
      holder.songTitle = ( TextView ) convertView.findViewById( R.id.SongTitle );
      holder.songAlbum = ( TextView ) convertView.findViewById( R.id.SongAlbum );
      holder.songArtist = ( TextView ) convertView.findViewById( R.id.SongArtist );
      
      convertView.setTag( holder );
      
    } else {
      
      holder = ( ViewHolder ) convertView.getTag();
      
    }
    
    mCursor.moveToPosition( position );
    
    String songTitle = mCursor.getString( mCursor.getColumnIndexOrThrow( MediaStore.Audio.Playlists.Members.TITLE ) );
    String songArtist = mCursor.getString( mCursor.getColumnIndexOrThrow( MediaStore.Audio.Media.ARTIST ) );
    String songAlbum = mCursor.getString( mCursor.getColumnIndexOrThrow( MediaStore.Audio.Media.ALBUM ) );
    String song_id = mCursor.getString( mCursor.getColumnIndexOrThrow( MediaStore.Audio.Playlists.Members.AUDIO_ID ) );
    
    new StarToggleTask( holder.starButton ).execute( song_id );
    
    holder.songTitle.setText( songTitle );
    holder.songArtist.setText( songArtist );
    holder.songAlbum.setText( songAlbum );
    
    holder.starButton.setTag( R.id.tag_song_id, song_id );
    holder.menuButton.setTag( R.id.tag_song_id, song_id );
    holder.removeButton.setTag( R.id.tag_song_id, song_id );
    
    
    if ( !this.isEditing ) {
      
      holder.starButton.setVisibility( View.VISIBLE );
      holder.menuButton.setVisibility( View.VISIBLE );
      holder.dragButton.setVisibility( View.GONE );
      holder.removeButton.setVisibility( View.GONE );
      
    } else {
      
      holder.starButton.setVisibility( View.GONE );
      holder.menuButton.setVisibility( View.GONE );
      holder.dragButton.setVisibility( View.VISIBLE );
      holder.removeButton.setVisibility( View.VISIBLE );
      
    }
    
    return convertView;
    
  }
  
  
  public void setEditing( boolean editing ) {
    
    this.isEditing = editing;
    this.notifyDataSetChanged();
    
  }
  
  static class ViewHolder {
    
    View dragButton;
    ToggleButton starButton;
    ImageButton menuButton;
    ImageButton removeButton;
    TextView songTitle;
    TextView songArtist;
    TextView songAlbum;
    
  }

}




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