Keep promo state on rotate
Promo was being collapsed because rotate causes list to be scrolled at IDLE state. Make the drag more explicit by including the fastScroller drag state instead
manually verified fast scrolling still minimizes promo and rotating while promo is expanded keeps it expanded
Bug: 67670326
Test: ContactsPromoFragmentTest
PiperOrigin-RevId: 172352966
Change-Id: Iab5438501db1d54b7ffac3339faecde0256a3632
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 791a710..56e0a95 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -900,7 +900,7 @@
}
@Override
- public void onContactsListScrolled(int scrollState) {
+ public void onContactsListScrolled(boolean isDragging) {
// intentionally empty.
}
diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java
index 759897f..a8daa54 100644
--- a/java/com/android/dialer/contactsfragment/ContactsFragment.java
+++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java
@@ -93,7 +93,7 @@
/** Listener for contacts list scroll state. */
public interface OnContactsListScrolledListener {
- void onContactsListScrolled(int scrollState);
+ void onContactsListScrolled(boolean isDragging);
}
/**
@@ -248,7 +248,9 @@
String anchoredHeaderString = adapter.getHeaderString(firstCompletelyVisible);
FragmentUtils.getParentUnsafe(this, OnContactsListScrolledListener.class)
- .onContactsListScrolled(recyclerView.getScrollState());
+ .onContactsListScrolled(
+ recyclerView.getScrollState() == RecyclerView.SCROLL_STATE_DRAGGING
+ || fastScroller.isDragStarted());
// If the user swipes to the top of the list very quickly, there is some strange behavior
// between this method updating headers and adapter#onBindViewHolder updating headers.
diff --git a/java/com/android/dialer/contactsfragment/FastScroller.java b/java/com/android/dialer/contactsfragment/FastScroller.java
index 2a86a3b..2bd07ac 100644
--- a/java/com/android/dialer/contactsfragment/FastScroller.java
+++ b/java/com/android/dialer/contactsfragment/FastScroller.java
@@ -81,8 +81,13 @@
container.setVisibility(INVISIBLE);
scrollBar.setSelected(false);
return true;
+ default:
+ return super.onTouchEvent(event);
}
- return super.onTouchEvent(event);
+ }
+
+ public boolean isDragStarted() {
+ return dragStarted;
}
private void setRecyclerViewPosition(float y) {