summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Andrey Epin <ayepin@google.com> 2023-06-10 00:35:29 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-06-10 00:35:29 +0000
commitc539911dc3821de6afa1fe9a593424c8da437d41 (patch)
treed1aadd472a96d66c1138665d621f8749a2f3f2d1 /java/src
parent386f61472f5e9881d89dcaa539f8ac11b455f901 (diff)
parentfd12c470628a561a71afcc4e6f132f07c055e5a0 (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')
-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: