aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-07-14 18:00:34 -0700
committerScott Jackson <daneren2005@gmail.com>2015-07-18 10:23:34 -0700
commit775e66c3006ff90df86da3b87b08436b441b79e4 (patch)
tree46f3f373de05245137541249cac60e82f5d99639
parent67ed55d9c0b4e92ef962d39ef9f20326c11beaa1 (diff)
downloaddsub-775e66c3006ff90df86da3b87b08436b441b79e4.tar.gz
dsub-775e66c3006ff90df86da3b87b08436b441b79e4.tar.bz2
dsub-775e66c3006ff90df86da3b87b08436b441b79e4.zip
Update to use tinted drawables
-rw-r--r--app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java68
-rw-r--r--app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java14
-rw-r--r--app/src/main/java/github/daneren2005/dsub/util/DrawableTint.java3
-rw-r--r--app/src/main/java/github/daneren2005/dsub/util/Util.java9
-rw-r--r--app/src/main/java/github/daneren2005/dsub/view/SongView.java6
-rw-r--r--app/src/main/java/github/daneren2005/dsub/view/UpdateView.java2
-rw-r--r--app/src/main/res/drawable-hdpi/ic_action_rating_bad_dark.pngbin754 -> 658 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_action_rating_bad_light.pngbin892 -> 747 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_action_rating_bad_selected.pngbin965 -> 559 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_action_rating_good_dark.pngbin744 -> 644 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_action_rating_good_light.pngbin873 -> 758 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_action_rating_good_selected.pngbin921 -> 550 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_menu_bookmark_dark.pngbin1087 -> 458 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_menu_bookmark_light.pngbin1292 -> 506 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_menu_bookmark_selected.pngbin1374 -> 419 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_toggle_star_outline_dark.pngbin0 -> 985 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/ic_toggle_star_outline_light.pngbin0 -> 1202 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_action_rating_bad_dark.pngbin460 -> 434 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_action_rating_bad_light.pngbin543 -> 483 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_action_rating_bad_selected.pngbin584 -> 345 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_action_rating_good_dark.pngbin456 -> 397 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_action_rating_good_light.pngbin541 -> 453 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_action_rating_good_selected.pngbin581 -> 326 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_menu_bookmark_dark.pngbin658 -> 266 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_menu_bookmark_light.pngbin782 -> 295 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_menu_bookmark_selected.pngbin849 -> 253 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_toggle_star_outline_dark.pngbin0 -> 622 bytes
-rw-r--r--app/src/main/res/drawable-mdpi/ic_toggle_star_outline_light.pngbin0 -> 767 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_action_rating_bad_dark.pngbin961 -> 820 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_action_rating_bad_light.pngbin1141 -> 942 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_action_rating_bad_selected.pngbin1197 -> 655 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_action_rating_good_dark.pngbin946 -> 792 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_action_rating_good_light.pngbin1129 -> 919 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_action_rating_good_selected.pngbin1176 -> 648 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_menu_bookmark_dark.pngbin1442 -> 558 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_menu_bookmark_light.pngbin1665 -> 616 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_menu_bookmark_selected.pngbin1780 -> 511 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_toggle_star_outline_dark.pngbin0 -> 1309 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/ic_toggle_star_outline_light.pngbin0 -> 1548 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_dark.pngbin1540 -> 1202 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_light.pngbin1822 -> 1311 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_selected.pngbin1953 -> 1018 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_action_rating_good_dark.pngbin1582 -> 1197 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_action_rating_good_light.pngbin1835 -> 1372 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_action_rating_good_selected.pngbin1915 -> 1085 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_dark.pngbin2194 -> 881 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_light.pngbin2474 -> 1012 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_selected.pngbin2635 -> 778 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_toggle_star_outline_dark.pngbin0 -> 2088 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/ic_toggle_star_outline_light.pngbin0 -> 2459 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_dark.pngbin0 -> 1652 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_light.pngbin0 -> 1859 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_selected.pngbin0 -> 1558 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_dark.pngbin0 -> 1802 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_light.pngbin0 -> 2066 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_selected.pngbin0 -> 1695 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_dark.pngbin0 -> 1296 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_light.pngbin0 -> 1394 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_selected.pngbin0 -> 1255 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_toggle_star_outline_dark.pngbin0 -> 3135 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/ic_toggle_star_outline_light.pngbin0 -> 3684 bytes
-rw-r--r--app/src/main/res/layout/song_list_item.xml1
-rw-r--r--app/src/main/res/values/attrs.xml1
-rw-r--r--app/src/main/res/values/themes.xml2
64 files changed, 65 insertions, 41 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 9fa377da..bec43a22 100644
--- a/app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java
+++ b/app/src/main/java/github/daneren2005/dsub/fragments/NowPlayingFragment.java
@@ -235,7 +235,11 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis
toggleStarred(currentSong, new OnStarChange() {
@Override
void starChange(boolean starred) {
- starButton.setImageResource(currentSong.isStarred() ? android.R.drawable.btn_star_big_on : android.R.drawable.btn_star_big_off);
+ if(currentSong.isStarred()) {
+ starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star));
+ } else {
+ starButton.setImageResource(R.drawable.ic_toggle_star_outline_dark);
+ }
}
});
}
@@ -398,7 +402,7 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis
if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
rateBadButton.setImageResource(R.drawable.ic_action_rating_bad_dark);
} else {
- rateBadButton.setImageResource(Util.getAttribute(context, R.attr.rating_bad));
+ rateBadButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.rating_bad));
}
} else {
// Immediately skip to the next song
@@ -406,13 +410,13 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis
// Otherwise set rating to 1
setRating(entry, 1);
- rateBadButton.setImageResource(R.drawable.ic_action_rating_bad_selected);
+ 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(Util.getAttribute(context, R.attr.rating_good));
+ rateGoodButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.rating_good));
}
}
}
@@ -438,18 +442,18 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis
if (context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
rateGoodButton.setImageResource(R.drawable.ic_action_rating_good_dark);
} else {
- rateGoodButton.setImageResource(Util.getAttribute(context, R.attr.rating_good));
+ rateGoodButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.rating_good));
}
} else {
// Otherwise set rating to maximum
setRating(entry, 5);
- rateGoodButton.setImageResource(R.drawable.ic_action_rating_good_selected);
+ 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(Util.getAttribute(context, R.attr.rating_bad));
+ rateBadButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.rating_bad));
}
}
}
@@ -1102,7 +1106,7 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis
final int position = downloadService.getPlayerPosition();
final Bookmark oldBookmark = currentSong.getBookmark();
currentSong.setBookmark(new Bookmark(position));
- bookmarkButton.setImageResource(R.drawable.ic_menu_bookmark_selected);
+ bookmarkButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_menu_bookmark_selected));
new SilentBackgroundTask<Void>(context) {
@Override
@@ -1137,7 +1141,7 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis
if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
bookmark = R.drawable.ic_menu_bookmark_dark;
} else {
- bookmark = Util.getAttribute(context, R.attr.bookmark);
+ bookmark = DrawableTint.getDrawableRes(context, R.attr.bookmark);
}
bookmarkButton.setImageResource(bookmark);
}
@@ -1252,40 +1256,50 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis
Entry song = currentPlaying.getSong();
songTitleTextView.setText(song.getTitle());
getImageLoader().loadImage(albumArtImageView, song, true, true);
- starButton.setImageResource(song.isStarred() ? android.R.drawable.btn_star_big_on : android.R.drawable.btn_star_big_off);
- setSubtitle(context.getResources().getString(R.string.download_playing_out_of, Math.max(0, currentPlayingIndex + 1), currentPlayingSize));
+ if(song.isStarred()) {
+ starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star));
+ } else {
+ starButton.setImageResource(R.drawable.ic_toggle_star_outline_dark);
+ }
+ setSubtitle(context.getResources().getString(R.string.download_playing_out_of, currentPlayingIndex, currentPlayingSize));
int badRating, goodRating, bookmark;
if(song.getRating() == 1) {
- badRating = R.drawable.ic_action_rating_bad_selected;
- } else if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
- badRating = R.drawable.ic_action_rating_bad_dark;
+ rateBadButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_action_rating_bad_selected));
} else {
- badRating = Util.getAttribute(context, R.attr.rating_bad);
+ 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);
}
- rateBadButton.setImageResource(badRating);
if(song.getRating() == 5) {
- goodRating = R.drawable.ic_action_rating_good_selected;
- } else if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
- goodRating = R.drawable.ic_action_rating_good_dark;
+ rateGoodButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_action_rating_good_selected));
} else {
- goodRating = Util.getAttribute(context, R.attr.rating_good);
+ 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);
}
- rateGoodButton.setImageResource(goodRating);
if(song.getBookmark() != null) {
- bookmark = R.drawable.ic_menu_bookmark_selected;
- } else if(context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
- bookmark = R.drawable.ic_menu_bookmark_dark;
+ bookmarkButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_menu_bookmark_selected));
} else {
- bookmark = Util.getAttribute(context, R.attr.bookmark);
+ 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);
}
- bookmarkButton.setImageResource(bookmark);
} else {
songTitleTextView.setText(null);
getImageLoader().loadImage(albumArtImageView, null, true, false);
- starButton.setImageResource(android.R.drawable.btn_star_big_off);
+ starButton.setImageResource(R.drawable.ic_toggle_star_outline_dark);
setSubtitle(null);
}
}
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
index ed6afd46..370d1e51 100644
--- a/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
+++ b/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
@@ -40,6 +40,7 @@ import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.domain.ServerInfo;
import github.daneren2005.dsub.domain.Share;
import github.daneren2005.dsub.service.DownloadService;
+import github.daneren2005.dsub.util.DrawableTint;
import github.daneren2005.dsub.util.ImageLoader;
import java.io.Serializable;
@@ -1435,14 +1436,23 @@ public class SelectDirectoryFragment extends SubsonicFragment implements Section
final ImageButton starButton = (ImageButton) header.findViewById(R.id.select_album_star);
if(directory != null && Util.getPreferences(context).getBoolean(Constants.PREFERENCES_KEY_MENU_STAR, true) && artistInfo == null) {
- starButton.setImageResource(directory.isStarred() ? android.R.drawable.btn_star_big_on : android.R.drawable.btn_star_big_off);
+ if(directory.isStarred()) {
+ starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star));
+ } else {
+ starButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.star_outline));
+ }
starButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toggleStarred(directory, new OnStarChange() {
@Override
void starChange(boolean starred) {
- starButton.setImageResource(directory.isStarred() ? android.R.drawable.btn_star_big_on : android.R.drawable.btn_star_big_off);
+ if(directory.isStarred()) {
+ starButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.star_outline));
+ starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star));
+ } else {
+ starButton.setImageResource(DrawableTint.getDrawableRes(context, R.attr.star_outline));
+ }
}
});
}
diff --git a/app/src/main/java/github/daneren2005/dsub/util/DrawableTint.java b/app/src/main/java/github/daneren2005/dsub/util/DrawableTint.java
index d3c4ebb4..f6b5d315 100644
--- a/app/src/main/java/github/daneren2005/dsub/util/DrawableTint.java
+++ b/app/src/main/java/github/daneren2005/dsub/util/DrawableTint.java
@@ -34,6 +34,9 @@ public class DrawableTint {
private static final Map<Integer, Integer> attrMap = new HashMap<>();
private static final WeakHashMap<Integer, Drawable> tintedDrawables = new WeakHashMap<>();
+ public static Drawable getTintedDrawable(Context context, @DrawableRes int drawableRes) {
+ return getTintedDrawable(context, drawableRes, R.attr.colorAccent);
+ }
public static Drawable getTintedDrawable(Context context, @DrawableRes int drawableRes, @AttrRes int colorAttr) {
if(tintedDrawables.containsKey(drawableRes)) {
return tintedDrawables.get(drawableRes);
diff --git a/app/src/main/java/github/daneren2005/dsub/util/Util.java b/app/src/main/java/github/daneren2005/dsub/util/Util.java
index a3728d29..ce26bf1e 100644
--- a/app/src/main/java/github/daneren2005/dsub/util/Util.java
+++ b/app/src/main/java/github/daneren2005/dsub/util/Util.java
@@ -1177,15 +1177,6 @@ public final class Util {
}
}
- public static int getAttribute(Context context, int attr) {
- int res;
- int[] attrs = new int[] {attr};
- TypedArray typedArray = context.obtainStyledAttributes(attrs);
- res = typedArray.getResourceId(0, 0);
- typedArray.recycle();
- return res;
- }
-
public static void registerMediaButtonEventReceiver(Context context) {
// Only do it if enabled in the settings.
diff --git a/app/src/main/java/github/daneren2005/dsub/view/SongView.java b/app/src/main/java/github/daneren2005/dsub/view/SongView.java
index 41cba046..dcde0f92 100644
--- a/app/src/main/java/github/daneren2005/dsub/view/SongView.java
+++ b/app/src/main/java/github/daneren2005/dsub/view/SongView.java
@@ -200,7 +200,7 @@ public class SongView extends UpdateView2<MusicDirectory.Entry, Boolean> {
if(item.isStarred()) {
if(!starred) {
if(starButton.getDrawable() == null) {
- starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star, R.attr.colorPrimary));
+ starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star));
}
starButton.setVisibility(View.VISIBLE);
starred = true;
@@ -257,6 +257,10 @@ public class SongView extends UpdateView2<MusicDirectory.Entry, Boolean> {
if(isBookmarked) {
if(!bookmarked) {
+ if(bookmarkButton.getDrawable() == null) {
+ bookmarkButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_menu_bookmark_selected));
+ }
+
bookmarkButton.setVisibility(View.VISIBLE);
bookmarked = true;
}
diff --git a/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java b/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java
index 37290240..e639eaa8 100644
--- a/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java
+++ b/app/src/main/java/github/daneren2005/dsub/view/UpdateView.java
@@ -241,7 +241,7 @@ public abstract class UpdateView<T> extends LinearLayout {
if(isStarred) {
if(!starred) {
if(starButton.getDrawable() == null) {
- starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star, R.attr.colorPrimary));
+ starButton.setImageDrawable(DrawableTint.getTintedDrawable(context, R.drawable.ic_toggle_star));
}
starButton.setVisibility(View.VISIBLE);
starred = true;
diff --git a/app/src/main/res/drawable-hdpi/ic_action_rating_bad_dark.png b/app/src/main/res/drawable-hdpi/ic_action_rating_bad_dark.png
index 855709e9..b21ef12a 100644
--- a/app/src/main/res/drawable-hdpi/ic_action_rating_bad_dark.png
+++ b/app/src/main/res/drawable-hdpi/ic_action_rating_bad_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_action_rating_bad_light.png b/app/src/main/res/drawable-hdpi/ic_action_rating_bad_light.png
index 34199d3a..ab8eb54c 100644
--- a/app/src/main/res/drawable-hdpi/ic_action_rating_bad_light.png
+++ b/app/src/main/res/drawable-hdpi/ic_action_rating_bad_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_action_rating_bad_selected.png b/app/src/main/res/drawable-hdpi/ic_action_rating_bad_selected.png
index c57aba50..911eea25 100644
--- a/app/src/main/res/drawable-hdpi/ic_action_rating_bad_selected.png
+++ b/app/src/main/res/drawable-hdpi/ic_action_rating_bad_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_action_rating_good_dark.png b/app/src/main/res/drawable-hdpi/ic_action_rating_good_dark.png
index fa91e699..f79fcbcd 100644
--- a/app/src/main/res/drawable-hdpi/ic_action_rating_good_dark.png
+++ b/app/src/main/res/drawable-hdpi/ic_action_rating_good_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_action_rating_good_light.png b/app/src/main/res/drawable-hdpi/ic_action_rating_good_light.png
index 3427d770..67b30364 100644
--- a/app/src/main/res/drawable-hdpi/ic_action_rating_good_light.png
+++ b/app/src/main/res/drawable-hdpi/ic_action_rating_good_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_action_rating_good_selected.png b/app/src/main/res/drawable-hdpi/ic_action_rating_good_selected.png
index 34d53153..09417791 100644
--- a/app/src/main/res/drawable-hdpi/ic_action_rating_good_selected.png
+++ b/app/src/main/res/drawable-hdpi/ic_action_rating_good_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_menu_bookmark_dark.png b/app/src/main/res/drawable-hdpi/ic_menu_bookmark_dark.png
index e7cd08e4..e149a6e5 100644
--- a/app/src/main/res/drawable-hdpi/ic_menu_bookmark_dark.png
+++ b/app/src/main/res/drawable-hdpi/ic_menu_bookmark_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_menu_bookmark_light.png b/app/src/main/res/drawable-hdpi/ic_menu_bookmark_light.png
index fdb46da3..c9ece7c0 100644
--- a/app/src/main/res/drawable-hdpi/ic_menu_bookmark_light.png
+++ b/app/src/main/res/drawable-hdpi/ic_menu_bookmark_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_menu_bookmark_selected.png b/app/src/main/res/drawable-hdpi/ic_menu_bookmark_selected.png
index 5a33d60c..27696f5b 100644
--- a/app/src/main/res/drawable-hdpi/ic_menu_bookmark_selected.png
+++ b/app/src/main/res/drawable-hdpi/ic_menu_bookmark_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_toggle_star_outline_dark.png b/app/src/main/res/drawable-hdpi/ic_toggle_star_outline_dark.png
new file mode 100644
index 00000000..87a0d5c5
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_toggle_star_outline_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-hdpi/ic_toggle_star_outline_light.png b/app/src/main/res/drawable-hdpi/ic_toggle_star_outline_light.png
new file mode 100644
index 00000000..b679803f
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/ic_toggle_star_outline_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_rating_bad_dark.png b/app/src/main/res/drawable-mdpi/ic_action_rating_bad_dark.png
index 64f3cd1f..00925d7e 100644
--- a/app/src/main/res/drawable-mdpi/ic_action_rating_bad_dark.png
+++ b/app/src/main/res/drawable-mdpi/ic_action_rating_bad_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_rating_bad_light.png b/app/src/main/res/drawable-mdpi/ic_action_rating_bad_light.png
index d6c8d42a..eb4cc960 100644
--- a/app/src/main/res/drawable-mdpi/ic_action_rating_bad_light.png
+++ b/app/src/main/res/drawable-mdpi/ic_action_rating_bad_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_rating_bad_selected.png b/app/src/main/res/drawable-mdpi/ic_action_rating_bad_selected.png
index 34f5a9de..ac563748 100644
--- a/app/src/main/res/drawable-mdpi/ic_action_rating_bad_selected.png
+++ b/app/src/main/res/drawable-mdpi/ic_action_rating_bad_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_rating_good_dark.png b/app/src/main/res/drawable-mdpi/ic_action_rating_good_dark.png
index cadfbe1e..4978b140 100644
--- a/app/src/main/res/drawable-mdpi/ic_action_rating_good_dark.png
+++ b/app/src/main/res/drawable-mdpi/ic_action_rating_good_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_rating_good_light.png b/app/src/main/res/drawable-mdpi/ic_action_rating_good_light.png
index 75711920..07382a0a 100644
--- a/app/src/main/res/drawable-mdpi/ic_action_rating_good_light.png
+++ b/app/src/main/res/drawable-mdpi/ic_action_rating_good_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_action_rating_good_selected.png b/app/src/main/res/drawable-mdpi/ic_action_rating_good_selected.png
index 97d279be..197aa106 100644
--- a/app/src/main/res/drawable-mdpi/ic_action_rating_good_selected.png
+++ b/app/src/main/res/drawable-mdpi/ic_action_rating_good_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_menu_bookmark_dark.png b/app/src/main/res/drawable-mdpi/ic_menu_bookmark_dark.png
index 3360f37e..281479af 100644
--- a/app/src/main/res/drawable-mdpi/ic_menu_bookmark_dark.png
+++ b/app/src/main/res/drawable-mdpi/ic_menu_bookmark_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_menu_bookmark_light.png b/app/src/main/res/drawable-mdpi/ic_menu_bookmark_light.png
index b4d916fb..76bfb63c 100644
--- a/app/src/main/res/drawable-mdpi/ic_menu_bookmark_light.png
+++ b/app/src/main/res/drawable-mdpi/ic_menu_bookmark_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_menu_bookmark_selected.png b/app/src/main/res/drawable-mdpi/ic_menu_bookmark_selected.png
index efcc1afa..9469278e 100644
--- a/app/src/main/res/drawable-mdpi/ic_menu_bookmark_selected.png
+++ b/app/src/main/res/drawable-mdpi/ic_menu_bookmark_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_toggle_star_outline_dark.png b/app/src/main/res/drawable-mdpi/ic_toggle_star_outline_dark.png
new file mode 100644
index 00000000..72231a73
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_toggle_star_outline_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-mdpi/ic_toggle_star_outline_light.png b/app/src/main/res/drawable-mdpi/ic_toggle_star_outline_light.png
new file mode 100644
index 00000000..85a184bc
--- /dev/null
+++ b/app/src/main/res/drawable-mdpi/ic_toggle_star_outline_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_dark.png
index 1393be0c..8552fb61 100644
--- a/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_dark.png
+++ b/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_light.png b/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_light.png
index fc1959b6..3cc99d4e 100644
--- a/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_light.png
+++ b/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_selected.png b/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_selected.png
index cf7802d5..98494b1f 100644
--- a/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_selected.png
+++ b/app/src/main/res/drawable-xhdpi/ic_action_rating_bad_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_rating_good_dark.png b/app/src/main/res/drawable-xhdpi/ic_action_rating_good_dark.png
index 249ea9ec..abb63162 100644
--- a/app/src/main/res/drawable-xhdpi/ic_action_rating_good_dark.png
+++ b/app/src/main/res/drawable-xhdpi/ic_action_rating_good_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_rating_good_light.png b/app/src/main/res/drawable-xhdpi/ic_action_rating_good_light.png
index c8a776b0..cab7d3bc 100644
--- a/app/src/main/res/drawable-xhdpi/ic_action_rating_good_light.png
+++ b/app/src/main/res/drawable-xhdpi/ic_action_rating_good_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_action_rating_good_selected.png b/app/src/main/res/drawable-xhdpi/ic_action_rating_good_selected.png
index c6770221..f5065d18 100644
--- a/app/src/main/res/drawable-xhdpi/ic_action_rating_good_selected.png
+++ b/app/src/main/res/drawable-xhdpi/ic_action_rating_good_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_dark.png b/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_dark.png
index 18f71365..7a396f68 100644
--- a/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_dark.png
+++ b/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_light.png b/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_light.png
index d5776317..c91134e7 100644
--- a/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_light.png
+++ b/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_selected.png b/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_selected.png
index 353b7b79..1a1df81b 100644
--- a/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_selected.png
+++ b/app/src/main/res/drawable-xhdpi/ic_menu_bookmark_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_toggle_star_outline_dark.png b/app/src/main/res/drawable-xhdpi/ic_toggle_star_outline_dark.png
new file mode 100644
index 00000000..aa7e381e
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_toggle_star_outline_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_toggle_star_outline_light.png b/app/src/main/res/drawable-xhdpi/ic_toggle_star_outline_light.png
new file mode 100644
index 00000000..6ff994be
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/ic_toggle_star_outline_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_dark.png b/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_dark.png
index d784b239..5fe1fd79 100644
--- a/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_dark.png
+++ b/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_light.png b/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_light.png
index a1484d25..71e6e89c 100644
--- a/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_light.png
+++ b/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_selected.png b/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_selected.png
index 13218a08..945bb594 100644
--- a/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_selected.png
+++ b/app/src/main/res/drawable-xxhdpi/ic_action_rating_bad_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_dark.png b/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_dark.png
index a332a632..1f0eeeba 100644
--- a/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_dark.png
+++ b/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_light.png b/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_light.png
index 2ef75765..aa384864 100644
--- a/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_light.png
+++ b/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_selected.png b/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_selected.png
index bb444806..273615ea 100644
--- a/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_selected.png
+++ b/app/src/main/res/drawable-xxhdpi/ic_action_rating_good_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_dark.png b/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_dark.png
index 2523e14c..ab4d7813 100644
--- a/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_dark.png
+++ b/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_light.png b/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_light.png
index 9e8c4591..56d843cf 100644
--- a/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_light.png
+++ b/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_selected.png b/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_selected.png
index a1890fbb..d24f485d 100644
--- a/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_selected.png
+++ b/app/src/main/res/drawable-xxhdpi/ic_menu_bookmark_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_toggle_star_outline_dark.png b/app/src/main/res/drawable-xxhdpi/ic_toggle_star_outline_dark.png
new file mode 100644
index 00000000..8ee1a446
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_toggle_star_outline_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_toggle_star_outline_light.png b/app/src/main/res/drawable-xxhdpi/ic_toggle_star_outline_light.png
new file mode 100644
index 00000000..17672e93
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/ic_toggle_star_outline_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_dark.png b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_dark.png
new file mode 100644
index 00000000..3f08bdde
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_light.png b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_light.png
new file mode 100644
index 00000000..545e4570
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_selected.png b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_selected.png
new file mode 100644
index 00000000..f585ba00
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_bad_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_dark.png b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_dark.png
new file mode 100644
index 00000000..af9dcfbb
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_light.png b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_light.png
new file mode 100644
index 00000000..9ed5d62c
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_selected.png b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_selected.png
new file mode 100644
index 00000000..9ee267f7
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_action_rating_good_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_dark.png b/app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_dark.png
new file mode 100644
index 00000000..4651e2ce
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_light.png b/app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_light.png
new file mode 100644
index 00000000..08050801
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_light.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_selected.png b/app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_selected.png
new file mode 100644
index 00000000..bbec912b
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_menu_bookmark_selected.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_toggle_star_outline_dark.png b/app/src/main/res/drawable-xxxhdpi/ic_toggle_star_outline_dark.png
new file mode 100644
index 00000000..ddc2a190
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_toggle_star_outline_dark.png
Binary files differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_toggle_star_outline_light.png b/app/src/main/res/drawable-xxxhdpi/ic_toggle_star_outline_light.png
new file mode 100644
index 00000000..d0048a00
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/ic_toggle_star_outline_light.png
Binary files differ
diff --git a/app/src/main/res/layout/song_list_item.xml b/app/src/main/res/layout/song_list_item.xml
index 7b4933e0..c64c1a45 100644
--- a/app/src/main/res/layout/song_list_item.xml
+++ b/app/src/main/res/layout/song_list_item.xml
@@ -44,7 +44,6 @@
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="right|center_vertical"
- android:src="@drawable/ic_menu_bookmark_selected"
android:background="@null"
android:focusable="false"
android:scaleType="fitCenter"
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index 2d2ebd7d..7e43206a 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -32,6 +32,7 @@
<attr name="rating_bad" format="reference"/>
<attr name="rating_good" format="reference"/>
<attr name="radio" format="reference"/>
+ <attr name="star_outline" format="reference"/>
<attr name="drawerItemsIcons" format="reference"/>
<attr name="drawerHome" format="reference"/>
<attr name="drawerLibrary" format="reference"/>
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 3307f32e..511d630f 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -33,6 +33,7 @@
<item name="rating_bad">@drawable/ic_action_rating_bad_light</item>
<item name="rating_good">@drawable/ic_action_rating_good_light</item>
<item name="radio">@drawable/ic_menu_radio_dark</item>
+ <item name="star_outline">@drawable/ic_toggle_star_outline_light</item>
<item name="drawerHome">@drawable/main_offline_light</item>
<item name="drawerLibrary">@drawable/ic_menu_library_light</item>
<item name="drawerPlaylists">@drawable/ic_menu_playlist_light</item>
@@ -87,6 +88,7 @@
<item name="rating_bad">@drawable/ic_action_rating_bad_dark</item>
<item name="rating_good">@drawable/ic_action_rating_good_dark</item>
<item name="radio">@drawable/ic_menu_radio_dark</item>
+ <item name="star_outline">@drawable/ic_toggle_star_outline_dark</item>
<item name="drawerHome">@drawable/main_offline_dark</item>
<item name="drawerLibrary">@drawable/ic_menu_library_dark</item>
<item name="drawerPlaylists">@drawable/ic_menu_playlist_dark</item>