Merge "Simplifying scrim drawable initialization." into ub-launcher3-master

This commit is contained in:
Sunny Goyal 2018-11-02 18:00:04 +00:00 committed by Android (Google) Code Review
commit b1513bd811
1 changed files with 17 additions and 23 deletions

View File

@ -121,7 +121,6 @@ public class WorkspaceAndHotseatScrim implements
private Workspace mWorkspace;
private final boolean mHasSysUiScrim;
private boolean mDrawTopScrim, mDrawBottomScrim;
private final RectF mFinalMaskRect = new RectF();
@ -149,15 +148,9 @@ public class WorkspaceAndHotseatScrim implements
mMaskHeight = Utilities.pxFromDp(ALPHA_MASK_BITMAP_DP,
view.getResources().getDisplayMetrics());
mHasSysUiScrim = !mWallpaperColorInfo.supportsDarkText();
if (mHasSysUiScrim) {
mTopScrim = Themes.getAttrDrawable(view.getContext(), R.attr.workspaceStatusBarScrim);
mBottomMask = createDitheredAlphaMask();
} else {
mTopScrim = null;
mBottomMask = null;
}
mTopScrim = Themes.getAttrDrawable(view.getContext(), R.attr.workspaceStatusBarScrim);
mBottomMask = mTopScrim == null ? null : createDitheredAlphaMask();
mHideSysUiScrim = mTopScrim == null;
view.addOnAttachStateChangeListener(this);
onExtractedColorsChanged(mWallpaperColorInfo);
@ -185,7 +178,7 @@ public class WorkspaceAndHotseatScrim implements
canvas.restore();
}
if (!mHideSysUiScrim && mHasSysUiScrim) {
if (!mHideSysUiScrim) {
if (mSysUiProgress <= 0) {
mAnimateScrimOnNextDraw = false;
return;
@ -213,8 +206,9 @@ public class WorkspaceAndHotseatScrim implements
}
public void onInsetsChanged(Rect insets) {
mDrawTopScrim = insets.top > 0;
mDrawBottomScrim = !mLauncher.getDeviceProfile().isVerticalBarLayout();
mDrawTopScrim = mTopScrim != null && insets.top > 0;
mDrawBottomScrim = mBottomMask != null &&
!mLauncher.getDeviceProfile().isVerticalBarLayout();
}
private void setScrimProgress(float progress) {
@ -230,7 +224,7 @@ public class WorkspaceAndHotseatScrim implements
mWallpaperColorInfo.addOnChangeListener(this);
onExtractedColorsChanged(mWallpaperColorInfo);
if (mHasSysUiScrim) {
if (mTopScrim != null) {
IntentFilter filter = new IntentFilter(ACTION_SCREEN_OFF);
filter.addAction(ACTION_USER_PRESENT); // When the device wakes up + keyguard is gone
mRoot.getContext().registerReceiver(mReceiver, filter);
@ -240,7 +234,7 @@ public class WorkspaceAndHotseatScrim implements
@Override
public void onViewDetachedFromWindow(View view) {
mWallpaperColorInfo.removeOnChangeListener(this);
if (mHasSysUiScrim) {
if (mTopScrim != null) {
mRoot.getContext().unregisterReceiver(mReceiver);
}
}
@ -259,14 +253,14 @@ public class WorkspaceAndHotseatScrim implements
}
public void setSize(int w, int h) {
if (mHasSysUiScrim) {
if (mTopScrim != null) {
mTopScrim.setBounds(0, 0, w, h);
mFinalMaskRect.set(0, h - mMaskHeight, w, h);
}
}
public void hideSysUiScrim(boolean hideSysUiScrim) {
mHideSysUiScrim = hideSysUiScrim;
mHideSysUiScrim = hideSysUiScrim || (mTopScrim == null);
if (!hideSysUiScrim) {
mAnimateScrimOnNextDraw = true;
}
@ -281,18 +275,18 @@ public class WorkspaceAndHotseatScrim implements
}
private void reapplySysUiAlpha() {
if (mHasSysUiScrim) {
reapplySysUiAlphaNoInvalidate();
if (!mHideSysUiScrim) {
invalidate();
}
reapplySysUiAlphaNoInvalidate();
if (!mHideSysUiScrim) {
invalidate();
}
}
private void reapplySysUiAlphaNoInvalidate() {
float factor = mSysUiProgress * mSysUiAnimMultiplier;
mBottomMaskPaint.setAlpha(Math.round(MAX_HOTSEAT_SCRIM_ALPHA * factor));
mTopScrim.setAlpha(Math.round(255 * factor));
if (mTopScrim != null) {
mTopScrim.setAlpha(Math.round(255 * factor));
}
}
public void invalidate() {