Android Open Source - unmp Playlists Fragment






From Project

Back to project page unmp.

License

The source code is released under:

MIT License

If you think the Android project unmp 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.parnswir.unmp;
/*from w  w w.  j  av  a  2s . co m*/
import java.util.ArrayList;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.parnswir.unmp.core.DatabaseUtils;
import com.parnswir.unmp.playlist.Playlist;
import com.parnswir.unmp.playlist.parser.PlaylistParser;
import com.parnswir.unmp.playlist.parser.PlaylistParser.PlaylistParserException;

public class PlaylistsFragment extends AbstractFragment {

  private ListView mPlaylists;
  private ArrayList<String> playlists = new ArrayList<String>();
  private ArrayList<String> playlistNames = new ArrayList<String>();
  
  @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      rootView = super.onCreateView(inflater, container, savedInstanceState);
      
      inflate(R.layout.playlists_fragment);
      showActionBar();
      showTitle("Playlists");
      
      initPlaylistList();
      
        return rootView; 
    }
  
  
  public void initPlaylistList() {
    playlists = DatabaseUtils.getAllPlaylists(DB);
    initLists();
    mPlaylists = (ListView) rootView.findViewById(R.id.playlists);
    mPlaylists.setAdapter(new ArrayAdapter<String>(activity, R.layout.drawer_list_item, playlistNames));
    mPlaylists.setOnItemClickListener(new PlaylistClickListener());
    mPlaylists.setOnItemLongClickListener(new PlaylistClickListener());
  }
  
  
  private void initLists() {
    for (String playlistPath : playlists) { 
      PlaylistParser parser = new PlaylistParser();
      parser.init(playlistPath, DB);
      playlistNames.add(parser.getName());
    }
    playlistNames.add(getString(R.string.addPlaylist));
  }
  
  
  private class PlaylistClickListener implements ListView.OnItemClickListener, ListView.OnItemLongClickListener {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          handleAddPlaylistClick(view);
          if (! clickedAddPlaylist(view)) {
        playPlaylist(position);
      }
        return;
      }

    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
      handleAddPlaylistClick(view);
      if (! clickedAddPlaylist(view)) {
        deletePlaylist(position);
      }
      return true;
    }
    
    private void handleAddPlaylistClick(View view) {
      if (clickedAddPlaylist(view)) {
        addPlaylist();
      }
    }
    
    private boolean clickedAddPlaylist(View view) {
      TextView item = (TextView) view;
          String selectedText = item.getText().toString();
          String addPlaylist = getString(R.string.addPlaylist);
          
          return selectedText.equals(addPlaylist);
    }
  }
  
  
  private void deletePlaylist(int position) {
    
  }
  
  
  private void playPlaylist(int position) {
    PlaylistLoader loader = new PlaylistLoader();
    loader.execute(playlists.get(position));
  }
  
  
  private void addPlaylist() {
    
  }    
  
  
  private class PlaylistLoader extends AsyncTask<String, Void, Playlist> {

    ProgressDialog dialog = new ProgressDialog(activity);

    @Override
    protected void onPreExecute() {
      dialog.setMessage("Loading Playlist...");
          dialog.show();
          super.onPreExecute();
      }
  
    protected Playlist doInBackground(String... args) {
      Playlist playlist = new Playlist();
      try {
        playlist = PlaylistParser.parse(args[0], DB);
      } catch (PlaylistParserException e) {
        e.printStackTrace();
      }
      return playlist;
    }
  
    protected void onPostExecute(Playlist result) {
      playPlaylist(result, 0);
      if(dialog != null && dialog.isShowing()){
        dialog.dismiss();
      }
    }
  }
  
}




Java Source Code List

com.parnswir.unmp.AbstractFragment.java
com.parnswir.unmp.DirectoryChooserDialog.java
com.parnswir.unmp.DrawerActivity.java
com.parnswir.unmp.DrawerState.java
com.parnswir.unmp.LibraryFragment.java
com.parnswir.unmp.ListFragment.java
com.parnswir.unmp.MainActivity.java
com.parnswir.unmp.PlayerFragment.java
com.parnswir.unmp.PlayerService.java
com.parnswir.unmp.PlaylistsFragment.java
com.parnswir.unmp.SplashActivity.java
com.parnswir.unmp.core.AlbumCoverRetriever.java
com.parnswir.unmp.core.C.java
com.parnswir.unmp.core.CoverList.java
com.parnswir.unmp.core.DatabaseUtils.java
com.parnswir.unmp.core.IceCreamSandwichNotificationBuilder.java
com.parnswir.unmp.core.IconicAdapter.java
com.parnswir.unmp.core.ImageLoader.java
com.parnswir.unmp.core.ImageRetriever.java
com.parnswir.unmp.core.JellybeanNotificationBuilder.java
com.parnswir.unmp.core.MemoryCache.java
com.parnswir.unmp.core.MusicDatabaseHelper.java
com.parnswir.unmp.core.NotificationBuilder.java
com.parnswir.unmp.core.ProgressObservable.java
com.parnswir.unmp.core.ProjectResources.java
com.parnswir.unmp.core.Utils.java
com.parnswir.unmp.media.DefaultFileHandler.java
com.parnswir.unmp.media.FileAdditionThread.java
com.parnswir.unmp.media.FileCrawlerThread.java
com.parnswir.unmp.media.FileHandler.java
com.parnswir.unmp.media.FileRemovalThread.java
com.parnswir.unmp.media.MP3Handler.java
com.parnswir.unmp.media.MediaInformation.java
com.parnswir.unmp.media.MediaPlayerStatus.java
com.parnswir.unmp.media.PlaylistHandler.java
com.parnswir.unmp.playlist.MediaFile.java
com.parnswir.unmp.playlist.PlaylistElement.java
com.parnswir.unmp.playlist.Playlist.java
com.parnswir.unmp.playlist.parser.PlaylistParser.java
com.parnswir.unmp.playlist.parser.WPLParser.java