diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index 0478a82bdbb73..ca2bc7f586c9e 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -480,6 +480,28 @@ public class ChooserActivity extends ResolverActivity {
if (isSendAction(target)) {
mResolverDrawerLayout.setOnScrollChangeListener(this::handleScroll);
}
+
+ final View chooserHeader = mResolverDrawerLayout.findViewById(R.id.chooser_header);
+ final float defaultElevation = chooserHeader.getElevation();
+ final float chooserHeaderScrollElevation =
+ getResources().getDimensionPixelSize(R.dimen.chooser_header_scroll_elevation);
+
+ mAdapterView.setOnScrollListener(new AbsListView.OnScrollListener() {
+ public void onScrollStateChanged(AbsListView view, int scrollState) {
+ }
+
+ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
+ int totalItemCount) {
+ if (view.getChildCount() > 0) {
+ if (firstVisibleItem > 0 || view.getChildAt(0).getTop() < 0) {
+ chooserHeader.setElevation(chooserHeaderScrollElevation);
+ return;
+ }
+ }
+
+ chooserHeader.setElevation(defaultElevation);
+ }
+ });
}
if (DEBUG) {
diff --git a/core/res/res/layout/chooser_grid.xml b/core/res/res/layout/chooser_grid.xml
index 4d5e262d83006..8727f4c9e0ef3 100644
--- a/core/res/res/layout/chooser_grid.xml
+++ b/core/res/res/layout/chooser_grid.xml
@@ -25,6 +25,7 @@
android:id="@id/contentPanel">
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index e5bf088f64f06..d6ec414533c35 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -734,5 +734,6 @@
42dp
18dp
90dp
+ 4dp
288dp
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index fbbbecde74aea..6f672a8182f41 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2786,6 +2786,8 @@
+
+