Bug 1325096 - Wrap FaviconView to workaround ignored margin r?maliu draft
authorAndrzej Hunt <ahunt@mozilla.com>
Mon, 23 Jan 2017 15:55:46 -0800
changeset 468562 43c1ac0e6c127352e8f6cd44b3fa8e341d3a5e95
parent 468561 63f194ed7621a76fa0e37e5562a7df439a595970
child 468563 c4f1942e541a1f5932c0badd63d237426783cbc8
push id43503
push userahunt@mozilla.com
push dateTue, 31 Jan 2017 18:27:11 +0000
reviewersmaliu
bugs1325096
milestone54.0a1
Bug 1325096 - Wrap FaviconView to workaround ignored margin r?maliu This seems to be an Android platform bug affecting Android 4.X, which is visible primarily on tablets (on phones, page titles are often broken over two lines, which isn't the case on tablets, hence it's easy to spot if this bug is happening). MozReview-Commit-ID: AfSw3AJHFqH
mobile/android/base/resources/layout/activity_stream_card_history_item.xml
--- a/mobile/android/base/resources/layout/activity_stream_card_history_item.xml
+++ b/mobile/android/base/resources/layout/activity_stream_card_history_item.xml
@@ -16,27 +16,38 @@
     android:orientation="vertical">
 
     <RelativeLayout
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:orientation="horizontal"
         android:background="?android:attr/selectableItemBackground">
 
-        <org.mozilla.gecko.widget.FaviconView
-            android:id="@+id/icon"
-            android:layout_width="@dimen/favicon_bg"
-            android:layout_height="@dimen/favicon_bg"
-            android:layout_marginLeft="@dimen/activity_stream_base_margin"
-            android:layout_marginStart="@dimen/activity_stream_base_margin"
-            android:layout_marginTop="@dimen/activity_stream_base_margin"
-            android:layout_marginBottom="@dimen/activity_stream_base_margin"
-            android:layout_gravity="center"
-            gecko:enableRoundCorners="false"
-            tools:background="@drawable/favicon_globe" />
+
+        <!-- On some devices, marginBottom is ignored for Views within a RelativeLayout.
+             Wrapping in a FrameLayout appears to be a sufficient workaround for this issue -->
+        <FrameLayout
+            android:id="@+id/icon_wrapper"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content">
+
+            <org.mozilla.gecko.widget.FaviconView
+                android:id="@+id/icon"
+                android:layout_width="@dimen/favicon_bg"
+                android:layout_height="@dimen/favicon_bg"
+                android:layout_marginLeft="@dimen/activity_stream_base_margin"
+                android:layout_marginStart="@dimen/activity_stream_base_margin"
+                android:layout_marginTop="@dimen/activity_stream_base_margin"
+                android:layout_marginBottom="@dimen/activity_stream_base_margin"
+                android:layout_gravity="center"
+                gecko:enableRoundCorners="false"
+                tools:background="@drawable/favicon_globe" />
+
+        </FrameLayout>
+
 
         <ImageView
             android:id="@+id/menu"
             android:layout_width="wrap_content"
             android:layout_height="36dp"
             android:layout_margin="2dp"
             android:layout_alignParentEnd="true"
             android:layout_alignParentRight="true"
@@ -48,48 +59,48 @@
 
         <TextView
             android:id="@+id/page"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             tools:text="twitter"
             android:textSize="12sp"
             android:textColor="@color/activity_stream_subtitle"
-            android:layout_toRightOf="@id/icon"
-            android:layout_toEndOf="@id/icon"
+            android:layout_toRightOf="@id/icon_wrapper"
+            android:layout_toEndOf="@id/icon_wrapper"
             android:layout_toLeftOf="@id/menu"
             android:layout_toStartOf="@id/menu"
             android:paddingTop="@dimen/activity_stream_base_margin"
             android:paddingLeft="@dimen/activity_stream_base_margin"
             android:paddingStart="@dimen/activity_stream_base_margin"/>
 
         <TextView
             android:id="@+id/card_history_label"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_toEndOf="@id/icon"
-            android:layout_toRightOf="@id/icon"
+            android:layout_toEndOf="@id/icon_wrapper"
+            android:layout_toRightOf="@id/icon_wrapper"
             android:maxLines="3"
             android:ellipsize="end"
             android:paddingLeft="@dimen/activity_stream_base_margin"
             android:paddingStart="@dimen/activity_stream_base_margin"
             android:textSize="14sp"
             android:textStyle="bold"
             android:textColor="#ff000000"
             android:layout_below="@id/page"
             android:layout_toLeftOf="@id/menu"
             android:layout_toStartOf="@id/menu"
             tools:text="Descriptive title of a page that is veeeeeeery long - maybe even too long?" />
 
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
-            android:layout_toRightOf="@id/icon"
-            android:layout_toEndOf="@id/icon"
+            android:layout_toRightOf="@id/icon_wrapper"
+            android:layout_toEndOf="@id/icon_wrapper"
             android:layout_alignParentBottom="true"
             android:paddingLeft="@dimen/activity_stream_base_margin"
             android:paddingStart="@dimen/activity_stream_base_margin"
             android:paddingRight="@dimen/activity_stream_base_margin"
             android:paddingEnd="@dimen/activity_stream_base_margin"
             android:paddingTop="4dp"
             android:paddingBottom="@dimen/activity_stream_base_margin"
             android:gravity="center_vertical"