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

Commit ab1eea54 authored by John Spurlock's avatar John Spurlock Committed by Android Git Automerger
Browse files

am f96b6c42: Merge "Zen Mode QS tweaks."

* commit 'f96b6c42':
  Zen Mode QS tweaks.
parents 61c32c9c f96b6c42
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -248,6 +248,6 @@
    <!-- Z distance between notifications if they are in the stack -->
    <dimen name="z_distance_between_notifications">2dp</dimen>

    <!-- Width of the zen mode interstitial dialog.  Defaults to MATCH_PARENT. -->
    <dimen name="zen_mode_dialog_width">-1px</dimen>
    <!-- Width of the zen mode interstitial dialog. -->
    <dimen name="zen_mode_dialog_width">320dp</dimen>
</resources>
+1 −1
Original line number Diff line number Diff line
@@ -911,6 +911,7 @@ class QuickSettings {
                d.getWindow().setAttributes(lp);
            }
        };
        v.setAutoActivate(true);
        v.setAdapter(new ZenModeViewAdapter(mContext) {
            @Override
            public void configure() {
@@ -928,7 +929,6 @@ class QuickSettings {
        d.create();
        d.getWindow().setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY);
        WindowManager.LayoutParams lp = d.getWindow().getAttributes();
        lp.horizontalMargin = 0;
        lp.width = mContext.getResources().getDimensionPixelSize(R.dimen.zen_mode_dialog_width);
        d.getWindow().setAttributes(lp);
        d.show();
+66 −56
Original line number Diff line number Diff line
@@ -16,11 +16,8 @@

package com.android.systemui.statusbar.phone;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.Typeface;
import android.graphics.drawable.ShapeDrawable;
@@ -39,14 +36,12 @@ import android.view.View;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import com.android.systemui.R;
import com.android.systemui.statusbar.phone.ZenModeView.Adapter.ExitCondition;

public class ZenModeView extends RelativeLayout {
@@ -63,20 +58,21 @@ public class ZenModeView extends RelativeLayout {

    private static final long DURATION = new ValueAnimator().getDuration();
    private static final long PAGER_DURATION = DURATION / 2;
    private static final float BOUNCE_SCALE = 0.8f;
    private static final long CLOSE_DELAY = 600;
    private static final long AUTO_ACTIVATE_DELAY = 100;

    private final Context mContext;
    private final Paint mPathPaint;
    private final ImageView mSettingsButton;
    private final TextView mModeText;
    private final Switch mModeSwitch;
    private final View mDivider;
    private final UntilPager mUntilPager;
    private final ProgressDots mProgressDots;
    private final View mDivider2;
    private final TextView mSettingsButton;

    private Adapter mAdapter;
    private boolean mInit;
    private boolean mAutoActivate;

    public ZenModeView(Context context) {
        this(context, null);
@@ -90,29 +86,9 @@ public class ZenModeView extends RelativeLayout {
        final int iconSize = mContext.getResources()
                .getDimensionPixelSize(com.android.internal.R.dimen.notification_large_icon_width);
        final int topRowSize = iconSize * 2 / 3;
        final int p = topRowSize / 7;
        final int p = topRowSize / 3;

        mPathPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mPathPaint.setStyle(Paint.Style.STROKE);
        mPathPaint.setColor(GRAY);
        mPathPaint.setStrokeWidth(p / 2);

        mSettingsButton = new ImageView(mContext);
        mSettingsButton.setPadding(p, p, p, p);
        mSettingsButton.setImageResource(R.drawable.ic_notify_settings_normal);
        LayoutParams lp = new LayoutParams(topRowSize, topRowSize);
        lp.topMargin = p;
        lp.leftMargin = p;
        addView(mSettingsButton, lp);
        mSettingsButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mAdapter != null) {
                    mAdapter.configure();
                }
                bounce(mSettingsButton, null);
            }
        });
        LayoutParams lp = null;

        mModeText = new TextView(mContext);
        mModeText.setText(MODE_LABEL);
@@ -120,11 +96,10 @@ public class ZenModeView extends RelativeLayout {
        mModeText.setTextColor(GRAY);
        mModeText.setTypeface(CONDENSED);
        mModeText.setAllCaps(true);
        mModeText.setGravity(Gravity.CENTER);
        mModeText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mModeText.getTextSize() * 1.1f);
        mModeText.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
        mModeText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mModeText.getTextSize() * 1.5f);
        lp = new LayoutParams(LayoutParams.WRAP_CONTENT, topRowSize);
        lp.topMargin = p;
        lp.addRule(CENTER_HORIZONTAL);
        lp.leftMargin = p;
        addView(mModeText, lp);

        mModeSwitch = new Switch(mContext);
@@ -132,6 +107,7 @@ public class ZenModeView extends RelativeLayout {
        mModeSwitch.setSwitchTypeface(CONDENSED);
        lp = new LayoutParams(LayoutParams.WRAP_CONTENT, topRowSize);
        lp.topMargin = p;
        lp.rightMargin = p;
        lp.addRule(ALIGN_PARENT_RIGHT);
        lp.addRule(ALIGN_BASELINE, mModeText.getId());
        addView(mModeSwitch, lp);
@@ -154,11 +130,10 @@ public class ZenModeView extends RelativeLayout {
        mDivider.setBackgroundColor(GRAY);
        lp = new LayoutParams(LayoutParams.MATCH_PARENT, 2);
        lp.addRule(BELOW, mModeText.getId());
        lp.topMargin = p;
        lp.bottomMargin = p * 2;
        lp.bottomMargin = p;
        addView(mDivider, lp);

        mUntilPager = new UntilPager(mContext, mPathPaint, iconSize * 3 / 4);
        mUntilPager = new UntilPager(mContext, iconSize * 3 / 4);
        mUntilPager.setId(android.R.id.tabhost);
        lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        lp.leftMargin = lp.rightMargin = iconSize / 2;
@@ -167,10 +142,41 @@ public class ZenModeView extends RelativeLayout {
        addView(mUntilPager, lp);

        mProgressDots = new ProgressDots(mContext, iconSize / 5);
        mProgressDots.setId(android.R.id.progress);
        lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        lp.addRule(CENTER_HORIZONTAL);
        lp.addRule(BELOW, mUntilPager.getId());
        addView(mProgressDots, lp);

        mDivider2 = new View(mContext);
        mDivider2.setId(android.R.id.widget_frame);
        mDivider2.setBackgroundColor(GRAY);
        lp = new LayoutParams(LayoutParams.MATCH_PARENT, 2);
        lp.addRule(BELOW, mProgressDots.getId());
        addView(mDivider2, lp);

        mSettingsButton = new TextView(mContext);
        mSettingsButton.setTypeface(CONDENSED);
        mSettingsButton.setTextSize(TypedValue.COMPLEX_UNIT_PX, mSettingsButton.getTextSize() * 1.3f);
        mSettingsButton.setPadding(p, p, p, p);
        mSettingsButton.setText("More settings...");
        lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        lp.addRule(BELOW, mDivider2.getId());
        addView(mSettingsButton, lp);
        mSettingsButton.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    mSettingsButton.setBackgroundColor(DARK_GRAY);
                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                    mSettingsButton.setBackground(null);
                    if (mAdapter != null) {
                        mAdapter.configure();
                    }
                }
                return true;
            }
        });
    }

    public void setAdapter(Adapter adapter) {
@@ -189,6 +195,27 @@ public class ZenModeView extends RelativeLayout {
        updateState(false);
    }

    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        if (mAutoActivate) {
            mAutoActivate = false;
            postDelayed(new Runnable() {
                @Override
                public void run() {
                    if (!mModeSwitch.isChecked()) {
                        mInit = false;
                        mModeSwitch.setChecked(true);
                    }
                }
            }, AUTO_ACTIVATE_DELAY);
        }
    }

    public void setAutoActivate(boolean value) {
        mAutoActivate = value;
    }

    private void updateState(boolean animate) {
        mUntilPager.updateState();
        mModeSwitch.setChecked(mAdapter.getMode());
@@ -199,23 +226,6 @@ public class ZenModeView extends RelativeLayout {
        Log.d(TAG, args == null || args.length == 0 ? msg : String.format(msg, args));
    }

    private static void bounce(final View v, final Runnable midBounce) {
        v.animate().scaleX(BOUNCE_SCALE).scaleY(BOUNCE_SCALE).setDuration(DURATION / 3)
            .setListener(new AnimatorListenerAdapter() {
                private boolean mFired;
                @Override
                public void onAnimationEnd(Animator animation) {
                    if (!mFired) {
                        mFired = true;
                        if (midBounce != null) {
                            midBounce.run();
                        }
                        v.animate().scaleX(1).scaleY(1).setListener(null).start();
                    }
                }
            }).start();
    }

    private final class UntilView extends FrameLayout {
        private static final boolean SUPPORT_LINKS = false;

@@ -223,7 +233,7 @@ public class ZenModeView extends RelativeLayout {
        public UntilView(Context context) {
            super(context);
            mText = new TextView(mContext);
            mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mText.getTextSize() * 1.2f);
            mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mText.getTextSize() * 1.3f);
            mText.setTypeface(CONDENSED);
            mText.setTextColor(GRAY);
            mText.setGravity(Gravity.CENTER);
@@ -284,7 +294,7 @@ public class ZenModeView extends RelativeLayout {
        private int mCurrent;
        private float mDownX;

        public UntilPager(Context context, Paint pathPaint, int iconSize) {
        public UntilPager(Context context, int iconSize) {
            super(context);
            mViews = new UntilView[3];
            for (int i = 0; i < mViews.length; i++) {