Loading src/org/lineageos/eleven/adapters/PlaylistAdapter.java +5 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ package org.lineageos.eleven.adapters; import android.content.Context; import android.support.v4.content.ContextCompat; import android.support.v4.graphics.drawable.DrawableCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; Loading @@ -25,6 +27,7 @@ import org.lineageos.eleven.cache.ImageFetcher; import org.lineageos.eleven.model.Playlist; import org.lineageos.eleven.ui.MusicHolder; import org.lineageos.eleven.ui.MusicHolder.DataHolder; import org.lineageos.eleven.ui.activities.HomeActivity; import org.lineageos.eleven.ui.fragments.PlaylistFragment; import org.lineageos.eleven.utils.MusicUtils; import org.lineageos.eleven.widgets.IPopupMenuCallback; Loading Loading @@ -112,6 +115,7 @@ public class PlaylistAdapter extends ArrayAdapter<Playlist> implements IPopupMen switch (type) { case LastAdded: holder.mImage.get().setImageResource(R.drawable.recently_added); break; case RecentlyPlayed: holder.mImage.get().setImageResource(R.drawable.recent_icon); Loading @@ -127,6 +131,7 @@ public class PlaylistAdapter extends ArrayAdapter<Playlist> implements IPopupMen dataHolder.mItemId, holder.mImage.get()); } DrawableCompat.setTint(DrawableCompat.wrap(holder.mImage.get().getDrawable()), HomeActivity.accentColor); return convertView; Loading src/org/lineageos/eleven/ui/activities/BaseActivity.java +53 −4 Original line number Diff line number Diff line Loading @@ -25,13 +25,19 @@ import android.content.ServiceConnection; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.media.AudioManager; import android.os.Build; import android.os.Bundle; import android.os.IBinder; import android.support.annotation.ColorInt; import android.support.v4.app.FragmentActivity; import android.support.v7.view.ContextThemeWrapper; import android.util.Log; import android.util.TypedValue; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; Loading Loading @@ -104,6 +110,7 @@ public abstract class BaseActivity extends FragmentActivity implements ServiceCo private PlaybackStatus mPlaybackStatus; private Drawable mActionBarBackground; private int accentColor; /** * {@inheritDoc} Loading Loading @@ -136,15 +143,18 @@ public abstract class BaseActivity extends FragmentActivity implements ServiceCo setActionBar(mToolBar); setActionBarTitle(getString(R.string.app_name)); mToolBar.setTitleTextColor(getResources().getColor(R.color.white)); // set the background on the root view getWindow().getDecorView().getRootView().setBackgroundColor( getResources().getColor(R.color.background_color)); //getWindow().getDecorView().getRootView().setBackgroundColor(getResources().getColor(R.color.background_color)); // Initialze the bottom action bar initBottomActionBar(); // listen to changes to the cache status ImageFetcher.getInstance(this).addCacheListener(this); accentColor=fetchAccentColor(this); mToolBar.setBackgroundColor(accentColor); } /** Loading Loading @@ -283,7 +293,7 @@ public abstract class BaseActivity extends FragmentActivity implements ServiceCo if (mActionBarBackground == null) { final int actionBarColor = getResources().getColor(R.color.header_action_bar_color); mActionBarBackground = new ColorDrawable(actionBarColor); mToolBar.setBackgroundDrawable(mActionBarBackground); // mToolBar.setBackgroundDrawable(mActionBarBackground); } } Loading Loading @@ -488,4 +498,43 @@ public abstract class BaseActivity extends FragmentActivity implements ServiceCo * handle pending playback requests */ public abstract void handlePendingPlaybackRequests(); /* * get Accent color from OS * */ private int fetchAccentColor(Context context) { TypedValue typedValue = new TypedValue(); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(this, android.R.style.Theme_DeviceDefault); contextThemeWrapper.getTheme().resolveAttribute(android.R.attr.colorAccent, typedValue, true); int color_accent = typedValue.data; Log.e("TAG", "accent Colour #"+Integer.toHexString(color_accent)); //change toolbar color // getSupportActionBar().setBackgroundDrawable( // new ColorDrawable(color_accent)); // //change status bar color if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(darkenColor(color_accent)); } return color_accent; } @ColorInt int darkenColor(@ColorInt int color) { float[] hsv = new float[3]; android.graphics.Color.colorToHSV(color, hsv); hsv[2] *= 0.8f; return android.graphics.Color.HSVToColor(hsv); } } src/org/lineageos/eleven/ui/activities/HomeActivity.java +54 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package org.lineageos.eleven.ui.activities; import android.Manifest; import android.animation.ArgbEvaluator; import android.animation.ObjectAnimator; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; Loading @@ -28,13 +29,19 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.provider.MediaStore; import android.support.annotation.ColorInt; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.view.ContextThemeWrapper; import android.text.TextUtils; import android.util.Log; import android.util.TypedValue; import android.view.MenuItem; import android.view.Window; import android.view.WindowManager; import android.widget.Toolbar; import org.lineageos.eleven.Config; import org.lineageos.eleven.R; Loading Loading @@ -85,6 +92,8 @@ public class HomeActivity extends SlidingPanelActivity implements */ protected boolean mTopLevelActivity = false; public static int accentColor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Loading @@ -94,6 +103,8 @@ public class HomeActivity extends SlidingPanelActivity implements if (!needRequestStoragePermission()) { init(); } accentColor=fetchAccentColor(this); } private void init() { Loading Loading @@ -133,7 +144,7 @@ public class HomeActivity extends SlidingPanelActivity implements // figure which panel we are on and update the status bar mBrowsePanelActive = (getCurrentPanel() == Panel.Browse); updateStatusBarColor(); // updateStatusBarColor(); } // if intent wasn't UI related, process it as a audio playback request Loading Loading @@ -186,7 +197,7 @@ public class HomeActivity extends SlidingPanelActivity implements @Override public void onMetaChanged() { super.onMetaChanged(); updateStatusBarColor(); // updateStatusBarColor(); } @Override Loading @@ -194,7 +205,7 @@ public class HomeActivity extends SlidingPanelActivity implements boolean isInBrowser = getCurrentPanel() == Panel.Browse && slideOffset < 0.7f; if (isInBrowser != mBrowsePanelActive) { mBrowsePanelActive = isInBrowser; updateStatusBarColor(); // updateStatusBarColor(); } } Loading Loading @@ -534,4 +545,44 @@ public class HomeActivity extends SlidingPanelActivity implements return true; } /* * get Accent color from OS * */ private int fetchAccentColor(Context context) { TypedValue typedValue = new TypedValue(); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(this, android.R.style.Theme_DeviceDefault); contextThemeWrapper.getTheme().resolveAttribute(android.R.attr.colorAccent, typedValue, true); int color_accent = typedValue.data; Log.e("TAG", "accent Colour #"+Integer.toHexString(color_accent)); //change toolbar color // getSupportActionBar().setBackgroundDrawable( // new ColorDrawable(color_accent)); // //change status bar color if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(darkenColor(color_accent)); } return color_accent; } @ColorInt int darkenColor(@ColorInt int color) { float[] hsv = new float[3]; android.graphics.Color.colorToHSV(color, hsv); hsv[2] *= 0.8f; return android.graphics.Color.HSVToColor(hsv); } } src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java +55 −2 Original line number Diff line number Diff line Loading @@ -13,11 +13,19 @@ package org.lineageos.eleven.ui.activities; import android.content.Context; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.support.annotation.ColorInt; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.view.ContextThemeWrapper; import android.util.Log; import android.util.TypedValue; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.LinearLayout; import org.lineageos.eleven.R; Loading @@ -38,6 +46,8 @@ import org.lineageos.eleven.widgets.BlurScrimImage; */ public abstract class SlidingPanelActivity extends BaseActivity { private int accentColor; public enum Panel { Browse, MusicPlayer, Loading Loading @@ -83,6 +93,8 @@ public abstract class SlidingPanelActivity extends BaseActivity { // Display the now playing screen or shuffle if this isn't anything // playing bottomActionBar.setOnClickListener(mOpenNowPlaying); accentColor= fetchAccentColor(this); bottomActionBar.setBackgroundColor(accentColor); } /** Loading Loading @@ -123,6 +135,7 @@ public abstract class SlidingPanelActivity extends BaseActivity { private void setupFirstPanel() { mFirstPanel = (SlidingUpPanelLayout)findViewById(R.id.sliding_layout); mFirstPanel.setBackgroundColor(accentColor); mFirstPanel.setPanelSlideListener(new SimplePanelSlideListener() { @Override public void onPanelSlide(View panel, float slideOffset) { Loading @@ -139,10 +152,12 @@ public abstract class SlidingPanelActivity extends BaseActivity { checkTargetNavigation(); } }); } private void setupSecondPanel() { mSecondPanel = (SlidingUpPanelLayout)findViewById(R.id.sliding_layout2); mSecondPanel.setBackgroundColor(accentColor); mSecondPanel.setPanelSlideListener(new SimplePanelSlideListener() { @Override public void onPanelSlide(View panel, float slideOffset) { Loading Loading @@ -300,10 +315,10 @@ public abstract class SlidingPanelActivity extends BaseActivity { final HeaderBar headerBar = (HeaderBar) findViewById(containerId); headerBar.setFragment(getQueueFragment()); headerBar.setTitleText(textId); headerBar.setBackgroundColor(Color.TRANSPARENT); // headerBar.setBackgroundColor(Color.TRANSPARENT); headerBar.setBackListener(mShowBrowse); headerBar.setHeaderClickListener(headerClickListener); headerBar.setBackgroundColor(accentColor); return headerBar; } Loading @@ -320,4 +335,42 @@ public abstract class SlidingPanelActivity extends BaseActivity { showPanel(mTargetPanel); } } /* * get Accent color from OS * */ private int fetchAccentColor(Context context) { TypedValue typedValue = new TypedValue(); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(this, android.R.style.Theme_DeviceDefault); contextThemeWrapper.getTheme().resolveAttribute(android.R.attr.colorAccent, typedValue, true); int color_accent = typedValue.data; Log.e("TAG", "accent Colour #"+Integer.toHexString(color_accent)); //change toolbar color // getSupportActionBar().setBackgroundDrawable( // new ColorDrawable(color_accent)); // //change status bar color if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(darkenColor(color_accent)); } return color_accent; } @ColorInt int darkenColor(@ColorInt int color) { float[] hsv = new float[3]; android.graphics.Color.colorToHSV(color, hsv); hsv[2] *= 0.8f; return android.graphics.Color.HSVToColor(hsv); } } src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserPhoneFragment.java +64 −2 Original line number Diff line number Diff line Loading @@ -13,12 +13,20 @@ package org.lineageos.eleven.ui.fragments.phone; import android.content.Context; import android.os.Build; import android.os.Bundle; import android.support.annotation.ColorInt; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.view.ContextThemeWrapper; import android.util.Log; import android.util.TypedValue; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.Window; import android.view.WindowManager; import org.lineageos.eleven.R; import org.lineageos.eleven.adapters.PagerAdapter; Loading Loading @@ -62,6 +70,8 @@ public class MusicBrowserPhoneFragment extends BaseFragment { * A pre-defined page index to navigate to */ private int mDefaultPageIdx = INVALID_PAGE_INDEX; private int ACCENT_COLOR; private ViewPagerTabs tabs; /** * Empty constructor as per the {@link Fragment} documentation Loading @@ -87,6 +97,17 @@ public class MusicBrowserPhoneFragment extends BaseFragment { super.onCreate(savedInstanceState); // Get the preferences mPreferences = PreferenceUtils.getInstance(getActivity()); ACCENT_COLOR=fetchAccentColor(getActivity()); } @Override public void onResume() { super.onResume(); tabs.setBackgroundColor(ACCENT_COLOR); } @Override Loading @@ -109,12 +130,15 @@ public class MusicBrowserPhoneFragment extends BaseFragment { mViewPager.setOffscreenPageLimit(mPagerAdapter.getCount() - 1); // Initialize the tab strip final ViewPagerTabs tabs = (ViewPagerTabs) tabs = (ViewPagerTabs) mRootView.findViewById(R.id.fragment_home_phone_pager_titles); // Attach the ViewPager tabs.setViewPager(mViewPager); mViewPager.setOnPageChangeListener(tabs); mViewPager.setOnPageChangeListener(tabs); if (mDefaultPageIdx != INVALID_PAGE_INDEX) { navigateToPage(mDefaultPageIdx); } else { Loading Loading @@ -318,4 +342,42 @@ public class MusicBrowserPhoneFragment extends BaseFragment { private boolean isPlaylistPage() { return mViewPager.getCurrentItem() == MusicFragments.PLAYLIST.ordinal(); } /* * get Accent color from OS * */ private int fetchAccentColor(Context context) { TypedValue typedValue = new TypedValue(); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(getActivity(), android.R.style.Theme_DeviceDefault); contextThemeWrapper.getTheme().resolveAttribute(android.R.attr.colorAccent, typedValue, true); int color_accent = typedValue.data; Log.e("TAG", "accent Colour #"+Integer.toHexString(color_accent)); //change toolbar color // getSupportActionBar().setBackgroundDrawable( // new ColorDrawable(color_accent)); // //change status bar color if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getActivity().getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(darkenColor(color_accent)); } return color_accent; } @ColorInt int darkenColor(@ColorInt int color) { float[] hsv = new float[3]; android.graphics.Color.colorToHSV(color, hsv); hsv[2] *= 0.8f; return android.graphics.Color.HSVToColor(hsv); } } Loading
src/org/lineageos/eleven/adapters/PlaylistAdapter.java +5 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ package org.lineageos.eleven.adapters; import android.content.Context; import android.support.v4.content.ContextCompat; import android.support.v4.graphics.drawable.DrawableCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; Loading @@ -25,6 +27,7 @@ import org.lineageos.eleven.cache.ImageFetcher; import org.lineageos.eleven.model.Playlist; import org.lineageos.eleven.ui.MusicHolder; import org.lineageos.eleven.ui.MusicHolder.DataHolder; import org.lineageos.eleven.ui.activities.HomeActivity; import org.lineageos.eleven.ui.fragments.PlaylistFragment; import org.lineageos.eleven.utils.MusicUtils; import org.lineageos.eleven.widgets.IPopupMenuCallback; Loading Loading @@ -112,6 +115,7 @@ public class PlaylistAdapter extends ArrayAdapter<Playlist> implements IPopupMen switch (type) { case LastAdded: holder.mImage.get().setImageResource(R.drawable.recently_added); break; case RecentlyPlayed: holder.mImage.get().setImageResource(R.drawable.recent_icon); Loading @@ -127,6 +131,7 @@ public class PlaylistAdapter extends ArrayAdapter<Playlist> implements IPopupMen dataHolder.mItemId, holder.mImage.get()); } DrawableCompat.setTint(DrawableCompat.wrap(holder.mImage.get().getDrawable()), HomeActivity.accentColor); return convertView; Loading
src/org/lineageos/eleven/ui/activities/BaseActivity.java +53 −4 Original line number Diff line number Diff line Loading @@ -25,13 +25,19 @@ import android.content.ServiceConnection; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.media.AudioManager; import android.os.Build; import android.os.Bundle; import android.os.IBinder; import android.support.annotation.ColorInt; import android.support.v4.app.FragmentActivity; import android.support.v7.view.ContextThemeWrapper; import android.util.Log; import android.util.TypedValue; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; Loading Loading @@ -104,6 +110,7 @@ public abstract class BaseActivity extends FragmentActivity implements ServiceCo private PlaybackStatus mPlaybackStatus; private Drawable mActionBarBackground; private int accentColor; /** * {@inheritDoc} Loading Loading @@ -136,15 +143,18 @@ public abstract class BaseActivity extends FragmentActivity implements ServiceCo setActionBar(mToolBar); setActionBarTitle(getString(R.string.app_name)); mToolBar.setTitleTextColor(getResources().getColor(R.color.white)); // set the background on the root view getWindow().getDecorView().getRootView().setBackgroundColor( getResources().getColor(R.color.background_color)); //getWindow().getDecorView().getRootView().setBackgroundColor(getResources().getColor(R.color.background_color)); // Initialze the bottom action bar initBottomActionBar(); // listen to changes to the cache status ImageFetcher.getInstance(this).addCacheListener(this); accentColor=fetchAccentColor(this); mToolBar.setBackgroundColor(accentColor); } /** Loading Loading @@ -283,7 +293,7 @@ public abstract class BaseActivity extends FragmentActivity implements ServiceCo if (mActionBarBackground == null) { final int actionBarColor = getResources().getColor(R.color.header_action_bar_color); mActionBarBackground = new ColorDrawable(actionBarColor); mToolBar.setBackgroundDrawable(mActionBarBackground); // mToolBar.setBackgroundDrawable(mActionBarBackground); } } Loading Loading @@ -488,4 +498,43 @@ public abstract class BaseActivity extends FragmentActivity implements ServiceCo * handle pending playback requests */ public abstract void handlePendingPlaybackRequests(); /* * get Accent color from OS * */ private int fetchAccentColor(Context context) { TypedValue typedValue = new TypedValue(); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(this, android.R.style.Theme_DeviceDefault); contextThemeWrapper.getTheme().resolveAttribute(android.R.attr.colorAccent, typedValue, true); int color_accent = typedValue.data; Log.e("TAG", "accent Colour #"+Integer.toHexString(color_accent)); //change toolbar color // getSupportActionBar().setBackgroundDrawable( // new ColorDrawable(color_accent)); // //change status bar color if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(darkenColor(color_accent)); } return color_accent; } @ColorInt int darkenColor(@ColorInt int color) { float[] hsv = new float[3]; android.graphics.Color.colorToHSV(color, hsv); hsv[2] *= 0.8f; return android.graphics.Color.HSVToColor(hsv); } }
src/org/lineageos/eleven/ui/activities/HomeActivity.java +54 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package org.lineageos.eleven.ui.activities; import android.Manifest; import android.animation.ArgbEvaluator; import android.animation.ObjectAnimator; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; Loading @@ -28,13 +29,19 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.provider.MediaStore; import android.support.annotation.ColorInt; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.view.ContextThemeWrapper; import android.text.TextUtils; import android.util.Log; import android.util.TypedValue; import android.view.MenuItem; import android.view.Window; import android.view.WindowManager; import android.widget.Toolbar; import org.lineageos.eleven.Config; import org.lineageos.eleven.R; Loading Loading @@ -85,6 +92,8 @@ public class HomeActivity extends SlidingPanelActivity implements */ protected boolean mTopLevelActivity = false; public static int accentColor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Loading @@ -94,6 +103,8 @@ public class HomeActivity extends SlidingPanelActivity implements if (!needRequestStoragePermission()) { init(); } accentColor=fetchAccentColor(this); } private void init() { Loading Loading @@ -133,7 +144,7 @@ public class HomeActivity extends SlidingPanelActivity implements // figure which panel we are on and update the status bar mBrowsePanelActive = (getCurrentPanel() == Panel.Browse); updateStatusBarColor(); // updateStatusBarColor(); } // if intent wasn't UI related, process it as a audio playback request Loading Loading @@ -186,7 +197,7 @@ public class HomeActivity extends SlidingPanelActivity implements @Override public void onMetaChanged() { super.onMetaChanged(); updateStatusBarColor(); // updateStatusBarColor(); } @Override Loading @@ -194,7 +205,7 @@ public class HomeActivity extends SlidingPanelActivity implements boolean isInBrowser = getCurrentPanel() == Panel.Browse && slideOffset < 0.7f; if (isInBrowser != mBrowsePanelActive) { mBrowsePanelActive = isInBrowser; updateStatusBarColor(); // updateStatusBarColor(); } } Loading Loading @@ -534,4 +545,44 @@ public class HomeActivity extends SlidingPanelActivity implements return true; } /* * get Accent color from OS * */ private int fetchAccentColor(Context context) { TypedValue typedValue = new TypedValue(); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(this, android.R.style.Theme_DeviceDefault); contextThemeWrapper.getTheme().resolveAttribute(android.R.attr.colorAccent, typedValue, true); int color_accent = typedValue.data; Log.e("TAG", "accent Colour #"+Integer.toHexString(color_accent)); //change toolbar color // getSupportActionBar().setBackgroundDrawable( // new ColorDrawable(color_accent)); // //change status bar color if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(darkenColor(color_accent)); } return color_accent; } @ColorInt int darkenColor(@ColorInt int color) { float[] hsv = new float[3]; android.graphics.Color.colorToHSV(color, hsv); hsv[2] *= 0.8f; return android.graphics.Color.HSVToColor(hsv); } }
src/org/lineageos/eleven/ui/activities/SlidingPanelActivity.java +55 −2 Original line number Diff line number Diff line Loading @@ -13,11 +13,19 @@ package org.lineageos.eleven.ui.activities; import android.content.Context; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.support.annotation.ColorInt; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.view.ContextThemeWrapper; import android.util.Log; import android.util.TypedValue; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.LinearLayout; import org.lineageos.eleven.R; Loading @@ -38,6 +46,8 @@ import org.lineageos.eleven.widgets.BlurScrimImage; */ public abstract class SlidingPanelActivity extends BaseActivity { private int accentColor; public enum Panel { Browse, MusicPlayer, Loading Loading @@ -83,6 +93,8 @@ public abstract class SlidingPanelActivity extends BaseActivity { // Display the now playing screen or shuffle if this isn't anything // playing bottomActionBar.setOnClickListener(mOpenNowPlaying); accentColor= fetchAccentColor(this); bottomActionBar.setBackgroundColor(accentColor); } /** Loading Loading @@ -123,6 +135,7 @@ public abstract class SlidingPanelActivity extends BaseActivity { private void setupFirstPanel() { mFirstPanel = (SlidingUpPanelLayout)findViewById(R.id.sliding_layout); mFirstPanel.setBackgroundColor(accentColor); mFirstPanel.setPanelSlideListener(new SimplePanelSlideListener() { @Override public void onPanelSlide(View panel, float slideOffset) { Loading @@ -139,10 +152,12 @@ public abstract class SlidingPanelActivity extends BaseActivity { checkTargetNavigation(); } }); } private void setupSecondPanel() { mSecondPanel = (SlidingUpPanelLayout)findViewById(R.id.sliding_layout2); mSecondPanel.setBackgroundColor(accentColor); mSecondPanel.setPanelSlideListener(new SimplePanelSlideListener() { @Override public void onPanelSlide(View panel, float slideOffset) { Loading Loading @@ -300,10 +315,10 @@ public abstract class SlidingPanelActivity extends BaseActivity { final HeaderBar headerBar = (HeaderBar) findViewById(containerId); headerBar.setFragment(getQueueFragment()); headerBar.setTitleText(textId); headerBar.setBackgroundColor(Color.TRANSPARENT); // headerBar.setBackgroundColor(Color.TRANSPARENT); headerBar.setBackListener(mShowBrowse); headerBar.setHeaderClickListener(headerClickListener); headerBar.setBackgroundColor(accentColor); return headerBar; } Loading @@ -320,4 +335,42 @@ public abstract class SlidingPanelActivity extends BaseActivity { showPanel(mTargetPanel); } } /* * get Accent color from OS * */ private int fetchAccentColor(Context context) { TypedValue typedValue = new TypedValue(); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(this, android.R.style.Theme_DeviceDefault); contextThemeWrapper.getTheme().resolveAttribute(android.R.attr.colorAccent, typedValue, true); int color_accent = typedValue.data; Log.e("TAG", "accent Colour #"+Integer.toHexString(color_accent)); //change toolbar color // getSupportActionBar().setBackgroundDrawable( // new ColorDrawable(color_accent)); // //change status bar color if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(darkenColor(color_accent)); } return color_accent; } @ColorInt int darkenColor(@ColorInt int color) { float[] hsv = new float[3]; android.graphics.Color.colorToHSV(color, hsv); hsv[2] *= 0.8f; return android.graphics.Color.HSVToColor(hsv); } }
src/org/lineageos/eleven/ui/fragments/phone/MusicBrowserPhoneFragment.java +64 −2 Original line number Diff line number Diff line Loading @@ -13,12 +13,20 @@ package org.lineageos.eleven.ui.fragments.phone; import android.content.Context; import android.os.Build; import android.os.Bundle; import android.support.annotation.ColorInt; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.view.ContextThemeWrapper; import android.util.Log; import android.util.TypedValue; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.Window; import android.view.WindowManager; import org.lineageos.eleven.R; import org.lineageos.eleven.adapters.PagerAdapter; Loading Loading @@ -62,6 +70,8 @@ public class MusicBrowserPhoneFragment extends BaseFragment { * A pre-defined page index to navigate to */ private int mDefaultPageIdx = INVALID_PAGE_INDEX; private int ACCENT_COLOR; private ViewPagerTabs tabs; /** * Empty constructor as per the {@link Fragment} documentation Loading @@ -87,6 +97,17 @@ public class MusicBrowserPhoneFragment extends BaseFragment { super.onCreate(savedInstanceState); // Get the preferences mPreferences = PreferenceUtils.getInstance(getActivity()); ACCENT_COLOR=fetchAccentColor(getActivity()); } @Override public void onResume() { super.onResume(); tabs.setBackgroundColor(ACCENT_COLOR); } @Override Loading @@ -109,12 +130,15 @@ public class MusicBrowserPhoneFragment extends BaseFragment { mViewPager.setOffscreenPageLimit(mPagerAdapter.getCount() - 1); // Initialize the tab strip final ViewPagerTabs tabs = (ViewPagerTabs) tabs = (ViewPagerTabs) mRootView.findViewById(R.id.fragment_home_phone_pager_titles); // Attach the ViewPager tabs.setViewPager(mViewPager); mViewPager.setOnPageChangeListener(tabs); mViewPager.setOnPageChangeListener(tabs); if (mDefaultPageIdx != INVALID_PAGE_INDEX) { navigateToPage(mDefaultPageIdx); } else { Loading Loading @@ -318,4 +342,42 @@ public class MusicBrowserPhoneFragment extends BaseFragment { private boolean isPlaylistPage() { return mViewPager.getCurrentItem() == MusicFragments.PLAYLIST.ordinal(); } /* * get Accent color from OS * */ private int fetchAccentColor(Context context) { TypedValue typedValue = new TypedValue(); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(getActivity(), android.R.style.Theme_DeviceDefault); contextThemeWrapper.getTheme().resolveAttribute(android.R.attr.colorAccent, typedValue, true); int color_accent = typedValue.data; Log.e("TAG", "accent Colour #"+Integer.toHexString(color_accent)); //change toolbar color // getSupportActionBar().setBackgroundDrawable( // new ColorDrawable(color_accent)); // //change status bar color if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getActivity().getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(darkenColor(color_accent)); } return color_accent; } @ColorInt int darkenColor(@ColorInt int color) { float[] hsv = new float[3]; android.graphics.Color.colorToHSV(color, hsv); hsv[2] *= 0.8f; return android.graphics.Color.HSVToColor(hsv); } }