Merge "Reduces search clipping when work profile is not present." into tm-qpr-dev
This commit is contained in:
@@ -88,6 +88,9 @@ public abstract class BaseAllAppsContainerView<T extends Context & ActivityConte
|
|||||||
public static final float PULL_MULTIPLIER = .02f;
|
public static final float PULL_MULTIPLIER = .02f;
|
||||||
public static final float FLING_VELOCITY_MULTIPLIER = 1200f;
|
public static final float FLING_VELOCITY_MULTIPLIER = 1200f;
|
||||||
|
|
||||||
|
// Render the header protection at all times to debug clipping issues.
|
||||||
|
private static final boolean DEBUG_HEADER_PROTECTION = false;
|
||||||
|
|
||||||
private final Paint mHeaderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
private final Paint mHeaderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||||
private final Rect mInsets = new Rect();
|
private final Rect mInsets = new Rect();
|
||||||
|
|
||||||
@@ -129,7 +132,6 @@ public abstract class BaseAllAppsContainerView<T extends Context & ActivityConte
|
|||||||
private final int mScrimColor;
|
private final int mScrimColor;
|
||||||
private final int mHeaderProtectionColor;
|
private final int mHeaderProtectionColor;
|
||||||
protected final float mHeaderThreshold;
|
protected final float mHeaderThreshold;
|
||||||
private int mHeaderBottomAdjustment;
|
|
||||||
private ScrimView mScrimView;
|
private ScrimView mScrimView;
|
||||||
private int mHeaderColor;
|
private int mHeaderColor;
|
||||||
private int mTabsProtectionAlpha;
|
private int mTabsProtectionAlpha;
|
||||||
@@ -142,8 +144,6 @@ public abstract class BaseAllAppsContainerView<T extends Context & ActivityConte
|
|||||||
mScrimColor = Themes.getAttrColor(context, R.attr.allAppsScrimColor);
|
mScrimColor = Themes.getAttrColor(context, R.attr.allAppsScrimColor);
|
||||||
mHeaderThreshold = getResources().getDimensionPixelSize(
|
mHeaderThreshold = getResources().getDimensionPixelSize(
|
||||||
R.dimen.dynamic_grid_cell_border_spacing);
|
R.dimen.dynamic_grid_cell_border_spacing);
|
||||||
mHeaderBottomAdjustment = getResources().getDimensionPixelSize(
|
|
||||||
R.dimen.all_apps_header_bottom_adjustment);
|
|
||||||
mHeaderProtectionColor = Themes.getAttrColor(context, R.attr.allappsHeaderProtectionColor);
|
mHeaderProtectionColor = Themes.getAttrColor(context, R.attr.allappsHeaderProtectionColor);
|
||||||
|
|
||||||
mWorkManager = new WorkProfileManager(
|
mWorkManager = new WorkProfileManager(
|
||||||
@@ -728,17 +728,29 @@ public abstract class BaseAllAppsContainerView<T extends Context & ActivityConte
|
|||||||
if (!mHeader.isHeaderProtectionSupported()) {
|
if (!mHeader.isHeaderProtectionSupported()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mHeaderPaint.setColor(mHeaderColor);
|
if (DEBUG_HEADER_PROTECTION) {
|
||||||
mHeaderPaint.setAlpha((int) (getAlpha() * Color.alpha(mHeaderColor)));
|
mHeaderPaint.setColor(Color.MAGENTA);
|
||||||
|
mHeaderPaint.setAlpha(255);
|
||||||
|
} else {
|
||||||
|
mHeaderPaint.setColor(mHeaderColor);
|
||||||
|
mHeaderPaint.setAlpha((int) (getAlpha() * Color.alpha(mHeaderColor)));
|
||||||
|
}
|
||||||
if (mHeaderPaint.getColor() != mScrimColor && mHeaderPaint.getColor() != 0) {
|
if (mHeaderPaint.getColor() != mScrimColor && mHeaderPaint.getColor() != 0) {
|
||||||
int bottom = getHeaderBottom();
|
int bottom = getHeaderBottom();
|
||||||
|
FloatingHeaderView headerView = getFloatingHeaderView();
|
||||||
if (!mUsingTabs) {
|
if (!mUsingTabs) {
|
||||||
bottom += getFloatingHeaderView().getPaddingBottom() - mHeaderBottomAdjustment;
|
// Add protection which is otherwise added when tabs scroll up.
|
||||||
|
bottom += headerView.getTabsAdditionalPaddingTop();
|
||||||
}
|
}
|
||||||
canvas.drawRect(0, 0, canvas.getWidth(), bottom, mHeaderPaint);
|
canvas.drawRect(0, 0, canvas.getWidth(), bottom, mHeaderPaint);
|
||||||
int tabsHeight = getFloatingHeaderView().getPeripheralProtectionHeight();
|
int tabsHeight = headerView.getPeripheralProtectionHeight();
|
||||||
if (mTabsProtectionAlpha > 0 && tabsHeight != 0) {
|
if (mTabsProtectionAlpha > 0 && tabsHeight != 0) {
|
||||||
mHeaderPaint.setAlpha((int) (getAlpha() * mTabsProtectionAlpha));
|
if (DEBUG_HEADER_PROTECTION) {
|
||||||
|
mHeaderPaint.setColor(Color.BLUE);
|
||||||
|
mHeaderPaint.setAlpha(255);
|
||||||
|
} else {
|
||||||
|
mHeaderPaint.setAlpha((int) (getAlpha() * mTabsProtectionAlpha));
|
||||||
|
}
|
||||||
canvas.drawRect(0, bottom, canvas.getWidth(), bottom + tabsHeight, mHeaderPaint);
|
canvas.drawRect(0, bottom, canvas.getWidth(), bottom + tabsHeight, mHeaderPaint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -277,7 +277,7 @@ public class FloatingHeaderView extends LinearLayout implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMaxTranslation() {
|
int getMaxTranslation() {
|
||||||
if (mMaxTranslation == 0 && (mTabsHidden || mFloatingRowsCollapsed)) {
|
if (mMaxTranslation == 0 && (mTabsHidden || mFloatingRowsCollapsed)) {
|
||||||
return getResources().getDimensionPixelSize(R.dimen.all_apps_search_bar_bottom_padding);
|
return getResources().getDimensionPixelSize(R.dimen.all_apps_search_bar_bottom_padding);
|
||||||
} else if (mMaxTranslation > 0 && mTabsHidden) {
|
} else if (mMaxTranslation > 0 && mTabsHidden) {
|
||||||
@@ -334,7 +334,8 @@ public class FloatingHeaderView extends LinearLayout implements
|
|||||||
|
|
||||||
int clipTop = getPaddingTop() - mTabsAdditionalPaddingTop;
|
int clipTop = getPaddingTop() - mTabsAdditionalPaddingTop;
|
||||||
if (mTabsHidden) {
|
if (mTabsHidden) {
|
||||||
clipTop += getPaddingBottom() - mTabsAdditionalPaddingBottom;
|
// Add back spacing that is otherwise covered by the tabs.
|
||||||
|
clipTop += mTabsAdditionalPaddingTop;
|
||||||
}
|
}
|
||||||
mRVClip.top = mTabsHidden || mFloatingRowsCollapsed ? clipTop : 0;
|
mRVClip.top = mTabsHidden || mFloatingRowsCollapsed ? clipTop : 0;
|
||||||
mHeaderClip.top = clipTop;
|
mHeaderClip.top = clipTop;
|
||||||
@@ -405,6 +406,10 @@ public class FloatingHeaderView extends LinearLayout implements
|
|||||||
return mFloatingRowsHeight;
|
return mFloatingRowsHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getTabsAdditionalPaddingTop() {
|
||||||
|
return mTabsAdditionalPaddingTop;
|
||||||
|
}
|
||||||
|
|
||||||
int getTabsAdditionalPaddingBottom() {
|
int getTabsAdditionalPaddingBottom() {
|
||||||
return mTabsAdditionalPaddingBottom;
|
return mTabsAdditionalPaddingBottom;
|
||||||
}
|
}
|
||||||
@@ -473,7 +478,7 @@ public class FloatingHeaderView extends LinearLayout implements
|
|||||||
/**
|
/**
|
||||||
* Returns visible height of FloatingHeaderView contents requiring header protection
|
* Returns visible height of FloatingHeaderView contents requiring header protection
|
||||||
*/
|
*/
|
||||||
public int getPeripheralProtectionHeight() {
|
int getPeripheralProtectionHeight() {
|
||||||
if (!mHeaderProtectionSupported) {
|
if (!mHeaderProtectionSupported) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user