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

Commit 920c7aa2 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Fix credit card animation

Test: manual
Bug: 186251234
Fixes: 186426700
Change-Id: Id81aa3c7fab7ef80faa42aca447501c476464bd2
parent d2b8ec4f
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -46,6 +46,15 @@ public abstract class QSTileView extends LinearLayout {
     * background circle/peripherals. To retrieve only the inner icon, use {@link #getIcon()}.
     */
    public abstract View getIconWithBackground();

    /**
     * Returns the {@link View} containing the icon on the right
     *
     * @see com.android.systemui.qs.tileimpl.QSTileViewHorizontal#sideView
     */
    public View getSecondaryIcon() {
        return null;
    }
    public abstract void init(QSTile tile);
    public abstract void onStateChanged(State state);

+15 −0
Original line number Diff line number Diff line
@@ -305,6 +305,8 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
                        }

                        mQQSTileHeightAnimator.addView(quickTileView);

                        // Label containers
                        View qqsLabelContainer = quickTileView.getLabelContainer();
                        View qsLabelContainer = tileView.getLabelContainer();

@@ -316,6 +318,19 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
                        translationYBuilder.addFloat(qsLabelContainer, "translationY", -yDiff, 0);
                        mAllViews.add(qqsLabelContainer);
                        mAllViews.add(qsLabelContainer);

                        // Secondary icon
                        View qqsSecondaryIcon = quickTileView.getSecondaryIcon();
                        View qsSecondaryIcon = tileView.getSecondaryIcon();

                        getRelativePosition(loc1, qqsSecondaryIcon, view);
                        getRelativePosition(loc2, qsSecondaryIcon, view);
                        yDiff = loc2[1] - loc1[1] - yOffset;

                        translationYBuilder.addFloat(qqsSecondaryIcon, "translationY", 0, yDiff);
                        translationYBuilder.addFloat(qsSecondaryIcon, "translationY", -yDiff, 0);
                        mAllViews.add(qqsSecondaryIcon);
                        mAllViews.add(qsSecondaryIcon);
                    } else { // These tiles disappear when expanding
                        firstPageBuilder.addFloat(quickTileView, "alpha", 1, 0);
                        translationYBuilder.addFloat(quickTileView, "translationY", 0, yDiff);
+20 −20
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.graphics.drawable.RippleDrawable
import android.service.quicksettings.Tile.STATE_ACTIVE
import android.view.Gravity
import android.view.View
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.RelativeLayout
@@ -43,7 +44,7 @@ open class QSTileViewHorizontal(
    private var paintColor = Color.WHITE
    private var paintAnimator: ValueAnimator? = null
    private var labelAnimator: ValueAnimator? = null
    private var mSideView: ImageView = ImageView(mContext)
    private var sideView: ImageView = ImageView(mContext)
    override var heightOverride: Int = HeightOverrideable.NO_OVERRIDE

    init {
@@ -59,13 +60,14 @@ open class QSTileViewHorizontal(
        val iconSize = context.resources.getDimensionPixelSize(R.dimen.qs_icon_size)
        addView(mIcon, 0, LayoutParams(iconSize, iconSize))

        mSideView.visibility = View.GONE
        addView(
                mSideView,
                -1,
                LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).apply {
        sideView.visibility = View.GONE
        val sideViewLayoutParams = LayoutParams(WRAP_CONTENT, WRAP_CONTENT).apply {
            gravity = Gravity.CENTER_VERTICAL
        })
            marginStart = context.resources.getDimensionPixelSize(R.dimen.qs_label_container_margin)
        }
        addView(sideView, -1, sideViewLayoutParams)
        sideView.adjustViewBounds = true
        sideView.scaleType = ImageView.ScaleType.FIT_CENTER

        mColorLabelActive = ColorStateList.valueOf(getColorForState(getContext(), STATE_ACTIVE))
        changeLabelColor(getLabelColor(mState)) // Matches the default state of the tile
@@ -89,14 +91,14 @@ open class QSTileViewHorizontal(
        mLabelContainer.setPadding(0, 0, 0, 0)
        (mLabelContainer.layoutParams as MarginLayoutParams).apply {
            marginStart = context.resources.getDimensionPixelSize(R.dimen.qs_label_container_margin)
            marginEnd = 0
            gravity = Gravity.CENTER_VERTICAL or Gravity.START
        }
        mLabel.gravity = Gravity.START
        mLabel.textDirection = TEXT_DIRECTION_LOCALE
        mSecondLine.gravity = Gravity.START
        mSecondLine.textDirection = TEXT_DIRECTION_LOCALE

        (mLabelContainer.layoutParams as LayoutParams).gravity =
            Gravity.CENTER_VERTICAL or Gravity.START
        if (mCollapsedView) {
            mSecondLine.visibility = GONE
        }
@@ -198,19 +200,17 @@ open class QSTileViewHorizontal(

    private fun loadSideViewDrawableIfNecessary(state: QSTile.State) {
        if (state.sideViewDrawable != null) {
            (mSideView.layoutParams as MarginLayoutParams).apply {
                marginStart =
                        context.resources.getDimensionPixelSize(R.dimen.qs_label_container_margin)
            }
            mSideView.setImageDrawable(state.sideViewDrawable)
            mSideView.visibility = View.VISIBLE
            mSideView.adjustViewBounds = true
            mSideView.scaleType = ImageView.ScaleType.FIT_CENTER
            sideView.setImageDrawable(state.sideViewDrawable)
            sideView.visibility = View.VISIBLE
        } else {
            mSideView.setImageDrawable(null)
            mSideView.visibility = GONE
            sideView.setImageDrawable(null)
            sideView.visibility = GONE
        }
    }

    override fun handleExpand(dualTarget: Boolean) {}

    override fun getSecondaryIcon(): View {
        return sideView
    }
}
 No newline at end of file