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
fun bind(message: MessageRecord) {
// TODO: Make view look better
textView.text = message.getDisplayBody(context)
}

View File

@ -57,13 +57,17 @@ class VisibleMessageView : LinearLayout {
profilePictureContainer.visibility = View.GONE
senderNameTextView.visibility = View.GONE
}
// Date break
dateBreakTextView.text = "The Ancient Past"
// Margins
val messageContentViewLayoutParams = messageContentView.layoutParams as LinearLayout.LayoutParams
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()
messageContentView.layoutParams = messageContentViewLayoutParams
// TODO: Inter-message spacing
// 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
messageContentView.bind(message)
}

View File

@ -1,69 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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:orientation="horizontal"
android:gravity="bottom">
android:orientation="vertical" >
<!-- The linear layout below is marked as "useless", but this isn't the case. It's
convenient because it allows you to show or hide the profile picture plus the spacers
before and behind it in one go. -->
<TextView
android:id="@+id/dateBreakTextView"
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
android:id="@+id/profilePictureContainer"
android:layout_width="wrap_content"
android:id="@+id/mainContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
android:orientation="horizontal"
android:gravity="bottom">
<View
android:layout_width="12dp"
android:layout_height="0dp" />
<!-- The linear layout below is marked as "useless", but this isn't the case. It's
convenient because it allows you to show or hide the profile picture plus the spacers
before and behind it in one go. -->
<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_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/senderNameTextView"
<LinearLayout
android:id="@+id/profilePictureContainer"
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" />
android:orientation="horizontal">
<org.thoughtcrime.securesms.conversation.v2.messages.VisibleMessageContentView
android:id="@+id/messageContentView"
<View
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_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>

View File

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