Android Open Source - PlayTunes Navigation List 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;
import com.ideabag.playtunes.PlaylistManager;
import com.ideabag.playtunes.R;
import com.ideabag.playtunes.database.MediaQuery;
import com.ideabag.playtunes.util.QueryCountTask;
//w ww . j av a2  s.  c om
import android.annotation.SuppressLint;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.LightingColorFilter;
import android.graphics.PorterDuff.Mode;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class NavigationListAdapter extends BaseAdapter {
  
  private static final int ROW_COUNT = 7;
  
  private static final int[] badge_resources = {
    
    R.drawable.ic_action_search,
    R.drawable.ic_action_star_10,
    R.drawable.ic_action_mic,
    R.drawable.ic_action_record,
    
    R.drawable.ic_action_music_2,
    R.drawable.ic_action_guitar,
    R.drawable.ic_action_list_2,
    
    
  };
  
  private static final int[] label_string_resources = {
    
    R.string.search,
    R.string.playlist_name_starred,
    R.string.artists_plural,
    R.string.albums_plural,
    
    R.string.songs_plural,
    R.string.genres_plural,
    R.string.playlists_plural,
    
    
  };
  
  public static final int SEARCH = 0;
  public static final int STARRED = 1;
  
  public static final int ARTISTS = 2;
  public static final int ALBUMS = 3;
  public static final int SONGS = 4;
  public static final int GENRES = 5;
  public static final int PLAYLISTS = 6;
  
  
  
  private Context mContext;
  
  MediaQuery mAllArtistQuery;
  MediaQuery mAllSongsQuery;
  MediaQuery mAllAlbumsQuery;
  MediaQuery mAllGenresQuery;
  MediaQuery mAllPlaylistsQuery;
  MediaQuery mStarredQuery;
  
  
  public NavigationListAdapter( Context context ) {
    
    mContext = context;
    
    mAllArtistQuery = new MediaQuery(
        MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI,
        new String[] {
            
          MediaStore.Audio.Artists._ID  
            
        },
        null,
        null,
        null);
    
    mAllAlbumsQuery = new MediaQuery(
        MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
    new String[] {
        
      MediaStore.Audio.Albums._ID  
        
    },
    MediaStore.Audio.Media.ALBUM + "!=?",
    new String[] {
      
      mContext.getString( R.string.no_album_string )
      
    },
    null);
    
    mAllGenresQuery = new MediaQuery(
        MediaStore.Audio.Genres.EXTERNAL_CONTENT_URI,
        new String[] {
            
          MediaStore.Audio.Genres._ID  
            
        },
        null,
        null,
        null);
    mAllSongsQuery = new MediaQuery(
        MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
        new String[] {
            
          MediaStore.Audio.Media._ID  
            
        },
        MediaStore.Audio.Media.IS_MUSIC + " != 0",
        null,
        null);
    
    mAllPlaylistsQuery = new MediaQuery(
            MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,
            new String[] {
                
              MediaStore.Audio.Playlists._ID  
                
            },
            null,
            null,
            null);
    
    String starred_playlist_id = new PlaylistManager( mContext ).createStarredIfNotExist();
    
    mStarredQuery = new MediaQuery(
        
        MediaStore.Audio.Playlists.Members.getContentUri( "external", Long.parseLong( starred_playlist_id ) ),
          
        new String[] {
          
          MediaStore.Audio.Playlists.Members.AUDIO_ID
          
          },
          null,
          null,
        null
      );
    
  }
  
  @Override public int getCount() {
    
    return ROW_COUNT;
    
  }

  @Override
  public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
  }

  
  @Override public View getView( int position, View convertView, ViewGroup parent ) {
    
    ViewHolder holder;
    
    if ( null == convertView ) {
      
      holder = new ViewHolder();
      
      LayoutInflater li = ( LayoutInflater ) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
      convertView = li.inflate( R.layout.list_item_navigation_title, null );
      
      holder.title = ( TextView ) convertView.findViewById( R.id.Title );
      holder.badgeCount =  ( TextView ) convertView.findViewById( R.id.BadgeCount );
      holder.badgeIcon = ( ImageView ) convertView.findViewById( R.id.BadgeIcon );
      
      convertView.setTag( holder );
      
    } else {
      
      holder = ( ViewHolder ) convertView.getTag();
      
    }
    
    if ( position == ARTISTS ) {
      
      new QueryCountTask( holder.badgeCount ).execute( mAllArtistQuery );
      
    } else if ( position == ALBUMS ) {
      
      new QueryCountTask( holder.badgeCount ).execute( mAllAlbumsQuery );
      
    } else if ( position == GENRES ) {
      
      new QueryCountTask( holder.badgeCount ).execute( mAllGenresQuery );
      
    } else if ( position == SONGS ) {
      
      new QueryCountTask( holder.badgeCount ).execute( mAllSongsQuery );
      
    } else if ( position == STARRED) {
      
      new QueryCountTask( holder.badgeCount ).execute( mStarredQuery );
      
    } else if ( position == PLAYLISTS ) {
      
      new QueryCountTask( holder.badgeCount ).execute( mAllPlaylistsQuery );
      
    }

    String title = mContext.getResources().getString( label_string_resources[ position ] );
    int icon_resource = badge_resources[ position ];
    
    holder.title.setText( title );
    
    holder.badgeIcon.setImageResource( icon_resource );
    
    int badgeColor = mContext.getResources().getColor( R.color.textColorPrimary );
    
    
    if ( position != STARRED ) {
      
      holder.badgeIcon.setColorFilter( new LightingColorFilter( badgeColor, badgeColor ) );
      
    }
    
    //.setColorFilter( Color.RED, Mode.MULTIPLY );
    
    return convertView;
    
  }
  
  static class ViewHolder {
    
    TextView badgeCount;
    ImageView badgeIcon;
    TextView title;
    
  }

}




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