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

Commit 5da602f5 authored by Amin Shaikh's avatar Amin Shaikh
Browse files

Fix QS -> QQS animation.

- Show the "fancy" animation if the user has not scrolled down in QS
- Fix the "second page" animation to fade out the QS tiles as the QQS
tiles appear

Bug: 72736470
Test: visual
Change-Id: I30b7e004aafd8a96a0950499a91b88d887d6270e
parent 5ce2d49b
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -20,11 +20,12 @@ import android.view.View.OnAttachStateChangeListener;
import android.view.View.OnLayoutChangeListener;

import com.android.systemui.Dependency;
import com.android.systemui.plugins.qs.*;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTileView;
import com.android.systemui.qs.PagedTileLayout.PageListener;
import com.android.systemui.qs.QSPanel.QSTileLayout;
import com.android.systemui.qs.QSHost.Callback;
import com.android.systemui.qs.QSPanel.QSTileLayout;
import com.android.systemui.qs.TouchAnimator.Builder;
import com.android.systemui.qs.TouchAnimator.Listener;
import com.android.systemui.tuner.TunerService;
@@ -61,6 +62,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
    private TouchAnimator mTranslationXAnimator;
    private TouchAnimator mTranslationYAnimator;
    private TouchAnimator mNonfirstPageAnimator;
    private TouchAnimator mNonfirstPageDelayedAnimator;
    private TouchAnimator mBrightnessAnimator;

    private boolean mOnKeyguard;
@@ -83,10 +85,10 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
        QSTileLayout tileLayout = mQsPanel.getTileLayout();
        if (tileLayout instanceof PagedTileLayout) {
            mPagedLayout = ((PagedTileLayout) tileLayout);
            mPagedLayout.setPageListener(this);
        } else {
            Log.w(TAG, "QS Not using page layout");
        }
        panel.setPageListener(this);
    }

    public void onRtlChanged() {
@@ -271,6 +273,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
                .setListener(mNonFirstPageListener)
                .setEndDelay(.5f)
                .build();
        mNonfirstPageDelayedAnimator = new TouchAnimator.Builder()
                .setStartDelay(.14f)
                .addFloat(tileLayout, "alpha", 0, 1).build();
    }

    private boolean isIconInAnimatedRow(int count) {
@@ -315,6 +320,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
            }
        } else {
            mNonfirstPageAnimator.setPosition(position);
            mNonfirstPageDelayedAnimator.setPosition(position);
        }
    }

+14 −0
Original line number Diff line number Diff line
@@ -281,6 +281,20 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
        }
    }

    public void setPageListener(final PagedTileLayout.PageListener pageListener) {
        if (mTileLayout instanceof PagedTileLayout) {
            ((PagedTileLayout) mTileLayout).setPageListener(pageListener);
        } else {
            mScrollLayout.setOnScrollChangeListener(new OnScrollChangeListener() {
                @Override
                public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX,
                        int oldScrollY) {
                    pageListener.onPageChanged(scrollY == 0);
                }
            });
        }
    }

    public boolean isExpanded() {
        return mExpanded;
    }