summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/searchfragment/list/NewSearchFragment.java')
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index d20bb1f8c..566ba77f3 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -27,10 +27,13 @@ import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.animation.Interpolator;
import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor;
+import com.android.dialer.animation.AnimUtils;
import com.android.dialer.common.concurrent.ThreadUtil;
import com.android.dialer.searchfragment.cp2.SearchContactsCursorLoader;
import com.android.dialer.searchfragment.nearbyplaces.NearbyPlacesCursorLoader;
+import com.android.dialer.util.ViewUtil;
/** Fragment used for searching contacts. */
public final class NewSearchFragment extends Fragment implements LoaderCallbacks<Cursor> {
@@ -49,6 +52,8 @@ public final class NewSearchFragment extends Fragment implements LoaderCallbacks
private final Runnable loadNearbyPlacesRunnable =
() -> getLoaderManager().restartLoader(NEARBY_PLACES_ID, null, this);
+ private Runnable updatePositionRunnable;
+
@Nullable
@Override
public View onCreateView(
@@ -62,6 +67,10 @@ public final class NewSearchFragment extends Fragment implements LoaderCallbacks
getLoaderManager().initLoader(CONTACTS_LOADER_ID, null, this);
loadNearbyPlacesCursor();
+
+ if (updatePositionRunnable != null) {
+ ViewUtil.doOnPreDraw(view, false, updatePositionRunnable);
+ }
return view;
}
@@ -102,6 +111,19 @@ public final class NewSearchFragment extends Fragment implements LoaderCallbacks
}
}
+ public void animatePosition(int start, int end, int duration) {
+ // Called before the view is ready, prepare a runnable to run in onCreateView
+ if (getView() == null) {
+ updatePositionRunnable = () -> animatePosition(start, end, 0);
+ return;
+ }
+ boolean slideUp = start > end;
+ Interpolator interpolator = slideUp ? AnimUtils.EASE_IN : AnimUtils.EASE_OUT;
+ getView().setTranslationY(start);
+ getView().animate().translationY(end).setInterpolator(interpolator).setDuration(duration);
+ updatePositionRunnable = null;
+ }
+
@Override
public void onDestroy() {
super.onDestroy();