Search in sources :

Example 96 with Timer

use of java.util.Timer in project MusicDNA by harjot-oberai.

the class PlayerFragment method onViewCreated.

@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    imgLoader = new ImageLoader(getContext());
    smallPlayer = (RelativeLayout) view.findViewById(R.id.smallPlayer);
    snappyRecyclerView = (SnappyRecyclerView) view.findViewById(R.id.visualizer_recycler);
    bufferingIndicator = (AVLoadingIndicatorView) view.findViewById(R.id.bufferingIndicator);
    currTime = (TextView) view.findViewById(R.id.currTime);
    totalTime = (TextView) view.findViewById(R.id.totalTime);
    repeatController = (ImageView) view.findViewById(R.id.repeat_controller);
    shuffleController = (ImageView) view.findViewById(R.id.shuffle_controller);
    spToolbar = (RelativeLayout) view.findViewById(R.id.smallPlayer_AB);
    overflowMenuAB = (ImageView) view.findViewById(R.id.menuIcon);
    lyricsContainer = (RelativeLayout) view.findViewById(R.id.lyrics_container);
    lyricsIcon = (ImageView) view.findViewById(R.id.lyrics_icon);
    lyricsContent = (TextView) view.findViewById(R.id.lyrics_content);
    lyricsLoadingIndicator = (AVLoadingIndicatorView) view.findViewById(R.id.lyrics_loading_indicator);
    lyricsStatus = (TextView) view.findViewById(R.id.lyrics_status_text);
    lyricsIcon.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            if (!isLyricsVisisble) {
                lyricsIcon.setAlpha(1.0f);
                mVisualizerView.setVisibility(View.GONE);
                lyricsContainer.setVisibility(View.VISIBLE);
                lyricsLoadingIndicator.setVisibility(View.VISIBLE);
                lyricsStatus.setText("Searching Lyrics");
                lyricsStatus.setVisibility(View.VISIBLE);
                if (currentLyrics == null) {
                    downloadThread = new DownloadThread(PlayerFragment.this, false, selected_track_artist.getText().toString(), selected_track_title.getText().toString());
                    downloadThread.start();
                } else {
                    onLyricsDownloaded(currentLyrics);
                }
            } else {
                lyricsIcon.setAlpha(0.5f);
                lyricsContent.setText("");
                lyricsContainer.setVisibility(View.GONE);
                mVisualizerView.setVisibility(View.VISIBLE);
            }
            isLyricsVisisble = !isLyricsVisisble;
        }
    });
    spImgAB = (ImageView) view.findViewById(R.id.selected_track_image_sp_AB);
    spImgAB.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (!homeActivity.isPlayerTransitioning && smallPlayer != null) {
                homeActivity.hidePlayer();
                homeActivity.isPlayerVisible = false;
            }
        }
    });
    spTitleAB = (TextView) view.findViewById(R.id.selected_track_title_sp_AB);
    spTitleAB.setSelected(true);
    spArtistAB = (TextView) view.findViewById(R.id.selected_track_artist_sp_AB);
    if (homeActivity.shuffleEnabled) {
        shuffleController.setImageResource(R.drawable.ic_shuffle_filled);
    } else {
        shuffleController.setImageResource(R.drawable.ic_shuffle_alpha);
    }
    if (homeActivity.repeatEnabled) {
        repeatController.setImageResource(R.drawable.ic_repeat_filled);
    } else if (homeActivity.repeatOnceEnabled) {
        repeatController.setImageResource(R.drawable.ic_repeat_once);
    } else {
        repeatController.setImageResource(R.drawable.ic_repeat_alpha);
    }
    repeatController.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (homeActivity.repeatOnceEnabled) {
                homeActivity.repeatOnceEnabled = false;
                repeatController.setImageResource(R.drawable.ic_repeat_alpha);
            } else if (homeActivity.repeatEnabled) {
                homeActivity.repeatEnabled = false;
                homeActivity.repeatOnceEnabled = true;
                repeatController.setImageResource(R.drawable.ic_repeat_once);
            } else {
                homeActivity.repeatEnabled = true;
                repeatController.setImageResource(R.drawable.ic_repeat_filled);
            }
        }
    });
    shuffleController.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (homeActivity.shuffleEnabled) {
                homeActivity.shuffleEnabled = false;
                shuffleController.setImageResource(R.drawable.ic_shuffle_alpha);
                mCallback.onShuffleDisabled();
            } else {
                homeActivity.shuffleEnabled = true;
                shuffleController.setImageResource(R.drawable.ic_shuffle_filled);
                mCallback.onShuffleEnabled();
            }
            snappyRecyclerView.scrollToPosition(HomeActivity.queueCurrentIndex);
            snappyRecyclerView.setCurrentPosition(HomeActivity.queueCurrentIndex);
            customAdapter.notifyDataSetChanged();
            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {

                @Override
                public void run() {
                    snappyRecyclerView.setTransparency();
                }
            }, 400);
        }
    });
    equalizerIcon = (ImageView) view.findViewById(R.id.equalizer_icon);
    equalizerIcon.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mCallback.onEqualizerClicked();
        }
    });
    equalizerIcon.setVisibility(View.INVISIBLE);
    saveDNAToggle = (ImageView) view.findViewById(R.id.toggleSaveDNA);
    if (homeActivity.isSaveDNAEnabled) {
        saveDNAToggle.setImageResource(R.drawable.ic_save_filled);
    } else {
        saveDNAToggle.setImageResource(R.drawable.ic_save_alpha);
    }
    saveDNAToggle.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (homeActivity.isSaveDNAEnabled) {
                homeActivity.isSaveDNAEnabled = false;
                saveDNAToggle.setImageResource(R.drawable.ic_save_alpha);
            } else {
                homeActivity.isSaveDNAEnabled = true;
                saveDNAToggle.setImageResource(R.drawable.ic_save_filled);
            }
        }
    });
    mainTrackController = (ImageView) view.findViewById(R.id.controller);
    nextTrackController = (ImageView) view.findViewById(R.id.next);
    previousTrackController = (ImageView) view.findViewById(R.id.previous);
    isFav = false;
    favouriteIcon = (ImageView) view.findViewById(R.id.fav_icon);
    favControllerSp = (ImageView) view.findViewById(R.id.fav_controller_sp);
    if (homeActivity.isFavourite) {
        favouriteIcon.setImageResource(R.drawable.ic_heart_filled_1);
        favControllerSp.setImageResource(R.drawable.ic_heart_filled_1);
        isFav = true;
    } else {
        favouriteIcon.setImageResource(R.drawable.ic_heart_alpha);
        favControllerSp.setImageResource(R.drawable.ic_heart_alpha);
        isFav = false;
    }
    favouriteIcon.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (isFav) {
                favouriteIcon.setImageResource(R.drawable.ic_heart_alpha);
                favControllerSp.setImageResource(R.drawable.ic_heart_alpha);
                isFav = false;
                removeFromFavourite();
            } else {
                favouriteIcon.setImageResource(R.drawable.ic_heart_filled_1);
                favControllerSp.setImageResource(R.drawable.ic_heart_filled_1);
                isFav = true;
                addToFavourite();
            }
            new HomeActivity.SaveFavourites().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        }
    });
    favControllerSp.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (isFav) {
                favouriteIcon.setImageResource(R.drawable.ic_heart_alpha);
                favControllerSp.setImageResource(R.drawable.ic_heart_alpha);
                isFav = false;
                removeFromFavourite();
            } else {
                favouriteIcon.setImageResource(R.drawable.ic_heart_filled_1);
                favControllerSp.setImageResource(R.drawable.ic_heart_filled_1);
                isFav = true;
                addToFavourite();
            }
            new HomeActivity.SaveFavourites().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        }
    });
    queueIcon = (ImageView) view.findViewById(R.id.queue_icon);
    queueIcon.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mCallback.onQueueClicked();
        }
    });
    selected_track_image = (ImageView) view.findViewById(R.id.selected_track_image_sp);
    selected_track_title = (TextView) view.findViewById(R.id.selected_track_title_sp);
    selected_track_artist = (TextView) view.findViewById(R.id.selected_track_artist_sp);
    player_controller = (ImageView) view.findViewById(R.id.player_control_sp);
    nextControllerSp = (ImageView) view.findViewById(R.id.next_controller_sp);
    nextControllerSp.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mMediaPlayer.pause();
            homeActivity.nextControllerClicked = true;
            mCallback.onComplete();
        }
    });
    bottomContainer = (RelativeLayout) view.findViewById(R.id.mainControllerContainer);
    seekBarContainer = (RelativeLayout) view.findViewById(R.id.seekBarContainer);
    toggleContainer = (RelativeLayout) view.findViewById(R.id.toggleContainer);
    mVisualizerView = (VisualizerView) view.findViewById(R.id.myvisualizerview);
    VisualizerView.w = HomeActivity.screen_width;
    VisualizerView.h = HomeActivity.screen_height;
    VisualizerView.conf = Bitmap.Config.ARGB_8888;
    VisualizerView.bmp = Bitmap.createBitmap(VisualizerView.w, VisualizerView.h, VisualizerView.conf);
    HomeActivity.cacheCanvas = new Canvas(VisualizerView.bmp);
    if (HomeActivity.queue != null) {
        customAdapter = new CustomAdapter(getContext(), snappyRecyclerView, HomeActivity.queue.getQueue());
    } else {
        customAdapter = new CustomAdapter(getContext(), snappyRecyclerView, new ArrayList<UnifiedTrack>());
    }
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
    snappyRecyclerView.setLayoutManager(linearLayoutManager);
    snappyRecyclerView.setItemAnimator(new DefaultItemAnimator());
    snappyRecyclerView.setAdapter(customAdapter);
    snappyRecyclerView.setActivity(homeActivity);
    snappyRecyclerView.addOnItemTouchListener(new ClickItemTouchListener(snappyRecyclerView) {

        @Override
        public boolean onClick(RecyclerView parent, View view, int position, long id) {
            return false;
        }

        @Override
        public boolean onLongClick(RecyclerView parent, View view, int position, long id) {
            if (homeActivity.isFullScreenEnabled) {
                homeActivity.isFullScreenEnabled = false;
                bottomContainer.setVisibility(View.VISIBLE);
                seekBarContainer.setVisibility(View.VISIBLE);
                toggleContainer.setVisibility(View.VISIBLE);
                spToolbar.setVisibility(View.VISIBLE);
                mCallback.onFullScreen();
            } else {
                homeActivity.isFullScreenEnabled = true;
                bottomContainer.setVisibility(View.GONE);
                seekBarContainer.setVisibility(View.GONE);
                toggleContainer.setVisibility(View.GONE);
                spToolbar.setVisibility(View.INVISIBLE);
                mCallback.onFullScreen();
            }
            return true;
        }

        @Override
        public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
        }
    });
    cpb = (CustomProgressBar) view.findViewById(R.id.customProgress);
    smallPlayer.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mCallback.onSmallPlayerTouched();
        }
    });
    track = homeActivity.selectedTrack;
    localTrack = homeActivity.localSelectedTrack;
    if (homeActivity.streamSelected) {
        try {
            durationInMilliSec = track.getDuration();
        } catch (Exception e) {
        }
        if (track.getArtworkURL() != null) {
            Picasso.with(getActivity()).load(track.getArtworkURL()).resize(100, 100).into(selected_track_image);
        } else {
            selected_track_image.setImageResource(R.drawable.ic_default);
        }
        try {
            spTitleAB.setText(track.getTitle());
            selected_track_title.setText(track.getTitle());
            selected_track_artist.setText("");
            spArtistAB.setText("");
        } catch (Exception e) {
        }
    } else {
        try {
            durationInMilliSec = (int) localTrack.getDuration();
        } catch (Exception e) {
        }
        try {
            imgLoader.DisplayImage(localTrack.getPath(), selected_track_image);
        } catch (Exception e) {
        }
        try {
            spTitleAB.setText(localTrack.getTitle());
            selected_track_title.setText(localTrack.getTitle());
            selected_track_artist.setText(localTrack.getArtist());
            spArtistAB.setText(localTrack.getArtist());
        } catch (Exception e) {
        }
    }
    temp = getTime(durationInMilliSec);
    totalTime.setText(temp.first + ":" + temp.second);
    homeActivity.mWifi = homeActivity.connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    try {
        if (homeActivity.streamSelected) {
            if ((homeActivity.settings.isStreamOnlyOnWifiEnabled() && homeActivity.mWifi.isConnected()) || !homeActivity.settings.isStreamOnlyOnWifiEnabled()) {
                isPrepared = false;
                mMediaPlayer.reset();
                mMediaPlayer.setDataSource(track.getStreamURL() + "?client_id=" + Config.CLIENT_ID);
                mMediaPlayer.prepareAsync();
            } else {
                mMediaPlayer.pause();
                homeActivity.nextControllerClicked = true;
                mCallback.onComplete();
            }
        } else {
            isPrepared = false;
            mMediaPlayer.reset();
            File f = new File(localTrack.getPath());
            if (f.exists()) {
                mMediaPlayer.setDataSource(localTrack.getPath());
                mMediaPlayer.prepareAsync();
            } else {
                Toast.makeText(getContext(), "Error playing " + localTrack.getTitle() + ". Skipping to next track", Toast.LENGTH_SHORT).show();
                mMediaPlayer.pause();
                homeActivity.nextControllerClicked = true;
                mCallback.onComplete();
            }
        }
        bufferingIndicator.setVisibility(View.VISIBLE);
        mainTrackController.setVisibility(View.GONE);
    } catch (Exception e) {
        e.printStackTrace();
    }
    overflowMenuAB.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            PopupMenu popMenu = new PopupMenu(getContext(), overflowMenuAB);
            popMenu.getMenuInflater().inflate(R.menu.player_overflow_menu, popMenu.getMenu());
            popMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {

                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    if (item.getTitle().equals("Full Screen")) {
                        if (homeActivity.isFullScreenEnabled) {
                            homeActivity.isFullScreenEnabled = false;
                            bottomContainer.setVisibility(View.VISIBLE);
                            seekBarContainer.setVisibility(View.VISIBLE);
                            toggleContainer.setVisibility(View.VISIBLE);
                            spToolbar.setVisibility(View.VISIBLE);
                            mCallback.onFullScreen();
                        } else {
                            homeActivity.isFullScreenEnabled = true;
                            bottomContainer.setVisibility(View.GONE);
                            seekBarContainer.setVisibility(View.GONE);
                            toggleContainer.setVisibility(View.GONE);
                            spToolbar.setVisibility(View.INVISIBLE);
                            mCallback.onFullScreen();
                        }
                    } else if (item.getTitle().equals("Settings")) {
                        mCallback.onSettingsClicked();
                    } else if (item.getTitle().equals("Add to playlist")) {
                        UnifiedTrack ut = HomeActivity.queue.getQueue().get(HomeActivity.queueCurrentIndex);
                        mCallback.addCurrentSongtoPlaylist(ut);
                    }
                    return true;
                }
            });
            popMenu.show();
        }
    });
    player_controller.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (isReplayIconVisible) {
                homeActivity.hasQueueEnded = true;
                mCallback.onComplete();
            } else {
                if (!pauseClicked) {
                    pauseClicked = true;
                }
                togglePlayPause();
            }
        }
    });
    mainTrackController.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (isReplayIconVisible) {
                homeActivity.hasQueueEnded = true;
                mCallback.onComplete();
            } else {
                if (!pauseClicked) {
                    pauseClicked = true;
                }
                togglePlayPause();
            }
        }
    });
    nextTrackController.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            mMediaPlayer.pause();
            homeActivity.nextControllerClicked = true;
            mCallback.onComplete();
        }
    });
    previousTrackController.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (homeActivity.queueCurrentIndex != 0) {
                mMediaPlayer.pause();
                mCallback.onPreviousTrack();
            }
        }
    });
    progressBar = (SeekBar) view.findViewById(R.id.progressBar);
    progressBar.setMax(durationInMilliSec);
    timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {

        public void run() {
            if (isPrepared && !isTracking && getActivity() != null) {
                getActivity().runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        float[] hsv = new float[3];
                        hsv[0] = homeActivity.seekBarColor;
                        hsv[1] = (float) 0.8;
                        hsv[2] = (float) 0.5;
                        progressBar.getProgressDrawable().setColorFilter(new PorterDuffColorFilter(Color.HSVToColor(hsv), PorterDuff.Mode.SRC_IN));
                        cpb.update();
                    }
                });
                try {
                    temp = getTime(mMediaPlayer.getCurrentPosition());
                    getActivity().runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            currTime.setText(temp.first + ":" + temp.second);
                        }
                    });
                    progressBar.setProgress(mMediaPlayer.getCurrentPosition());
                } catch (Exception e) {
                    Log.e("MEDIA", e.getMessage() + ":");
                }
            }
        }
    }, 0, 50);
    progressBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            temp = getTime(progress);
            getActivity().runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    currTime.setText(temp.first + ":" + temp.second);
                }
            });
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            isTracking = true;
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            mMediaPlayer.seekTo(seekBar.getProgress());
            if (mMediaPlayer.isPlaying())
                mMediaPlayer.start();
            isTracking = false;
        }
    });
    final Button mEndButton = new Button(getContext());
    mEndButton.setBackgroundColor(homeActivity.themeColor);
    mEndButton.setTextColor(Color.WHITE);
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {

        @Override
        public void run() {
            showCase = new ShowcaseView.Builder(getActivity()).blockAllTouches().singleShot(2).setStyle(R.style.CustomShowcaseTheme).useDecorViewAsParent().replaceEndButton(mEndButton).setContentTitlePaint(homeActivity.tp).setTarget(new ViewTarget(mVisualizerView.getId(), getActivity())).setContentTitle("The DNA").setContentText("The DNA of the currently playing song.").build();
            showCase.setButtonText("Next");
            showCase.setButtonPosition(homeActivity.lps);
            showCase.overrideButtonClick(new View.OnClickListener() {

                int count1 = -1;

                @Override
                public void onClick(View v) {
                    count1++;
                    switch(count1) {
                        case 0:
                            showCase.setTarget(new ViewTarget(mVisualizerView.getId(), getActivity()));
                            showCase.setContentTitle("The DNA");
                            showCase.setContentText("Swipe Left or Right to change Song." + "Long Press for fullscreen");
                            showCase.setButtonPosition(homeActivity.lps);
                            showCase.setButtonText("Next");
                            break;
                        case 1:
                            showCase.setTarget(new ViewTarget(R.id.toggleContainer, getActivity()));
                            showCase.setContentTitle("The Controls");
                            showCase.setContentText("Equalizer \n" + "Save DNA toggle\n" + "Add to Favourites \n" + "Queue");
                            showCase.setButtonPosition(homeActivity.lps);
                            showCase.setButtonText("Done");
                            break;
                        case 2:
                            showCase.setTarget(new ViewTarget(R.id.lyrics_icon, getActivity()));
                            showCase.setContentTitle("Lyrics");
                            showCase.setContentText("Get lyrics by tapping this icon");
                            showCase.setButtonPosition(homeActivity.lps);
                            showCase.setButtonText("Done");
                            break;
                        case 3:
                            showCase.hide();
                            break;
                    }
                }
            });
        }
    }, 500);
}
Also used : ArrayList(java.util.ArrayList) PorterDuffColorFilter(android.graphics.PorterDuffColorFilter) ViewTarget(com.github.amlcurran.showcaseview.targets.ViewTarget) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) CustomAdapter(com.sdsmdg.harjot.MusicDNA.snappyrecyclerview.CustomAdapter) DefaultItemAnimator(android.support.v7.widget.DefaultItemAnimator) DownloadThread(com.sdsmdg.harjot.MusicDNA.utilities.DownloadThread) TimerTask(java.util.TimerTask) Button(android.widget.Button) ClickItemTouchListener(com.sdsmdg.harjot.MusicDNA.clickitemtouchlistener.ClickItemTouchListener) SeekBar(android.widget.SeekBar) Canvas(android.graphics.Canvas) Handler(android.os.Handler) MenuItem(android.view.MenuItem) ImageView(android.widget.ImageView) ShowcaseView(com.github.amlcurran.showcaseview.ShowcaseView) View(android.view.View) TextView(android.widget.TextView) AVLoadingIndicatorView(com.wang.avi.AVLoadingIndicatorView) VisualizerView(com.sdsmdg.harjot.MusicDNA.visualizers.VisualizerView) RecyclerView(android.support.v7.widget.RecyclerView) SnappyRecyclerView(com.sdsmdg.harjot.MusicDNA.snappyrecyclerview.SnappyRecyclerView) Timer(java.util.Timer) UnifiedTrack(com.sdsmdg.harjot.MusicDNA.models.UnifiedTrack) RecyclerView(android.support.v7.widget.RecyclerView) SnappyRecyclerView(com.sdsmdg.harjot.MusicDNA.snappyrecyclerview.SnappyRecyclerView) ImageLoader(com.sdsmdg.harjot.MusicDNA.imageloader.ImageLoader) File(java.io.File) PopupMenu(android.widget.PopupMenu)

Example 97 with Timer

use of java.util.Timer in project MusicDNA by harjot-oberai.

the class PlayerFragment method refresh.

public void refresh() {
    isRefreshed = true;
    pauseClicked = false;
    completed = false;
    isTracking = false;
    if (snappyRecyclerView.getCurrentPosition() != HomeActivity.queueCurrentIndex) {
        snappyRecyclerView.scrollToPosition(HomeActivity.queueCurrentIndex);
        snappyRecyclerView.setCurrentPosition(HomeActivity.queueCurrentIndex);
        customAdapter.notifyDataSetChanged();
    }
    VisualizerView.w = HomeActivity.screen_width;
    VisualizerView.h = HomeActivity.screen_height;
    VisualizerView.conf = Bitmap.Config.ARGB_8888;
    VisualizerView.bmp = Bitmap.createBitmap(VisualizerView.w, VisualizerView.h, VisualizerView.conf);
    HomeActivity.cacheCanvas = new Canvas(VisualizerView.bmp);
    if (homeActivity.isPlayerVisible) {
        player_controller.setVisibility(View.VISIBLE);
        player_controller.setImageResource(R.drawable.ic_queue_music_white_48dp);
    } else {
        player_controller.setVisibility(View.VISIBLE);
        player_controller.setImageResource(R.drawable.ic_pause_white_48dp);
    }
    isFav = false;
    if (homeActivity.isFavourite) {
        favouriteIcon.setImageResource(R.drawable.ic_heart_filled_1);
        favControllerSp.setImageResource(R.drawable.ic_heart_filled_1);
        isFav = true;
    } else {
        favouriteIcon.setImageResource(R.drawable.ic_heart_alpha);
        favControllerSp.setImageResource(R.drawable.ic_heart_alpha);
        isFav = false;
    }
    if (homeActivity.shuffleEnabled) {
        shuffleController.setImageResource(R.drawable.ic_shuffle_filled);
    } else {
        shuffleController.setImageResource(R.drawable.ic_shuffle_alpha);
    }
    if (homeActivity.repeatEnabled) {
        repeatController.setImageResource(R.drawable.ic_repeat_filled);
    } else if (homeActivity.repeatOnceEnabled) {
        repeatController.setImageResource(R.drawable.ic_repeat_once);
    } else {
        repeatController.setImageResource(R.drawable.ic_repeat_alpha);
    }
    if (homeActivity.isSaveDNAEnabled) {
        saveDNAToggle.setImageResource(R.drawable.ic_save_filled);
    } else {
        saveDNAToggle.setImageResource(R.drawable.ic_save_alpha);
    }
    equalizerIcon.setVisibility(View.INVISIBLE);
    track = homeActivity.selectedTrack;
    localTrack = homeActivity.localSelectedTrack;
    if (homeActivity.streamSelected) {
        durationInMilliSec = track.getDuration();
        if (track.getArtworkURL() != null) {
            Picasso.with(getActivity()).load(track.getArtworkURL()).resize(100, 100).into(selected_track_image);
        } else {
            selected_track_image.setImageResource(R.drawable.ic_default);
        }
        try {
            spTitleAB.setText(track.getTitle());
            selected_track_title.setText(track.getTitle());
            selected_track_artist.setText("");
            spArtistAB.setText("");
        } catch (Exception e) {
        }
    } else {
        try {
            durationInMilliSec = (int) localTrack.getDuration();
        } catch (Exception e) {
        }
        try {
            imgLoader.DisplayImage(localTrack.getPath(), selected_track_image);
        } catch (Exception e) {
        }
        try {
            spTitleAB.setText(localTrack.getTitle());
            selected_track_title.setText(localTrack.getTitle());
            selected_track_artist.setText(localTrack.getArtist());
            spArtistAB.setText(localTrack.getArtist());
        } catch (Exception e) {
        }
    }
    temp = getTime(durationInMilliSec);
    totalTime.setText(temp.first + ":" + temp.second);
    homeActivity.mWifi = homeActivity.connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    try {
        if (homeActivity.streamSelected) {
            if ((homeActivity.settings.isStreamOnlyOnWifiEnabled() && homeActivity.mWifi.isConnected()) || !homeActivity.settings.isStreamOnlyOnWifiEnabled()) {
                isPrepared = false;
                mMediaPlayer.reset();
                progressBar.setProgress(0);
                progressBar.setSecondaryProgress(0);
                mMediaPlayer.setDataSource(track.getStreamURL() + "?client_id=" + Config.CLIENT_ID);
                mMediaPlayer.prepareAsync();
            } else {
                mMediaPlayer.pause();
                homeActivity.nextControllerClicked = true;
                mCallback.onComplete();
            }
        } else {
            isPrepared = false;
            mMediaPlayer.reset();
            progressBar.setProgress(0);
            progressBar.setSecondaryProgress(0);
            File f = new File(localTrack.getPath());
            if (f.exists()) {
                mMediaPlayer.setDataSource(localTrack.getPath());
                mMediaPlayer.prepareAsync();
            } else {
                Toast.makeText(getContext(), "Error playing " + localTrack.getTitle() + ". Skipping to next track", Toast.LENGTH_SHORT).show();
                mMediaPlayer.pause();
                homeActivity.nextControllerClicked = true;
                mCallback.onComplete();
            }
        }
        bufferingIndicator.setVisibility(View.VISIBLE);
        mainTrackController.setVisibility(View.GONE);
    } catch (Exception e) {
        e.printStackTrace();
    }
    progressBar.setMax(durationInMilliSec);
    timer.cancel();
    timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {

        public void run() {
            if (isPrepared && !isTracking && getActivity() != null) {
                getActivity().runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        float[] hsv = new float[3];
                        hsv[0] = homeActivity.seekBarColor;
                        hsv[1] = (float) 0.8;
                        hsv[2] = (float) 0.5;
                        progressBar.getProgressDrawable().setColorFilter(new PorterDuffColorFilter(Color.HSVToColor(hsv), PorterDuff.Mode.SRC_IN));
                        cpb.update();
                    }
                });
                try {
                    temp = getTime(mMediaPlayer.getCurrentPosition());
                    getActivity().runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            currTime.setText(temp.first + ":" + temp.second);
                        }
                    });
                    progressBar.setProgress(mMediaPlayer.getCurrentPosition());
                } catch (Exception e) {
                    Log.e("MEDIA", e.getMessage() + ":");
                }
            }
        }
    }, 0, 50);
    progressBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            temp = getTime(progress);
            getActivity().runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    currTime.setText(temp.first + ":" + temp.second);
                }
            });
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            startTrack = System.currentTimeMillis();
            isTracking = true;
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            endTrack = System.currentTimeMillis();
            mMediaPlayer.seekTo(seekBar.getProgress());
            if (mMediaPlayer.isPlaying())
                mMediaPlayer.start();
            isTracking = false;
        }
    });
}
Also used : SeekBar(android.widget.SeekBar) Canvas(android.graphics.Canvas) PorterDuffColorFilter(android.graphics.PorterDuffColorFilter) Timer(java.util.Timer) TimerTask(java.util.TimerTask) File(java.io.File)

Example 98 with Timer

use of java.util.Timer in project gephi by gephi.

the class LongTaskExecutor method cancel.

/**
     * Cancel the current task. If the task fails to cancel itself and if an
     * <code>interruptDelay</code> has been specified, the task will be
     * <b>interrupted</b> after <code>interruptDelay</code>. Using
     * <code>Thread.interrupt()</code> may cause hazardous behaviors and should
     * be avoided. Therefore any task should be cancelable.
     */
public synchronized void cancel() {
    if (inBackground) {
        if (executor != null) {
            RunningLongTask rlt = (RunningLongTask) currentTask;
            if (rlt != null) {
                boolean res = rlt.cancel();
                if (interruptCancel && !res) {
                    cancelTimer = new Timer(name + "_cancelTimer");
                    cancelTimer.schedule(new InterruptTimerTask(rlt), interruptDelay);
                }
            }
        }
    } else {
        RunningLongTask rlt = (RunningLongTask) currentTask;
        if (rlt != null) {
            boolean res = rlt.cancel();
            if (interruptCancel && !res) {
                cancelTimer = new Timer(name + "_cancelTimer");
                cancelTimer.schedule(new InterruptTimerTask(rlt), interruptDelay);
            }
        }
    }
}
Also used : Timer(java.util.Timer)

Example 99 with Timer

use of java.util.Timer in project gephi by gephi.

the class PreviewSketch method mouseWheelMoved.

@Override
public void mouseWheelMoved(MouseWheelEvent e) {
    if (e.getUnitsToScroll() == 0) {
        return;
    }
    float way = -e.getUnitsToScroll() / Math.abs(e.getUnitsToScroll());
    target.setScaling(target.getScaling() * (way > 0 ? 2f : 0.5f));
    setMoving(true);
    if (wheelTimer != null) {
        wheelTimer.cancel();
        wheelTimer = null;
    }
    wheelTimer = new Timer();
    wheelTimer.schedule(new TimerTask() {

        @Override
        public void run() {
            setMoving(false);
            refreshLoop.refreshSketch();
            wheelTimer = null;
        }
    }, WHEEL_TIMER);
    refreshLoop.refreshSketch();
}
Also used : Timer(java.util.Timer) TimerTask(java.util.TimerTask)

Example 100 with Timer

use of java.util.Timer in project j2objc by google.

the class TimerTest method test_scheduleLjava_util_TimerTaskLjava_util_Date.

/**
     * java.util.Timer#schedule(java.util.TimerTask, java.util.Date)
     */
public void test_scheduleLjava_util_TimerTaskLjava_util_Date() throws Exception {
    Timer t = null;
    try {
        // Ensure a Timer throws an IllegalStateException after cancelled
        t = new Timer();
        TimerTestTask testTask = new TimerTestTask();
        Date d = new Date(System.currentTimeMillis() + 100);
        t.cancel();
        try {
            t.schedule(testTask, d);
            fail("Scheduling a task after Timer.cancel() should throw exception");
        } catch (IllegalStateException expected) {
        }
        // Ensure a Timer throws an IllegalStateException if task already
        // cancelled
        t = new Timer();
        testTask = new TimerTestTask();
        d = new Date(System.currentTimeMillis() + 100);
        testTask.cancel();
        try {
            t.schedule(testTask, d);
            fail("Scheduling a task after cancelling it should throw exception");
        } catch (IllegalStateException expected) {
        }
        t.cancel();
        // Ensure a Timer throws an IllegalArgumentException if delay is
        // negative
        t = new Timer();
        testTask = new TimerTestTask();
        d = new Date(-100);
        try {
            t.schedule(testTask, d);
            fail("Scheduling a task with negative date should throw IllegalArgumentException");
        } catch (IllegalArgumentException expected) {
        }
        t.cancel();
        // Ensure a Timer throws a NullPointerException if the task is null
        t = new Timer();
        d = new Date(System.currentTimeMillis() + 100);
        try {
            t.schedule(null, d);
            fail("Scheduling a null task should throw NullPointerException");
        } catch (NullPointerException expected) {
        }
        t.cancel();
        // Ensure a Timer throws a NullPointerException if the date is null
        t = new Timer();
        testTask = new TimerTestTask();
        try {
            t.schedule(testTask, null);
            fail("Scheduling a null date should throw NullPointerException");
        } catch (NullPointerException expected) {
        }
        t.cancel();
        // Ensure proper sequence of exceptions
        t = new Timer();
        d = new Date(-100);
        try {
            t.schedule(null, d);
            fail("Scheduling a null task with negative date should throw IllegalArgumentException first");
        } catch (IllegalArgumentException expected) {
        }
        t.cancel();
        // Ensure a task is run
        t = new Timer();
        testTask = new TimerTestTask();
        d = new Date(System.currentTimeMillis() + 200);
        t.schedule(testTask, d);
        awaitRun(testTask);
        t.cancel();
        // Ensure multiple tasks are run
        t = new Timer();
        testTask = new TimerTestTask();
        testTask.incrementCount(true);
        d = new Date(System.currentTimeMillis() + 100);
        t.schedule(testTask, d);
        testTask = new TimerTestTask();
        testTask.incrementCount(true);
        d = new Date(System.currentTimeMillis() + 150);
        t.schedule(testTask, d);
        testTask = new TimerTestTask();
        testTask.incrementCount(true);
        d = new Date(System.currentTimeMillis() + 70);
        t.schedule(testTask, d);
        testTask = new TimerTestTask();
        testTask.incrementCount(true);
        d = new Date(System.currentTimeMillis() + 10);
        t.schedule(testTask, d);
        Thread.sleep(400);
        assertTrue("Multiple tasks should have incremented counter 4 times not " + timerCounter, timerCounter == 4);
        t.cancel();
    } finally {
        if (t != null)
            t.cancel();
    }
}
Also used : Timer(java.util.Timer) Date(java.util.Date)

Aggregations

Timer (java.util.Timer)448 TimerTask (java.util.TimerTask)262 IOException (java.io.IOException)33 Date (java.util.Date)22 Test (org.junit.Test)15 File (java.io.File)11 ArrayList (java.util.ArrayList)10 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)10 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)9 JobExecutor (org.activiti.engine.impl.jobexecutor.JobExecutor)9 Intent (android.content.Intent)8 Location (android.location.Location)8 LocationListener (android.location.LocationListener)8 Bundle (android.os.Bundle)8 ActivitiException (org.activiti.engine.ActivitiException)8 View (android.view.View)7 InputMethodManager (android.view.inputmethod.InputMethodManager)7 ImageView (android.widget.ImageView)7 BufferedReader (java.io.BufferedReader)7 InputStreamReader (java.io.InputStreamReader)7