diff options
author | 2023-06-10 00:35:29 +0000 | |
---|---|---|
committer | 2023-06-10 00:35:29 +0000 | |
commit | c539911dc3821de6afa1fe9a593424c8da437d41 (patch) | |
tree | d1aadd472a96d66c1138665d621f8749a2f3f2d1 /java/src | |
parent | 386f61472f5e9881d89dcaa539f8ac11b455f901 (diff) | |
parent | fd12c470628a561a71afcc4e6f132f07c055e5a0 (diff) |
Hide app divider am: fd12c47062
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/23598033
Change-Id: I73d0d32120edfa35cede7d728465b676822669f4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java/src')
3 files changed, 47 insertions, 3 deletions
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<RecyclerView. /** * Injectable interface for any considerations that should be delegated to other components - * in the {@link ChooserActivity}. + * in the {@link com.android.intentresolver.ChooserActivity}. * TODO: determine whether any of these methods return parameters that can safely be * precomputed; whether any should be converted to `ChooserGridAdapter` setters to be * invoked by external callbacks; and whether any reflect requirements that should be moved @@ -112,6 +112,8 @@ public final class ChooserGridAdapter extends RecyclerView.Adapter<RecyclerView. private int mFooterHeight = 0; + private boolean mAzLabelVisibility = false; + public ChooserGridAdapter( Context context, ChooserActivityDelegate chooserActivityDelegate, @@ -240,6 +242,18 @@ public final class ChooserGridAdapter extends RecyclerView.Adapter<RecyclerView. return (mChooserListAdapter.getAlphaTargetCount() > 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<RecyclerView. } } + /** + * Set the app divider's visibility, when it's present. + */ + public void setAzLabelVisibility(boolean isVisible) { + if (mAzLabelVisibility == isVisible) { + return; + } + mAzLabelVisibility = isVisible; + int azRowPos = getAzLabelRowPosition(); + if (azRowPos >= 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: |