Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41106d95 authored by Richard MacGregor's avatar Richard MacGregor
Browse files

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
Ticket: OPO-27
parent 5bae6967
Loading
Loading
Loading
Loading

res/values/ids.xml

0 → 100644
+19 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2015 The CyanogenMod Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<resources>
    <item type="id" name="tag_key_default_camera_distance"/>
</resources>
 No newline at end of file
+22 −10
Original line number Diff line number Diff line
@@ -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);