Merge "Fix handling of bad image previews." am: 9e388035c9

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1455516

Change-Id: I56d8c73381d357b76928519b2d50f56e7ba3a931
This commit is contained in:
Alison Cichowlas
2020-10-09 14:02:27 +00:00
committed by Automerger Merge Worker

View File

@@ -951,7 +951,7 @@ public class ChooserActivity extends ResolverActivity implements
updateStickyContentPreview(); updateStickyContentPreview();
if (shouldShowStickyContentPreview() if (shouldShowStickyContentPreview()
|| mChooserMultiProfilePagerAdapter || mChooserMultiProfilePagerAdapter
.getCurrentRootAdapter().getContentPreviewRowCount() != 0) { .getCurrentRootAdapter().getSystemRowCount() != 0) {
logActionShareWithPreview(); logActionShareWithPreview();
} }
return postRebuildListInternal(rebuildCompleted); return postRebuildListInternal(rebuildCompleted);
@@ -1316,13 +1316,14 @@ public class ChooserActivity extends ResolverActivity implements
ViewGroup parent) { ViewGroup parent) {
ViewGroup contentPreviewLayout = (ViewGroup) layoutInflater.inflate( ViewGroup contentPreviewLayout = (ViewGroup) layoutInflater.inflate(
R.layout.chooser_grid_preview_image, parent, false); R.layout.chooser_grid_preview_image, parent, false);
ViewGroup imagePreview = contentPreviewLayout.findViewById(R.id.content_preview_image_area);
final ViewGroup actionRow = final ViewGroup actionRow =
(ViewGroup) contentPreviewLayout.findViewById(R.id.chooser_action_row); (ViewGroup) contentPreviewLayout.findViewById(R.id.chooser_action_row);
//TODO: addActionButton(actionRow, createCopyButton()); //TODO: addActionButton(actionRow, createCopyButton());
addActionButton(actionRow, createNearbyButton(targetIntent)); addActionButton(actionRow, createNearbyButton(targetIntent));
mPreviewCoord = new ContentPreviewCoordinator(contentPreviewLayout, true); mPreviewCoord = new ContentPreviewCoordinator(contentPreviewLayout, false);
String action = targetIntent.getAction(); String action = targetIntent.getAction();
if (Intent.ACTION_SEND.equals(action)) { if (Intent.ACTION_SEND.equals(action)) {
@@ -1342,7 +1343,7 @@ public class ChooserActivity extends ResolverActivity implements
if (imageUris.size() == 0) { if (imageUris.size() == 0) {
Log.i(TAG, "Attempted to display image preview area with zero" Log.i(TAG, "Attempted to display image preview area with zero"
+ " available images detected in EXTRA_STREAM list"); + " available images detected in EXTRA_STREAM list");
contentPreviewLayout.setVisibility(View.GONE); imagePreview.setVisibility(View.GONE);
return contentPreviewLayout; return contentPreviewLayout;
} }
@@ -2680,7 +2681,7 @@ public class ChooserActivity extends ResolverActivity implements
final int bottomInset = mSystemWindowInsets != null final int bottomInset = mSystemWindowInsets != null
? mSystemWindowInsets.bottom : 0; ? mSystemWindowInsets.bottom : 0;
int offset = bottomInset; int offset = bottomInset;
int rowsToShow = gridAdapter.getContentPreviewRowCount() int rowsToShow = gridAdapter.getSystemRowCount()
+ gridAdapter.getProfileRowCount() + gridAdapter.getProfileRowCount()
+ gridAdapter.getServiceTargetRowCount() + gridAdapter.getServiceTargetRowCount()
+ gridAdapter.getCallerAndRankedTargetRowCount(); + gridAdapter.getCallerAndRankedTargetRowCount();
@@ -3273,7 +3274,7 @@ public class ChooserActivity extends ResolverActivity implements
public int getRowCount() { public int getRowCount() {
return (int) ( return (int) (
getContentPreviewRowCount() getSystemRowCount()
+ getProfileRowCount() + getProfileRowCount()
+ getServiceTargetRowCount() + getServiceTargetRowCount()
+ getCallerAndRankedTargetRowCount() + getCallerAndRankedTargetRowCount()
@@ -3289,7 +3290,7 @@ public class ChooserActivity extends ResolverActivity implements
* content preview. Not to be confused with the sticky content preview which is above the * content preview. Not to be confused with the sticky content preview which is above the
* personal and work tabs. * personal and work tabs.
*/ */
public int getContentPreviewRowCount() { public int getSystemRowCount() {
// For the tabbed case we show the sticky content preview above the tabs, // For the tabbed case we show the sticky content preview above the tabs,
// please refer to shouldShowStickyContentPreview // please refer to shouldShowStickyContentPreview
if (shouldShowTabs()) { if (shouldShowTabs()) {
@@ -3299,8 +3300,7 @@ public class ChooserActivity extends ResolverActivity implements
return 0; return 0;
} }
if (mHideContentPreview || mChooserListAdapter == null if (mChooserListAdapter == null || mChooserListAdapter.getCount() == 0) {
|| mChooserListAdapter.getCount() == 0) {
return 0; return 0;
} }
@@ -3342,7 +3342,7 @@ public class ChooserActivity extends ResolverActivity implements
@Override @Override
public int getItemCount() { public int getItemCount() {
return (int) ( return (int) (
getContentPreviewRowCount() getSystemRowCount()
+ getProfileRowCount() + getProfileRowCount()
+ getServiceTargetRowCount() + getServiceTargetRowCount()
+ getCallerAndRankedTargetRowCount() + getCallerAndRankedTargetRowCount()
@@ -3397,7 +3397,7 @@ public class ChooserActivity extends ResolverActivity implements
public int getItemViewType(int position) { public int getItemViewType(int position) {
int count; int count;
int countSum = (count = getContentPreviewRowCount()); int countSum = (count = getSystemRowCount());
if (count > 0 && position < countSum) return VIEW_TYPE_CONTENT_PREVIEW; if (count > 0 && position < countSum) return VIEW_TYPE_CONTENT_PREVIEW;
countSum += (count = getProfileRowCount()); countSum += (count = getProfileRowCount());
@@ -3621,7 +3621,7 @@ public class ChooserActivity extends ResolverActivity implements
} }
int getListPosition(int position) { int getListPosition(int position) {
position -= getContentPreviewRowCount() + getProfileRowCount(); position -= getSystemRowCount() + getProfileRowCount();
final int serviceCount = mChooserListAdapter.getServiceTargetCount(); final int serviceCount = mChooserListAdapter.getServiceTargetCount();
final int serviceRows = (int) Math.ceil((float) serviceCount final int serviceRows = (int) Math.ceil((float) serviceCount