Merge "Maintaining separate alpha for x and y translations" into ub-launcher3-calgary
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 0e4fe8b..24736d4 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -199,6 +199,21 @@
}
}
+ // Direction used for moving the workspace and hotseat UI
+ public enum Direction {
+ X (TRANSLATION_X),
+ Y (TRANSLATION_Y);
+
+ private final Property<View, Float> viewProperty;
+
+ Direction(Property<View, Float> viewProperty) {
+ this.viewProperty = viewProperty;
+ }
+ }
+
+ private float[] mPageAlpha = new float[] {1, 1};
+ private float[] mHotseatAlpha = new float[] {1, 1};
+
@ViewDebug.ExportedProperty(category = "launcher")
private State mState = State.NORMAL;
private boolean mIsSwitchingState = false;
@@ -1388,50 +1403,56 @@
// TODO(adamcohen): figure out a final effect here. We may need to recommend
// different effects based on device performance. On at least one relatively high-end
// device I've tried, translating the launcher causes things to get quite laggy.
- setWorkspaceTranslation(TRANSLATION_X, transX, alpha);
- setHotseatTranslation(TRANSLATION_X, transX, alpha);
+ setWorkspaceTranslation(Direction.X, transX, alpha);
+ setHotseatTranslation(Direction.X, transX, alpha);
}
/**
* Moves the workspace UI in the provided direction.
- * @param direction either {@link #TRANSLATION_X} or {@link #TRANSLATION_Y}
- * @param translation the amound of shift.
+ * @param direction the direction to move the workspace
+ * @param translation the amount of shift.
* @param alpha the alpha for the workspace page
*/
- public void setWorkspaceTranslation(
- Property<View, Float> direction, float translation, float alpha) {
+ public void setWorkspaceTranslation(Direction direction, float translation, float alpha) {
+ Property<View, Float> property = direction.viewProperty;
+ mPageAlpha[direction.ordinal()] = alpha;
+ float finalAlpha = mPageAlpha[0] * mPageAlpha[1];
+
View currentChild = getChildAt(getCurrentPage());
if (currentChild != null) {
- direction.set(currentChild, translation);
- currentChild.setAlpha(alpha);
+ property.set(currentChild, translation);
+ currentChild.setAlpha(finalAlpha);
}
// When the animation finishes, reset all pages, just in case we missed a page.
if (Float.compare(translation, 0) == 0) {
for (int i = getChildCount() - 1; i >= 0; i--) {
View child = getChildAt(i);
- direction.set(child, translation);
- child.setAlpha(alpha);
+ property.set(child, translation);
+ child.setAlpha(finalAlpha);
}
}
}
/**
* Moves the Hotseat UI in the provided direction.
- * @param direction either {@link #TRANSLATION_X} or {@link #TRANSLATION_Y}
+ * @param direction the direction to move the workspace
* @param translation the amound of shift.
* @param alpha the alpha for the hotseat page
*/
- public void setHotseatTranslation(
- Property<View, Float> direction, float translation, float alpha) {
+ public void setHotseatTranslation(Direction direction, float translation, float alpha) {
+ Property<View, Float> property = direction.viewProperty;
+ mHotseatAlpha[direction.ordinal()] = alpha;
+ float finalAlpha = mHotseatAlpha[0] * mHotseatAlpha[1];
+
View pageIndicator = getPageIndicator();
if (pageIndicator != null) {
- direction.set(pageIndicator, translation);
- pageIndicator.setAlpha(alpha);
+ property.set(pageIndicator, translation);
+ pageIndicator.setAlpha(finalAlpha);
}
- direction.set(mLauncher.getHotseat(), translation);
- mLauncher.getHotseat().setAlpha(alpha);
+ property.set(mLauncher.getHotseat(), translation);
+ mLauncher.getHotseat().setAlpha(finalAlpha);
}
@Override
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
index 4bdd9f4..f30e08e 100644
--- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java
+++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
@@ -18,6 +18,7 @@
import com.android.launcher3.LauncherAnimUtils;
import com.android.launcher3.PagedView;
import com.android.launcher3.Workspace;
+import com.android.launcher3.Workspace.Direction;
import com.android.launcher3.util.TouchController;
/**
@@ -222,10 +223,10 @@
mDecelInterpolator.getInterpolation(alpha))));
mAppsView.getContentView().setAlpha(alpha);
mAppsView.setTranslationY(progress);
- mWorkspace.setWorkspaceTranslation(View.TRANSLATION_Y,
+ mWorkspace.setWorkspaceTranslation(Direction.Y,
PARALLAX_COEFFICIENT *(-mTranslation + progress),
mAccelInterpolator.getInterpolation(workspaceHotseatAlpha));
- mWorkspace.setHotseatTranslation(View.TRANSLATION_Y, -mTranslation + progress,
+ mWorkspace.setHotseatTranslation(Direction.Y, -mTranslation + progress,
mAccelInterpolator.getInterpolation(workspaceHotseatAlpha));
}