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 @@ + +