@Override
  public boolean onContextItemSelected(MenuItem item) {
    if (!getUserVisibleHint()) return super.onContextItemSelected(item);

    AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo();
    if (menuInfo == null) // getMenuInfo can be NULL
    return super.onContextItemSelected(item);

    int startPosition;
    List<String> medias;
    int id = item.getItemId();

    boolean useAllItems =
        (id == R.id.audio_list_browser_play_all || id == R.id.audio_list_browser_append_all);
    boolean append =
        (id == R.id.audio_list_browser_append || id == R.id.audio_list_browser_append_all);

    if (id == R.id.audio_list_browser_delete) {
      final Media media = mSongsAdapter.getItem(menuInfo.position);
      AlertDialog dialog =
          CommonDialogs.deleteMedia(
              getActivity(),
              media.getLocation(),
              new VlcRunnable(media) {
                @Override
                public void run(Object o) {
                  mMediaLibrary.getMediaItems().remove(media);
                  updateList();
                }
              });
      dialog.show();
      return true;
    }

    if (id == R.id.audio_list_browser_set_song) {
      AudioUtil.setRingtone(mSongsAdapter.getItem(menuInfo.position), getActivity());
      return true;
    }

    if (useAllItems) {
      startPosition = menuInfo.position;
      medias = mSongsAdapter.getLocations();
    } else {
      startPosition = 0;
      medias = mSongsAdapter.getLocation(menuInfo.position);
    }
    if (append) mAudioController.append(medias);
    else {
      mAudioController.load(medias, startPosition);
      AudioPlayerFragment.start(getActivity());
    }

    return super.onContextItemSelected(item);
  }
 @Override
 public void onListItemClick(ListView l, View v, int position, long id) {
   mAudioController.load(mSongsAdapter.getLocations(), position);
   AudioPlayerFragment.start(getActivity());
   super.onListItemClick(l, v, position, id);
 }