Add date break header

This commit is contained in:
nielsandriesse 2021-06-01 14:38:52 +10:00
parent e177fc4689
commit 3b18b0985b
4 changed files with 75 additions and 55 deletions

View File

@ -30,7 +30,6 @@ class ControlMessageView : LinearLayout {
// region Updating // region Updating
fun bind(message: MessageRecord) { fun bind(message: MessageRecord) {
// TODO: Make view look better
textView.text = message.getDisplayBody(context) textView.text = message.getDisplayBody(context)
} }

View File

@ -57,13 +57,17 @@ class VisibleMessageView : LinearLayout {
profilePictureContainer.visibility = View.GONE profilePictureContainer.visibility = View.GONE
senderNameTextView.visibility = View.GONE senderNameTextView.visibility = View.GONE
} }
// Date break
dateBreakTextView.text = "The Ancient Past"
// Margins // Margins
val messageContentViewLayoutParams = messageContentView.layoutParams as LinearLayout.LayoutParams val messageContentViewLayoutParams = messageContentView.layoutParams as LinearLayout.LayoutParams
messageContentViewLayoutParams.leftMargin = if (message.isOutgoing) resources.getDimension(R.dimen.very_large_spacing).toInt() else 0 messageContentViewLayoutParams.leftMargin = if (message.isOutgoing) resources.getDimension(R.dimen.very_large_spacing).toInt() else 0
messageContentViewLayoutParams.rightMargin = if (message.isOutgoing) 0 else resources.getDimension(R.dimen.very_large_spacing).toInt() messageContentViewLayoutParams.rightMargin = if (message.isOutgoing) 0 else resources.getDimension(R.dimen.very_large_spacing).toInt()
messageContentView.layoutParams = messageContentViewLayoutParams messageContentView.layoutParams = messageContentViewLayoutParams
// TODO: Inter-message spacing
// Gravity // Gravity
gravity = if (message.isOutgoing) Gravity.RIGHT else Gravity.LEFT val gravity = if (message.isOutgoing) Gravity.RIGHT else Gravity.LEFT
mainContainer.gravity = gravity or Gravity.BOTTOM
// Populate content view // Populate content view
messageContentView.bind(message) messageContentView.bind(message)
} }

View File

@ -1,69 +1,86 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="vertical" >
android:gravity="bottom">
<!-- The linear layout below is marked as "useless", but this isn't the case. It's <TextView
convenient because it allows you to show or hide the profile picture plus the spacers android:id="@+id/dateBreakTextView"
before and behind it in one go. --> android:layout_width="match_parent"
android:layout_height="40dp"
android:textColor="@color/text"
android:textSize="@dimen/small_font_size"
android:textStyle="bold"
android:gravity="center" />
<LinearLayout <LinearLayout
android:id="@+id/profilePictureContainer" android:id="@+id/mainContainer"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal"
android:gravity="bottom">
<View <!-- The linear layout below is marked as "useless", but this isn't the case. It's
android:layout_width="12dp" convenient because it allows you to show or hide the profile picture plus the spacers
android:layout_height="0dp" /> before and behind it in one go. -->
<RelativeLayout <LinearLayout
android:layout_width="wrap_content" android:id="@+id/profilePictureContainer"
android:layout_height="wrap_content" >
<org.thoughtcrime.securesms.loki.views.ProfilePictureView
android:id="@+id/profilePictureView"
android:layout_width="@dimen/very_small_profile_picture_size"
android:layout_height="@dimen/very_small_profile_picture_size" />
<ImageView
android:id="@+id/moderatorIconImageView"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_crown"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" />
</RelativeLayout>
<View
android:layout_width="12dp"
android:layout_height="0dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/senderNameTextView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="4dp" android:orientation="horizontal">
android:textColor="@color/text"
android:textStyle="bold"
android:maxLines="1"
android:ellipsize="end" />
<org.thoughtcrime.securesms.conversation.v2.messages.VisibleMessageContentView <View
android:id="@+id/messageContentView" android:layout_width="12dp"
android:layout_height="0dp" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<org.thoughtcrime.securesms.loki.views.ProfilePictureView
android:id="@+id/profilePictureView"
android:layout_width="@dimen/very_small_profile_picture_size"
android:layout_height="@dimen/very_small_profile_picture_size" />
<ImageView
android:id="@+id/moderatorIconImageView"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_crown"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" />
</RelativeLayout>
<View
android:layout_width="12dp"
android:layout_height="0dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/senderNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:textColor="@color/text"
android:textStyle="bold"
android:maxLines="1"
android:ellipsize="end" />
<org.thoughtcrime.securesms.conversation.v2.messages.VisibleMessageContentView
android:id="@+id/messageContentView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -10,6 +10,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/text" android:textColor="@color/text"
android:textSize="@dimen/small_font_size" /> android:textSize="@dimen/medium_font_size" />
</LinearLayout> </LinearLayout>