test_class.declarator: context
test_class.modifier: @Mock
test_class.original_string: @Mock
      Context context;
test_class.type: Context
test_class.var_name: context
test_class.declarator: afmPlayerView
test_class.modifier: private
test_class.original_string: private AfmPlayerView afmPlayerView;
test_class.type: AfmPlayerView
test_class.var_name: afmPlayerView
test_class.declarator: playlist
test_class.modifier: private
test_class.original_string: private List<AfmAudio> playlist;
test_class.type: List<AfmAudio>
test_class.var_name: playlist
test_class.file: AfmPlayer/src/test/java/com/library/nanostudio/afmplayer/AfmPlayerViewTest.java
test_class.identifier: AfmPlayerViewTest
test_case.body: @Test
      public void player_has_same_size_of_playlist_user(){
          assertEquals(afmPlayerView.getMyPlaylist().size(), playlist.size());
      }
test_case.class_method_signature: AfmPlayerViewTest.player_has_same_size_of_playlist_user()
test_case.full_signature: @Test public void player_has_same_size_of_playlist_user()
test_case.identifier: player_has_same_size_of_playlist_user
test_case.invocations: assertEquals size getMyPlaylist size
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void player_has_same_size_of_playlist_user()
focal_class.declarator: TAG = AfmPlayerView.class.getSimpleName()
focal_class.modifier: private static final
focal_class.original_string: private static final String TAG = AfmPlayerView.class.getSimpleName();
focal_class.type: String
focal_class.var_name: TAG
focal_class.declarator: PULSE_ANIMATION_DURATION = 200
focal_class.modifier: private static final
focal_class.original_string: private static final int PULSE_ANIMATION_DURATION = 200;
focal_class.type: int
focal_class.var_name: PULSE_ANIMATION_DURATION
focal_class.declarator: TITLE_ANIMATION_DURATION = 600
focal_class.modifier: private static final
focal_class.original_string: private static final int TITLE_ANIMATION_DURATION = 600;
focal_class.type: int
focal_class.var_name: TITLE_ANIMATION_DURATION
focal_class.declarator: txtCurrentMusic
focal_class.modifier: private
focal_class.original_string: private TextView txtCurrentMusic;
focal_class.type: TextView
focal_class.var_name: txtCurrentMusic
focal_class.declarator: btnPrev
focal_class.modifier: private
focal_class.original_string: private ImageButton btnPrev;
focal_class.type: ImageButton
focal_class.var_name: btnPrev
focal_class.declarator: btnPlay
focal_class.modifier: private
focal_class.original_string: private ImageButton btnPlay;
focal_class.type: ImageButton
focal_class.var_name: btnPlay
focal_class.declarator: progressBarPlayer
focal_class.modifier: private
focal_class.original_string: private ProgressBar progressBarPlayer;
focal_class.type: ProgressBar
focal_class.var_name: progressBarPlayer
focal_class.declarator: afmAudioPlayer
focal_class.modifier: private
focal_class.original_string: private AfmAudioPlayer afmAudioPlayer;
focal_class.type: AfmAudioPlayer
focal_class.var_name: afmAudioPlayer
focal_class.declarator: txtDuration
focal_class.modifier: private
focal_class.original_string: private TextView txtDuration;
focal_class.type: TextView
focal_class.var_name: txtDuration
focal_class.declarator: btnNext
focal_class.modifier: private
focal_class.original_string: private ImageButton btnNext;
focal_class.type: ImageButton
focal_class.var_name: btnNext
focal_class.declarator: seekBar
focal_class.modifier: private
focal_class.original_string: private SeekBar seekBar;
focal_class.type: SeekBar
focal_class.var_name: seekBar
focal_class.declarator: txtCurrentDuration
focal_class.modifier: private
focal_class.original_string: private TextView txtCurrentDuration;
focal_class.type: TextView
focal_class.var_name: txtCurrentDuration
focal_class.declarator: isInitialized
focal_class.modifier: private
focal_class.original_string: private boolean isInitialized;
focal_class.type: boolean
focal_class.var_name: isInitialized
focal_class.declarator: onInvalidPathListener = new OnInvalidPathListener() {
          @Override
          public void onPathError(AfmAudio afmAudio) {
              dismissProgressBar();
          }
      }
focal_class.modifier: private
focal_class.original_string: private OnInvalidPathListener onInvalidPathListener = new OnInvalidPathListener() {
          @Override
          public void onPathError(AfmAudio afmAudio) {
              dismissProgressBar();
          }
      };
focal_class.type: OnInvalidPathListener
focal_class.var_name: onInvalidPathListener
focal_class.declarator: jcPlayerViewServiceListener = new JcPlayerViewServiceListener() {
  
          @Override
          public void onPreparedAudio(String audioName, int duration) {
              dismissProgressBar();
              resetPlayerInfo();
  
              long aux = duration / 1000;
              int minute = (int) (aux / 60);
              int second = (int) (aux % 60);
  
              final String sDuration = // Minutes
                      (minute < 10 ? "0" + minute : minute + "")
                              + ":" +
                              // Seconds
                              (second < 10 ? "0" + second : second + "");
  
              seekBar.setMax(duration);
  
              txtDuration.post(new Runnable() {
                  @Override
                  public void run() {
                      txtDuration.setText(sDuration);
                  }
              });
          }
  
          @Override
          public void onCompletedAudio() {
              resetPlayerInfo();
  
              try {
                  afmAudioPlayer.nextAudio();
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
  
          @Override
          public void onPaused() {
              if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                  btnPlay.setBackground(ResourcesCompat.getDrawable(getResources(),
                          R.drawable.ic_play_white, null));
              } else {
                  btnPlay.setBackgroundDrawable(ResourcesCompat.getDrawable(getResources(),
                          R.drawable.ic_play_white, null));
              }
              btnPlay.setTag(R.drawable.ic_play_white);
          }
  
          @Override
          public void onContinueAudio() {
              dismissProgressBar();
          }
  
          @Override
          public void onPlaying() {
              if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                  btnPlay.setBackground(ResourcesCompat.getDrawable(getResources(),
                          R.drawable.ic_pause_white, null));
              } else {
                  btnPlay.setBackgroundDrawable(ResourcesCompat.getDrawable(getResources(),
                          R.drawable.ic_pause_white, null));
              }
              btnPlay.setTag(R.drawable.ic_pause_white);
          }
  
          @Override
          public void onTimeChanged(long currentPosition) {
              long aux = currentPosition / 1000;
              int minutes = (int) (aux / 60);
              int seconds = (int) (aux % 60);
              final String sMinutes = minutes < 10 ? "0" + minutes : minutes + "";
              final String sSeconds = seconds < 10 ? "0" + seconds : seconds + "";
  
              seekBar.setProgress((int) currentPosition);
              txtCurrentDuration.post(new Runnable() {
                  @Override
                  public void run() {
                      txtCurrentDuration.setText(String.valueOf(sMinutes + ":" + sSeconds));
                  }
              });
          }
  
          @Override
          public void updateTitle(final String title) {
  //            final String mTitle = title;
  
              YoYo.with(Techniques.FadeInLeft)
                      .duration(TITLE_ANIMATION_DURATION)
                      .playOn(txtCurrentMusic);
  
              txtCurrentMusic.post(new Runnable() {
                  @Override
                  public void run() {
                      txtCurrentMusic.setText(title);
                  }
              });
          }
      }
focal_class.original_string: JcPlayerViewServiceListener jcPlayerViewServiceListener = new JcPlayerViewServiceListener() {
  
          @Override
          public void onPreparedAudio(String audioName, int duration) {
              dismissProgressBar();
              resetPlayerInfo();
  
              long aux = duration / 1000;
              int minute = (int) (aux / 60);
              int second = (int) (aux % 60);
  
              final String sDuration = // Minutes
                      (minute < 10 ? "0" + minute : minute + "")
                              + ":" +
                              // Seconds
                              (second < 10 ? "0" + second : second + "");
  
              seekBar.setMax(duration);
  
              txtDuration.post(new Runnable() {
                  @Override
                  public void run() {
                      txtDuration.setText(sDuration);
                  }
              });
          }
  
          @Override
          public void onCompletedAudio() {
              resetPlayerInfo();
  
              try {
                  afmAudioPlayer.nextAudio();
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
  
          @Override
          public void onPaused() {
              if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                  btnPlay.setBackground(ResourcesCompat.getDrawable(getResources(),
                          R.drawable.ic_play_white, null));
              } else {
                  btnPlay.setBackgroundDrawable(ResourcesCompat.getDrawable(getResources(),
                          R.drawable.ic_play_white, null));
              }
              btnPlay.setTag(R.drawable.ic_play_white);
          }
  
          @Override
          public void onContinueAudio() {
              dismissProgressBar();
          }
  
          @Override
          public void onPlaying() {
              if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                  btnPlay.setBackground(ResourcesCompat.getDrawable(getResources(),
                          R.drawable.ic_pause_white, null));
              } else {
                  btnPlay.setBackgroundDrawable(ResourcesCompat.getDrawable(getResources(),
                          R.drawable.ic_pause_white, null));
              }
              btnPlay.setTag(R.drawable.ic_pause_white);
          }
  
          @Override
          public void onTimeChanged(long currentPosition) {
              long aux = currentPosition / 1000;
              int minutes = (int) (aux / 60);
              int seconds = (int) (aux % 60);
              final String sMinutes = minutes < 10 ? "0" + minutes : minutes + "";
              final String sSeconds = seconds < 10 ? "0" + seconds : seconds + "";
  
              seekBar.setProgress((int) currentPosition);
              txtCurrentDuration.post(new Runnable() {
                  @Override
                  public void run() {
                      txtCurrentDuration.setText(String.valueOf(sMinutes + ":" + sSeconds));
                  }
              });
          }
  
          @Override
          public void updateTitle(final String title) {
  //            final String mTitle = title;
  
              YoYo.with(Techniques.FadeInLeft)
                      .duration(TITLE_ANIMATION_DURATION)
                      .playOn(txtCurrentMusic);
  
              txtCurrentMusic.post(new Runnable() {
                  @Override
                  public void run() {
                      txtCurrentMusic.setText(title);
                  }
              });
          }
      };
focal_class.type: JcPlayerViewServiceListener
focal_class.var_name: jcPlayerViewServiceListener
focal_class.file: AfmPlayer/src/main/java/com/library/nanostudio/afmplayer/AfmPlayerView.java
focal_class.identifier: AfmPlayerView
focal_class.interfaces: implements
          View.OnClickListener, SeekBar.OnSeekBarChangeListener
focal_class.class_method_signature: AfmPlayerView.AfmPlayerView(Context context)
focal_class.full_signature: public  AfmPlayerView(Context context)
focal_class.identifier: AfmPlayerView
focal_class.modifiers: public
focal_class.parameters: (Context context)
focal_class.signature:  AfmPlayerView(Context context)
focal_class.class_method_signature: AfmPlayerView.AfmPlayerView(Context context, AttributeSet attrs)
focal_class.full_signature: public  AfmPlayerView(Context context, AttributeSet attrs)
focal_class.identifier: AfmPlayerView
focal_class.modifiers: public
focal_class.parameters: (Context context, AttributeSet attrs)
focal_class.signature:  AfmPlayerView(Context context, AttributeSet attrs)
focal_class.class_method_signature: AfmPlayerView.AfmPlayerView(Context context, AttributeSet attrs, int defStyle)
focal_class.full_signature: @TargetApi(Build.VERSION_CODES.HONEYCOMB) public  AfmPlayerView(Context context, AttributeSet attrs, int defStyle)
focal_class.identifier: AfmPlayerView
focal_class.modifiers: @TargetApi(Build.VERSION_CODES.HONEYCOMB) public
focal_class.parameters: (Context context, AttributeSet attrs, int defStyle)
focal_class.signature:  AfmPlayerView(Context context, AttributeSet attrs, int defStyle)
focal_class.class_method_signature: AfmPlayerView.init()
focal_class.full_signature: private void init()
focal_class.identifier: init
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void init()
focal_class.class_method_signature: AfmPlayerView.initPlaylist(List<AfmAudio> playlist)
focal_class.full_signature: public void initPlaylist(List<AfmAudio> playlist)
focal_class.identifier: initPlaylist
focal_class.modifiers: public
focal_class.parameters: (List<AfmAudio> playlist)
focal_class.return: void
focal_class.signature: void initPlaylist(List<AfmAudio> playlist)
focal_class.class_method_signature: AfmPlayerView.initAnonPlaylist(List<AfmAudio> playlist)
focal_class.full_signature: public void initAnonPlaylist(List<AfmAudio> playlist)
focal_class.identifier: initAnonPlaylist
focal_class.modifiers: public
focal_class.parameters: (List<AfmAudio> playlist)
focal_class.return: void
focal_class.signature: void initAnonPlaylist(List<AfmAudio> playlist)
focal_class.class_method_signature: AfmPlayerView.initWithTitlePlaylist(List<AfmAudio> playlist, String title)
focal_class.full_signature: public void initWithTitlePlaylist(List<AfmAudio> playlist, String title)
focal_class.identifier: initWithTitlePlaylist
focal_class.modifiers: public
focal_class.parameters: (List<AfmAudio> playlist, String title)
focal_class.return: void
focal_class.signature: void initWithTitlePlaylist(List<AfmAudio> playlist, String title)
focal_class.class_method_signature: AfmPlayerView.addAudio(AfmAudio afmAudio)
focal_class.full_signature: public long addAudio(AfmAudio afmAudio)
focal_class.identifier: addAudio
focal_class.modifiers: public
focal_class.parameters: (AfmAudio afmAudio)
focal_class.return: long
focal_class.signature: long addAudio(AfmAudio afmAudio)
focal_class.class_method_signature: AfmPlayerView.removeAudio(AfmAudio afmAudio)
focal_class.full_signature: public void removeAudio(AfmAudio afmAudio)
focal_class.identifier: removeAudio
focal_class.modifiers: public
focal_class.parameters: (AfmAudio afmAudio)
focal_class.return: void
focal_class.signature: void removeAudio(AfmAudio afmAudio)
focal_class.class_method_signature: AfmPlayerView.playAudio(AfmAudio afmAudio)
focal_class.full_signature: public void playAudio(AfmAudio afmAudio)
focal_class.identifier: playAudio
focal_class.modifiers: public
focal_class.parameters: (AfmAudio afmAudio)
focal_class.return: void
focal_class.signature: void playAudio(AfmAudio afmAudio)
focal_class.class_method_signature: AfmPlayerView.next()
focal_class.full_signature: public void next()
focal_class.identifier: next
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void next()
focal_class.class_method_signature: AfmPlayerView.continueAudio()
focal_class.full_signature: public void continueAudio()
focal_class.identifier: continueAudio
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void continueAudio()
focal_class.class_method_signature: AfmPlayerView.pause()
focal_class.full_signature: public void pause()
focal_class.identifier: pause
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void pause()
focal_class.class_method_signature: AfmPlayerView.previous()
focal_class.full_signature: public void previous()
focal_class.identifier: previous
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void previous()
focal_class.class_method_signature: AfmPlayerView.onClick(View view)
focal_class.full_signature: @Override public void onClick(View view)
focal_class.identifier: onClick
focal_class.modifiers: @Override public
focal_class.parameters: (View view)
focal_class.return: void
focal_class.signature: void onClick(View view)
focal_class.class_method_signature: AfmPlayerView.createNotification(int iconResource)
focal_class.full_signature: public void createNotification(int iconResource)
focal_class.identifier: createNotification
focal_class.modifiers: public
focal_class.parameters: (int iconResource)
focal_class.return: void
focal_class.signature: void createNotification(int iconResource)
focal_class.class_method_signature: AfmPlayerView.createNotification()
focal_class.full_signature: public void createNotification()
focal_class.identifier: createNotification
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void createNotification()
focal_class.class_method_signature: AfmPlayerView.getMyPlaylist()
focal_class.full_signature: public List<AfmAudio> getMyPlaylist()
focal_class.identifier: getMyPlaylist
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<AfmAudio>
focal_class.signature: List<AfmAudio> getMyPlaylist()
focal_class.class_method_signature: AfmPlayerView.isPlaying()
focal_class.full_signature: public boolean isPlaying()
focal_class.identifier: isPlaying
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isPlaying()
focal_class.class_method_signature: AfmPlayerView.isPaused()
focal_class.full_signature: public boolean isPaused()
focal_class.identifier: isPaused
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isPaused()
focal_class.class_method_signature: AfmPlayerView.getCurrentAudio()
focal_class.full_signature: public AfmAudio getCurrentAudio()
focal_class.identifier: getCurrentAudio
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: AfmAudio
focal_class.signature: AfmAudio getCurrentAudio()
focal_class.class_method_signature: AfmPlayerView.createJcAudioPlayer()
focal_class.full_signature: private void createJcAudioPlayer()
focal_class.identifier: createJcAudioPlayer
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void createJcAudioPlayer()
focal_class.class_method_signature: AfmPlayerView.sortPlaylist(List<AfmAudio> playlist)
focal_class.full_signature: private void sortPlaylist(List<AfmAudio> playlist)
focal_class.identifier: sortPlaylist
focal_class.modifiers: private
focal_class.parameters: (List<AfmAudio> playlist)
focal_class.return: void
focal_class.signature: void sortPlaylist(List<AfmAudio> playlist)
focal_class.class_method_signature: AfmPlayerView.isAlreadySorted(List<AfmAudio> playlist)
focal_class.full_signature: private boolean isAlreadySorted(List<AfmAudio> playlist)
focal_class.identifier: isAlreadySorted
focal_class.modifiers: private
focal_class.parameters: (List<AfmAudio> playlist)
focal_class.return: boolean
focal_class.signature: boolean isAlreadySorted(List<AfmAudio> playlist)
focal_class.class_method_signature: AfmPlayerView.generateTitleAudio(List<AfmAudio> playlist, String title)
focal_class.full_signature: private void generateTitleAudio(List<AfmAudio> playlist, String title)
focal_class.identifier: generateTitleAudio
focal_class.modifiers: private
focal_class.parameters: (List<AfmAudio> playlist, String title)
focal_class.return: void
focal_class.signature: void generateTitleAudio(List<AfmAudio> playlist, String title)
focal_class.class_method_signature: AfmPlayerView.showProgressBar()
focal_class.full_signature: private void showProgressBar()
focal_class.identifier: showProgressBar
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void showProgressBar()
focal_class.class_method_signature: AfmPlayerView.dismissProgressBar()
focal_class.full_signature: private void dismissProgressBar()
focal_class.identifier: dismissProgressBar
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void dismissProgressBar()
focal_class.class_method_signature: AfmPlayerView.resetPlayerInfo()
focal_class.full_signature: private void resetPlayerInfo()
focal_class.identifier: resetPlayerInfo
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void resetPlayerInfo()
focal_class.class_method_signature: AfmPlayerView.onProgressChanged(SeekBar seekBar, int i, boolean fromUser)
focal_class.full_signature: @Override public void onProgressChanged(SeekBar seekBar, int i, boolean fromUser)
focal_class.identifier: onProgressChanged
focal_class.modifiers: @Override public
focal_class.parameters: (SeekBar seekBar, int i, boolean fromUser)
focal_class.return: void
focal_class.signature: void onProgressChanged(SeekBar seekBar, int i, boolean fromUser)
focal_class.class_method_signature: AfmPlayerView.onStartTrackingTouch(SeekBar seekBar)
focal_class.full_signature: @Override public void onStartTrackingTouch(SeekBar seekBar)
focal_class.identifier: onStartTrackingTouch
focal_class.modifiers: @Override public
focal_class.parameters: (SeekBar seekBar)
focal_class.return: void
focal_class.signature: void onStartTrackingTouch(SeekBar seekBar)
focal_class.class_method_signature: AfmPlayerView.onStopTrackingTouch(SeekBar seekBar)
focal_class.full_signature: @Override public void onStopTrackingTouch(SeekBar seekBar)
focal_class.identifier: onStopTrackingTouch
focal_class.modifiers: @Override public
focal_class.parameters: (SeekBar seekBar)
focal_class.return: void
focal_class.signature: void onStopTrackingTouch(SeekBar seekBar)
focal_class.class_method_signature: AfmPlayerView.registerInvalidPathListener(OnInvalidPathListener registerInvalidPathListener)
focal_class.full_signature: public void registerInvalidPathListener(OnInvalidPathListener registerInvalidPathListener)
focal_class.identifier: registerInvalidPathListener
focal_class.modifiers: public
focal_class.parameters: (OnInvalidPathListener registerInvalidPathListener)
focal_class.return: void
focal_class.signature: void registerInvalidPathListener(OnInvalidPathListener registerInvalidPathListener)
focal_class.class_method_signature: AfmPlayerView.kill()
focal_class.full_signature: public void kill()
focal_class.identifier: kill
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void kill()
focal_class.class_method_signature: AfmPlayerView.registerServiceListener(JcPlayerViewServiceListener jcPlayerServiceListener)
focal_class.full_signature: public void registerServiceListener(JcPlayerViewServiceListener jcPlayerServiceListener)
focal_class.identifier: registerServiceListener
focal_class.modifiers: public
focal_class.parameters: (JcPlayerViewServiceListener jcPlayerServiceListener)
focal_class.return: void
focal_class.signature: void registerServiceListener(JcPlayerViewServiceListener jcPlayerServiceListener)
focal_class.class_method_signature: AfmPlayerView.registerStatusListener(JcPlayerViewStatusListener statusListener)
focal_class.full_signature: public void registerStatusListener(JcPlayerViewStatusListener statusListener)
focal_class.identifier: registerStatusListener
focal_class.modifiers: public
focal_class.parameters: (JcPlayerViewStatusListener statusListener)
focal_class.return: void
focal_class.signature: void registerStatusListener(JcPlayerViewStatusListener statusListener)
focal_class.superclass: extends LinearLayout
focal_method.body: public List<AfmAudio> getMyPlaylist() {
          return afmAudioPlayer.getPlaylist();
      }
focal_method.class_method_signature: AfmPlayerView.getMyPlaylist()
focal_method.full_signature: public List<AfmAudio> getMyPlaylist()
focal_method.identifier: getMyPlaylist
focal_method.invocations: getPlaylist
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: List<AfmAudio>
focal_method.signature: List<AfmAudio> getMyPlaylist()