aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-10-12 18:07:51 -0700
committerScott Jackson <daneren2005@gmail.com>2015-10-12 18:07:51 -0700
commitabe43fa2eb6f5a8fb6734af4cba40dbba5650158 (patch)
treeff6192da2078675c124a96427c7f2bb75f2ff879 /app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java
parent8fed2b7596b2f0b2ba0e7d650f454267f3b1e351 (diff)
downloaddsub-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.java179
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()) {