From 761ccf4b3fc67ba7ef0c463cae592fec4e4055b8 Mon Sep 17 00:00:00 2001 From: Jake McGinty Date: Tue, 17 Mar 2015 14:01:37 -0700 Subject: [PATCH] Fix for inconsistent thumbnail aspect ratio Problems arose from any app that targets below API 19 and uses views that rely on RelativeLayouts giving correct measurement specs to their onMeasure(). Resolves #2676 Closes #2712 // FREEBIE --- res/layout/conversation_bubble_incoming.xml | 38 +++++++++++-------- res/layout/conversation_bubble_outgoing.xml | 13 +++++-- res/layout/thumbnail_view.xml | 22 +++++++++++ .../securesms/components/BubbleContainer.java | 9 +++-- 4 files changed, 59 insertions(+), 23 deletions(-) create mode 100644 res/layout/thumbnail_view.xml diff --git a/res/layout/conversation_bubble_incoming.xml b/res/layout/conversation_bubble_incoming.xml index 42e0047002..78d645e5b4 100644 --- a/res/layout/conversation_bubble_incoming.xml +++ b/res/layout/conversation_bubble_incoming.xml @@ -12,28 +12,34 @@ android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> - + + + + - + + + + + + + + \ No newline at end of file diff --git a/src/org/thoughtcrime/securesms/components/BubbleContainer.java b/src/org/thoughtcrime/securesms/components/BubbleContainer.java index c63cdc67b0..da352ad9e5 100644 --- a/src/org/thoughtcrime/securesms/components/BubbleContainer.java +++ b/src/org/thoughtcrime/securesms/components/BubbleContainer.java @@ -148,11 +148,14 @@ public abstract class BubbleContainer extends RelativeLayout { private void setAlignment(@MediaState int mediaState) { RelativeLayout.LayoutParams parentParams = (RelativeLayout.LayoutParams) bodyBubble.getLayoutParams(); - if (mediaState != MEDIA_STATE_CAPTIONED) { + if (mediaState == MEDIA_STATE_CAPTIONLESS) { parentParams.addRule(RelativeLayout.BELOW, 0); - parentParams.addRule(RelativeLayout.ALIGN_BOTTOM, R.id.image_view); + parentParams.addRule(RelativeLayout.ALIGN_BOTTOM, R.id.thumbnail_container); + } else if (mediaState == MEDIA_STATE_CAPTIONED) { + parentParams.addRule(RelativeLayout.BELOW, R.id.thumbnail_container); + parentParams.addRule(RelativeLayout.ALIGN_BOTTOM, 0); } else { - parentParams.addRule(RelativeLayout.BELOW, R.id.image_view); + parentParams.addRule(RelativeLayout.BELOW, 0); parentParams.addRule(RelativeLayout.ALIGN_BOTTOM, 0); } bodyBubble.setLayoutParams(parentParams);