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

Commit 6b600cf1 authored by Pablo Gamito's avatar Pablo Gamito
Browse files

Use legacy transitions in legacy transition system

The new activity transitions are currently only supported in shell so we want to replace them with the old transitions when running using the legacy transition system

Fixes: 215512394

Test: Flash and make sure we are using the old activity transitions when shell transitions are disabled
Change-Id: I602852b16effa150fe697262a7d7e506c464d62a
parent 9ebb08d2
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -98,6 +98,10 @@ public class TransitionAnimation {

    private static final String DEFAULT_PACKAGE = "android";

    // TODO (b/215515255): remove once we full migrate to shell transitions
    private static final boolean SHELL_TRANSITIONS_ENABLED =
            SystemProperties.getBoolean("persist.debug.shell_transit", false);

    private final Context mContext;
    private final String mTag;

@@ -252,6 +256,9 @@ public class TransitionAnimation {
                resId = ent.array.getResourceId(animAttr, 0);
            }
        }
        if (!SHELL_TRANSITIONS_ENABLED) {
            resId = updateToLegacyIfNeeded(resId);
        }
        resId = updateToTranslucentAnimIfNeeded(resId, transit);
        if (ResourceId.isValid(resId)) {
            return loadAnimationSafely(context, resId, mTag);
@@ -259,6 +266,24 @@ public class TransitionAnimation {
        return null;
    }

    /**
     * Replace animations that are not compatible with the legacy transition system with ones that
     * are compatible with it.
     * TODO (b/215515255): remove once we full migrate to shell transitions
     */
    private int updateToLegacyIfNeeded(int anim) {
        if (anim == R.anim.activity_open_enter) {
            return R.anim.activity_open_enter_legacy;
        } else if (anim == R.anim.activity_open_exit) {
            return R.anim.activity_open_exit_legacy;
        } else if (anim == R.anim.activity_close_enter) {
            return R.anim.activity_close_enter_legacy;
        } else if (anim == R.anim.activity_close_exit) {
            return R.anim.activity_close_exit_legacy;
        }
        return anim;
    }

    /** Load animation by attribute Id from a specific AnimationStyle resource. */
    @Nullable
    public Animation loadAnimationAttr(String packageName, int animStyleResId, int animAttr,
+34 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, The Android Open Source 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.
*/
-->

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <scale
        android:fromXScale="1.1"
        android:toXScale="1"
        android:fromYScale="1.1"
        android:toYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillEnabled="true"
        android:fillBefore="true"
        android:fillAfter="true"
        android:interpolator="@interpolator/fast_out_extra_slow_in"
        android:duration="400"/>
</set>
 No newline at end of file
+44 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, The Android Open Source 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.
*/
-->

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false"
    android:zAdjustment="top">
    <alpha
        android:fromAlpha="1"
        android:toAlpha="0.0"
        android:fillEnabled="true"
        android:fillBefore="true"
        android:fillAfter="true"
        android:interpolator="@interpolator/linear"
        android:startOffset="33"
        android:duration="50"/>
    <scale
        android:fromXScale="1"
        android:toXScale="0.9"
        android:fromYScale="1"
        android:toYScale="0.9"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillEnabled="true"
        android:fillBefore="true"
        android:fillAfter="true"
        android:interpolator="@interpolator/fast_out_extra_slow_in"
        android:duration="400"/>
</set>
+42 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?><!--
/*
** Copyright 2009, The Android Open Source 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.
*/
-->

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <alpha
        android:fromAlpha="0"
        android:toAlpha="1.0"
        android:fillEnabled="true"
        android:fillBefore="true"
        android:fillAfter="true"
        android:interpolator="@interpolator/linear"
        android:startOffset="50"
        android:duration="50"/>
    <scale
        android:fromXScale="0.85"
        android:toXScale="1"
        android:fromYScale="0.85"
        android:toYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillEnabled="true"
        android:fillBefore="true"
        android:fillAfter="true"
        android:interpolator="@interpolator/fast_out_extra_slow_in"
        android:duration="400"/>
</set>
+45 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?><!--
/*
** Copyright 2009, The Android Open Source 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.
*/
-->

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">

    <!-- Fade out, over a black surface, which simulates a black scrim -->
    <alpha
        android:fromAlpha="1"
        android:toAlpha="0.4"
        android:fillEnabled="true"
        android:fillBefore="true"
        android:fillAfter="true"
        android:interpolator="@interpolator/linear"
        android:startOffset="83"
        android:duration="167"/>

    <scale
        android:fromXScale="1"
        android:toXScale="1.05"
        android:fromYScale="1"
        android:toYScale="1.05"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillEnabled="true"
        android:fillBefore="true"
        android:fillAfter="true"
        android:interpolator="@interpolator/fast_out_extra_slow_in"
        android:duration="400"/>
</set>
 No newline at end of file
Loading