summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Andrey Epin <ayepin@google.com> 2023-06-10 00:32:15 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-06-10 00:32:15 +0000
commitb2cd784a61a4c1ae2a8ed6c75ee7bf5b913013e2 (patch)
treee586dfb61c90c1aec759f551cbac857895edaf83 /java/src
parent29f5c250fc39627dc462a91e0c2738090bfa204d (diff)
parentfd12c470628a561a71afcc4e6f132f07c055e5a0 (diff)
Hide app divider am: fd12c47062
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/23598033 Change-Id: I6c6faede6d24ba4a9ade97a06a356a3b9481c794 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java6
-rw-r--r--java/src/com/android/intentresolver/ChooserMultiProfilePagerAdapter.java10
-rw-r--r--java/src/com/android/intentresolver/grid/ChooserGridAdapter.java34
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: