summaryrefslogtreecommitdiff
path: root/src/com/android/dialer/widget/SearchEditTextLayout.java
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2014-05-20 20:45:57 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-05-20 20:45:57 +0000
commit7206cebd7b267abbbc3de5d529ddf9a8f5ef176f (patch)
treebf14e7b9e4fcab22255334cdb00be8c189e6e8ad /src/com/android/dialer/widget/SearchEditTextLayout.java
parent1393ce91145e01000abe6696f237a9cd17e1b043 (diff)
parentec489fb5d4bba57ccdfd24b48e26257294d29979 (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.java46
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