Android Open Source - PlayTunes Track Progress Fragment






From Project

Back to project page PlayTunes.

License

The source code is released under:

Copyright (c) 2014, Impeccable Labs, LLC. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions ar...

If you think the Android project PlayTunes 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.ideabag.playtunes.fragment;
//from w w w . j  av  a2  s. c  o m
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

import com.ideabag.playtunes.R;
import com.ideabag.playtunes.activity.NowPlayingActivity;

public class TrackProgressFragment extends Fragment {
  
  private static final int ONE_SECOND_IN_MILLI = 1000;
  
  private NowPlayingActivity mActivity;
  
  private SeekBar mBar;
  
  private Handler handle;
  
  private boolean isPlaying = false;
  
  TextView mPlayLength, mPlayPosition;
  
  int mPlayLengthMilli, mPlayPositionMilli;
  
  @Override public void onAttach( Activity activity ) {
    
    super.onAttach( activity );
    
    mActivity = ( NowPlayingActivity ) activity;
    
    handle = new Handler();
    
  }
  
  @Override public void onActivityCreated( Bundle savedInstanceState ) {
    super.onActivityCreated( savedInstanceState );
    
    mBar = ( SeekBar ) getView().findViewById( R.id.TrackProgressBar );
    
    mPlayLength = ( TextView ) getView().findViewById( R.id.TrackProgressPlayLength );
    mPlayPosition = ( TextView ) getView().findViewById( R.id.TrackProgressPlayPosition );
    
    mBar.setOnSeekBarChangeListener( mSeekBarChangedListener );
    
  }
  
  @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ) {
    
    return inflater.inflate( R.layout.fragment_track_progress, container, false );
    
  }
  
  @Override public void onResume() {
    super.onResume();
    startProgress();
    
  }
    
  @Override public void onPause() {
    super.onPause();
    
    stopProgress();
    
  }
  
  
  private OnSeekBarChangeListener mSeekBarChangedListener = new OnSeekBarChangeListener() {

    @Override
    public void onProgressChanged( SeekBar seekmBar, int progress, boolean fromUser) {
      
      if ( fromUser ) {
        
        stopProgress();
        
        setProgress( progress );
        
        mActivity.mBoundService.setSeekPosition( progress );
        
      }
      
      
      
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekmBar) {
      
      stopProgress();
      
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekmBar) {
      
      if ( isPlaying ) {
        
        startProgress();
        
      }
      
    }
    
  };
  
  private final Runnable mUpdateTimer = new Runnable() {

    @Override public void run() {
      
      
      //android.util.Log.i("mBar Progress",  "" + mBar.getProgress() );
      
      mPlayPositionMilli += ONE_SECOND_IN_MILLI;
      
      setProgress( mPlayPositionMilli );
      
      handle.postDelayed( mUpdateTimer, ONE_SECOND_IN_MILLI );
      
    }
    
    
    
  };
  
  //private 
  public void startProgress() {
    
    stopProgress();
    handle.postDelayed( mUpdateTimer, ONE_SECOND_IN_MILLI );
    //handle.postDelayed( mUpdateTimer, ONE_SECOND_IN_MILLI );
    
    
  }
  
  public void stopProgress() {
    
    handle.removeCallbacks( mUpdateTimer );
    
  }
  
  public void setProgress( int progress ) {
    
    stopProgress();
    
    mPlayPositionMilli = progress;
    
    mBar.setProgress( mPlayPositionMilli );
    
    int seconds = progress / ONE_SECOND_IN_MILLI;
    int minutes = seconds / 60;
    seconds = seconds % 60;
    
    mPlayPosition.setText( minutes + ":" + ( seconds < 10 ? "0" + seconds : seconds ) );
    
    if ( isPlaying ) {
      
      startProgress();
      
    }
    
  }
  
  public void setDuration( int duration ) {
    
    mPlayLengthMilli = duration;
    
    mBar.setMax( mPlayLengthMilli );
    
    int seconds = duration / ONE_SECOND_IN_MILLI;
    int minutes = seconds / 60;
    seconds = seconds % 60;
    
    mPlayLength.setText( minutes + ":" + ( seconds < 10 ? "0" + seconds : seconds ) );
    
  }
  
}




Java Source Code List

com.ideabag.playtunes.PlaylistManager.java
com.ideabag.playtunes.DragNDrop.DragListener.java
com.ideabag.playtunes.DragNDrop.DragNDropListView.java
com.ideabag.playtunes.DragNDrop.DropListener.java
com.ideabag.playtunes.DragNDrop.RemoveListener.java
com.ideabag.playtunes.activity.MainActivity.java
com.ideabag.playtunes.activity.NowPlayingActivity.java
com.ideabag.playtunes.activity.SettingsActivity.java
com.ideabag.playtunes.adapter.AlbumListAdapter.java
com.ideabag.playtunes.adapter.AlbumsAllAdapter.java
com.ideabag.playtunes.adapter.AlbumsOneAdapter.java
com.ideabag.playtunes.adapter.ArtistAlbumsAdapter.java
com.ideabag.playtunes.adapter.ArtistAllSongsAdapter.java
com.ideabag.playtunes.adapter.ArtistListAdapter.java
com.ideabag.playtunes.adapter.ArtistSinglesAdapter.java
com.ideabag.playtunes.adapter.ArtistsAllAdapter.java
com.ideabag.playtunes.adapter.AsyncQueryAdapter.java
com.ideabag.playtunes.adapter.GenresAllAdapter.java
com.ideabag.playtunes.adapter.GenresOneAdapter.java
com.ideabag.playtunes.adapter.NavigationListAdapter.java
com.ideabag.playtunes.adapter.PlaylistsAllAdapter.java
com.ideabag.playtunes.adapter.PlaylistsOneAdapter.java
com.ideabag.playtunes.adapter.SongListAdapter.java
com.ideabag.playtunes.adapter.SongsAllAdapter.java
com.ideabag.playtunes.adapter.search.SearchAlbumsAdapter.java
com.ideabag.playtunes.adapter.search.SearchArtistsAdapter.java
com.ideabag.playtunes.adapter.search.SearchSongsAdapter.java
com.ideabag.playtunes.database.MediaQuery.java
com.ideabag.playtunes.dialog.AddToPlaylistDialogFragment.java
com.ideabag.playtunes.dialog.CreatePlaylistDialogFragment.java
com.ideabag.playtunes.dialog.FeedbackDialogFragment.java
com.ideabag.playtunes.dialog.PlaylistDeleteDialogFragment.java
com.ideabag.playtunes.dialog.PlaylistMenuDialogFragment.java
com.ideabag.playtunes.dialog.PlaylistRenameDialogFragment.java
com.ideabag.playtunes.dialog.RateAppDialogFragment.java
com.ideabag.playtunes.dialog.SongMenuDialogFragment.java
com.ideabag.playtunes.fragment.AlbumsAllFragment.java
com.ideabag.playtunes.fragment.AlbumsOneFragment.java
com.ideabag.playtunes.fragment.ArtistSinglesFragment.java
com.ideabag.playtunes.fragment.ArtistsAllFragment.java
com.ideabag.playtunes.fragment.ArtistsOneFragment.java
com.ideabag.playtunes.fragment.FooterControlsFragment.java
com.ideabag.playtunes.fragment.GenresAllFragment.java
com.ideabag.playtunes.fragment.GenresOneFragment.java
com.ideabag.playtunes.fragment.MusicBrowserFragment.java
com.ideabag.playtunes.fragment.NavigationDrawerFragment.java
com.ideabag.playtunes.fragment.NavigationFragment.java
com.ideabag.playtunes.fragment.PlaylistsAllFragment.java
com.ideabag.playtunes.fragment.PlaylistsOneFragment.java
com.ideabag.playtunes.fragment.SaveScrollListFragment.java
com.ideabag.playtunes.fragment.SongsFragment.java
com.ideabag.playtunes.fragment.TrackProgressFragment.java
com.ideabag.playtunes.fragment.search.SearchAlbumsFragment.java
com.ideabag.playtunes.fragment.search.SearchAllFragment.java
com.ideabag.playtunes.fragment.search.SearchArtistsFragment.java
com.ideabag.playtunes.fragment.search.SearchFragment.java
com.ideabag.playtunes.fragment.search.SearchSongsFragment.java
com.ideabag.playtunes.fragment.search.SearchSuggestionsFragment.java
com.ideabag.playtunes.media.AudioFocusHelper.java
com.ideabag.playtunes.media.MusicFocusable.java
com.ideabag.playtunes.media.MusicIntentReceiver.java
com.ideabag.playtunes.media.PlaylistMediaPlayer.java
com.ideabag.playtunes.media.RemoteControlClientCompat.java
com.ideabag.playtunes.media.RemoteControlHelper.java
com.ideabag.playtunes.service.LockscreenManager.java
com.ideabag.playtunes.service.MusicPlayerService.java
com.ideabag.playtunes.service.PlaybackNotification.java
com.ideabag.playtunes.util.AdmobUtil.java
com.ideabag.playtunes.util.AlbumSongsCountTask.java
com.ideabag.playtunes.util.AsyncDrawable.java
com.ideabag.playtunes.util.BitmapWorkerTask.java
com.ideabag.playtunes.util.CheckRemoteVersionFileTask.java
com.ideabag.playtunes.util.DrawerLayout.java
com.ideabag.playtunes.util.GAEvent.java
com.ideabag.playtunes.util.IMusicBrowser.java
com.ideabag.playtunes.util.ISearchableAdapter.java
com.ideabag.playtunes.util.LoadAlbumStackTask.java
com.ideabag.playtunes.util.MergeAdapter.java
com.ideabag.playtunes.util.QueryCountTask.java
com.ideabag.playtunes.util.SackOfViewsAdapter.java
com.ideabag.playtunes.util.SearchHistory.java
com.ideabag.playtunes.util.StarToggleTask.java
com.ideabag.playtunes.util.TrackerSingleton.java