summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2014-06-04 09:51:51 -0700
committerYorke Lee <yorkelee@google.com>2014-06-04 09:51:51 -0700
commit757ca2485e5bf9b52a0c929384d4c198e25a706f (patch)
tree49f267f41e79972dffb061fca45181b960283f5c /src
parentd4a57a94d55840782a444bda20ae45d387fc2230 (diff)
Correctly reset all wrapped CallLogListItemView attributes
Since we are doing our own internal recycling of CallLogListItemViews for the ShortcutCardsAdapter, make sure to correctly reset all related attributes when adding a new child view Bug: 15413649 Change-Id: Ic4907082646f9d8ad9a5ac157ed58b219984d5d3
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dialer/list/ShortcutCardsAdapter.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/com/android/dialer/list/ShortcutCardsAdapter.java b/src/com/android/dialer/list/ShortcutCardsAdapter.java
index 128871dcd..088535ab7 100644
--- a/src/com/android/dialer/list/ShortcutCardsAdapter.java
+++ b/src/com/android/dialer/list/ShortcutCardsAdapter.java
@@ -31,6 +31,7 @@ import android.widget.LinearLayout;
import com.android.dialer.R;
import com.android.dialer.calllog.CallLogAdapter;
+import com.android.dialer.calllog.CallLogListItemView;
import com.android.dialer.calllog.CallLogNotificationsHelper;
import com.android.dialer.calllog.CallLogQueryHandler;
import com.android.dialer.list.SwipeHelper.OnItemGestureListener;
@@ -188,10 +189,7 @@ public class ShortcutCardsAdapter extends BaseAdapter {
final View view = mCallLogAdapter.getView(position, convertView == null ?
null : wrapper.getChildAt(0), parent);
wrapper.removeAllViews();
- final View callLogItem = view.findViewById(R.id.call_log_list_item);
- // Reset the internal call log item view if it is being recycled
- callLogItem.setTranslationX(0);
- callLogItem.setAlpha(1);
+ wrapper.prepareChildView(view);
wrapper.addView(view);
return wrapper;
}
@@ -225,8 +223,7 @@ public class ShortcutCardsAdapter extends BaseAdapter {
densityScale, pagingTouchSlop);
}
- @Override
- public void addView(View view) {
+ private void prepareChildView(View view) {
view.setBackgroundResource(R.drawable.rounded_corner_bg);
final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
@@ -251,7 +248,13 @@ public class ShortcutCardsAdapter extends BaseAdapter {
R.dimen.recent_call_log_item_translation_z);
view.setTranslationZ(mPreviousTranslationZ);
- super.addView(view);
+ final CallLogListItemView callLogItem =
+ (CallLogListItemView) view.findViewById(R.id.call_log_list_item);
+ // Reset the internal call log item view if it is being recycled
+ callLogItem.setTranslationX(0);
+ callLogItem.setAlpha(1);
+ callLogItem.setClipBounds(null);
+ setChildrenOpacity(callLogItem, 1.0f);
}
@Override
@@ -346,9 +349,13 @@ public class ShortcutCardsAdapter extends BaseAdapter {
// If the view has any children, fade them out of view.
final ViewGroup viewGroup = (ViewGroup) viewToClip;
+ setChildrenOpacity(viewGroup, Math.max(0, 1 - 3 * ratioHidden));
+ }
+
+ private void setChildrenOpacity(ViewGroup viewGroup, float alpha) {
final int count = viewGroup.getChildCount();
for (int i = 0; i < count; i++) {
- viewGroup.getChildAt(i).setAlpha(Math.max(0, 1 - 3 * ratioHidden));
+ viewGroup.getChildAt(i).setAlpha(alpha);
}
}
}