From a573e5826175865bcbd56a343bec1629e49ff89c Mon Sep 17 00:00:00 2001 From: Aidan Follestad Date: Sat, 18 Apr 2015 01:26:42 -0500 Subject: [PATCH] Translucent status bar in artist and album detail view on KitKat/Lollipop --- .../ui/activities/AlbumDetailActivity.java | 17 +++++++++++++---- .../ui/activities/ArtistDetailActivity.java | 14 +++++++++++--- .../ui/activities/base/ThemeBaseActivity.java | 7 +++++-- 3 files changed, 29 insertions(+), 9 deletions(-) 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 d4657bb9..30b77327 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 @@ -65,6 +65,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH private int titleViewHeight; private int albumArtViewHeight; private int toolbarColor; + private final SmallObservableScrollViewCallbacks observableScrollViewCallbacks = new SmallObservableScrollViewCallbacks() { @Override public void onScrollChanged(int scrollY, boolean b, boolean b2) { @@ -105,9 +106,11 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH App.bus.register(this); - if (Util.hasLollipopSDK()) postponeEnterTransition(); - if (Util.hasLollipopSDK() && PreferenceUtils.getInstance(this).coloredNavigationBarAlbumEnabled()) - getWindow().setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color)); + if (Util.hasLollipopSDK()) { + postponeEnterTransition(); + if (PreferenceUtils.getInstance(this).coloredNavigationBarAlbumEnabled()) + getWindow().setNavigationBarColor(DialogUtils.resolveColor(this, R.attr.default_bar_color)); + } Bundle intentExtras = getIntent().getExtras(); int albumId = -1; @@ -125,6 +128,11 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH setUpViews(); } + @Override + protected boolean translucentStatusBarOnLollipop() { + return true; + } + @Override protected boolean shouldColorStatusBar() { return false; @@ -155,7 +163,8 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH int toolbarHeight = Util.getActionBarSize(this); titleViewHeight = getResources().getDimensionPixelSize(R.dimen.title_view_height); headerOffset = toolbarHeight; - headerOffset += getResources().getDimensionPixelSize(R.dimen.statusMargin); + if (Util.hasKitKatSDK()) + headerOffset += getResources().getDimensionPixelSize(R.dimen.statusMargin); } private void setUpViews() { 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 e3c6bad9..a535a5ea 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 @@ -133,8 +133,15 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor getSupportActionBar().setTitle(null); getSupportActionBar().setDisplayHomeAsUpEnabled(true); - if (Util.hasLollipopSDK()) fixLollipopTransitionImageWrongSize(); - if (Util.hasLollipopSDK()) startPostponedEnterTransition(); + if (Util.hasLollipopSDK()) { + fixLollipopTransitionImageWrongSize(); + startPostponedEnterTransition(); + } + } + + @Override + protected boolean translucentStatusBarOnLollipop() { + return true; } @Override @@ -165,7 +172,8 @@ public class ArtistDetailActivity extends AbsFabActivity implements PaletteColor int toolbarHeight = Util.getActionBarSize(this); titleViewHeight = getResources().getDimensionPixelSize(R.dimen.title_view_height); headerOffset = toolbarHeight; - headerOffset += getResources().getDimensionPixelSize(R.dimen.statusMargin); + if (Util.hasKitKatSDK()) + headerOffset += getResources().getDimensionPixelSize(R.dimen.statusMargin); } @Override diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/ThemeBaseActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/ThemeBaseActivity.java index 2b284600..4c165975 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/ThemeBaseActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/ThemeBaseActivity.java @@ -76,8 +76,7 @@ public abstract class ThemeBaseActivity extends ActionBarActivity implements Kab protected void setUpTranslucence(boolean statusBarTranslucent, boolean navigationBarTranslucent) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { - // Not needed on Lollipop + if (translucentStatusBarOnLollipop() || Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { Util.setStatusBarTranslucent(getWindow(), statusBarTranslucent); } if (Util.isInPortraitMode(this) || Util.isTablet(this)) { @@ -88,6 +87,10 @@ public abstract class ThemeBaseActivity extends ActionBarActivity implements Kab } } + protected boolean translucentStatusBarOnLollipop() { + return false; + } + protected abstract boolean shouldColorStatusBar(); protected abstract boolean shouldColorNavBar();