diff --git a/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java b/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java index b1e356d258ee1..bcb32fb60f477 100644 --- a/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java +++ b/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java @@ -437,6 +437,9 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter { resetViewVisibilitiesForWorkProfileEmptyState(emptyStateView); emptyStateView.setVisibility(View.VISIBLE); + View container = emptyStateView.findViewById(R.id.resolver_empty_state_container); + setupContainerPadding(container); + TextView title = emptyStateView.findViewById(R.id.resolver_empty_state_title); title.setText(titleRes); @@ -463,6 +466,12 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter { activeListAdapter.markTabLoaded(); } + /** + * Sets up the padding of the view containing the empty state screens. + *

This method is meant to be overridden so that subclasses can customize the padding. + */ + protected void setupContainerPadding(View container) {} + private void showConsumerUserNoAppsAvailableEmptyState(ResolverListAdapter activeListAdapter) { ProfileDescriptor descriptor = getItem( userHandleToPageIndex(activeListAdapter.getUserHandle())); diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index 8125c55f48b5d..e20e99bd6245b 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -1757,22 +1757,33 @@ public class ResolverActivity extends Activity implements return; } final ViewGroup buttonLayout = findViewById(R.id.button_bar); - if (buttonLayout != null) { - buttonLayout.setVisibility(View.VISIBLE); - - if (!useLayoutWithDefault()) { - int inset = mSystemWindowInsets != null ? mSystemWindowInsets.bottom : 0; - buttonLayout.setPadding(buttonLayout.getPaddingLeft(), buttonLayout.getPaddingTop(), - buttonLayout.getPaddingRight(), getResources().getDimensionPixelSize( - R.dimen.resolver_button_bar_spacing) + inset); - } - mOnceButton = (Button) buttonLayout.findViewById(R.id.button_once); - mAlwaysButton = (Button) buttonLayout.findViewById(R.id.button_always); - - resetAlwaysOrOnceButtonBar(); - } else { + if (buttonLayout == null) { Log.e(TAG, "Layout unexpectedly does not have a button bar"); + return; } + ResolverListAdapter activeListAdapter = + mMultiProfilePagerAdapter.getActiveListAdapter(); + View buttonBarDivider = findViewById(R.id.resolver_button_bar_divider); + if (activeListAdapter.isTabLoaded() + && mMultiProfilePagerAdapter.shouldShowEmptyStateScreen(activeListAdapter)) { + buttonLayout.setVisibility(View.INVISIBLE); + buttonBarDivider.setVisibility(View.INVISIBLE); + return; + } + + buttonBarDivider.setVisibility(View.VISIBLE); + buttonLayout.setVisibility(View.VISIBLE); + + if (!useLayoutWithDefault()) { + int inset = mSystemWindowInsets != null ? mSystemWindowInsets.bottom : 0; + buttonLayout.setPadding(buttonLayout.getPaddingLeft(), buttonLayout.getPaddingTop(), + buttonLayout.getPaddingRight(), getResources().getDimensionPixelSize( + R.dimen.resolver_button_bar_spacing) + inset); + } + mOnceButton = (Button) buttonLayout.findViewById(R.id.button_once); + mAlwaysButton = (Button) buttonLayout.findViewById(R.id.button_always); + + resetAlwaysOrOnceButtonBar(); } private void resetAlwaysOrOnceButtonBar() { diff --git a/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java b/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java index ad31d8b2e49a6..885d1bbc5b778 100644 --- a/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java +++ b/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java @@ -213,6 +213,12 @@ public class ResolverMultiProfilePagerAdapter extends AbstractMultiProfilePagerA /* subtitleRes */ 0); } + @Override + protected void setupContainerPadding(View container) { + container.setPadding(container.getPaddingLeft(), container.getPaddingTop(), + container.getPaddingRight(), /* bottom */ 0); + } + class ResolverProfileDescriptor extends ProfileDescriptor { private ResolverListAdapter resolverListAdapter; final ListView listView; diff --git a/core/res/res/layout/resolver_empty_states.xml b/core/res/res/layout/resolver_empty_states.xml index 25615d2dc3041..fe11769e8613b 100644 --- a/core/res/res/layout/resolver_empty_states.xml +++ b/core/res/res/layout/resolver_empty_states.xml @@ -24,6 +24,7 @@ android:paddingStart="24dp" android:paddingEnd="24dp"> - - - - -