Merge "New interface to pick a contact as attachment"
diff --git a/res/layout/gallery_grid_item_view.xml b/res/layout/gallery_grid_item_view.xml
index fc857ca..f8f3920 100644
--- a/res/layout/gallery_grid_item_view.xml
+++ b/res/layout/gallery_grid_item_view.xml
@@ -85,6 +85,7 @@
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:focusableInTouchMode="true"
android:background="@drawable/gallery_image_background_selector" />
<CheckBox
diff --git a/src/com/android/messaging/ui/AttachmentPreview.java b/src/com/android/messaging/ui/AttachmentPreview.java
index 7eea14b..f4465c4 100644
--- a/src/com/android/messaging/ui/AttachmentPreview.java
+++ b/src/com/android/messaging/ui/AttachmentPreview.java
@@ -57,6 +57,8 @@
private Runnable mHideRunnable;
private boolean mPendingHideCanceled;
+ private PopupTransitionAnimation mPopupTransitionAnimation;
+
private static final int CLOSE_BUTTON_REVEAL_STAGGER_MILLIS = 300;
public AttachmentPreview(final Context context, final AttributeSet attrs) {
@@ -132,6 +134,7 @@
public void run() {
// Only hide if we are didn't get overruled by showing
if (!mPendingHideCanceled) {
+ stopPopupAnimation();
mAttachmentView.removeAllViews();
setVisibility(GONE);
}
@@ -280,10 +283,19 @@
mHideRunnable.run();
}
- static void tryAnimateViewIn(final MessagePartData attachmentData, final View view) {
+ private void tryAnimateViewIn(final MessagePartData attachmentData, final View view) {
if (attachmentData instanceof MediaPickerMessagePartData) {
final Rect startRect = ((MediaPickerMessagePartData) attachmentData).getStartRect();
- new PopupTransitionAnimation(startRect, view).startAfterLayoutComplete();
+ stopPopupAnimation();
+ mPopupTransitionAnimation = new PopupTransitionAnimation(startRect, view);
+ mPopupTransitionAnimation.startAfterLayoutComplete();
+ }
+ }
+
+ private void stopPopupAnimation() {
+ if (mPopupTransitionAnimation != null) {
+ mPopupTransitionAnimation.cancel();
+ mPopupTransitionAnimation = null;
}
}
diff --git a/src/com/android/messaging/ui/MultiAttachmentLayout.java b/src/com/android/messaging/ui/MultiAttachmentLayout.java
index f620245..5bae8a5 100644
--- a/src/com/android/messaging/ui/MultiAttachmentLayout.java
+++ b/src/com/android/messaging/ui/MultiAttachmentLayout.java
@@ -33,6 +33,7 @@
import com.android.messaging.datamodel.data.PendingAttachmentData;
import com.android.messaging.datamodel.media.ImageRequestDescriptor;
import com.android.messaging.ui.AsyncImageView.AsyncImageViewDelayLoader;
+import com.android.messaging.ui.animation.PopupTransitionAnimation;
import com.android.messaging.util.AccessibilityUtil;
import com.android.messaging.util.Assert;
import com.android.messaging.util.UiUtils;
@@ -275,7 +276,11 @@
// views will slide from their previous position to their new position within the
// layout
if (i == 0) {
- AttachmentPreview.tryAnimateViewIn(attachment, attachmentWrapper.view);
+ if (attachment instanceof MediaPickerMessagePartData) {
+ final Rect startRect = ((MediaPickerMessagePartData) attachment).getStartRect();
+ new PopupTransitionAnimation(startRect, attachmentWrapper.view)
+ .startAfterLayoutComplete();
+ }
}
attachmentWrapper.needsSlideAnimation = i > 0;
}