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

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

am 668fd226: Merge "Tweaks to zen mode shade UI."

* commit '668fd226':
  Tweaks to zen mode shade UI.
parents 11061239 668fd226
Loading
Loading
Loading
Loading
+27 −9
Original line number Diff line number Diff line
@@ -28,6 +28,8 @@ import android.graphics.Rect;
import android.graphics.Typeface;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.PathShape;
import android.os.AsyncTask;
import android.os.Vibrator;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
@@ -45,7 +47,6 @@ import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
@@ -79,6 +80,7 @@ public class ZenModeView extends RelativeLayout {
    private final Rect mLayoutRect = new Rect();
    private final UntilPager mUntilPager;
    private final AlarmWarning mAlarmWarning;
    private final int mPopDuration;

    private float mDownY;
    private int mDownBottom;
@@ -87,6 +89,7 @@ public class ZenModeView extends RelativeLayout {
    private int mBottom;
    private int mWidthSpec;
    private Adapter mAdapter;
    private boolean mPopped;

    public ZenModeView(Context context) {
        this(context, null);
@@ -144,7 +147,6 @@ public class ZenModeView extends RelativeLayout {
        lp.addRule(RelativeLayout.CENTER_HORIZONTAL);
        addView(mModeSpinner, lp);


        mUntilPager = new UntilPager(mContext, mPathPaint, iconSize);
        mUntilPager.setId(android.R.id.tabhost);
        mUntilPager.setAlpha(0);
@@ -165,6 +167,8 @@ public class ZenModeView extends RelativeLayout {
        mHintText.setGravity(Gravity.CENTER);
        mHintText.setTextColor(GRAY);
        addView(mHintText, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

        mPopDuration = mContext.getResources().getInteger(R.integer.blinds_pop_duration_ms);
    }

    private boolean isApplicable() {
@@ -180,9 +184,11 @@ public class ZenModeView extends RelativeLayout {
            public void onAnimationUpdate(ValueAnimator animation) {
                final float f = animation.getAnimatedFraction();
                final int hintBottom = mHintText.getBottom();
                setPeeked(hintBottom + (int)((1-f) * (startBottom - hintBottom)), max);
                if (f == 1) {
                final boolean isDone = f == 1;
                setPeeked(hintBottom + (int)((1-f) * (startBottom - hintBottom)), max, isDone);
                if (isDone) {
                    mPeekable = true;
                    mPopped = false;
                    mClosing = false;
                    mModeSpinner.updateState();
                    if (mAdapter != null) {
@@ -335,11 +341,15 @@ public class ZenModeView extends RelativeLayout {
            return true;
        } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
            final float dy = event.getY() - mDownY;
            setPeeked(mDownBottom + (int)dy, getExpandedBottom());
            if (!mPopped) {
                mPopped = true;
                AsyncTask.execute(mPopVibration);
            }
            setPeeked(mDownBottom + (int)dy, getExpandedBottom(), false);
        } else if (event.getAction() == MotionEvent.ACTION_UP
                || event.getAction() == MotionEvent.ACTION_CANCEL) {
            final float dy = event.getY() - mDownY;
            setPeeked(mDownBottom + (int)dy, getExpandedBottom());
            setPeeked(mDownBottom + (int)dy, getExpandedBottom(), true);
            if (mPeekable) {
                close();
            }
@@ -347,14 +357,14 @@ public class ZenModeView extends RelativeLayout {
        return rt;
    }

    private void setPeeked(int peeked, int max) {
    private void setPeeked(int peeked, int max, boolean isDone) {
        if (DEBUG) log("setPeeked=" + peeked);
        final int min = mHintText.getBottom();
        peeked = Math.max(min, Math.min(peeked, max));
        if (mBottom == peeked) {
        if (!isDone && mBottom == peeked) {
            return;
        }
        if (peeked == max) {
        if (peeked == max && isDone) {
            mPeekable = false;
            mModeSpinner.setEnabled(true);
            if (mAdapter != null) {
@@ -419,6 +429,14 @@ public class ZenModeView extends RelativeLayout {
            }).start();
    }

    private final Runnable mPopVibration = new Runnable() {
        @Override
        public void run() {
            Vibrator v = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
            v.vibrate(mPopDuration);
        }
    };

    private final class UntilPager extends RelativeLayout {
        private final ImageView mPrev;
        private final ImageView mNext;