From 9f9fc51088cbc067340938e9c08ac47b49516d72 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Sat, 18 Apr 2015 13:53:44 +0200 Subject: [PATCH] Fixed issues with statusBar coloring appearing on KitKat, read the instructions in ThemeBaseActivity --- .../ui/activities/MainActivity.java | 2 +- .../ui/activities/PlaylistDetailActivity.java | 3 ++- .../ui/activities/base/ThemeBaseActivity.java | 20 +++++++++++++++++-- .../tageditor/AbsTagEditorActivity.java | 2 +- .../res/layout/activity_album_tag_editor.xml | 3 ++- .../res/layout/activity_song_tag_editor.xml | 3 ++- 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java index 13b61e75..f9fd4bae 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java @@ -94,7 +94,7 @@ public class MainActivity extends AbsFabActivity @Override protected boolean shouldColorStatusBar() { - return false; + return true; } @Override diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java index 0e3ac7ba..d5d45cb7 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java @@ -22,6 +22,7 @@ import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity; import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.PlaylistsUtil; import com.kabouzeid.gramophone.util.PreferenceUtils; +import com.kabouzeid.gramophone.util.Util; import java.util.ArrayList; @@ -33,7 +34,7 @@ public class PlaylistDetailActivity extends AbsFabActivity { @TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { - setStatusBarTranslucent(false); + setStatusBarTranslucent(!Util.hasLollipopSDK()); super.onCreate(savedInstanceState); setContentView(R.layout.activity_playlist_detail); 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 2a526308..d409e019 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 @@ -17,6 +17,22 @@ import com.readystatesoftware.systembartint.SystemBarTintManager; /** * @author Aidan Follestad (afollestad) */ + +/** + * READ! + * + * Instructions: + * + * KitKat or Lollipop solid statusBar with the right color (primaryDark): + * - shouldColorStatusBar return true OR return false and call setStatusBarColor() in the activity with a custom color + * - setStatusBarTranslucent(!Util.hasLollipopSDK()) + * + * KitKat or Lollipop translucent statusBar (not the color is too dark on Lollipop and KitKat only does fading but MUCH better performance the setStatusBarColor in onScrollCallback) + * - shouldColorStatusBar return false DO NOT return true and do not call setStatusBarColor() in this case at all here + * - setStatusBarTranslucent(true) + * - use a view below the statusBar to color it + */ + public abstract class ThemeBaseActivity extends ActionBarActivity implements KabViewsDisableAble { // private boolean mLastDarkTheme; @@ -39,7 +55,7 @@ public abstract class ThemeBaseActivity extends ActionBarActivity implements Kab getWindow().setNavigationBarColor(primaryDark); } - setStatusBarColor(primaryDark, false); + if (shouldColorStatusBar()) setStatusBarColor(primaryDark, false); // Persist current values so the Activity knows if they change // mLastDarkTheme = PreferenceUtils.getInstance(this).getGeneralTheme() == 1; @@ -77,7 +93,7 @@ public abstract class ThemeBaseActivity extends ActionBarActivity implements Kab protected void setStatusBarTranslucent(boolean statusBarTranslucent) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - Util.setStatusBarTranslucent(getWindow(), statusBarTranslucent); + Util.setStatusBarTranslucent(getWindow(), statusBarTranslucent); } } 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 f0eb4b77..0183b279 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 @@ -89,7 +89,7 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { - setStatusBarTranslucent(false); + setStatusBarTranslucent(!Util.hasLollipopSDK()); super.onCreate(savedInstanceState); setContentView(getContentViewResId()); diff --git a/app/src/main/res/layout/activity_album_tag_editor.xml b/app/src/main/res/layout/activity_album_tag_editor.xml index 59b67334..610d3f88 100644 --- a/app/src/main/res/layout/activity_album_tag_editor.xml +++ b/app/src/main/res/layout/activity_album_tag_editor.xml @@ -2,6 +2,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fitsSystemWindows="true" android:focusable="true" android:focusableInTouchMode="true"> @@ -26,13 +27,13 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/image" + android:elevation="@dimen/toolbar_elevation" android:minHeight="@dimen/title_view_height" android:orientation="vertical" android:paddingBottom="8dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="8dp" - android:elevation="@dimen/toolbar_elevation" tools:ignore="UnusedAttribute"> @@ -26,13 +27,13 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/image" + android:elevation="@dimen/toolbar_elevation" android:minHeight="@dimen/title_view_height" android:orientation="vertical" android:paddingBottom="8dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="8dp" - android:elevation="@dimen/toolbar_elevation" tools:ignore="UnusedAttribute">