diff options
author | Scott Jackson <daneren2005@gmail.com> | 2015-10-12 18:07:51 -0700 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2015-10-12 18:07:51 -0700 |
commit | abe43fa2eb6f5a8fb6734af4cba40dbba5650158 (patch) | |
tree | ff6192da2078675c124a96427c7f2bb75f2ff879 /app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java | |
parent | 8fed2b7596b2f0b2ba0e7d650f454267f3b1e351 (diff) | |
download | dsub-abe43fa2eb6f5a8fb6734af4cba40dbba5650158.tar.gz dsub-abe43fa2eb6f5a8fb6734af4cba40dbba5650158.tar.bz2 dsub-abe43fa2eb6f5a8fb6734af4cba40dbba5650158.zip |
#480 Add support for starring/rating from auto
Diffstat (limited to 'app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java')
-rw-r--r-- | app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java | 179 |
1 files changed, 55 insertions, 124 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java index 892891d2..a6517bf6 100644 --- a/app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java +++ b/app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java @@ -61,6 +61,7 @@ import github.daneren2005.dsub.activity.SubsonicFragmentActivity; import github.daneren2005.dsub.adapter.SectionAdapter; import github.daneren2005.dsub.audiofx.EqualizerController; import github.daneren2005.dsub.domain.Bookmark; +import github.daneren2005.dsub.domain.MusicDirectory; import github.daneren2005.dsub.domain.PlayerState; import github.daneren2005.dsub.domain.RepeatMode; import github.daneren2005.dsub.domain.ServerInfo; @@ -196,24 +197,7 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis starButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - DownloadFile currentDownload = getDownloadService().getCurrentPlaying(); - if (currentDownload != null) { - final Entry currentSong = currentDownload.getSong(); - toggleStarred(currentSong, new OnStarChange() { - @Override - void starChange(boolean starred) { - if(currentSong.isStarred()) { - starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star)); - } else { - if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - starButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.star_outline)); - } else { - starButton.setImageResource(R.drawable.ic_toggle_star_outline_dark); - } - } - } - }); - } + getDownloadService().toggleStarred(); } }); } else { @@ -360,37 +344,7 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis if(downloadService == null) { return; } - - DownloadFile downloadFile = downloadService.getCurrentPlaying(); - if(downloadFile == null) { - return; - } - Entry entry = downloadFile.getSong(); - - // If rating == 1, already set so unset - if(entry.getRating() == 1) { - setRating(entry, 0); - - if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - rateBadButton.setImageResource(R.drawable.ic_action_rating_bad_dark); - } else { - rateBadButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.rating_bad)); - } - } else { - // Immediately skip to the next song - downloadService.next(true); - - // Otherwise set rating to 1 - setRating(entry, 1); - rateBadButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_action_rating_bad_selected)); - - // Make sure good rating is blank - if (context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - rateGoodButton.setImageResource(R.drawable.ic_action_rating_good_dark); - } else { - rateGoodButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.rating_good)); - } - } + downloadService.toggleRating(1); } }); rateGoodButton.setOnClickListener(new View.OnClickListener() { @@ -400,34 +354,7 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis if(downloadService == null) { return; } - - DownloadFile downloadFile = downloadService.getCurrentPlaying(); - if(downloadFile == null) { - return; - } - Entry entry = downloadFile.getSong(); - - // If rating == 5, already set so unset - if(entry.getRating() == 5) { - setRating(entry, 0); - - if (context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - rateGoodButton.setImageResource(R.drawable.ic_action_rating_good_dark); - } else { - rateGoodButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.rating_good)); - } - } else { - // Otherwise set rating to maximum - setRating(entry, 5); - rateGoodButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_action_rating_good_selected)); - - // Make sure bad rating is blank - if (context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - rateBadButton.setImageResource(R.drawable.ic_action_rating_bad_dark); - } else { - rateBadButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.rating_bad)); - } - } + downloadService.toggleRating(5); } }); @@ -694,10 +621,10 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis createNewPlaylist(entries, true); return true; case R.id.menu_star: - toggleStarred(song.getSong()); + UpdateHelper.toggleStarred(context, song.getSong()); return true; case R.id.menu_rate: - setRating(song.getSong()); + UpdateHelper.setRating(context, song.getSong()); return true; case R.id.menu_toggle_timer: if(getDownloadService().getSleepTimer()) { @@ -1093,7 +1020,7 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis MusicService musicService = MusicServiceFactory.getMusicService(context); musicService.createBookmark(currentSong, position, comment, context, null); - new EntryInstanceUpdater(currentSong) { + new UpdateHelper.EntryInstanceUpdater(currentSong) { @Override public void update(Entry found) { found.setBookmark(new Bookmark(position)); @@ -1235,54 +1162,10 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis Entry song = currentPlaying.getSong(); songTitleTextView.setText(song.getTitle()); getImageLoader().loadImage(albumArtImageView, song, true, true); - if(song.isStarred()) { - starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star)); - } else { - if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - starButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.star_outline)); - } else { - starButton.setImageResource(R.drawable.ic_toggle_star_outline_dark); - } - } setSubtitle(context.getResources().getString(R.string.download_playing_out_of, currentPlayingIndex + 1, currentPlayingSize)); - - int badRating, goodRating, bookmark; - if(song.getRating() == 1) { - rateBadButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_action_rating_bad_selected)); - } else { - if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - badRating = R.drawable.ic_action_rating_bad_dark; - } else { - badRating = DrawableTint.getDrawableRes(context, R.attr.rating_bad); - } - rateBadButton.setImageResource(badRating); - } - - if(song.getRating() == 5) { - rateGoodButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_action_rating_good_selected)); - } else { - if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - goodRating = R.drawable.ic_action_rating_good_dark; - } else { - goodRating = DrawableTint.getDrawableRes(context, R.attr.rating_good); - } - rateGoodButton.setImageResource(goodRating); - } - - if(song.getBookmark() != null) { - bookmarkButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_menu_bookmark_selected)); - } else { - if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - bookmark = R.drawable.ic_menu_bookmark_dark; - } else { - bookmark = DrawableTint.getDrawableRes(context, R.attr.bookmark); - } - bookmarkButton.setImageResource(bookmark); - } } else { songTitleTextView.setText(null); getImageLoader().loadImage(albumArtImageView, (Entry) null, true, false); - starButton.setImageResource(R.drawable.ic_toggle_star_outline_dark); setSubtitle(null); } } @@ -1319,6 +1202,7 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis setSubtitle(context.getResources().getString(R.string.download_playing_out_of, currentPlayingIndex + 1, currentPlayingSize)); if(this.currentPlaying != currentPlaying) { onSongChanged(currentPlaying, currentPlayingIndex); + onMetadataUpdate(currentPlaying != null ? currentPlaying.getSong() : null, DownloadService.METADATA_UPDATED_ALL); } } @@ -1401,6 +1285,53 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis } } + @Override + public void onMetadataUpdate(Entry song, int fieldChange) { + if(song != null && song.isStarred()) { + starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star)); + } else { + if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { + starButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.star_outline)); + } else { + starButton.setImageResource(R.drawable.ic_toggle_star_outline_dark); + } + } + + int badRating, goodRating, bookmark; + if(song != null && song.getRating() == 1) { + rateBadButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_action_rating_bad_selected)); + } else { + if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { + badRating = R.drawable.ic_action_rating_bad_dark; + } else { + badRating = DrawableTint.getDrawableRes(context, R.attr.rating_bad); + } + rateBadButton.setImageResource(badRating); + } + + if(song != null && song.getRating() == 5) { + rateGoodButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_action_rating_good_selected)); + } else { + if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { + goodRating = R.drawable.ic_action_rating_good_dark; + } else { + goodRating = DrawableTint.getDrawableRes(context, R.attr.rating_good); + } + rateGoodButton.setImageResource(goodRating); + } + + if(song != null && song.getBookmark() != null) { + bookmarkButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_menu_bookmark_selected)); + } else { + if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { + bookmark = R.drawable.ic_menu_bookmark_dark; + } else { + bookmark = DrawableTint.getDrawableRes(context, R.attr.bookmark); + } + bookmarkButton.setImageResource(bookmark); + } + } + public void updateRepeatButton() { DownloadService downloadService = getDownloadService(); switch (downloadService.getRepeatMode()) { |