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

Commit fee27b2d authored by Selim Cinek's avatar Selim Cinek Committed by Android (Google) Code Review
Browse files

Merge "Updated the clear all button to spec"

parents 5650c523 3109ec39
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -19,15 +19,16 @@
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:clipChildren="false"
        android:clipToPadding="false">
        android:paddingEnd="8dp"
        android:visibility="gone">
    <com.android.systemui.statusbar.DismissViewButton
            style="@android:style/Widget.Material.Button.Borderless"
            android:id="@+id/dismiss_text"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:focusable="true"
            android:background="@drawable/ripple_drawable"
            android:contentDescription="@string/accessibility_clear_all"/>
            android:contentDescription="@string/accessibility_clear_all"
            android:text="@string/clear_all_notifications_text"
            android:textAllCaps="true"/>
</com.android.systemui.statusbar.DismissView>
+1 −23
Original line number Diff line number Diff line
@@ -17,14 +17,12 @@
package com.android.systemui.statusbar;

import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;

import com.android.systemui.R;

public class DismissView extends StackScrollerDecorView {
    private boolean mDismissAllInProgress;
    private DismissViewButton mDismissButton;

    public DismissView(Context context, AttributeSet attrs) {
@@ -53,27 +51,7 @@ public class DismissView extends StackScrollerDecorView {
                || touchY > mContent.getY() + mContent.getHeight();
    }

    public void showClearButton() {
        mDismissButton.showButton();
    }

    public void setDismissAllInProgress(boolean dismissAllInProgress) {
        if (dismissAllInProgress) {
            setClipBounds(null);
        }
        mDismissAllInProgress = dismissAllInProgress;
    }

    @Override
    public void setClipBounds(Rect clipBounds) {
        if (mDismissAllInProgress) {
            // we don't want any clipping to happen!
            return;
        }
        super.setClipBounds(clipBounds);
    }

    public boolean isButtonVisible() {
        return mDismissButton.isButtonStatic();
        return mDismissButton.getAlpha() != 0.0f;
    }
}
+1 −71
Original line number Diff line number Diff line
@@ -17,22 +17,13 @@
package com.android.systemui.statusbar;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.AnimatedVectorDrawable;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import com.android.systemui.R;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;

public class DismissViewButton extends Button {
    private AnimatedVectorDrawable mAnimatedDismissDrawable;
    private final Drawable mStaticDismissDrawable;
    private Drawable mActiveDrawable;
public class DismissViewButton extends AlphaOptimizedButton {

    public DismissViewButton(Context context) {
        this(context, null);
@@ -49,55 +40,6 @@ public class DismissViewButton extends Button {
    public DismissViewButton(Context context, AttributeSet attrs, int defStyleAttr,
            int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        mAnimatedDismissDrawable = (AnimatedVectorDrawable) getContext().getDrawable(
                R.drawable.dismiss_all_shape_animation).mutate();
        mAnimatedDismissDrawable.setCallback(this);
        mAnimatedDismissDrawable.setBounds(0,
                0,
                mAnimatedDismissDrawable.getIntrinsicWidth(),
                mAnimatedDismissDrawable.getIntrinsicHeight());
        mStaticDismissDrawable = getContext().getDrawable(R.drawable.dismiss_all_shape);
        mStaticDismissDrawable.setBounds(0,
                0,
                mStaticDismissDrawable.getIntrinsicWidth(),
                mStaticDismissDrawable.getIntrinsicHeight());
        mStaticDismissDrawable.setCallback(this);
        mActiveDrawable = mStaticDismissDrawable;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.save();
        int drawableHeight = mActiveDrawable.getBounds().height();
        boolean isRtl = (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL);
        int dx = isRtl ? getWidth() / 2 + drawableHeight / 2 : getWidth() / 2 - drawableHeight / 2;
        canvas.translate(dx, getHeight() / 2.0f + drawableHeight /
                2.0f);
        canvas.scale(isRtl ? -1.0f : 1.0f, -1.0f);
        mActiveDrawable.draw(canvas);
        canvas.restore();
    }

    @Override
    public boolean performClick() {
        if (!mAnimatedDismissDrawable.isRunning()) {
            mActiveDrawable = mAnimatedDismissDrawable;
            mAnimatedDismissDrawable.start();
        }
        return super.performClick();
    }

    @Override
    protected boolean verifyDrawable(Drawable who) {
        return super.verifyDrawable(who)
                || who == mAnimatedDismissDrawable
                || who == mStaticDismissDrawable;
    }

    @Override
    public boolean hasOverlappingRendering() {
        return false;
    }

    /**
@@ -118,16 +60,4 @@ public class DismissViewButton extends Button {
        outRect.top += translationY;
        outRect.bottom += translationY;
    }

    public void showButton() {
        mActiveDrawable = mStaticDismissDrawable;
        invalidate();
    }

    /**
     * @return Whether the button is currently static and not being animated.
     */
    public boolean isButtonStatic() {
        return mActiveDrawable == mStaticDismissDrawable;
    }
}
+0 −8
Original line number Diff line number Diff line
@@ -2093,12 +2093,6 @@ public class NotificationStackScrollLayout extends ViewGroup
        generateAddAnimation(child, false /* fromMoreCard */);
        updateAnimationState(child);
        updateChronometerForChild(child);
        if (canChildBeDismissed(child)) {
            // Make sure the dismissButton is visible and not in the animated state.
            // We need to do this to avoid a race where a clearable notification is added after the
            // dismiss animation is finished
            mDismissView.showClearButton();
        }
    }

    private void updateHideSensitiveForChild(View child) {
@@ -2977,7 +2971,6 @@ public class NotificationStackScrollLayout extends ViewGroup
                    mDismissView.performVisibilityAnimation(false, dimissHideFinishRunnable);
                } else {
                    dimissHideFinishRunnable.run();
                    mDismissView.showClearButton();
                }
            }
        }
@@ -2985,7 +2978,6 @@ public class NotificationStackScrollLayout extends ViewGroup

    public void setDismissAllInProgress(boolean dismissAllInProgress) {
        mDismissAllInProgress = dismissAllInProgress;
        mDismissView.setDismissAllInProgress(dismissAllInProgress);
        mAmbientState.setDismissAllInProgress(dismissAllInProgress);
        if (dismissAllInProgress) {
            disableClipOptimization();