Fix CarUiRecyclerView without scrollbar starting partially scrolled down
The code to scroll it to the top was mistakenly
put behind a if (!mScrollbarEnabled).
Also remove the usage of Toolbar.OnHeightChangedListner
from the CarUiRecyclerView, as it's unused.
Fixes: 162627070
Test: Manually
Change-Id: Iaf5cc4587885d65988468dacca7ad9717239bd08
diff --git a/car-ui-lib/car-ui-lib/src/androidTest/java/com/android/car/ui/recyclerview/CarUiRecyclerViewTest.java b/car-ui-lib/car-ui-lib/src/androidTest/java/com/android/car/ui/recyclerview/CarUiRecyclerViewTest.java
index 78b10e0..30b0f91 100644
--- a/car-ui-lib/car-ui-lib/src/androidTest/java/com/android/car/ui/recyclerview/CarUiRecyclerViewTest.java
+++ b/car-ui-lib/car-ui-lib/src/androidTest/java/com/android/car/ui/recyclerview/CarUiRecyclerViewTest.java
@@ -214,29 +214,6 @@
}
@Test
- public void testOnHeightChanged_shouldAddTheValueToInitialTopValue() {
- mActivity.runOnUiThread(
- () -> mActivity.setContentView(R.layout.car_ui_recycler_view_test_activity));
-
- onView(withId(R.id.list)).check(matches(isDisplayed()));
-
- CarUiRecyclerView carUiRecyclerView = mActivity.findViewById(R.id.list);
-
- assertEquals(carUiRecyclerView.getPaddingBottom(), 0);
- assertEquals(carUiRecyclerView.getPaddingTop(), 0);
- assertEquals(carUiRecyclerView.getPaddingStart(), 0);
- assertEquals(carUiRecyclerView.getPaddingEnd(), 0);
-
- mActivity.runOnUiThread(() -> carUiRecyclerView.onHeightChanged(10));
- onView(withId(R.id.list)).check(matches(isDisplayed()));
-
- assertEquals(carUiRecyclerView.getPaddingTop(), 10);
- assertEquals(carUiRecyclerView.getPaddingBottom(), 0);
- assertEquals(carUiRecyclerView.getPaddingStart(), 0);
- assertEquals(carUiRecyclerView.getPaddingEnd(), 0);
- }
-
- @Test
public void testVisibility_goneAtInflationWithChangeToVisible() {
mActivity.runOnUiThread(
() -> mActivity.setContentView(
diff --git a/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/recyclerview/CarUiRecyclerView.java b/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/recyclerview/CarUiRecyclerView.java
index 8f2cb7d..cce2dd9 100644
--- a/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/recyclerview/CarUiRecyclerView.java
+++ b/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/recyclerview/CarUiRecyclerView.java
@@ -52,7 +52,6 @@
import com.android.car.ui.recyclerview.decorations.linear.LinearDividerItemDecoration;
import com.android.car.ui.recyclerview.decorations.linear.LinearOffsetItemDecoration;
import com.android.car.ui.recyclerview.decorations.linear.LinearOffsetItemDecoration.OffsetPosition;
-import com.android.car.ui.toolbar.Toolbar;
import com.android.car.ui.utils.CarUxRestrictionsUtil;
import java.lang.annotation.Retention;
@@ -63,8 +62,7 @@
* could potentially include a scrollbar that has page up and down arrows. Interaction with this
* view is similar to a {@code RecyclerView} as it takes the same adapter and the layout manager.
*/
-public final class CarUiRecyclerView extends RecyclerView implements
- Toolbar.OnHeightChangedListener {
+public final class CarUiRecyclerView extends RecyclerView {
private static final String TAG = "CarUiRecyclerView";
@@ -82,7 +80,6 @@
@Nullable
private ScrollBar mScrollBar;
- private int mInitialTopPadding;
@Nullable
private GridOffsetItemDecoration mOffsetItemDecoration;
@@ -235,14 +232,7 @@
}
a.recycle();
- if (!mScrollBarEnabled) {
- return;
- }
- setVerticalScrollBarEnabled(false);
- setHorizontalScrollBarEnabled(false);
-
- mScrollBarClass = context.getResources().getString(R.string.car_ui_scrollbar_component);
this.getViewTreeObserver()
.addOnGlobalLayoutListener(() -> {
if (!mHasScrolledToTop && getLayoutManager() != null) {
@@ -253,11 +243,16 @@
getLayoutManager().scrollToPosition(0));
mHasScrolledToTop = true;
}
-
- if (mInitialTopPadding == 0) {
- mInitialTopPadding = getPaddingTop();
- }
});
+
+ if (!mScrollBarEnabled) {
+ return;
+ }
+
+ setVerticalScrollBarEnabled(false);
+ setHorizontalScrollBarEnabled(false);
+
+ mScrollBarClass = context.getResources().getString(R.string.car_ui_scrollbar_component);
}
/**
@@ -324,12 +319,6 @@
}
}
- @Override
- public void onHeightChanged(int height) {
- setPaddingRelative(getPaddingStart(), mInitialTopPadding + height,
- getPaddingEnd(), getPaddingBottom());
- }
-
/**
* Sets the number of columns in which grid needs to be divided.
*/
diff --git a/car-ui-lib/car-ui-lib/src/test/java/com/android/car/ui/recyclerview/CarUiRecyclerViewTest.java b/car-ui-lib/car-ui-lib/src/test/java/com/android/car/ui/recyclerview/CarUiRecyclerViewTest.java
index e671b0a..648a3a4 100644
--- a/car-ui-lib/car-ui-lib/src/test/java/com/android/car/ui/recyclerview/CarUiRecyclerViewTest.java
+++ b/car-ui-lib/car-ui-lib/src/test/java/com/android/car/ui/recyclerview/CarUiRecyclerViewTest.java
@@ -52,28 +52,6 @@
}
@Test
- public void onHeightChanged_shouldAddTheValueToInitialTopValue() {
- mView = LayoutInflater.from(mContext)
- .inflate(mResources.getIdentifier("test_linear_car_ui_recycler_view", "layout",
- mContext.getPackageName()), null);
-
- mCarUiRecyclerView = mView.findViewById(
- mResources.getIdentifier("test_prv", "id", mContext.getPackageName()));
-
- assertThat(mCarUiRecyclerView.getPaddingBottom()).isEqualTo(0);
- assertThat(mCarUiRecyclerView.getPaddingTop()).isEqualTo(0);
- assertThat(mCarUiRecyclerView.getPaddingStart()).isEqualTo(0);
- assertThat(mCarUiRecyclerView.getPaddingEnd()).isEqualTo(0);
-
- mCarUiRecyclerView.onHeightChanged(10);
-
- assertThat(mCarUiRecyclerView.getPaddingTop()).isEqualTo(10);
- assertThat(mCarUiRecyclerView.getPaddingBottom()).isEqualTo(0);
- assertThat(mCarUiRecyclerView.getPaddingStart()).isEqualTo(0);
- assertThat(mCarUiRecyclerView.getPaddingEnd()).isEqualTo(0);
- }
-
- @Test
public void setAdapter_shouldInitializeLinearLayoutManager() {
mView = LayoutInflater.from(mContext)
.inflate(mResources.getIdentifier("test_linear_car_ui_recycler_view", "layout",