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

Commit ef06550f authored by Evan Rosky's avatar Evan Rosky
Browse files

Swap z-order of tasks for default wallpaper-open animation

the defaulthandler's wallpaper-open animation reverses the
normal closing/opening task dynamic: normally we animate OPEN
as the opening-task appearing over closing; however, for the
wallpaper-open case (which presumably assumes that the "opening"
task is a 3p launcher), we actually animate the closing task
closing over the opening-task. This requires the z-order to be
swapped.

Bug: 279680678
Test: use 3p launcher and 3-button nav. open an app. press "home"
      button.
Change-Id: I37362c1ade5ee786ed93b0544d37b6b38a549f04
parent bbfaff30
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -435,6 +435,23 @@ public class DefaultTransitionHandler implements Transitions.TransitionHandler {
                        backgroundColorForTransition =
                                uiContext.getColor(R.color.overview_background);
                    }
                    if (wallpaperTransit == WALLPAPER_TRANSITION_OPEN
                            && TransitionUtil.isOpeningType(info.getType())) {
                        // Need to flip the z-order of opening/closing because the WALLPAPER_OPEN
                        // always animates the closing task over the opening one while
                        // traditionally, an OPEN transition animates the opening over the closing.

                        // See Transitions#setupAnimHierarchy for details about these variables.
                        final int numChanges = info.getChanges().size();
                        final int zSplitLine = numChanges + 1;
                        if (TransitionUtil.isOpeningType(mode)) {
                            final int layer = zSplitLine - i;
                            startTransaction.setLayer(change.getLeash(), layer);
                        } else if (TransitionUtil.isClosingType(mode)) {
                            final int layer = zSplitLine + numChanges - i;
                            startTransaction.setLayer(change.getLeash(), layer);
                        }
                    }
                }

                final float cornerRadius;