package miun.player;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.lang.reflect.Type;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.app.UiModeManager;
import com.google.gdata.data.youtube.PlaylistLinkEntry;
import com.google.gdata.data.youtube.PlaylistLinkFeed;
import com.google.gdata.util.ServiceException;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class Playlists extends ListActivity {
private ArrayList<Playlist> playlists = new ArrayList<Playlist>();
private ProgressDialog playlist_ProgressDialog = null;
private PlaylistAdapter playlistAdapter;
//private Runnable viewPlaylists;
/**
* Default constructor
*/
public Playlists() {
}
/**
* Return arraylist containing all playlists
* @return the playlists
*/
public ArrayList<Playlist> getPlaylists() {
return this.playlists;
}
/**
* Return playlist on given index
* @param index of playlist
* @return playlist object
*/
public Playlist getPlaylist( int index ) {
return this.playlists.get(index);
}
/**
* Populates the list with all the current users playlists
*/
public void populate( String JSONString ) {
//Parse JSON and populate arraylist with new Playlist objects
Gson gson = new Gson();
Type listType = new TypeToken<ArrayList<String>>(){}.getType();
ArrayList<String> playlistNames = gson.fromJson(JSONString, listType);
for(String playlistName : playlistNames) {
playlists.add( new Playlist(playlistName) );
}
runOnUiThread(returnRes);
}
private Runnable returnRes = new Runnable() {
@Override
public void run() {
if( playlists != null && playlists.size() > 0 ) {
playlistAdapter.notifyDataSetChanged();
for( Playlist playlist : playlists ) {
playlistAdapter.add( playlist );
}
}
playlist_ProgressDialog.dismiss();
playlistAdapter.notifyDataSetChanged();
}
};
}