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

Commit 1af81b6b authored by Michael Jurka's avatar Michael Jurka Committed by Android (Google) Code Review
Browse files

Merge "Fix Recents transition for RTL languages"

parents 29956b8c 12cdec9b
Loading
Loading
Loading
Loading
+46 −19
Original line number Diff line number Diff line
@@ -45,6 +45,8 @@ import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.AnimationUtils;
import android.view.animation.DecelerateInterpolator;
@@ -162,7 +164,7 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
            if (convertView == null) {
                convertView = createView(parent);
            }
            ViewHolder holder = (ViewHolder) convertView.getTag();
            final ViewHolder holder = (ViewHolder) convertView.getTag();

            // index is reverse since most recent appears at the bottom...
            final int index = mRecentTaskDescriptions.size() - position - 1;
@@ -178,6 +180,24 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
            }
            if (index == 0) {
                if (mAnimateIconOfFirstTask) {
                    if (mItemToAnimateInWhenWindowAnimationIsFinished != null) {
                        holder.iconView.setAlpha(1f);
                        holder.iconView.setTranslationX(0f);
                        holder.iconView.setTranslationY(0f);
                        holder.labelView.setAlpha(1f);
                        holder.labelView.setTranslationX(0f);
                        holder.labelView.setTranslationY(0f);
                        if (holder.calloutLine != null) {
                            holder.calloutLine.setAlpha(1f);
                            holder.calloutLine.setTranslationX(0f);
                            holder.calloutLine.setTranslationY(0f);
                        }
                    }
                    mItemToAnimateInWhenWindowAnimationIsFinished = null;

                    final ViewTreeObserver observer = getViewTreeObserver();
                    final OnGlobalLayoutListener animateFirstIcon = new OnGlobalLayoutListener() {
                        public void onGlobalLayout() {
                            if (mItemToAnimateInWhenWindowAnimationIsFinished != null) {
                                holder.iconView.setAlpha(1f);
                                holder.iconView.setTranslationX(0f);
@@ -192,10 +212,13 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
                                }
                            }
                            mItemToAnimateInWhenWindowAnimationIsFinished = holder;
                    final int translation = -getResources().getDimensionPixelSize(
                            int translation = -getResources().getDimensionPixelSize(
                                    R.dimen.status_bar_recents_app_icon_translate_distance);
                            final Configuration config = getResources().getConfiguration();
                            if (config.orientation == Configuration.ORIENTATION_PORTRAIT) {
                                if (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
                                    translation = -translation;
                                }
                                holder.iconView.setAlpha(0f);
                                holder.iconView.setTranslationX(translation);
                                holder.labelView.setAlpha(0f);
@@ -209,6 +232,10 @@ public class RecentsPanelView extends FrameLayout implements OnItemClickListener
                            if (!mWaitingForWindowAnimation) {
                                animateInIconOfFirstTask();
                            }
                            getViewTreeObserver().removeOnGlobalLayoutListener(this);
                        }
                    };
                    observer.addOnGlobalLayoutListener(animateFirstIcon);
                }
            }

+4 −0
Original line number Diff line number Diff line
@@ -597,6 +597,10 @@ public abstract class BaseStatusBar extends SystemUI implements
                    y = (int) ((dm.heightPixels - statusBarHeight - height) / 2f + thumbTopMargin
                            + recentsItemTopPadding + thumbBgPadding + statusBarHeight);
                }
                if (mLayoutDirection == View.LAYOUT_DIRECTION_RTL) {
                    x = dm.widthPixels - x - res
                            .getDimensionPixelSize(R.dimen.status_bar_recents_thumbnail_width);
                }

                ActivityOptions opts = ActivityOptions.makeThumbnailScaleDownAnimation(
                        getStatusBarView(),