diff options
author | Yorke Lee <yorkelee@google.com> | 2014-05-20 20:45:57 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-05-20 20:45:57 +0000 |
commit | 7206cebd7b267abbbc3de5d529ddf9a8f5ef176f (patch) | |
tree | bf14e7b9e4fcab22255334cdb00be8c189e6e8ad /src/com/android/dialer/widget/SearchEditTextLayout.java | |
parent | 1393ce91145e01000abe6696f237a9cd17e1b043 (diff) | |
parent | ec489fb5d4bba57ccdfd24b48e26257294d29979 (diff) |
Merge "Make searchbox expand when entering search UI"
Diffstat (limited to 'src/com/android/dialer/widget/SearchEditTextLayout.java')
-rw-r--r-- | src/com/android/dialer/widget/SearchEditTextLayout.java | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/com/android/dialer/widget/SearchEditTextLayout.java b/src/com/android/dialer/widget/SearchEditTextLayout.java index 40a4e43b9..e2cbcb3ef 100644 --- a/src/com/android/dialer/widget/SearchEditTextLayout.java +++ b/src/com/android/dialer/widget/SearchEditTextLayout.java @@ -16,17 +16,27 @@ package com.android.dialer.widget; - +import android.animation.ValueAnimator; +import android.animation.ValueAnimator.AnimatorUpdateListener; import android.content.Context; import android.util.AttributeSet; import android.view.KeyEvent; import android.widget.LinearLayout; +import com.android.dialer.R; + public class SearchEditTextLayout extends LinearLayout { private OnKeyListener mPreImeKeyListener; + private int mTopMargin; + private int mBottomMargin; + private int mLeftMargin; + private int mRightMargin; + + private int mBackgroundColor; public SearchEditTextLayout(Context context, AttributeSet attrs) { super(context, attrs); + mBackgroundColor = getResources().getColor(R.color.searchbox_background_color); } public void setPreImeKeyListener(OnKeyListener listener) { @@ -34,6 +44,16 @@ public class SearchEditTextLayout extends LinearLayout { } @Override + protected void onFinishInflate() { + MarginLayoutParams params = (MarginLayoutParams) getLayoutParams(); + mTopMargin = params.topMargin; + mBottomMargin = params.bottomMargin; + mLeftMargin = params.leftMargin; + mRightMargin = params.rightMargin; + super.onFinishInflate(); + } + + @Override public boolean dispatchKeyEventPreIme(KeyEvent event) { if (mPreImeKeyListener != null) { if (mPreImeKeyListener.onKey(this, event.getKeyCode(), event)) { @@ -42,4 +62,28 @@ public class SearchEditTextLayout extends LinearLayout { } return super.dispatchKeyEventPreIme(event); } + + public void animateExpandOrCollapse(boolean expand) { + final ValueAnimator animator; + if (expand) { + animator = ValueAnimator.ofFloat(1f, 0f); + setBackgroundColor(mBackgroundColor); + } else { + animator = ValueAnimator.ofFloat(0f, 1f); + setBackgroundResource(R.drawable.rounded_corner); + } + animator.addUpdateListener(new AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + final Float fraction = (Float) animation.getAnimatedValue(); + MarginLayoutParams params = (MarginLayoutParams) getLayoutParams(); + params.topMargin = (int) (mTopMargin * fraction); + params.bottomMargin = (int) (mBottomMargin * fraction); + params.leftMargin = (int) (mLeftMargin * fraction); + params.rightMargin = (int) (mRightMargin * fraction); + requestLayout(); + } + }); + animator.start(); + } }
\ No newline at end of file |