[Chooser/ResolverActivity] Add option to show preview area even if there are no apps in the tab

Add a protected method that could be overriden
to change the default behavior that hides the
content preview area when there are not items
for the current user.

This is needed for the partial screen sharing
feature as we want to show the recents app selector
no matter if we have apps available for the
current profile or not. Recent app selector is
displayed in content preview area.

Test: atest com.android.internal.app.ChooserActivityTest
Test: atest com.android.internal.app.ResolverActivityTest
Test: manual test with overidden method to check that the preview is displayed when no apps available
Bug: 233348916
Change-Id: Iecc7ea5b15cb6cd2d864bd7adc84ab2f9f445fca
This commit is contained in:
Nick Chameyev
2023-01-06 11:26:11 +00:00
parent 043714104a
commit f51b8efaed
2 changed files with 17 additions and 5 deletions

View File

@@ -2953,11 +2953,23 @@ public class ChooserActivity extends ResolverActivity implements
private boolean shouldShowStickyContentPreviewNoOrientationCheck() {
return shouldShowTabs()
&& mMultiProfilePagerAdapter.getListAdapterForUserHandle(
UserHandle.of(UserHandle.myUserId())).getCount() > 0
&& (mMultiProfilePagerAdapter.getListAdapterForUserHandle(
UserHandle.of(UserHandle.myUserId())).getCount() > 0
|| shouldShowContentPreviewWhenEmpty())
&& shouldShowContentPreview();
}
/**
* This method could be used to override the default behavior when we hide the preview area
* when the current tab doesn't have any items.
*
* @return true if we want to show the content preview area even if the tab for the current
* user is empty
*/
protected boolean shouldShowContentPreviewWhenEmpty() {
return false;
}
/**
* @return true if we want to show the content preview area
*/

View File

@@ -209,7 +209,7 @@ public class ResolverActivity extends Activity implements
* <p>Can only be used if there is a work profile.
* <p>Possible values can be either {@link #PROFILE_PERSONAL} or {@link #PROFILE_WORK}.
*/
static final String EXTRA_SELECTED_PROFILE =
protected static final String EXTRA_SELECTED_PROFILE =
"com.android.internal.app.ResolverActivity.EXTRA_SELECTED_PROFILE";
/**
@@ -224,8 +224,8 @@ public class ResolverActivity extends Activity implements
static final String EXTRA_CALLING_USER =
"com.android.internal.app.ResolverActivity.EXTRA_CALLING_USER";
static final int PROFILE_PERSONAL = AbstractMultiProfilePagerAdapter.PROFILE_PERSONAL;
static final int PROFILE_WORK = AbstractMultiProfilePagerAdapter.PROFILE_WORK;
protected static final int PROFILE_PERSONAL = AbstractMultiProfilePagerAdapter.PROFILE_PERSONAL;
protected static final int PROFILE_WORK = AbstractMultiProfilePagerAdapter.PROFILE_WORK;
private BroadcastReceiver mWorkProfileStateReceiver;
private UserHandle mHeaderCreatorUser;