diff options
author | Utkarsh Gupta <utkarsh.eminem@gmail.com> | 2015-07-07 14:17:12 +0530 |
---|---|---|
committer | Utkarsh Gupta <utkarsh.eminem@gmail.com> | 2015-07-07 14:20:30 +0530 |
commit | 7441c5d47497d62a90f7c09597a8363516a74c07 (patch) | |
tree | e15507a918a064ce5972dac49dd44858d5ce8333 /src/com/cyanogenmod/eleven/ui | |
parent | 3acc66196b8aa68bbb33890975806ad8a11dc16a (diff) | |
download | android_packages_apps_Eleven-7441c5d47497d62a90f7c09597a8363516a74c07.tar.gz android_packages_apps_Eleven-7441c5d47497d62a90f7c09597a8363516a74c07.tar.bz2 android_packages_apps_Eleven-7441c5d47497d62a90f7c09597a8363516a74c07.zip |
Dynamically generate visualizer color
* Set visualizer color along with status bar
* Fix visualizer not showing up after window focus lost
* Cache visualizer parameters
Change-Id: I915e91f485b6e8b8600dad8d9ce304089ba53003
Signed-off-by: Utkarsh Gupta <utkarsh.eminem@gmail.com>
Diffstat (limited to 'src/com/cyanogenmod/eleven/ui')
-rw-r--r-- | src/com/cyanogenmod/eleven/ui/activities/HomeActivity.java | 36 | ||||
-rw-r--r-- | src/com/cyanogenmod/eleven/ui/fragments/AudioPlayerFragment.java | 26 |
2 files changed, 36 insertions, 26 deletions
diff --git a/src/com/cyanogenmod/eleven/ui/activities/HomeActivity.java b/src/com/cyanogenmod/eleven/ui/activities/HomeActivity.java index 406018e..775fe55 100644 --- a/src/com/cyanogenmod/eleven/ui/activities/HomeActivity.java +++ b/src/com/cyanogenmod/eleven/ui/activities/HomeActivity.java @@ -180,31 +180,49 @@ public class HomeActivity extends SlidingPanelActivity implements } } + @Override + public void onWindowFocusChanged(boolean hasFocus) { + getAudioPlayerFragment().onWindowFocusChanged(hasFocus + && (getCurrentPanel() == Panel.MusicPlayer)); + + super.onWindowFocusChanged(hasFocus); + } + private void updateStatusBarColor() { if (mBrowsePanelActive || MusicUtils.getCurrentAlbumId() < 0) { - updateStatusBarColor(getResources().getColor(R.color.primary_dark)); + updateStatusBarColor(Color.TRANSPARENT); } else { - new AsyncTask<Void, Void, Integer>() { + new AsyncTask<Void, Void, BitmapWithColors>() { @Override - protected Integer doInBackground(Void... params) { + protected BitmapWithColors doInBackground(Void... params) { ImageFetcher imageFetcher = ImageFetcher.getInstance(HomeActivity.this); final BitmapWithColors bitmap = imageFetcher.getArtwork( MusicUtils.getAlbumName(), MusicUtils.getCurrentAlbumId(), MusicUtils.getArtistName(), true); - return bitmap != null ? bitmap.getVibrantDarkColor() : Color.TRANSPARENT; + return bitmap; } @Override - protected void onPostExecute(Integer color) { - if (color == Color.TRANSPARENT) { - color = getResources().getColor(R.color.primary_dark); - } - updateStatusBarColor(color); + protected void onPostExecute(BitmapWithColors bmc) { + updateEqualizerColor(bmc != null + ? bmc.getVibrantColor() : Color.TRANSPARENT); + updateStatusBarColor(bmc != null + ? bmc.getVibrantDarkColor() : Color.TRANSPARENT); } }.execute(); } } + private void updateEqualizerColor(int color) { + if (color == Color.TRANSPARENT) { + color = getResources().getColor(R.color.equalizer_fill_color); + } + getAudioPlayerFragment().updateVisualizerColor(color); + } + private void updateStatusBarColor(int color) { + if (color == Color.TRANSPARENT) { + color = getResources().getColor(R.color.primary_dark); + } final Window window = getWindow(); ObjectAnimator animator = ObjectAnimator.ofInt(window, "statusBarColor", window.getStatusBarColor(), color); diff --git a/src/com/cyanogenmod/eleven/ui/fragments/AudioPlayerFragment.java b/src/com/cyanogenmod/eleven/ui/fragments/AudioPlayerFragment.java index 2e102d4..3b87698 100644 --- a/src/com/cyanogenmod/eleven/ui/fragments/AudioPlayerFragment.java +++ b/src/com/cyanogenmod/eleven/ui/fragments/AudioPlayerFragment.java @@ -180,9 +180,6 @@ public class AudioPlayerFragment extends Fragment implements ServiceConnection, // add a listener for the sliding ((SlidingPanelActivity)getActivity()).addSlidingPanelListener(this); - - // check equalizer view - checkEqualizerView(); } /** @@ -251,8 +248,6 @@ public class AudioPlayerFragment extends Fragment implements ServiceConnection, // resumes the update callback for the play pause progress button mPlayPauseProgressButton.resume(); - - mEqualizerView.onStart(); } @Override @@ -263,8 +258,6 @@ public class AudioPlayerFragment extends Fragment implements ServiceConnection, mPlayPauseProgressButton.pause(); mImageFetcher.flush(); - - mEqualizerView.onStop(); } @Override @@ -483,17 +476,17 @@ public class AudioPlayerFragment extends Fragment implements ServiceConnection, mAlbumArtViewPager.setVisibility(View.GONE); mQueueEmpty.showNoResults(); mEqualizerGradient.setVisibility(View.GONE); - mEqualizerView.checkStateChanged(); mAddToPlaylistButton.setVisibility(View.GONE); } else { mAlbumArtViewPager.setVisibility(View.VISIBLE); mQueueEmpty.hideAll(); if (PreferenceUtils.getInstance(getActivity()).getShowVisualizer()) { mEqualizerGradient.setVisibility(View.VISIBLE); + mEqualizerView.setEnabled(true); } else { mEqualizerGradient.setVisibility(View.GONE); + mEqualizerView.setEnabled(false); } - mEqualizerView.checkStateChanged(); mAddToPlaylistButton.setVisibility(View.VISIBLE); } } @@ -744,22 +737,20 @@ public class AudioPlayerFragment extends Fragment implements ServiceConnection, @Override public void onBeginSlide() { - mEqualizerView.setPanelVisible(false); + mEqualizerView.setVisible(false); } @Override public void onFinishSlide(SlidingPanelActivity.Panel visiblePanel) { - checkEqualizerView(visiblePanel); + mEqualizerView.setVisible(visiblePanel == SlidingPanelActivity.Panel.MusicPlayer); } - private void checkEqualizerView() { - checkEqualizerView(((HomeActivity)getActivity()).getCurrentPanel()); + public void onWindowFocusChanged(boolean hasFocus) { + mEqualizerView.setVisible(hasFocus); } - private void checkEqualizerView(SlidingPanelActivity.Panel visiblePanel) { - if (visiblePanel == SlidingPanelActivity.Panel.MusicPlayer) { - mEqualizerView.setPanelVisible(true); - } + public void updateVisualizerColor(int color) { + mEqualizerView.setColor(color); } /** @@ -820,6 +811,7 @@ public class AudioPlayerFragment extends Fragment implements ServiceConnection, audioPlayerFragment.updateNowPlayingInfo(); audioPlayerFragment.dismissPopupMenu(); } else if (action.equals(MusicPlaybackService.PLAYSTATE_CHANGED)) { + audioPlayerFragment.mEqualizerView.setPlaying(MusicUtils.isPlaying()); // Set the play and pause image audioPlayerFragment.mPlayPauseProgressButton.getPlayPauseButton().updateState(); } else if (action.equals(MusicPlaybackService.REPEATMODE_CHANGED) |