diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2017-12-21 12:40:38 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2017-12-22 11:21:18 -0800 |
commit | 9328a51271dbcf122021dcf5e40a6cc41a0cb90f (patch) | |
tree | ed1f06b8309c465293bf2aaaa1d7c8332a4bf4f8 /quickstep | |
parent | 8c8fdec3e967286106c369db18e8bb69e5da4542 (diff) | |
download | android_packages_apps_Trebuchet-9328a51271dbcf122021dcf5e40a6cc41a0cb90f.tar.gz android_packages_apps_Trebuchet-9328a51271dbcf122021dcf5e40a6cc41a0cb90f.tar.bz2 android_packages_apps_Trebuchet-9328a51271dbcf122021dcf5e40a6cc41a0cb90f.zip |
Adding translationX to workspace card to that it is slightly visible
behind the first card
Change-Id: Idc0c169fb92510e74b983160778bd9dbacf29943
Diffstat (limited to 'quickstep')
3 files changed, 27 insertions, 9 deletions
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml index 4f8595705..a5716ea69 100644 --- a/quickstep/res/values/dimens.xml +++ b/quickstep/res/values/dimens.xml @@ -22,4 +22,5 @@ <dimen name="quickstep_fling_threshold_velocity">500dp</dimen> <dimen name="quickstep_fling_min_velocity">250dp</dimen> + <dimen name="workspace_overview_offset_x">-30dp</dimen> </resources> diff --git a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java index f34aa85c9..f1da81748 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java @@ -22,6 +22,7 @@ import android.view.View; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; +import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.Workspace; import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; @@ -49,10 +50,12 @@ public class OverviewState extends LauncherState { } RecentsView rv = launcher.getOverviewPanel(); + float overlap = 0; if (rv.getCurrentPage() >= rv.getFirstTaskIndex()) { Utilities.scaleRectAboutCenter(pageRect, WORKSPACE_SCALE_ON_SCROLL); + overlap = launcher.getResources().getDimension(R.dimen.workspace_overview_offset_x); } - return getScaleAndTranslationForPageRect(launcher, pageRect); + return getScaleAndTranslationForPageRect(launcher, overlap, pageRect); } @Override @@ -77,15 +80,23 @@ public class OverviewState extends LauncherState { return launcher.getOverviewPanel(); } - public static float[] getScaleAndTranslationForPageRect(Launcher launcher, Rect pageRect) { + public static float[] getScaleAndTranslationForPageRect(Launcher launcher, float offsetX, + Rect pageRect) { Workspace ws = launcher.getWorkspace(); float childWidth = ws.getNormalChildWidth(); Rect insets = launcher.getDragLayer().getInsets(); float scale = pageRect.width() / childWidth; + float translationX = offsetX / scale; + if (Utilities.isRtl(launcher.getResources())) { + translationX = -translationX; + } + float halfHeight = ws.getHeight() / 2; float childTop = halfHeight - scale * (halfHeight - ws.getPaddingTop() - insets.top); - return new float[] {scale, pageRect.top - childTop}; + float translationY = pageRect.top - childTop; + + return new float[] {scale, translationX, translationY}; } } diff --git a/quickstep/src/com/android/launcher3/uioverrides/WorkspaceCard.java b/quickstep/src/com/android/launcher3/uioverrides/WorkspaceCard.java index 990d28648..9f7cffeeb 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/WorkspaceCard.java +++ b/quickstep/src/com/android/launcher3/uioverrides/WorkspaceCard.java @@ -39,7 +39,7 @@ import com.android.quickstep.RecentsView.ScrollState; public class WorkspaceCard extends FrameLayout implements PageCallbacks, OnClickListener { private final Rect mTempRect = new Rect(); - private final float[] mEvaluatedFloats = new float[2]; + private final float[] mEvaluatedFloats = new float[3]; private final FloatArrayEvaluator mEvaluator = new FloatArrayEvaluator(mEvaluatedFloats); // UI related information @@ -151,21 +151,25 @@ public class WorkspaceCard extends FrameLayout implements PageCallbacks, OnClick @Override public int onPageScroll(ScrollState scrollState) { - setTranslationX(scrollState.distanceFromScreenCenter); - float factor = scrollState.linearInterpolation; float scale = factor * WORKSPACE_SCALE_ON_SCROLL + (1 - factor); setScaleX(scale); setScaleY(scale); + float translateX = scrollState.distanceFromScreenCenter; if (mIsWorkspaceScrollingEnabled) { initUiData(); mEvaluator.evaluate(factor, mScaleAndTranslatePage0, mScaleAndTranslatePage1); mWorkspace.setScaleX(mEvaluatedFloats[0]); mWorkspace.setScaleY(mEvaluatedFloats[0]); - mWorkspace.setTranslationY(mEvaluatedFloats[1]); + mWorkspace.setTranslationX(mEvaluatedFloats[1]); + mWorkspace.setTranslationY(mEvaluatedFloats[2]); + translateX += mEvaluatedFloats[1]; } + + setTranslationX(translateX); + return SCROLL_TYPE_WORKSPACE; } @@ -174,13 +178,15 @@ public class WorkspaceCard extends FrameLayout implements PageCallbacks, OnClick return; } + float overlap = getResources().getDimension(R.dimen.workspace_overview_offset_x); + RecentsView.getPageRect(mLauncher, mTempRect); mScaleAndTranslatePage0 = OverviewState - .getScaleAndTranslationForPageRect(mLauncher, mTempRect); + .getScaleAndTranslationForPageRect(mLauncher, 0, mTempRect); Rect scaledDown = new Rect(mTempRect); Utilities.scaleRectAboutCenter(scaledDown, WORKSPACE_SCALE_ON_SCROLL); mScaleAndTranslatePage1 = OverviewState - .getScaleAndTranslationForPageRect(mLauncher, scaledDown); + .getScaleAndTranslationForPageRect(mLauncher, overlap, scaledDown); mUIDataValid = true; } } |