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

Commit 8a972cf3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[QS] Fix irritating animation for QS"

parents 752d7ca1 a8401998
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -26,14 +26,26 @@ import com.android.systemui.plugins.qs.QSTile.State;
@DependsOn(target = QSIconView.class)
@DependsOn(target = QSTile.class)
public abstract class QSTileView extends LinearLayout {
    public static final int VERSION = 1;
    public static final int VERSION = 2;

    public QSTileView(Context context) {
        super(context);
    }

    public abstract View updateAccessibilityOrder(View previousView);

    /**
     * Returns a {@link QSIconView} containing only the icon for this tile. Use
     * {@link #getIconWithBackground()} to retrieve the entire tile (background & peripherals
     * included).
     */
    public abstract QSIconView getIcon();

    /**
     * Returns a {@link View} containing the icon for this tile along with the accompanying
     * background circle/peripherals. To retrieve only the inner icon, use {@link #getIcon()}.
     */
    public abstract View getIconWithBackground();
    public abstract void init(QSTile tile);
    public abstract void onStateChanged(State state);

+13 −9
Original line number Diff line number Diff line
@@ -44,7 +44,11 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
    public static final float EXPANDED_TILE_DELAY = .86f;

    private final ArrayList<View> mAllViews = new ArrayList<>();
    private final ArrayList<View> mTopFiveQs = new ArrayList<>();
    /**
     * List of {@link View}s representing Quick Settings that are being animated from the quick QS
     * position to the normal QS panel.
     */
    private final ArrayList<View> mQuickQsViews = new ArrayList<>();
    private final QuickQSPanel mQuickQsPanel;
    private final QSPanel mQsPanel;
    private final QS mQs;
@@ -157,7 +161,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha

        clearAnimationState();
        mAllViews.clear();
        mTopFiveQs.clear();
        mQuickQsViews.clear();

        QSTileLayout tileLayout = mQsPanel.getTileLayout();
        mAllViews.add((View) tileLayout);
@@ -198,7 +202,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
                translationXBuilder.addFloat(tileView, "translationX", -xDiff, 0);
                translationYBuilder.addFloat(tileView, "translationY", -yDiff, 0);

                mTopFiveQs.add(tileView.getIcon());
                mQuickQsViews.add(tileView.getIconWithBackground());
                mAllViews.add(tileView.getIcon());
                mAllViews.add(quickTileView);
            } else if (mFullRows && isIconInAnimatedRow(count)) {
@@ -322,9 +326,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
    @Override
    public void onAnimationAtEnd() {
        mQuickQsPanel.setVisibility(View.INVISIBLE);
        final int N = mTopFiveQs.size();
        final int N = mQuickQsViews.size();
        for (int i = 0; i < N; i++) {
            mTopFiveQs.get(i).setVisibility(View.VISIBLE);
            mQuickQsViews.get(i).setVisibility(View.VISIBLE);
        }
    }

@@ -332,9 +336,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
    public void onAnimationStarted() {
        mQuickQsPanel.setVisibility(mOnKeyguard ? View.INVISIBLE : View.VISIBLE);
        if (mOnFirstPage) {
            final int N = mTopFiveQs.size();
            final int N = mQuickQsViews.size();
            for (int i = 0; i < N; i++) {
                mTopFiveQs.get(i).setVisibility(View.INVISIBLE);
                mQuickQsViews.get(i).setVisibility(View.INVISIBLE);
            }
        }
    }
@@ -348,9 +352,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
            v.setTranslationX(0);
            v.setTranslationY(0);
        }
        final int N2 = mTopFiveQs.size();
        final int N2 = mQuickQsViews.size();
        for (int i = 0; i < N2; i++) {
            mTopFiveQs.get(i).setVisibility(View.VISIBLE);
            mQuickQsViews.get(i).setVisibility(View.VISIBLE);
        }
    }

+4 −0
Original line number Diff line number Diff line
@@ -236,6 +236,10 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
        return mIcon;
    }

    public View getIconWithBackground() {
        return mIconFrame;
    }

    @Override
    public boolean performClick() {
        mClicked = true;