Merge "Import translations. DO NOT MERGE" into klp-dev
diff --git a/src/com/android/dialer/list/PhoneFavoriteFragment.java b/src/com/android/dialer/list/PhoneFavoriteFragment.java
index 84bd4b4..d731786 100644
--- a/src/com/android/dialer/list/PhoneFavoriteFragment.java
+++ b/src/com/android/dialer/list/PhoneFavoriteFragment.java
@@ -15,6 +15,9 @@
*/
package com.android.dialer.list;
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
import android.app.Activity;
import android.app.Fragment;
import android.app.LoaderManager;
@@ -404,19 +407,42 @@
if (mItemIdLeftMap.isEmpty()) {
return;
}
+ final AnimatorSet animSet = new AnimatorSet();
+ final ArrayList<Animator> animators = new ArrayList<Animator>();
for (int i = 0; i < list.size(); i++) {
final View child = row.getChildAt(i);
final ContactEntry entry = list.get(i);
final long itemId = mContactTileAdapter.getAdjustedItemId(entry.id);
if (containsId(idsInPlace, itemId)) {
- child.setAlpha(0.0f);
- child.animate().alpha(1.0f)
- .setDuration(mAnimationDuration)
- .start();
+ animators.add(ObjectAnimator.ofFloat(
+ child, "alpha", 0.0f, 1.0f));
break;
+ } else {
+ Integer startLeft = mItemIdLeftMap.get(itemId);
+ int left = child.getLeft();
+ if (startLeft != null) {
+ if (startLeft != left) {
+ int delta = startLeft - left;
+ if (DEBUG) {
+ Log.d(TAG, "Found itemId: " + itemId + " for tileview child " + i +
+ " Left: " + left +
+ " Delta: " + delta);
+ }
+ animators.add(ObjectAnimator.ofFloat(
+ child, "translationX", delta, 0.0f));
+ }
+ } else {
+ // In case the last square row is pushed up from the non-square section.
+ animators.add(ObjectAnimator.ofFloat(
+ child, "translationX", left, 0.0f));
+ }
}
}
+ if (animators.size() > 0) {
+ animSet.setDuration(mAnimationDuration).playTogether(animators);
+ animSet.start();
+ }
}
/*
@@ -437,6 +463,8 @@
public boolean onPreDraw() {
observer.removeOnPreDrawListener(this);
final int firstVisiblePosition = mListView.getFirstVisiblePosition();
+ final AnimatorSet animSet = new AnimatorSet();
+ final ArrayList<Animator> animators = new ArrayList<Animator>();
for (int i = 0; i < mListView.getChildCount(); i++) {
final View child = mListView.getChildAt(i);
int position = firstVisiblePosition + i;
@@ -450,17 +478,12 @@
final long itemId = mAdapter.getItemId(position);
if (containsId(idsInPlace, itemId)) {
- child.setAlpha(0.0f);
- child.animate().alpha(1.0f)
- .setDuration(mAnimationDuration)
- .start();
+ animators.add(ObjectAnimator.ofFloat(
+ child, "alpha", 0.0f, 1.0f));
+ break;
} else {
Integer startTop = mItemIdTopMap.get(itemId);
final int top = child.getTop();
- if (DEBUG) {
- Log.d(TAG, "Found itemId: " + itemId + " for listview child " + i +
- " Top: " + top);
- }
int delta = 0;
if (startTop != null) {
if (startTop != top) {
@@ -473,14 +496,30 @@
int childHeight = child.getHeight() + mListView.getDividerHeight();
startTop = top + (i > 0 ? childHeight : -childHeight);
delta = startTop - top;
+ } else {
+ // In case the first non-square row is pushed down
+ // from the square section.
+ animators.add(ObjectAnimator.ofFloat(
+ child, "alpha", 0.0f, 1.0f));
+ }
+ if (DEBUG) {
+ Log.d(TAG, "Found itemId: " + itemId + " for listview child " + i +
+ " Top: " + top +
+ " Delta: " + delta);
}
if (delta != 0) {
- child.setTranslationY(delta);
- child.animate().setDuration(mAnimationDuration).translationY(0);
+ animators.add(ObjectAnimator.ofFloat(
+ child, "translationY", delta, 0.0f));
}
}
}
+
+ if (animators.size() > 0) {
+ animSet.setDuration(mAnimationDuration).playTogether(animators);
+ animSet.start();
+ }
+
mItemIdTopMap.clear();
mItemIdLeftMap.clear();
return true;
diff --git a/src/com/android/dialer/list/PhoneFavoriteListView.java b/src/com/android/dialer/list/PhoneFavoriteListView.java
index 04bbe6b..4e0b8ff 100644
--- a/src/com/android/dialer/list/PhoneFavoriteListView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteListView.java
@@ -105,7 +105,8 @@
private final AnimatorListenerAdapter mDragShadowOverAnimatorListener =
new AnimatorListenerAdapter() {
- private void recycleDragShadow() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
if (mDragShadowBitmap != null) {
mDragShadowBitmap.recycle();
mDragShadowBitmap = null;
@@ -113,16 +114,6 @@
mDragShadowOverlay.setVisibility(GONE);
mDragShadowOverlay.setImageBitmap(null);
}
-
- @Override
- public void onAnimationCancel(Animator animation) {
- recycleDragShadow();
- }
-
- @Override
- public void onAnimationEnd(Animator animation) {
- recycleDragShadow();
- }
};
public PhoneFavoriteListView(Context context) {
diff --git a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
index 2e18118..2b232e8 100644
--- a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
+++ b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
@@ -407,7 +407,7 @@
return mColumnCount * mMaxTiledRows;
}
- protected int getRowIndex(int entryIndex) {
+ public int getRowIndex(int entryIndex) {
if (entryIndex < mMaxTiledRows * mColumnCount) {
return entryIndex / mColumnCount;
} else {
@@ -593,11 +593,14 @@
*/
private void markDropArea(int itemIndex) {
if (isIndexInBound(mDragEnteredEntryIndex) && isIndexInBound(itemIndex)) {
+ mDataSetChangedListener.cacheOffsetsForDatasetChange();
// Remove the old placeholder item and place the new placeholder item.
+ final int oldIndex = mDragEnteredEntryIndex;
mContactEntries.remove(mDragEnteredEntryIndex);
mDragEnteredEntryIndex = itemIndex;
mContactEntries.add(mDragEnteredEntryIndex, ContactEntry.BLANK_ENTRY);
ContactEntry.BLANK_ENTRY.id = mDraggedEntry.id;
+ mDataSetChangedListener.onDataSetChangedForAnimation();
notifyDataSetChanged();
}
}
diff --git a/src/com/android/dialer/list/SwipeHelper.java b/src/com/android/dialer/list/SwipeHelper.java
index ce46ec3..03300df4 100644
--- a/src/com/android/dialer/list/SwipeHelper.java
+++ b/src/com/android/dialer/list/SwipeHelper.java
@@ -337,24 +337,12 @@
invalidateGlobalRegion(animView);
}
});
- anim.addListener(new Animator.AnimatorListener() {
- @Override
- public void onAnimationStart(Animator animation) {
- }
-
+ anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
animView.setAlpha(mStartAlpha);
mCallback.onDragCancelled(mCurrView);
}
-
- @Override
- public void onAnimationCancel(Animator animation) {
- }
-
- @Override
- public void onAnimationRepeat(Animator animation) {
- }
});
anim.start();
}