From fd12c470628a561a71afcc4e6f132f07c055e5a0 Mon Sep 17 00:00:00 2001 From: Andrey Epin Date: Tue, 6 Jun 2023 21:29:53 -0700 Subject: Hide app divider Hide app divider while the drawer is collapsed. Bug: 286284385 Test: manual test Change-Id: I52e4e2519bc88e6e31dd190afe2b4d7de1493027 --- .../android/intentresolver/ChooserActivity.java | 6 ++-- .../ChooserMultiProfilePagerAdapter.java | 10 +++++++ .../intentresolver/grid/ChooserGridAdapter.java | 34 +++++++++++++++++++++- 3 files changed, 47 insertions(+), 3 deletions(-) (limited to 'java/src') diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java index c8062830..63ac6435 100644 --- a/java/src/com/android/intentresolver/ChooserActivity.java +++ b/java/src/com/android/intentresolver/ChooserActivity.java @@ -320,8 +320,10 @@ public class ChooserActivity extends ResolverActivity implements mResolverDrawerLayout.addOnLayoutChangeListener(this::handleLayoutChange); mResolverDrawerLayout.setOnCollapsedChangedListener( - isCollapsed -> - getChooserActivityLogger().logSharesheetExpansionChanged(isCollapsed)); + isCollapsed -> { + mChooserMultiProfilePagerAdapter.setIsCollapsed(isCollapsed); + getChooserActivityLogger().logSharesheetExpansionChanged(isCollapsed); + }); } if (DEBUG) { diff --git a/java/src/com/android/intentresolver/ChooserMultiProfilePagerAdapter.java b/java/src/com/android/intentresolver/ChooserMultiProfilePagerAdapter.java index da7dc998..c159243e 100644 --- a/java/src/com/android/intentresolver/ChooserMultiProfilePagerAdapter.java +++ b/java/src/com/android/intentresolver/ChooserMultiProfilePagerAdapter.java @@ -121,6 +121,16 @@ public class ChooserMultiProfilePagerAdapter extends GenericMultiProfilePagerAda mBottomPaddingOverrideSupplier.setEmptyStateBottomOffset(bottomOffset); } + /** + * Notify adapter about the drawer's collapse state. This will affect the app divider's + * visibility. + */ + public void setIsCollapsed(boolean isCollapsed) { + for (int i = 0, size = getItemCount(); i < size; i++) { + getAdapterForIndex(i).setAzLabelVisibility(!isCollapsed); + } + } + private static ViewGroup makeProfileView(Context context) { LayoutInflater inflater = LayoutInflater.from(context); ViewGroup rootView = (ViewGroup) inflater.inflate( diff --git a/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java b/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java index 8db03645..77ae20f5 100644 --- a/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java +++ b/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java @@ -58,7 +58,7 @@ public final class ChooserGridAdapter extends RecyclerView.Adapter 0) ? 1 : 0; } + private int getAzLabelRowPosition() { + int azRowCount = getAzLabelRowCount(); + if (azRowCount == 0) { + return -1; + } + + return getSystemRowCount() + + getProfileRowCount() + + getServiceTargetRowCount() + + getCallerAndRankedTargetRowCount(); + } + @Override public int getItemCount() { return getSystemRowCount() @@ -292,8 +306,26 @@ public final class ChooserGridAdapter extends RecyclerView.Adapter= 0) { + notifyItemChanged(azRowPos); + } + } + @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + if (holder.getItemViewType() == VIEW_TYPE_AZ_LABEL) { + holder.itemView.setVisibility( + mAzLabelVisibility ? View.VISIBLE : View.INVISIBLE); + } int viewType = ((ViewHolderBase) holder).getViewType(); switch (viewType) { case VIEW_TYPE_DIRECT_SHARE: -- cgit v1.2.3-59-g8ed1b