private void uploadToDropbox() {
   Toast.makeText(
           ActivityTracksListView.this,
           "Uploading " + selected.getTrackName() + " to Dropbox",
           Toast.LENGTH_SHORT)
       .show();
   UploadFileToDropbox upload =
       new UploadFileToDropbox(
           ActivityTracksListView.this,
           dropbox,
           selected.getAlbumName() + "/" + selected.getTrackName() + ".wav",
           selected.getTrackPath());
   upload.execute();
 }
 @Override
 public boolean onContextItemSelected(MenuItem item) {
   if (item.getTitle() == "Move") {
     moveDialog();
   }
   if (item.getTitle() == "Rename") {
     renameDialog();
   }
   if (item.getTitle() == "Set Description") {
     descriptionDialog();
   }
   if (item.getTitle() == "Upload Track to Dropbox") {
     Toast.makeText(
             ActivityTracksListView.this,
             "Upload " + selected.getTrackName() + " to Dropbox",
             Toast.LENGTH_SHORT)
         .show();
     if (dropboxAuthentication()) {
       uploadToDropbox();
     }
   }
   if (item.getTitle() == "Delete") {
     deleteDialog();
   }
   return false;
 }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      View itemView = convertView;
      if (itemView == null) {
        itemView = getLayoutInflater().inflate(R.layout.tracks_item_view, parent, false);
      }

      // Find the album to work with
      final TrackItem currentTrack = data.getCurrentAlbum().getTracksList().get(position);

      // Make
      final TextView sizeText = (TextView) itemView.findViewById(R.id.size);
      sizeText.setText(currentTrack.getTrackSize());
      final TextView makeText = (TextView) itemView.findViewById(R.id.trackTextView);
      final TextView makeDescription = (TextView) itemView.findViewById(R.id.track_description);
      final ImageView makeimage = (ImageView) itemView.findViewById(R.id.imageView);
      makeText.setText(currentTrack.getTrackName());
      makeText.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              stopPlayer();
              selected = currentTrack;
              track_text.setText(currentTrack.getTrackName());
              startPlayer(selected);
            }
          });
      makeText.setOnLongClickListener(
          new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
              selected = currentTrack;
              return false;
            }
          });

      // Make Description

      makeDescription.setText(currentTrack.getTrackDescription());
      makeDescription.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              stopPlayer();
              selected = currentTrack;
              track_text.setText(currentTrack.getTrackName());
              startPlayer(selected);
            }
          });
      makeDescription.setOnLongClickListener(
          new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
              selected = currentTrack;
              return false;
            }
          });

      makeDescription.setText(currentTrack.getTrackDescription());
      makeimage.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              stopPlayer();
              selected = currentTrack;
              track_text.setText(currentTrack.getTrackName());
              startPlayer(selected);
            }
          });
      makeimage.setOnLongClickListener(
          new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
              selected = currentTrack;
              return false;
            }
          });

      play_button.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              if (mediaPlayer != null) mediaPlayer.start();
              else if (selected != null) startPlayer(selected);
            }
          });

      pause_button.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              if (mediaPlayer != null) {
                mediaPlayer.pause();
              }
            }
          });

      stop_button.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              stopPlayer();
              trackSeekBar.setProgress(0);
              current_duration.setText("00:00");
            }
          });

      trackSeekBar.setOnSeekBarChangeListener(
          new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

              if (fromUser && seekBar.isInTouchMode()) {
                progressValue = progress;
              }
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {}

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
              if (mediaPlayer != null) {
                mediaPlayer.seekTo(progressValue);
              } else {
                trackSeekBar.setProgress(progressValue);
              }
            }
          });

      return itemView;
    }
  private void renameDialog() {
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
    final EditText textInput = new EditText(this);
    textInput.setText(selected.getTrackName());
    textInput.setSelectAllOnFocus(true);

    textInput.requestFocus();
    textInput.postDelayed(
        new Runnable() {
          @Override
          public void run() {
            InputMethodManager keyboard =
                (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            keyboard.showSoftInput(textInput, 0);
          }
        },
        100);

    dialogBuilder.setTitle("Rename track");
    dialogBuilder.setView(textInput);
    dialogBuilder.setNegativeButton(
        "Confirm",
        new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            String rename = textInput.getText().toString();

            File file =
                new File(
                    Environment.getExternalStorageDirectory()
                        + "/Audava/"
                        + data.getCurrentAlbum().getName()
                        + "/"
                        + rename
                        + ".wav");
            if (!file.exists()) {
              data.renameTrack(selected, rename);
              Toast.makeText(
                      ActivityTracksListView.this, "Name changed to " + rename, Toast.LENGTH_SHORT)
                  .show();
            } else {
              Toast.makeText(
                      ActivityTracksListView.this,
                      "File with the same name exists",
                      Toast.LENGTH_SHORT)
                  .show();
            }
            populateListView();
          }
        });
    dialogBuilder.setPositiveButton(
        "Cancel",
        new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
          }
        });

    AlertDialog dialogRename = dialogBuilder.create();
    dialogRename.show();
  }