Set the vertical margin of browse_state properly
Fixes: 140263586
Test: manual
Change-Id: Ie1384fd57c539a241b34e5e67e3b45fbc5142179
diff --git a/res/layout/browse_state.xml b/res/layout/browse_state.xml
index 32ab839..ee22cc8 100644
--- a/res/layout/browse_state.xml
+++ b/res/layout/browse_state.xml
@@ -18,6 +18,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/browse_state"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:showIn="@layout/fragment_browse">
@@ -41,6 +42,7 @@
style="@style/ErrorTextStyle"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/browse_state_error_margin_top"
+ app:layout_goneMarginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/error_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/src/com/android/car/media/BrowseFragment.java b/src/com/android/car/media/BrowseFragment.java
index 75b6a52..00f2506 100644
--- a/src/com/android/car/media/BrowseFragment.java
+++ b/src/com/android/car/media/BrowseFragment.java
@@ -69,6 +69,7 @@
private final View mFragmentContent;
private RecyclerView mBrowseList;
+ private ViewGroup mBrowseState;
private ImageView mErrorIcon;
private TextView mMessage;
private BrowseAdapter mBrowseAdapter;
@@ -223,6 +224,7 @@
mLoadingIndicatorDelay = mFragmentContent.getContext().getResources()
.getInteger(R.integer.progress_indicator_delay);
mBrowseList = mFragmentContent.findViewById(R.id.browse_list);
+ mBrowseState = mFragmentContent.findViewById(R.id.browse_state);
mErrorIcon = mFragmentContent.findViewById(R.id.error_icon);
mMessage = mFragmentContent.findViewById(R.id.error_message);
mFadeDuration = mFragmentContent.getContext().getResources().getInteger(
@@ -339,7 +341,13 @@
mBrowseList.getPaddingRight(), mBrowseList.getPaddingBottom());
}
- void onPlaybackControlsChanged(boolean visible) {
+ void onPlaybackControlsChanged(boolean visible, int browseStateTopMargin,
+ int browseStateBottomMargin) {
+ ViewGroup.MarginLayoutParams params =
+ (ViewGroup.MarginLayoutParams) mBrowseState.getLayoutParams();
+ params.topMargin = browseStateTopMargin;
+ params.bottomMargin = browseStateBottomMargin;
+
if (mBrowseList == null) {
return;
}
diff --git a/src/com/android/car/media/MediaActivity.java b/src/com/android/car/media/MediaActivity.java
index cdda6d9..91716fa 100644
--- a/src/com/android/car/media/MediaActivity.java
+++ b/src/com/android/car/media/MediaActivity.java
@@ -327,8 +327,10 @@
mAppBarView.setAppLauncherSupported(mAppSelectorIntent != null);
localViewModel.getMiniControlsVisible().observe(this, visible -> {
- mBrowseFragment.onPlaybackControlsChanged(visible);
- mSearchFragment.onPlaybackControlsChanged(visible);
+ int topMargin = mAppBarView.getHeight();
+ int bottomMargin = visible ? mMiniPlaybackControls.getHeight() : 0;
+ mBrowseFragment.onPlaybackControlsChanged(visible, topMargin, bottomMargin);
+ mSearchFragment.onPlaybackControlsChanged(visible, topMargin, bottomMargin);
} );
}