From 531b2925211dfb2dbc22c88c3d2cac713e0e85c1 Mon Sep 17 00:00:00 2001 From: Richard MacGregor Date: Mon, 31 Aug 2015 09:06:35 -0700 Subject: Reset default view camera distance Several transition effects modify the views camera distance. Reset to the default camera distance so all transitions are consistent after switching between transitions (ie - Cylinder-in -> Flip -> Cylinder-in) Change-Id: Iee69feb5c954d1522d391e14c30ffa833666f90a Tickets: QRDL-340 and OPO-27 (cherry picked from commit 41106d9583cceddcb20286676640a3b21a25536b) --- res/values/ids.xml | 19 +++++++++++++++++++ src/com/android/launcher3/PagedView.java | 32 ++++++++++++++++++++++---------- 2 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 res/values/ids.xml diff --git a/res/values/ids.xml b/res/values/ids.xml new file mode 100644 index 000000000..9f55f905d --- /dev/null +++ b/res/values/ids.xml @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index cf4eb2aba..a95cedb2d 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -3014,7 +3014,19 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc mName = name; } - public abstract void screenScrolled(View v, int i, float scrollProgress); + public abstract void onScreenScrolled(View v, int i, float scrollProgress); + + public void screenScrolled(View v, int i, float scrollProgress) { + // Get and set the default camera distance. + // Several of the TransitionEffects set a custom distance, reset it here. + Float defaultCameraDistance = (Float) v.getTag(R.id.tag_key_default_camera_distance); + if (defaultCameraDistance == null) { + defaultCameraDistance = v.getCameraDistance(); + v.setTag(R.id.tag_key_default_camera_distance, defaultCameraDistance); + } + v.setCameraDistance(defaultCameraDistance); + onScreenScrolled(v, i, scrollProgress); + } public final String getName() { return mName; @@ -3061,7 +3073,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } @Override - public void screenScrolled(View v, int i, float scrollProgress) { + public void onScreenScrolled(View v, int i, float scrollProgress) { float scale = 1.0f + (mIn ? -0.2f : 0.1f) * Math.abs(scrollProgress); // Extra translation to account for the increase in size @@ -3084,7 +3096,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } @Override - public void screenScrolled(View v, int i, float scrollProgress) { + public void onScreenScrolled(View v, int i, float scrollProgress) { float rotation = (mUp ? TRANSITION_SCREEN_ROTATION : -TRANSITION_SCREEN_ROTATION) * scrollProgress; @@ -3114,7 +3126,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } @Override - public void screenScrolled(View v, int i, float scrollProgress) { + public void onScreenScrolled(View v, int i, float scrollProgress) { float rotation = (mIn ? 90.0f : -90.0f) * scrollProgress; if (mIn) { @@ -3137,7 +3149,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } @Override - public void screenScrolled(View v, int i, float scrollProgress) { + public void onScreenScrolled(View v, int i, float scrollProgress) { final boolean isRtl = mPagedView.isLayoutRtl(); float interpolatedProgress; float translationX; @@ -3189,7 +3201,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } @Override - public void screenScrolled(View v, int i, float scrollProgress) { + public void onScreenScrolled(View v, int i, float scrollProgress) { float scale = 1.0f - Math.abs(scrollProgress); v.setScaleX(scale); @@ -3204,7 +3216,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } @Override - public void screenScrolled(View v, int i, float scrollProgress) { + public void onScreenScrolled(View v, int i, float scrollProgress) { float rotation = -180.0f * Math.max(-1f, Math.min(1f, scrollProgress)); v.setCameraDistance(mPagedView.mDensity * PagedView.CAMERA_DISTANCE); @@ -3232,7 +3244,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } @Override - public void screenScrolled(View v, int i, float scrollProgress) { + public void onScreenScrolled(View v, int i, float scrollProgress) { float rotation = (mIn ? TRANSITION_SCREEN_ROTATION : -TRANSITION_SCREEN_ROTATION) * scrollProgress; v.setPivotX((scrollProgress + 1) * v.getMeasuredWidth() * 0.5f); @@ -3247,7 +3259,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } @Override - public void screenScrolled(View v, int i, float scrollProgress) { + public void onScreenScrolled(View v, int i, float scrollProgress) { float rotation = 90.0f * scrollProgress; v.setCameraDistance(mPagedView.mDensity * PagedView.CAMERA_DISTANCE); @@ -3266,7 +3278,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } @Override - public void screenScrolled(View v, int i, float scrollProgress) { + public void onScreenScrolled(View v, int i, float scrollProgress) { float scale = 1.0f - 0.1f * mScaleInterpolator.getInterpolation(Math.min(0.3f, Math.abs(scrollProgress)) / 0.3f); -- cgit v1.2.3