Get the width from the parent rather than a resource.
This means we don't have to override per mode, orientation, etc.
And we don't have to wait for a layout
Change-Id: Icd914791184b03e79a92d3b321e28d973cf86992
diff --git a/res/values-sw600dp-land/constants.xml b/res/values-sw600dp-land/constants.xml
index 1eb8d51..a1c207c 100644
--- a/res/values-sw600dp-land/constants.xml
+++ b/res/values-sw600dp-land/constants.xml
@@ -17,5 +17,4 @@
<resources>
<!-- Whether to show conversation subject in conversation view -->
<bool name="show_conversation_subject">false</bool>
- <dimen name="undo_animation_offset">720dp</dimen>
</resources>
diff --git a/res/values/dimen.xml b/res/values/dimen.xml
index d211baf..a1b03ea 100644
--- a/res/values/dimen.xml
+++ b/res/values/dimen.xml
@@ -97,7 +97,6 @@
<dimen name="photo_overlay_bottom_padding">6dp</dimen>
<dimen name="attachment_tile_min_size">120dp</dimen>
<dimen name="toast_bar_bottom_margin_in_conversation">24dip</dimen>
- <dimen name="undo_animation_offset">360dp</dimen>
<dimen name="wait_padding">16dp</dimen>
<dimen name="senders_textview_top_padding">-4dp</dimen>
<dimen name="senders_textview_height">30dp</dimen>
diff --git a/src/com/android/mail/browse/ConversationItemView.java b/src/com/android/mail/browse/ConversationItemView.java
index edbc3b2..caf9121 100644
--- a/src/com/android/mail/browse/ConversationItemView.java
+++ b/src/com/android/mail/browse/ConversationItemView.java
@@ -177,7 +177,6 @@
private static ForegroundColorSpan sActivatedTextSpan;
private static Bitmap sDateBackgroundAttachment;
private static Bitmap sDateBackgroundNoAttachment;
- private static int sUndoAnimationOffset;
private static Bitmap MORE_FOLDERS;
static {
@@ -374,7 +373,6 @@
sStandardScaledDimen = res.getDimensionPixelSize(R.dimen.standard_scaled_dimen);
sShrinkAnimationDuration = res.getInteger(R.integer.shrink_animation_duration);
sSlideAnimationDuration = res.getInteger(R.integer.slide_animation_duration);
- sUndoAnimationOffset = res.getDimensionPixelOffset(R.dimen.undo_animation_offset);
// Initialize static color.
sSendersSplitToken = res.getString(R.string.senders_split_token);
sElidedPaddingToken = res.getString(R.string.elided_padding_token);
@@ -1238,7 +1236,7 @@
@Override
public void dismiss() {
- SwipeableListView listView = this.getListView();
+ SwipeableListView listView = getListView();
if (listView != null) {
getListView().dismissChild(this);
}
@@ -1403,8 +1401,11 @@
}
private ObjectAnimator createTranslateXAnimation(boolean show) {
- final float start = show ? sUndoAnimationOffset : 0f;
- final float end = show ? 0f : sUndoAnimationOffset;
+ SwipeableListView parent = getListView();
+ // If we can't get the parent...we have bigger problems.
+ int width = parent != null ? parent.getMeasuredWidth() : 0;
+ final float start = show ? width : 0f;
+ final float end = show ? 0f : width;
ObjectAnimator slide = ObjectAnimator.ofFloat(this, "translationX", start, end);
slide.setInterpolator(new DecelerateInterpolator(2.0f));
slide.setDuration(sSlideAnimationDuration);
@@ -1519,6 +1520,9 @@
* Begin drag mode. Keep the conversation selected (NOT toggle selection) and start drag.
*/
private void beginDragMode() {
+ if (mLastTouchX < 0 || mLastTouchY < 0) {
+ return;
+ }
selectConversation();
// Clip data has form: [conversations_uri, conversationId1,