Android Open Source - lastfm-android-music-discovery Top Artists Fragment






From Project

Back to project page lastfm-android-music-discovery.

License

The source code is released under:

Apache License

If you think the Android project lastfm-android-music-discovery 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.mikeladze.musicdiscovery.main.fragment;
// w w  w . j  a v  a2 s.  c o  m
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.loopj.android.http.JsonHttpResponseHandler;
import com.mikeladze.musicdiscovery.artist.activity.ArtistActivity;
import com.mikeladze.musicdiscovery.base.fragment.ImageGridViewFragment;
import com.mikeladze.musicdiscovery.http.LastFMResult;
import com.mikeladze.musicdiscovery.http.RestClient;
import com.origamilabs.library.views.StaggeredGridView;

import fm.last.charts.Chart;

/**
 * The TopArtistsFragment. Shows the popular artists.
 * 
 * @author Tim Mikeladze
 */
public class TopArtistsFragment extends ImageGridViewFragment {
  
  private static final int NUMBER_OF_ARTISTS = 100;
  private static final String TITLE = "Popular";
  
  @Override
  /**
   * Creates the view.
   */
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return super.onCreateView(inflater, container, savedInstanceState);
  }
  
  @Override
  /**
   * Load the artists, done as last step of fragment creation.
   */
  public void initialize() {
    loadTopArtists();
  }
  
  /**
   * Load top artists.
   */
  private void loadTopArtists() {
    RestClient.get(Chart.<String> getTopArtists(0, NUMBER_OF_ARTISTS), new JsonHttpResponseHandler() {
      
      @Override
      public void onStart() {
        super.onStart();
        TopArtistsFragment.this.getActivity()
                    .setProgressBarIndeterminateVisibility(true);
      }
      
      @Override
      public void onSuccess(JSONObject response) {
        TopArtistsFragment.this.getActivity()
                    .setProgressBarIndeterminateVisibility(false);
        try {
          JSONArray artists = response.getJSONObject("artists")
                        .getJSONArray("artist");
          for (int i = 0; i < artists.length(); i++) {
            String image = artists.getJSONObject(i)
                        .getJSONArray("image")
                        .getJSONObject(4)
                        .getString("#text");
            String title = artists.getJSONObject(i)
                        .getString("name");
            gridAdapter.add(new LastFMResult(image, title));
          }
          gridAdapter.notifyDataSetChanged();
        } catch (JSONException e) {
          e.printStackTrace();
        }
      }
    });
  }
  
  @Override
  /**
   * Handles click events. Opens corresponding ArtistActivity. 
   */
  public void onItemClick(StaggeredGridView parent, View view, int position, long id) {
    Intent intent = new Intent(getActivity(), ArtistActivity.class);
    Bundle b = new Bundle();
    b.putString("name", gridAdapter.getItem(position)
                    .getTitle());
    intent.putExtras(b);
    startActivity(intent);
  }
  
  @Override
  public String getTitle() {
    return TITLE;
  }
}




Java Source Code List

com.mikeladze.musicdiscovery.album.activity.AlbumActivity.java
com.mikeladze.musicdiscovery.album.adapter.LastFMTrack.java
com.mikeladze.musicdiscovery.album.adapter.OnTrackClickListener.java
com.mikeladze.musicdiscovery.album.adapter.TrackListAdapter.java
com.mikeladze.musicdiscovery.album.fragment.AlbumInfoFragment.java
com.mikeladze.musicdiscovery.album.fragment.AlbumTracksFragment.java
com.mikeladze.musicdiscovery.artist.activity.ArtistActivity.java
com.mikeladze.musicdiscovery.artist.fragment.ArtistAlbumsFragment.java
com.mikeladze.musicdiscovery.artist.fragment.ArtistInfoFragment.java
com.mikeladze.musicdiscovery.artist.fragment.SimilarArtistsFragment.java
com.mikeladze.musicdiscovery.base.activity.BaseFragmentActivity.java
com.mikeladze.musicdiscovery.base.adapter.SectionsPagerAdapter.java
com.mikeladze.musicdiscovery.base.fragment.BaseTabFragment.java
com.mikeladze.musicdiscovery.base.fragment.ImageGridViewFragment.java
com.mikeladze.musicdiscovery.http.LastFMResult.java
com.mikeladze.musicdiscovery.http.RestClient.java
com.mikeladze.musicdiscovery.main.activity.MainActivity.java
com.mikeladze.musicdiscovery.main.fragment.HypedArtistsFragment.java
com.mikeladze.musicdiscovery.main.fragment.TopArtistsFragment.java
com.mikeladze.musicdiscovery.search.activity.SearchResultsActivity.java
com.mikeladze.musicdiscovery.search.adapter.SearchResultsAdapter.java
com.mikeladze.musicdiscovery.util.IntentUtils.java
com.mikeladze.musicdiscovery.view.gridview.DynamicImageView.java
com.mikeladze.musicdiscovery.view.gridview.ImageGridAdapter.java
com.mikeladze.musicdiscovery.view.gridview.loader.FileCache.java
com.mikeladze.musicdiscovery.view.gridview.loader.ImageLoader.java
com.mikeladze.musicdiscovery.view.gridview.loader.MemoryCache.java
com.mikeladze.musicdiscovery.view.gridview.loader.Utils.java