diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index c487e960854bd..c099301d20432 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -2398,17 +2398,20 @@ public class ChooserActivity extends ResolverActivity implements } final int availableWidth = right - left - v.getPaddingLeft() - v.getPaddingRight(); - if (mChooserMultiProfilePagerAdapter.getCurrentUserHandle() != getUser()) { - gridAdapter.calculateChooserTargetWidth(availableWidth); - return; - } - - if (gridAdapter.consumeLayoutRequest() + boolean isLayoutUpdated = gridAdapter.consumeLayoutRequest() || gridAdapter.calculateChooserTargetWidth(availableWidth) || recyclerView.getAdapter() == null - || mLastNumberOfChildren != recyclerView.getChildCount() - || availableWidth != mCurrAvailableWidth) { + || availableWidth != mCurrAvailableWidth; + if (isLayoutUpdated + || mLastNumberOfChildren != recyclerView.getChildCount()) { mCurrAvailableWidth = availableWidth; + if (isLayoutUpdated + && mChooserMultiProfilePagerAdapter.getCurrentUserHandle() != getUser()) { + // This fixes b/150936654 - empty work tab in share sheet when swiping + mChooserMultiProfilePagerAdapter.getActiveAdapterView() + .setAdapter(mChooserMultiProfilePagerAdapter.getCurrentRootAdapter()); + return; + } getMainThreadHandler().post(() -> { if (mResolverDrawerLayout == null || gridAdapter == null) {