summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserActivity.java10
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java1
-rw-r--r--java/src/com/android/intentresolver/v2/MultiProfilePagerAdapter.java46
-rw-r--r--java/src/com/android/intentresolver/v2/emptystate/EmptyStateUiHelper.java22
4 files changed, 49 insertions, 30 deletions
diff --git a/java/src/com/android/intentresolver/v2/ChooserActivity.java b/java/src/com/android/intentresolver/v2/ChooserActivity.java
index a755b9e9..9a8b0e2a 100644
--- a/java/src/com/android/intentresolver/v2/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/v2/ChooserActivity.java
@@ -1473,7 +1473,8 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
rowsToShow--;
}
} else {
- ViewGroup currentEmptyStateView = getActiveEmptyStateView();
+ ViewGroup currentEmptyStateView =
+ mChooserMultiProfilePagerAdapter.getActiveEmptyStateView();
if (currentEmptyStateView.getVisibility() == View.VISIBLE) {
offset += currentEmptyStateView.getHeight();
}
@@ -1507,11 +1508,6 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
return PROFILE_PERSONAL;
}
- private ViewGroup getActiveEmptyStateView() {
- int currentPage = mChooserMultiProfilePagerAdapter.getCurrentPage();
- return mChooserMultiProfilePagerAdapter.getEmptyStateView(currentPage);
- }
-
@Override // ResolverListCommunicator
public void onHandlePackagesChanged(ResolverListAdapter listAdapter) {
mChooserMultiProfilePagerAdapter.getActiveListAdapter().notifyDataSetChanged();
@@ -1782,8 +1778,6 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
if (shouldShowTabs()) {
mChooserMultiProfilePagerAdapter
.setEmptyStateBottomOffset(insets.getSystemWindowInsetBottom());
- mChooserMultiProfilePagerAdapter.setupContainerPadding(
- getActiveEmptyStateView().findViewById(com.android.internal.R.id.resolver_empty_state_container));
}
WindowInsets result = super.onApplyWindowInsets(v, insets);
diff --git a/java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java b/java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java
index d3c9efea..8ca976bc 100644
--- a/java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java
+++ b/java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java
@@ -128,6 +128,7 @@ public class ChooserMultiProfilePagerAdapter extends MultiProfilePagerAdapter<
public void setEmptyStateBottomOffset(int bottomOffset) {
mBottomPaddingOverrideSupplier.setEmptyStateBottomOffset(bottomOffset);
+ setupContainerPadding();
}
/**
diff --git a/java/src/com/android/intentresolver/v2/MultiProfilePagerAdapter.java b/java/src/com/android/intentresolver/v2/MultiProfilePagerAdapter.java
index b2a167e1..ad9614b9 100644
--- a/java/src/com/android/intentresolver/v2/MultiProfilePagerAdapter.java
+++ b/java/src/com/android/intentresolver/v2/MultiProfilePagerAdapter.java
@@ -89,7 +89,6 @@ public class MultiProfilePagerAdapter<
private final Function<SinglePageAdapterT, ListAdapterT> mListAdapterExtractor;
private final AdapterBinder<PageViewT, SinglePageAdapterT> mAdapterBinder;
private final Supplier<ViewGroup> mPageViewInflater;
- private final Supplier<Optional<Integer>> mContainerBottomPaddingOverrideSupplier;
private final ImmutableList<ProfileDescriptor<PageViewT, SinglePageAdapterT>> mItems;
@@ -123,19 +122,20 @@ public class MultiProfilePagerAdapter<
mListAdapterExtractor = listAdapterExtractor;
mAdapterBinder = adapterBinder;
mPageViewInflater = pageViewInflater;
- mContainerBottomPaddingOverrideSupplier = containerBottomPaddingOverrideSupplier;
ImmutableList.Builder<ProfileDescriptor<PageViewT, SinglePageAdapterT>> items =
new ImmutableList.Builder<>();
for (SinglePageAdapterT adapter : adapters) {
- items.add(createProfileDescriptor(adapter));
+ items.add(createProfileDescriptor(adapter, containerBottomPaddingOverrideSupplier));
}
mItems = items.build();
}
private ProfileDescriptor<PageViewT, SinglePageAdapterT> createProfileDescriptor(
- SinglePageAdapterT adapter) {
- return new ProfileDescriptor<>(mPageViewInflater.get(), adapter);
+ SinglePageAdapterT adapter,
+ Supplier<Optional<Integer>> containerBottomPaddingOverrideSupplier) {
+ return new ProfileDescriptor<>(
+ mPageViewInflater.get(), adapter, containerBottomPaddingOverrideSupplier);
}
public void setOnProfileSelectedListener(OnProfileSelectedListener listener) {
@@ -235,10 +235,14 @@ public class MultiProfilePagerAdapter<
return mItems.get(pageIndex);
}
- public ViewGroup getEmptyStateView(int pageIndex) {
+ private ViewGroup getEmptyStateView(int pageIndex) {
return getItem(pageIndex).getEmptyStateView();
}
+ public ViewGroup getActiveEmptyStateView() {
+ return getEmptyStateView(getCurrentPage());
+ }
+
/**
* Returns the number of {@link ProfileDescriptor} objects.
* <p>For a normal consumer device with only one user returns <code>1</code>.
@@ -454,12 +458,10 @@ public class MultiProfilePagerAdapter<
descriptor.mRootView.findViewById(
com.android.internal.R.id.resolver_list).setVisibility(View.GONE);
descriptor.mEmptyStateUi.resetViewVisibilities();
+ descriptor.setupContainerPadding();
ViewGroup emptyStateView = descriptor.getEmptyStateView();
- View container = emptyStateView.findViewById(
- com.android.internal.R.id.resolver_empty_state_container);
- setupContainerPadding(container);
TextView titleView = emptyStateView.findViewById(
com.android.internal.R.id.resolver_empty_state_title);
@@ -493,17 +495,11 @@ public class MultiProfilePagerAdapter<
}
/**
- * Sets up the padding of the view containing the empty state screens.
- * <p>This method is meant to be overridden so that subclasses can customize the padding.
+ * Sets up the padding of the view containing the empty state screens for the current adapter
+ * view.
*/
- public void setupContainerPadding(View container) {
- Optional<Integer> bottomPaddingOverride = mContainerBottomPaddingOverrideSupplier.get();
- bottomPaddingOverride.ifPresent(paddingBottom ->
- container.setPadding(
- container.getPaddingLeft(),
- container.getPaddingTop(),
- container.getPaddingRight(),
- paddingBottom));
+ protected final void setupContainerPadding() {
+ getItem(getCurrentPage()).setupContainerPadding();
}
public void showListView(ListAdapterT activeListAdapter) {
@@ -534,17 +530,25 @@ public class MultiProfilePagerAdapter<
private final SinglePageAdapterT mAdapter;
private final PageViewT mView;
- ProfileDescriptor(ViewGroup rootView, SinglePageAdapterT adapter) {
+ ProfileDescriptor(
+ ViewGroup rootView,
+ SinglePageAdapterT adapter,
+ Supplier<Optional<Integer>> containerBottomPaddingOverrideSupplier) {
mRootView = rootView;
mAdapter = adapter;
mEmptyStateView = rootView.findViewById(com.android.internal.R.id.resolver_empty_state);
mView = (PageViewT) rootView.findViewById(com.android.internal.R.id.resolver_list);
- mEmptyStateUi = new EmptyStateUiHelper(rootView);
+ mEmptyStateUi =
+ new EmptyStateUiHelper(rootView, containerBottomPaddingOverrideSupplier);
}
protected ViewGroup getEmptyStateView() {
return mEmptyStateView;
}
+
+ private void setupContainerPadding() {
+ mEmptyStateUi.setupContainerPadding();
+ }
}
/** Listener interface for changes between the per-profile UI tabs. */
diff --git a/java/src/com/android/intentresolver/v2/emptystate/EmptyStateUiHelper.java b/java/src/com/android/intentresolver/v2/emptystate/EmptyStateUiHelper.java
index 7230b042..fc852f5c 100644
--- a/java/src/com/android/intentresolver/v2/emptystate/EmptyStateUiHelper.java
+++ b/java/src/com/android/intentresolver/v2/emptystate/EmptyStateUiHelper.java
@@ -18,16 +18,36 @@ package com.android.intentresolver.v2.emptystate;
import android.view.View;
import android.view.ViewGroup;
+import java.util.Optional;
+import java.util.function.Supplier;
+
/**
* Helper for building `MultiProfilePagerAdapter` tab UIs for profile tabs that are "blocked" by
* some empty-state status.
*/
public class EmptyStateUiHelper {
private final View mEmptyStateView;
+ private final Supplier<Optional<Integer>> mContainerBottomPaddingOverrideSupplier;
- public EmptyStateUiHelper(ViewGroup rootView) {
+ public EmptyStateUiHelper(
+ ViewGroup rootView,
+ Supplier<Optional<Integer>> containerBottomPaddingOverrideSupplier) {
mEmptyStateView =
rootView.requireViewById(com.android.internal.R.id.resolver_empty_state);
+ mContainerBottomPaddingOverrideSupplier = containerBottomPaddingOverrideSupplier;
+ }
+
+ /** Sets up the padding of the view containing the empty state screens. */
+ public void setupContainerPadding() {
+ View container = mEmptyStateView.requireViewById(
+ com.android.internal.R.id.resolver_empty_state_container);
+ Optional<Integer> bottomPaddingOverride = mContainerBottomPaddingOverrideSupplier.get();
+ bottomPaddingOverride.ifPresent(paddingBottom ->
+ container.setPadding(
+ container.getPaddingLeft(),
+ container.getPaddingTop(),
+ container.getPaddingRight(),
+ paddingBottom));
}
public void resetViewVisibilities() {