diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerFragment.java index 30a9d821..d6f85107 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerFragment.java @@ -29,7 +29,7 @@ import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.ViewUtil; -import com.kabouzeid.gramophone.views.SquareLayout; +import com.kabouzeid.gramophone.views.WidthFitSquareLayout; import com.sothree.slidinguppanel.SlidingUpPanelLayout; import org.solovyev.android.views.llm.LinearLayoutManager; @@ -339,7 +339,7 @@ public class PlayerFragment extends AbsPlayerFragment implements PlayerAlbumCove @Override public void setUpPanelAndAlbumCoverHeight(PlayerFragment fragment) { - SquareLayout albumCoverContainer = (SquareLayout) fragment.getView().findViewById(R.id.album_cover_container); + WidthFitSquareLayout albumCoverContainer = (WidthFitSquareLayout) 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; diff --git a/app/src/main/java/com/kabouzeid/gramophone/views/HeightFitSquareLayout.java b/app/src/main/java/com/kabouzeid/gramophone/views/HeightFitSquareLayout.java new file mode 100644 index 00000000..e577e426 --- /dev/null +++ b/app/src/main/java/com/kabouzeid/gramophone/views/HeightFitSquareLayout.java @@ -0,0 +1,43 @@ +package com.kabouzeid.gramophone.views; + +import android.annotation.TargetApi; +import android.content.Context; +import android.os.Build; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +/** + * @author Karim Abou Zeid (kabouzeid) + */ +public class HeightFitSquareLayout extends FrameLayout { + + private boolean forceSquare = true; + + public HeightFitSquareLayout(Context context) { + super(context); + } + + public HeightFitSquareLayout(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public HeightFitSquareLayout(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public HeightFitSquareLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + //noinspection SuspiciousNameCombination + super.onMeasure(forceSquare ? heightMeasureSpec : widthMeasureSpec, heightMeasureSpec); + } + + public void forceSquare(boolean forceSquare) { + this.forceSquare = forceSquare; + requestLayout(); + } +} diff --git a/app/src/main/java/com/kabouzeid/gramophone/views/WidthFitSquareImageView.java b/app/src/main/java/com/kabouzeid/gramophone/views/WidthFitSquareImageView.java index f610043c..595c2ba2 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/views/WidthFitSquareImageView.java +++ b/app/src/main/java/com/kabouzeid/gramophone/views/WidthFitSquareImageView.java @@ -1,7 +1,8 @@ package com.kabouzeid.gramophone.views; +import android.annotation.TargetApi; import android.content.Context; -import android.support.annotation.NonNull; +import android.os.Build; import android.util.AttributeSet; import android.widget.ImageView; @@ -14,12 +15,17 @@ public class WidthFitSquareImageView extends ImageView { super(context); } - public WidthFitSquareImageView(@NonNull Context context, AttributeSet attrs) { + public WidthFitSquareImageView(Context context, AttributeSet attrs) { super(context, attrs); } - public WidthFitSquareImageView(@NonNull Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); + public WidthFitSquareImageView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public WidthFitSquareImageView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); } @Override diff --git a/app/src/main/java/com/kabouzeid/gramophone/views/SquareLayout.java b/app/src/main/java/com/kabouzeid/gramophone/views/WidthFitSquareLayout.java similarity index 70% rename from app/src/main/java/com/kabouzeid/gramophone/views/SquareLayout.java rename to app/src/main/java/com/kabouzeid/gramophone/views/WidthFitSquareLayout.java index 7414545a..618ca8ee 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/views/SquareLayout.java +++ b/app/src/main/java/com/kabouzeid/gramophone/views/WidthFitSquareLayout.java @@ -9,24 +9,24 @@ import android.widget.FrameLayout; /** * @author Karim Abou Zeid (kabouzeid) */ -public class SquareLayout extends FrameLayout { +public class WidthFitSquareLayout extends FrameLayout { private boolean forceSquare = true; - public SquareLayout(Context context) { + public WidthFitSquareLayout(Context context) { super(context); } - public SquareLayout(Context context, AttributeSet attrs) { + public WidthFitSquareLayout(Context context, AttributeSet attrs) { super(context, attrs); } - public SquareLayout(Context context, AttributeSet attrs, int defStyleAttr) { + public WidthFitSquareLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public SquareLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + public WidthFitSquareLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } diff --git a/app/src/main/res/layout-land/fragment_player.xml b/app/src/main/res/layout-land/fragment_player.xml index 770ecbf2..623e602b 100644 --- a/app/src/main/res/layout-land/fragment_player.xml +++ b/app/src/main/res/layout-land/fragment_player.xml @@ -20,16 +20,22 @@ style="@style/Toolbar" android:background="@android:color/transparent" /> - - - + + + + + - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_album_cover.xml b/app/src/main/res/layout/fragment_album_cover.xml index e05aebd5..46edfdc8 100644 --- a/app/src/main/res/layout/fragment_album_cover.xml +++ b/app/src/main/res/layout/fragment_album_cover.xml @@ -4,13 +4,20 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@android:color/transparent"> + android:background="@android:color/black"> - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_player.xml b/app/src/main/res/layout/fragment_player.xml index 6d22bbb5..6cdaec08 100644 --- a/app/src/main/res/layout/fragment_player.xml +++ b/app/src/main/res/layout/fragment_player.xml @@ -35,7 +35,7 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - +