From 19e1fea59099e4378f11e4f322cd673074ffbb33 Mon Sep 17 00:00:00 2001 From: arangelov Date: Tue, 10 Mar 2020 18:09:39 +0000 Subject: [PATCH] Call setAdapter from handleLayoutChange for the other profile Fixes: 150936654 Test: manual Change-Id: Ida516b215ca4e42cbf89d82c115ce8f369829e3a --- .../android/internal/app/ChooserActivity.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) 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) {