Allapps motion changes for landscape
Scrim and Gradient alpha starting from 0
Change-Id: If200539f3915ff32885712cff868d74d014c340f
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
index dd0d238..5182a5b 100644
--- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java
+++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
@@ -276,7 +276,8 @@
private void updateLightStatusBar(float shift) {
// Do not modify status bar on landscape as all apps is not full bleed.
- if (mLauncher.getDeviceProfile().isVerticalBarLayout()) {
+ if (!FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS
+ && mLauncher.getDeviceProfile().isVerticalBarLayout()) {
return;
}
// Use a light status bar (dark icons) if all apps is behind at least half of the status
diff --git a/src/com/android/launcher3/graphics/GradientView.java b/src/com/android/launcher3/graphics/GradientView.java
index c5b7693..8f16e93 100644
--- a/src/com/android/launcher3/graphics/GradientView.java
+++ b/src/com/android/launcher3/graphics/GradientView.java
@@ -30,6 +30,7 @@
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Interpolator;
+import com.android.launcher3.Launcher;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
@@ -59,12 +60,15 @@
private final Context mAppContext;
private final Paint mDebugPaint = DEBUG ? new Paint() : null;
private final Interpolator mAccelerator = new AccelerateInterpolator();
+ private final float mAlphaStart;
public GradientView(Context context, AttributeSet attrs) {
super(context, attrs);
this.mAppContext = context.getApplicationContext();
this.mMaskHeight = Utilities.pxFromDp(GRADIENT_ALPHA_MASK_LENGTH_DP,
mAppContext.getResources().getDisplayMetrics());
+ this.mAlphaStart = Launcher.getLauncher(context)
+ .getDeviceProfile().isVerticalBarLayout() ? 0 : 100;
if (sFinalGradientMask == null) {
sFinalGradientMask = Utilities.convertToAlphaMask(
@@ -122,9 +126,8 @@
float head = 0.29f;
float linearProgress = head + (mProgress * (1f - head));
float startMaskY = (1f - linearProgress) * mHeight - mMaskHeight * linearProgress;
- float startAlpha = 100;
- float interpolatedAlpha = (255 - startAlpha) * mAccelerator.getInterpolation(mProgress);
- mPaint.setAlpha((int) (startAlpha + interpolatedAlpha));
+ float interpolatedAlpha = (255 - mAlphaStart) * mAccelerator.getInterpolation(mProgress);
+ mPaint.setAlpha((int) (mAlphaStart + interpolatedAlpha));
mAlphaMaskRect.set(0, startMaskY, mWidth, startMaskY + mMaskHeight);
mFinalMaskRect.set(0, startMaskY + mMaskHeight, mWidth, mHeight);
canvas.drawBitmap(sAlphaGradientMask, null, mAlphaMaskRect, mPaint);
diff --git a/src/com/android/launcher3/graphics/ScrimView.java b/src/com/android/launcher3/graphics/ScrimView.java
index feb3f03..5c739ac 100644
--- a/src/com/android/launcher3/graphics/ScrimView.java
+++ b/src/com/android/launcher3/graphics/ScrimView.java
@@ -29,6 +29,7 @@
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Interpolator;
+import com.android.launcher3.Launcher;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
@@ -56,12 +57,15 @@
private float mProgress;
private final Interpolator mAccelerator = new AccelerateInterpolator();
private final Paint mDebugPaint = DEBUG ? new Paint() : null;
+ private final int mAlphaStart;
public ScrimView(Context context, AttributeSet attrs) {
super(context, attrs);
mMaskHeight = Utilities.pxFromDp(MASK_HEIGHT_DP, getResources().getDisplayMetrics());
mHeadStart = (int) (mMaskHeight * MASK_START_LENGTH_FACTOR);
mPaint.setColor(SCRIM_COLOR);
+ mAlphaStart = Launcher.getLauncher(context)
+ .getDeviceProfile().isVerticalBarLayout() ? 0 : 55;
if (sFinalScrimMask == null) {
sFinalScrimMask = Utilities.convertToAlphaMask(
@@ -91,7 +95,8 @@
setTranslationY(linTranslationY);
if (APPLY_ALPHA) {
- int alpha = 55 + (int) (200f * mAccelerator.getInterpolation(progress));
+ int alpha = mAlphaStart + (int) ((255f - mAlphaStart)
+ * mAccelerator.getInterpolation(progress));
mPaint.setAlpha(alpha);
invalidate();
}