diff --git a/app/src/main/java/com/kabouzeid/gramophone/helper/MenuItemClickHelper.java b/app/src/main/java/com/kabouzeid/gramophone/helper/MenuItemClickHelper.java index 0ca8a82d..1d47aa4e 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/helper/MenuItemClickHelper.java +++ b/app/src/main/java/com/kabouzeid/gramophone/helper/MenuItemClickHelper.java @@ -11,6 +11,7 @@ import com.kabouzeid.gramophone.dialogs.DeletePlaylistDialog; import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog; import com.kabouzeid.gramophone.dialogs.RenamePlaylistDialog; import com.kabouzeid.gramophone.dialogs.SongDetailDialog; +import com.kabouzeid.gramophone.interfaces.PaletteColorHolder; import com.kabouzeid.gramophone.loader.SongFilePathLoader; import com.kabouzeid.gramophone.misc.AppKeys; import com.kabouzeid.gramophone.model.Playlist; @@ -43,6 +44,8 @@ public class MenuItemClickHelper { case R.id.action_tag_editor: Intent intent = new Intent(activity, SongTagEditorActivity.class); intent.putExtra(AppKeys.E_ID, song.id); + if (activity instanceof PaletteColorHolder) + intent.putExtra(AppKeys.E_PALETTE, ((PaletteColorHolder) activity).getPaletteColor()); activity.startActivity(intent); return true; case R.id.action_details: diff --git a/app/src/main/java/com/kabouzeid/gramophone/interfaces/PaletteColorHolder.java b/app/src/main/java/com/kabouzeid/gramophone/interfaces/PaletteColorHolder.java new file mode 100644 index 00000000..9decb410 --- /dev/null +++ b/app/src/main/java/com/kabouzeid/gramophone/interfaces/PaletteColorHolder.java @@ -0,0 +1,9 @@ +package com.kabouzeid.gramophone.interfaces; + +/** + * @author Aidan Follestad (afollestad) + */ +public interface PaletteColorHolder { + + int getPaletteColor(); +} diff --git a/app/src/main/java/com/kabouzeid/gramophone/misc/AppKeys.java b/app/src/main/java/com/kabouzeid/gramophone/misc/AppKeys.java index 31324b7e..f58ce618 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/misc/AppKeys.java +++ b/app/src/main/java/com/kabouzeid/gramophone/misc/AppKeys.java @@ -13,12 +13,13 @@ public final class AppKeys { public static final String IS_ORIGINAL_PLAYING_QUEUE = "com.kabouzeid.gramophone.ORIGINAL_PLAYING_QUEUE"; public static final String IS_PLAYING_QUEUE = "com.kabouzeid.gramophone.PLAYING_QUEUE"; public static final String IS_POSITION_IN_QUEUE = "com.kabouzeid.gramophone.POSITION_IN_QUEUE"; - public static final String IS_ARTIST_JSON_INFO_CACHE = "com.kabouzeid.gramophone.ARTIST_JSON_INFO_CACHE"; +// public static final String IS_ARTIST_JSON_INFO_CACHE = "com.kabouzeid.gramophone.ARTIST_JSON_INFO_CACHE"; public static final String E_ALBUM = "com.kabouzeid.gramophone.ALBUM"; public static final String E_ARTIST = "com.kabouzeid.gramophone.ARTIST"; - public static final String E_SONG = "com.kabouzeid.gramophone.SONG"; +// public static final String E_SONG = "com.kabouzeid.gramophone.SONG"; public static final String E_PLAYLIST = "com.kabouzeid.gramophone.PLAYLIST"; - public static final String E_TAG_EDIT_MODE = "com.kabouzeid.gramophone.TAG_EDIT_MODE"; +// public static final String E_TAG_EDIT_MODE = "com.kabouzeid.gramophone.TAG_EDIT_MODE"; public static final String E_ID = "com.kabouzeid.gramophone.ID"; + public static final String E_PALETTE = "com.kabouzeid.gramophone.PALETTE"; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java index a2cfce64..4b06ed4b 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java @@ -23,6 +23,7 @@ import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.songadapter.AlbumSongAdapter; import com.kabouzeid.gramophone.comparator.SongTrackNumberComparator; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; +import com.kabouzeid.gramophone.interfaces.PaletteColorHolder; import com.kabouzeid.gramophone.loader.AlbumLoader; import com.kabouzeid.gramophone.loader.AlbumSongLoader; import com.kabouzeid.gramophone.misc.AppKeys; @@ -49,7 +50,7 @@ import java.util.ArrayList; *

* Should be kinda stable ONLY AS IT IS!!! */ -public class AlbumDetailActivity extends AbsFabActivity { +public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorHolder { public static final String TAG = AlbumDetailActivity.class.getSimpleName(); private Album album; @@ -209,6 +210,11 @@ public class AlbumDetailActivity extends AbsFabActivity { }); } + @Override + public int getPaletteColor() { + return toolbarColor; + } + @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void setNavigationBarColored(boolean colored) { if (colored) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java index 936c2d5b..bbfe8787 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java @@ -29,6 +29,7 @@ import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.ArtistAlbumAdapter; import com.kabouzeid.gramophone.adapter.songadapter.ArtistSongAdapter; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; +import com.kabouzeid.gramophone.interfaces.PaletteColorHolder; import com.kabouzeid.gramophone.lastfm.artist.LastFMArtistBiographyLoader; import com.kabouzeid.gramophone.lastfm.artist.LastFMArtistImageUrlLoader; import com.kabouzeid.gramophone.loader.ArtistAlbumLoader; @@ -58,7 +59,7 @@ import java.util.List; *

* Should be kinda stable ONLY AS IT IS!!! */ -public class ArtistDetailActivity extends AbsFabActivity { +public class ArtistDetailActivity extends AbsFabActivity implements PaletteColorHolder { public static final String TAG = ArtistDetailActivity.class.getSimpleName(); private Artist artist; @@ -303,6 +304,11 @@ public class ArtistDetailActivity extends AbsFabActivity { }); } + @Override + public int getPaletteColor() { + return toolbarColor; + } + @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void resetColors() { int titleTextColor = DialogUtils.resolveColor(this, R.attr.title_text_color); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java index dc611f39..36e74252 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/tageditor/AbsTagEditorActivity.java @@ -1,5 +1,6 @@ package com.kabouzeid.gramophone.ui.activities.tageditor; +import android.annotation.TargetApi; import android.app.SearchManager; import android.content.Intent; import android.graphics.Bitmap; @@ -27,6 +28,7 @@ import com.kabouzeid.gramophone.misc.SmallObservableScrollViewCallbacks; import com.kabouzeid.gramophone.model.DataBaseChangedEvent; import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity; import com.kabouzeid.gramophone.util.MusicUtil; +import com.kabouzeid.gramophone.util.PreferenceUtils; import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.ViewUtil; import com.koushikdutta.ion.Ion; @@ -240,12 +242,23 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { return super.onOptionsItemSelected(item); } + @TargetApi(Build.VERSION_CODES.LOLLIPOP) protected void setNoImageMode() { isInNoImageMode = true; image.setVisibility(View.GONE); image.setEnabled(false); scrollView.setPadding(0, Util.getActionBarSize(this), 0, 0); observableScrollViewCallbacks.onScrollChanged(scrollView.getCurrentScrollY(), false, false); + + int primary = getIntent().getIntExtra(AppKeys.E_PALETTE, + PreferenceUtils.getInstance(this).getThemeColorPrimary()); + toolBar.setBackgroundColor(primary); + header.setBackgroundColor(primary); + if (Util.hasLollipopSDK()) { + int primaryDark = ColorChooserDialog.shiftColorDown(primary); + getWindow().setStatusBarColor(primaryDark); + getWindow().setNavigationBarColor(primaryDark); + } } protected void dataChanged() {