From 74b4e31fc724cb0510a6a88b75c671993cd13f58 Mon Sep 17 00:00:00 2001 From: Kevin Whitaker Date: Sat, 21 Nov 2015 18:18:39 -0500 Subject: [PATCH] Implement drawer switches to have animations. Layout enough of artist fragment to demo this. Try out using dynamic colors based on album art for albums. --- .../companionformagnatune/BrowseActivity.java | 8 ++++- .../adapters/AlbumsAdapter.java | 31 +++++++++++++++++-- .../fragments/AlbumsFragment.java | 2 +- .../fragments/ArtistFragment.java | 13 ++++++++ app/src/main/res/anim/fragment_enter.xml | 8 +++++ app/src/main/res/anim/fragment_exit.xml | 8 +++++ app/src/main/res/layout/fragment_artists.xml | 9 ++++++ 7 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/anim/fragment_enter.xml create mode 100644 app/src/main/res/anim/fragment_exit.xml create mode 100644 app/src/main/res/layout/fragment_artists.xml diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/BrowseActivity.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/BrowseActivity.java index 8c15987..e1be81c 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/BrowseActivity.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/BrowseActivity.java @@ -3,7 +3,10 @@ package com.magnatune.eyecreate.companionformagnatune; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; +import android.support.v4.app.FragmentTransaction; import android.support.v4.content.ContextCompat; +import android.transition.Slide; +import android.view.Gravity; import com.heinrichreimersoftware.materialdrawer.DrawerActivity; import com.heinrichreimersoftware.materialdrawer.structure.DrawerItem; @@ -30,6 +33,7 @@ public class BrowseActivity extends DrawerActivity { @Override public void onClick(DrawerItem drawerItem, long l, int i) { getSupportFragmentManager().beginTransaction() + .setCustomAnimations(R.anim.fragment_enter, R.anim.fragment_exit) .replace(R.id.fragment_holder, new AlbumsFragment(), "albums") .commit(); closeDrawer(); @@ -41,7 +45,9 @@ public class BrowseActivity extends DrawerActivity { @Override public void onClick(DrawerItem drawerItem, long l, int i) { getSupportFragmentManager().beginTransaction() - .replace(R.id.fragment_holder,new ArtistFragment(),"artists") + .setCustomAnimations(R.anim.fragment_enter, R.anim.fragment_exit) + .replace(R.id.fragment_holder, new ArtistFragment(), "artists") + .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) .commit(); closeDrawer(); } diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters/AlbumsAdapter.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters/AlbumsAdapter.java index aec67a8..e456fb1 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters/AlbumsAdapter.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/adapters/AlbumsAdapter.java @@ -1,12 +1,16 @@ package com.magnatune.eyecreate.companionformagnatune.adapters; import android.content.Context; +import android.graphics.drawable.BitmapDrawable; +import android.support.v7.graphics.Palette; +import android.support.v7.widget.CardView; import android.view.View; import android.view.ViewGroup; import com.magnatune.eyecreate.companionformagnatune.R; import com.magnatune.eyecreate.companionformagnatune.model.Album; import com.magnatune.eyecreate.companionformagnatune.viewholders.AlbumViewHolder; +import com.squareup.picasso.Callback; import com.squareup.picasso.Picasso; import io.realm.RealmBasedRecyclerViewAdapter; @@ -26,9 +30,32 @@ public class AlbumsAdapter extends RealmBasedRecyclerViewAdapter0) { + swatch = colors.getSwatches().get(0); + } + if(swatch != null) { + ((CardView)albumViewHolder.itemView).setCardBackgroundColor(swatch.getRgb()); + albumViewHolder.albumName.setTextColor(swatch.getTitleTextColor()); + albumViewHolder.artistName.setTextColor(swatch.getBodyTextColor()); + } + } + + @Override + public void onError() { + + } + }); } } diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumsFragment.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumsFragment.java index 04928a8..92adf23 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumsFragment.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/AlbumsFragment.java @@ -48,7 +48,7 @@ public class AlbumsFragment extends Fragment { triggerDBUpdate(); } }); - recyclerView.setAdapter(new AlbumsAdapter(getActivity(), db.where(Album.class).findAll(), true, true, null)); + recyclerView.setAdapter(new AlbumsAdapter(getActivity(), db.where(Album.class).findAllSorted("albumname"), true, true, null)); recyclerView.post(new Runnable() { @Override public void run() { diff --git a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/ArtistFragment.java b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/ArtistFragment.java index 7072058..4e7ef92 100644 --- a/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/ArtistFragment.java +++ b/app/src/main/java/com/magnatune/eyecreate/companionformagnatune/fragments/ArtistFragment.java @@ -1,6 +1,19 @@ package com.magnatune.eyecreate.companionformagnatune.fragments; +import android.os.Bundle; +import android.support.annotation.Nullable; import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.magnatune.eyecreate.companionformagnatune.R; public class ArtistFragment extends Fragment { + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.fragment_artists,container,false); + return v; + } } diff --git a/app/src/main/res/anim/fragment_enter.xml b/app/src/main/res/anim/fragment_enter.xml new file mode 100644 index 0000000..8978cd3 --- /dev/null +++ b/app/src/main/res/anim/fragment_enter.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/fragment_exit.xml b/app/src/main/res/anim/fragment_exit.xml new file mode 100644 index 0000000..74898f1 --- /dev/null +++ b/app/src/main/res/anim/fragment_exit.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_artists.xml b/app/src/main/res/layout/fragment_artists.xml new file mode 100644 index 0000000..f6680ba --- /dev/null +++ b/app/src/main/res/layout/fragment_artists.xml @@ -0,0 +1,9 @@ + + \ No newline at end of file -- GitLab