Merge "Change wallpaper depth value in AllApps bottomsheet" into tm-qpr-dev
This commit is contained in:
@@ -16,8 +16,7 @@
|
||||
package com.android.launcher3.taskbar.allapps;
|
||||
|
||||
import static com.android.launcher3.LauncherState.ALL_APPS;
|
||||
import static com.android.launcher3.anim.Interpolators.AGGRESSIVE_EASE;
|
||||
import static com.android.systemui.animation.Interpolators.EMPHASIZED_ACCELERATE;
|
||||
import static com.android.launcher3.anim.Interpolators.EMPHASIZED;
|
||||
|
||||
import android.animation.PropertyValuesHolder;
|
||||
import android.content.Context;
|
||||
@@ -60,7 +59,7 @@ public class TaskbarAllAppsSlideInView extends AbstractSlideInView<TaskbarAllApp
|
||||
if (animate) {
|
||||
mOpenCloseAnimator.setValues(
|
||||
PropertyValuesHolder.ofFloat(TRANSLATION_SHIFT, TRANSLATION_SHIFT_OPENED));
|
||||
mOpenCloseAnimator.setInterpolator(AGGRESSIVE_EASE);
|
||||
mOpenCloseAnimator.setInterpolator(EMPHASIZED);
|
||||
mOpenCloseAnimator.setDuration(
|
||||
ALL_APPS.getTransitionDuration(mActivityContext, true /* isToState */)).start();
|
||||
} else {
|
||||
@@ -87,7 +86,7 @@ public class TaskbarAllAppsSlideInView extends AbstractSlideInView<TaskbarAllApp
|
||||
|
||||
@Override
|
||||
protected Interpolator getIdleInterpolator() {
|
||||
return EMPHASIZED_ACCELERATE;
|
||||
return EMPHASIZED;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -16,14 +16,17 @@
|
||||
package com.android.launcher3.uioverrides.states;
|
||||
|
||||
import static com.android.launcher3.anim.Interpolators.DEACCEL_2;
|
||||
import static com.android.launcher3.anim.Interpolators.LINEAR;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_ALLAPPS;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.DeviceProfile.DeviceProfileListenable;
|
||||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.LauncherState;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.util.Themes;
|
||||
|
||||
/**
|
||||
@@ -41,9 +44,9 @@ public class AllAppsState extends LauncherState {
|
||||
@Override
|
||||
public <DEVICE_PROFILE_CONTEXT extends Context & DeviceProfileListenable>
|
||||
int getTransitionDuration(DEVICE_PROFILE_CONTEXT context, boolean isToState) {
|
||||
return !context.getDeviceProfile().isTablet && isToState
|
||||
? 600
|
||||
: isToState ? 500 : 300;
|
||||
return context.getDeviceProfile().isTablet
|
||||
? 500
|
||||
: isToState ? 600 : 300;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -77,10 +80,23 @@ public class AllAppsState extends LauncherState {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getDepthUnchecked(Context context) {
|
||||
// The scrim fades in at approximately 50% of the swipe gesture.
|
||||
// This means that the depth should be greater than 1, in order to fully zoom out.
|
||||
return 2f;
|
||||
protected <DEVICE_PROFILE_CONTEXT extends Context & DeviceProfile.DeviceProfileListenable>
|
||||
float getDepthUnchecked(DEVICE_PROFILE_CONTEXT context) {
|
||||
if (context.getDeviceProfile().isTablet) {
|
||||
// The goal is to set wallpaper to zoom at workspaceContentScale when in AllApps.
|
||||
// When depth is 0, wallpaper zoom is set to maxWallpaperScale.
|
||||
// When depth is 1, wallpaper zoom is set to 1.
|
||||
// For depth to achieve zoom set to maxWallpaperScale * workspaceContentScale:
|
||||
float maxWallpaperScale = context.getResources().getFloat(
|
||||
com.android.internal.R.dimen.config_wallpaperMaxScale);
|
||||
return Utilities.mapToRange(
|
||||
maxWallpaperScale * context.getDeviceProfile().workspaceContentScale,
|
||||
maxWallpaperScale, 1f, 0f, 1f, LINEAR);
|
||||
} else {
|
||||
// The scrim fades in at approximately 50% of the swipe gesture.
|
||||
// This means that the depth should be greater than 1, in order to fully zoom out.
|
||||
return 2f;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -195,7 +195,8 @@ public final class TaskViewUtils {
|
||||
|
||||
int taskIndex = recentsView.indexOfChild(v);
|
||||
Context context = v.getContext();
|
||||
DeviceProfile dp = BaseActivity.fromContext(context).getDeviceProfile();
|
||||
BaseActivity baseActivity = BaseActivity.fromContext(context);
|
||||
DeviceProfile dp = baseActivity.getDeviceProfile();
|
||||
boolean showAsGrid = dp.isTablet;
|
||||
boolean parallaxCenterAndAdjacentTask =
|
||||
taskIndex != recentsView.getCurrentPage() && !showAsGrid;
|
||||
@@ -368,7 +369,7 @@ public final class TaskViewUtils {
|
||||
});
|
||||
|
||||
if (depthController != null) {
|
||||
out.setFloat(depthController, DEPTH, BACKGROUND_APP.getDepth(context),
|
||||
out.setFloat(depthController, DEPTH, BACKGROUND_APP.getDepth(baseActivity),
|
||||
TOUCH_RESPONSE_INTERPOLATOR);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,7 +265,8 @@ public abstract class LauncherState implements BaseState<LauncherState> {
|
||||
*
|
||||
* 0 means completely zoomed in, without blurs. 1 is zoomed out, with blurs.
|
||||
*/
|
||||
public final float getDepth(Context context) {
|
||||
public final <DEVICE_PROFILE_CONTEXT extends Context & DeviceProfile.DeviceProfileListenable>
|
||||
float getDepth(DEVICE_PROFILE_CONTEXT context) {
|
||||
return getDepth(context,
|
||||
BaseDraggingActivity.fromContext(context).getDeviceProfile().isMultiWindowMode);
|
||||
}
|
||||
@@ -275,14 +276,16 @@ public abstract class LauncherState implements BaseState<LauncherState> {
|
||||
*
|
||||
* @see #getDepth(Context).
|
||||
*/
|
||||
public final float getDepth(Context context, boolean isMultiWindowMode) {
|
||||
public final <DEVICE_PROFILE_CONTEXT extends Context & DeviceProfile.DeviceProfileListenable>
|
||||
float getDepth(DEVICE_PROFILE_CONTEXT context, boolean isMultiWindowMode) {
|
||||
if (isMultiWindowMode) {
|
||||
return 0;
|
||||
}
|
||||
return getDepthUnchecked(context);
|
||||
}
|
||||
|
||||
protected float getDepthUnchecked(Context context) {
|
||||
protected <DEVICE_PROFILE_CONTEXT extends Context & DeviceProfile.DeviceProfileListenable>
|
||||
float getDepthUnchecked(DEVICE_PROFILE_CONTEXT context) {
|
||||
return 0f;
|
||||
}
|
||||
|
||||
|
||||
@@ -57,6 +57,10 @@ public class Interpolators {
|
||||
public static final Interpolator DECELERATED_EASE = new PathInterpolator(0, 0, .2f, 1f);
|
||||
public static final Interpolator ACCELERATED_EASE = new PathInterpolator(0.4f, 0, 1f, 1f);
|
||||
|
||||
/**
|
||||
* The default emphasized interpolator. Used for hero / emphasized movement of content.
|
||||
*/
|
||||
public static final Interpolator EMPHASIZED = createEmphasizedInterpolator();
|
||||
public static final Interpolator EMPHASIZED_ACCELERATE = new PathInterpolator(
|
||||
0.3f, 0f, 0.8f, 0.15f);
|
||||
public static final Interpolator EMPHASIZED_DECELERATE = new PathInterpolator(
|
||||
@@ -87,7 +91,6 @@ public class Interpolators {
|
||||
public static final Interpolator TOUCH_RESPONSE_INTERPOLATOR_ACCEL_DEACCEL =
|
||||
v -> ACCEL_DEACCEL.getInterpolation(TOUCH_RESPONSE_INTERPOLATOR.getInterpolation(v));
|
||||
|
||||
|
||||
/**
|
||||
* Inversion of ZOOM_OUT, compounded with an ease-out.
|
||||
*/
|
||||
@@ -218,4 +221,14 @@ public class Interpolators {
|
||||
public static Interpolator reverse(Interpolator interpolator) {
|
||||
return t -> 1 - interpolator.getInterpolation(1 - t);
|
||||
}
|
||||
|
||||
// Create the default emphasized interpolator
|
||||
private static PathInterpolator createEmphasizedInterpolator() {
|
||||
Path path = new Path();
|
||||
// Doing the same as fast_out_extra_slow_in
|
||||
path.moveTo(0f, 0f);
|
||||
path.cubicTo(0.05f, 0f, 0.133333f, 0.06f, 0.166666f, 0.4f);
|
||||
path.cubicTo(0.208333f, 0.82f, 0.25f, 1f, 1f, 1f);
|
||||
return new PathInterpolator(path);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.launcher3.touch;
|
||||
import static com.android.launcher3.LauncherState.ALL_APPS;
|
||||
import static com.android.launcher3.LauncherState.NORMAL;
|
||||
import static com.android.launcher3.anim.Interpolators.DECELERATED_EASE;
|
||||
import static com.android.launcher3.anim.Interpolators.EMPHASIZED;
|
||||
import static com.android.launcher3.anim.Interpolators.EMPHASIZED_ACCELERATE;
|
||||
import static com.android.launcher3.anim.Interpolators.EMPHASIZED_DECELERATE;
|
||||
import static com.android.launcher3.anim.Interpolators.FINAL_FRAME;
|
||||
@@ -199,8 +200,10 @@ public class AllAppsSwipeController extends AbstractStateChangeTouchController {
|
||||
Interpolators.reverse(ALL_APPS_SCRIM_RESPONDER));
|
||||
config.setInterpolator(ANIM_ALL_APPS_FADE, FINAL_FRAME);
|
||||
if (!config.userControlled) {
|
||||
config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED_ACCELERATE);
|
||||
config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED);
|
||||
}
|
||||
config.setInterpolator(ANIM_WORKSPACE_SCALE, EMPHASIZED);
|
||||
config.setInterpolator(ANIM_DEPTH, EMPHASIZED);
|
||||
} else {
|
||||
if (config.userControlled) {
|
||||
config.setInterpolator(ANIM_DEPTH, Interpolators.reverse(BLUR_MANUAL));
|
||||
@@ -238,8 +241,10 @@ public class AllAppsSwipeController extends AbstractStateChangeTouchController {
|
||||
config.setInterpolator(ANIM_ALL_APPS_FADE, INSTANT);
|
||||
config.setInterpolator(ANIM_SCRIM_FADE, ALL_APPS_SCRIM_RESPONDER);
|
||||
if (!config.userControlled) {
|
||||
config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED_DECELERATE);
|
||||
config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED);
|
||||
}
|
||||
config.setInterpolator(ANIM_WORKSPACE_SCALE, EMPHASIZED);
|
||||
config.setInterpolator(ANIM_DEPTH, EMPHASIZED);
|
||||
} else {
|
||||
config.setInterpolator(ANIM_DEPTH, config.userControlled ? BLUR_MANUAL : BLUR_ATOMIC);
|
||||
config.setInterpolator(ANIM_WORKSPACE_FADE,
|
||||
|
||||
@@ -32,7 +32,6 @@ import com.android.launcher3.util.Themes;
|
||||
public class AllAppsState extends LauncherState {
|
||||
|
||||
private static final float PARALLAX_COEFFICIENT = .125f;
|
||||
private static final float WORKSPACE_SCALE_FACTOR = 0.97f;
|
||||
|
||||
private static final int STATE_FLAGS = FLAG_WORKSPACE_INACCESSIBLE;
|
||||
|
||||
@@ -60,7 +59,8 @@ public class AllAppsState extends LauncherState {
|
||||
|
||||
@Override
|
||||
public ScaleAndTranslation getWorkspaceScaleAndTranslation(Launcher launcher) {
|
||||
return new ScaleAndTranslation(WORKSPACE_SCALE_FACTOR, NO_OFFSET, NO_OFFSET);
|
||||
return new ScaleAndTranslation(launcher.getDeviceProfile().workspaceContentScale, NO_OFFSET,
|
||||
NO_OFFSET);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -71,7 +71,7 @@ public class AllAppsState extends LauncherState {
|
||||
ScaleAndTranslation overviewScaleAndTranslation = LauncherState.OVERVIEW
|
||||
.getWorkspaceScaleAndTranslation(launcher);
|
||||
return new ScaleAndTranslation(
|
||||
WORKSPACE_SCALE_FACTOR,
|
||||
launcher.getDeviceProfile().workspaceContentScale,
|
||||
overviewScaleAndTranslation.translationX,
|
||||
overviewScaleAndTranslation.translationY);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user