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 0dfe27df..adaef870 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
@@ -43,7 +43,6 @@ import com.kabouzeid.gramophone.ui.activities.intro.AppIntroActivity;
import com.kabouzeid.gramophone.ui.fragments.mainactivity.folders.FoldersFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.LibraryFragment;
import com.kabouzeid.gramophone.util.PreferenceUtil;
-import com.kabouzeid.gramophone.util.Util;
import com.sothree.slidinguppanel.SlidingUpPanelLayout;
import java.util.ArrayList;
@@ -76,19 +75,11 @@ public class MainActivity extends AbsSlidingMusicPanelActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setDrawUnderStatusbar(true);
ButterKnife.bind(this);
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
- Util.setStatusBarTranslucent(getWindow());
- drawerLayout.setFitsSystemWindows(false);
- navigationView.setFitsSystemWindows(false);
- //noinspection ConstantConditions
- findViewById(R.id.drawer_content_container).setFitsSystemWindows(false);
- } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- drawerLayout.setOnApplyWindowInsetsListener((view, windowInsets) -> {
- navigationView.dispatchApplyWindowInsets(windowInsets);
- return windowInsets.replaceSystemWindowInsets(0, 0, 0, 0);
- });
+ navigationView.setFitsSystemWindows(false); // for header to go below statusbar
}
setUpDrawerLayout();
diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/AbsMainActivityFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/AbsMainActivityFragment.java
index 9c7a3e0e..104f68c9 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/AbsMainActivityFragment.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/AbsMainActivityFragment.java
@@ -1,13 +1,8 @@
package com.kabouzeid.gramophone.ui.fragments.mainactivity;
-import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
-import android.view.View;
-import com.kabouzeid.appthemehelper.ThemeStore;
-import com.kabouzeid.appthemehelper.util.ColorUtil;
-import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.ui.activities.MainActivity;
/**
@@ -24,24 +19,4 @@ public abstract class AbsMainActivityFragment extends Fragment {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
}
-
- // WORKAROUND
- public void setStatusbarColor(View view, int color) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- final View statusBar = view.findViewById(R.id.status_bar);
- if (statusBar != null) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- statusBar.setBackgroundColor(ColorUtil.darkenColor(color));
- getMainActivity().setLightStatusbarAuto(color);
- } else {
- statusBar.setBackgroundColor(color);
- }
- }
- }
- }
-
- public void setStatusbarColorAuto(View view) {
- // we don't want to use statusbar color because we are doing the color darkening on our own to support KitKat
- setStatusbarColor(view, ThemeStore.primaryColor(getContext()));
- }
}
diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/folders/FoldersFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/folders/FoldersFragment.java
index ca3d44f4..4d136e7a 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/folders/FoldersFragment.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/folders/FoldersFragment.java
@@ -156,7 +156,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements MainActi
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
- setStatusbarColorAuto(view);
+ getMainActivity().setStatusbarColorAuto();
getMainActivity().setNavigationbarColorAuto();
getMainActivity().setTaskDescriptionColorAuto();
diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java
index 6991be37..1e11b85e 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java
@@ -90,7 +90,7 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
PreferenceUtil.getInstance(getActivity()).registerOnSharedPreferenceChangedListener(this);
- setStatusbarColorAuto(view);
+ getMainActivity().setStatusbarColorAuto();
getMainActivity().setNavigationbarColorAuto();
getMainActivity().setTaskDescriptionColorAuto();
diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/card/CardPlayerFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/card/CardPlayerFragment.java
index 71f82728..62a3e86b 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/card/CardPlayerFragment.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/card/CardPlayerFragment.java
@@ -463,10 +463,9 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
public AnimatorSet createDefaultColorChangeAnimatorSet(int newColor) {
Animator backgroundAnimator;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- int topMargin = fragment.getResources().getDimensionPixelSize(R.dimen.status_bar_padding);
//noinspection ConstantConditions
int x = (int) (fragment.playbackControlsFragment.playPauseFab.getX() + fragment.playbackControlsFragment.playPauseFab.getWidth() / 2 + fragment.playbackControlsFragment.getView().getX());
- int y = (int) (topMargin + fragment.playbackControlsFragment.playPauseFab.getY() + fragment.playbackControlsFragment.playPauseFab.getHeight() / 2 + fragment.playbackControlsFragment.getView().getY());
+ int y = (int) (fragment.playbackControlsFragment.playPauseFab.getY() + fragment.playbackControlsFragment.playPauseFab.getHeight() / 2 + fragment.playbackControlsFragment.getView().getY() + fragment.playbackControlsFragment.progressSlider.getHeight());
float startRadius = Math.max(fragment.playbackControlsFragment.playPauseFab.getWidth() / 2, fragment.playbackControlsFragment.playPauseFab.getHeight() / 2);
float endRadius = Math.max(fragment.colorBackground.getWidth(), fragment.colorBackground.getHeight());
fragment.colorBackground.setBackgroundColor(newColor);
@@ -552,10 +551,9 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
@Override
public void setUpPanelAndAlbumCoverHeight() {
WidthFitSquareLayout albumCoverContainer = fragment.getView().findViewById(R.id.album_cover_container);
- int topMargin = fragment.getResources().getDimensionPixelSize(R.dimen.status_bar_padding);
- final int availablePanelHeight = fragment.slidingUpPanelLayout.getHeight() - fragment.getView().findViewById(R.id.player_content).getHeight() + topMargin;
- final int minPanelHeight = (int) ViewUtil.convertDpToPixel(72 + 24, fragment.getResources()) + topMargin;
+ final int availablePanelHeight = fragment.slidingUpPanelLayout.getHeight() - fragment.getView().findViewById(R.id.player_content).getHeight() + (int) ViewUtil.convertDpToPixel(8, fragment.getResources());
+ final int minPanelHeight = (int) ViewUtil.convertDpToPixel(72 + 24, fragment.getResources());
if (availablePanelHeight < minPanelHeight) {
albumCoverContainer.getLayoutParams().height = albumCoverContainer.getHeight() - (minPanelHeight - availablePanelHeight);
albumCoverContainer.forceSquare(false);
@@ -595,8 +593,7 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
@Override
public void setUpPanelAndAlbumCoverHeight() {
- int topMargin = fragment.getResources().getDimensionPixelSize(R.dimen.status_bar_padding);
- int panelHeight = fragment.slidingUpPanelLayout.getHeight() - fragment.playbackControlsFragment.getView().getHeight() + topMargin;
+ int panelHeight = fragment.slidingUpPanelLayout.getHeight() - fragment.playbackControlsFragment.getView().getHeight();
fragment.slidingUpPanelLayout.setPanelHeight(panelHeight);
((AbsSlidingMusicPanelActivity) fragment.getActivity()).setAntiDragView(fragment.slidingUpPanelLayout.findViewById(R.id.player_panel));
diff --git a/app/src/main/java/com/kabouzeid/gramophone/views/StatusBarMarginFrameLayout.java b/app/src/main/java/com/kabouzeid/gramophone/views/StatusBarMarginFrameLayout.java
new file mode 100644
index 00000000..878cab91
--- /dev/null
+++ b/app/src/main/java/com/kabouzeid/gramophone/views/StatusBarMarginFrameLayout.java
@@ -0,0 +1,33 @@
+package com.kabouzeid.gramophone.views;
+
+import android.content.Context;
+import android.os.Build;
+import android.util.AttributeSet;
+import android.view.WindowInsets;
+import android.widget.FrameLayout;
+
+public class StatusBarMarginFrameLayout extends FrameLayout {
+
+
+ public StatusBarMarginFrameLayout(Context context) {
+ super(context);
+ }
+
+ public StatusBarMarginFrameLayout(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public StatusBarMarginFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ @Override
+ public WindowInsets onApplyWindowInsets(WindowInsets insets) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams();
+ lp.topMargin = insets.getSystemWindowInsetTop();
+ setLayoutParams(lp);
+ }
+ return super.onApplyWindowInsets(insets);
+ }
+}
diff --git a/app/src/main/java/com/kabouzeid/gramophone/views/StatusBarView.java b/app/src/main/java/com/kabouzeid/gramophone/views/StatusBarView.java
index 07a2587a..46c3d1fd 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/views/StatusBarView.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/views/StatusBarView.java
@@ -1,13 +1,11 @@
package com.kabouzeid.gramophone.views;
import android.content.Context;
-import android.content.res.Resources;
+import android.os.Build;
import android.util.AttributeSet;
import android.view.View;
-
-/*
- This is a temporally fix
-*/
+import android.view.ViewGroup;
+import android.view.WindowInsets;
public class StatusBarView extends View {
@@ -25,17 +23,12 @@ public class StatusBarView extends View {
}
@Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- setMeasuredDimension(
- MeasureSpec.getSize(widthMeasureSpec), getStatusBarHeight(getResources()));
- }
-
- public static int getStatusBarHeight(Resources r) {
- int result = 0;
- int resourceId = r.getIdentifier("status_bar_height", "dimen", "android");
- if (resourceId > 0) {
- result = r.getDimensionPixelSize(resourceId);
+ public WindowInsets onApplyWindowInsets(WindowInsets insets) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ ViewGroup.LayoutParams lp = getLayoutParams();
+ lp.height = insets.getSystemWindowInsetTop();
+ setLayoutParams(lp);
}
- return result;
+ return super.onApplyWindowInsets(insets);
}
}
diff --git a/app/src/main/res/layout-land/fragment_card_player.xml b/app/src/main/res/layout-land/fragment_card_player.xml
index 813846de..51886f1c 100644
--- a/app/src/main/res/layout-land/fragment_card_player.xml
+++ b/app/src/main/res/layout-land/fragment_card_player.xml
@@ -70,6 +70,7 @@
@@ -78,10 +79,10 @@
android:id="@+id/playing_queue_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="16dp"
+ android:layout_marginBottom="-8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
- android:layout_marginTop="@dimen/status_bar_padding"
+ android:layout_marginTop="0dp"
app:cardBackgroundColor="?cardBackgroundColor"
app:cardElevation="@dimen/card_elevation"
app:cardUseCompatPadding="false">
diff --git a/app/src/main/res/layout-land/fragment_flat_player.xml b/app/src/main/res/layout-land/fragment_flat_player.xml
index 6762967e..65a8a1df 100644
--- a/app/src/main/res/layout-land/fragment_flat_player.xml
+++ b/app/src/main/res/layout-land/fragment_flat_player.xml
@@ -11,12 +11,12 @@
android:elevation="@dimen/toolbar_elevation"
tools:ignore="UnusedAttribute">
-
-
diff --git a/app/src/main/res/layout/activity_main_content.xml b/app/src/main/res/layout/activity_main_content.xml
index a9ee9c50..a9e82bc6 100644
--- a/app/src/main/res/layout/activity_main_content.xml
+++ b/app/src/main/res/layout/activity_main_content.xml
@@ -1,5 +1,22 @@
-
\ No newline at end of file
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main_drawer_layout.xml b/app/src/main/res/layout/activity_main_drawer_layout.xml
index ead1e1e6..f70e5345 100644
--- a/app/src/main/res/layout/activity_main_drawer_layout.xml
+++ b/app/src/main/res/layout/activity_main_drawer_layout.xml
@@ -3,14 +3,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true">
+ android:layout_height="match_parent">
-
+ android:layout_height="match_parent" />
+ android:layout_height="@dimen/status_bar_padding" />
-
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/status_bar_padding"
+ android:orientation="vertical">
@@ -149,7 +151,7 @@
-
+
diff --git a/app/src/main/res/layout/fragment_folder.xml b/app/src/main/res/layout/fragment_folder.xml
index 11840e70..c8768820 100644
--- a/app/src/main/res/layout/fragment_folder.xml
+++ b/app/src/main/res/layout/fragment_folder.xml
@@ -1,89 +1,72 @@
-
-
-
-
-
-
-
-
-
+ app:layout_scrollFlags="scroll|enterAlways">
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="?attr/actionBarSize" />
-
+
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_library.xml b/app/src/main/res/layout/fragment_library.xml
index e402e90f..255b237a 100644
--- a/app/src/main/res/layout/fragment_library.xml
+++ b/app/src/main/res/layout/fragment_library.xml
@@ -1,67 +1,50 @@
-
-
-
-
-
-
-
-
-
+ app:layout_scrollFlags="scroll|enterAlways">
-
+
+
+
+
+ android:layout_height="?attr/actionBarSize" />
-
+
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="@dimen/tab_height"
+ app:tabContentStart="72dp"
+ app:tabMode="scrollable" />
-
+
-
+
+
+
diff --git a/build.gradle b/build.gradle
index 1728dd71..275d16f8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.3'
+ classpath 'com.android.tools.build:gradle:3.1.4'
}
}