summaryrefslogtreecommitdiff
path: root/src/com/android/dialer/list
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2014-06-03 14:03:09 -0700
committerAndrew Lee <anwlee@google.com>2014-06-03 14:41:52 -0700
commit05b6267428450f190d04af187a206cc495da8995 (patch)
treea2992806445d72fe3959d6f2af45e1965eb855d4 /src/com/android/dialer/list
parent763d0c2afd034b4c2939199da7eba491548acdff (diff)
DO NOT MERGE. Styling search to match redlines.
- This conflicts with some of Sai's changes, so will manually cherrypick this CL back to master.. - Shift arrow/close icons. - Use 20sp font in expanded search (causes baseline to shift down). - Update action bar movement to use dialpad's interpolators and durations. - Smoothed out animations. Icons in the view being faded out are now instantaneously set to GONE. The margin animator when going from collapsed to expanded starts at 0.8f now, so that the searchbox does not shrink momentarily when switched to the 9-patch, because of the shadow. - Fix clipping because of 9-patch; refactored logic for updating the position and padding from the Activity into SearchFragment. This was motivated in part because we want a padding at the top of this list for the first item, but when the dialpad is shown we do not want that padding. Bug: 15343931 Change-Id: I7c3a96dd295c58c6955e6bd3e9d8cda151de4c3f
Diffstat (limited to 'src/com/android/dialer/list')
-rw-r--r--src/com/android/dialer/list/SearchFragment.java58
1 files changed, 51 insertions, 7 deletions
diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java
index 9a30c4de6..9e2b8d089 100644
--- a/src/com/android/dialer/list/SearchFragment.java
+++ b/src/com/android/dialer/list/SearchFragment.java
@@ -17,13 +17,16 @@ package com.android.dialer.list;
import android.app.Activity;
import android.content.Intent;
+import android.content.res.Resources;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
+import android.view.animation.Interpolator;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;
+import com.android.contacts.common.animation.AnimUtils;
import com.android.contacts.common.list.ContactEntryListAdapter;
import com.android.contacts.common.list.ContactListItemView;
import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
@@ -31,7 +34,6 @@ import com.android.contacts.common.list.PhoneNumberPickerFragment;
import com.android.contacts.common.util.ViewUtil;
import com.android.dialer.DialtactsActivity;
import com.android.dialer.R;
-import com.android.dialer.list.OnListFragmentScrolledListener;
import com.android.dialer.util.DialerUtils;
public class SearchFragment extends PhoneNumberPickerFragment {
@@ -44,9 +46,16 @@ public class SearchFragment extends PhoneNumberPickerFragment {
*/
private String mAddToContactNumber;
private int mActionBarHeight;
+ private int mShadowHeight;
+ private int mPaddingTop;
+ private int mShowDialpadDuration;
+ private int mHideDialpadDuration;
+
+ private HostInterface mActivity;
public interface HostInterface {
public boolean isActionBarShowing();
+ public boolean isDialpadShown();
public int getActionBarHideOffset();
public int getActionBarHeight();
}
@@ -75,9 +84,14 @@ public class SearchFragment extends PhoneNumberPickerFragment {
getAdapter().setHasHeader(0, false);
}
- HostInterface activity = (HostInterface) getActivity();
+ mActivity = (HostInterface) getActivity();
- mActionBarHeight = activity.getActionBarHeight();
+ final Resources res = getResources();
+ mActionBarHeight = mActivity.getActionBarHeight();
+ mShadowHeight = res.getDrawable(R.drawable.search_shadow).getIntrinsicHeight();
+ mPaddingTop = res.getDimensionPixelSize(R.dimen.search_list_padding_top);
+ mShowDialpadDuration = res.getInteger(R.integer.dialpad_slide_in_duration);
+ mHideDialpadDuration = res.getInteger(R.integer.dialpad_slide_out_duration);
final View parentView = getView();
parentView.setPaddingRelative(
@@ -88,6 +102,7 @@ public class SearchFragment extends PhoneNumberPickerFragment {
final ListView listView = getListView();
+ listView.setClipToPadding(false);
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
@@ -100,10 +115,7 @@ public class SearchFragment extends PhoneNumberPickerFragment {
}
});
-
- if (!activity.isActionBarShowing()) {
- parentView.setTranslationY(-mActionBarHeight);
- }
+ updatePosition(false /* animate */);
}
@Override
@@ -155,4 +167,36 @@ public class SearchFragment extends PhoneNumberPickerFragment {
R.string.add_contact_not_available);
}
}
+
+ /**
+ * Updates the position and padding of the search fragment, depending on whether the dialpad is
+ * shown. This can be optionally animated.
+ * @param animate
+ */
+ public void updatePosition(boolean animate) {
+ // Use negative shadow height instead of 0 to account for the 9-patch's shadow.
+ int translationValue = mActivity.isDialpadShown() ? -mActionBarHeight : -mShadowHeight;
+
+ if (animate) {
+ Interpolator interpolator =
+ mActivity.isDialpadShown() ? AnimUtils.EASE_IN : AnimUtils.EASE_OUT ;
+ int duration =
+ mActivity.isDialpadShown() ? mShowDialpadDuration : mHideDialpadDuration;
+ getView().animate()
+ .translationY(translationValue)
+ .setInterpolator(interpolator)
+ .setDuration(duration);
+ } else {
+ getView().setTranslationY(translationValue);
+ }
+
+ // There is padding which should only be applied when the dialpad is not shown.
+ int paddingTop = mActivity.isDialpadShown() ? 0 : mPaddingTop;
+ final ListView listView = getListView();
+ listView.setPaddingRelative(
+ listView.getPaddingStart(),
+ paddingTop,
+ listView.getPaddingEnd(),
+ listView.getPaddingBottom());
+ }
}