diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/DayChangeItemDecoration.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/DayChangeItemDecoration.kt index 6605794381a4ab05a5ef9ab36b360570b4eb73d0..e889eb1598f875afe05ffa661e3442734f79240c 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/DayChangeItemDecoration.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/DayChangeItemDecoration.kt @@ -16,7 +16,7 @@ import org.threeten.bp.temporal.ChronoUnit class DayChangeItemDecoration(private val adapter: MessageAdapter) : RecyclerView.ItemDecoration() { private val dayChangeFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM) - private val mBounds = Rect() + private val bounds = Rect() override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { c.save() @@ -35,9 +35,9 @@ class DayChangeItemDecoration(private val adapter: MessageAdapter) : for (i in 0 until childCount) { val child = parent.getChildAt(i) if (child.getTag(R.id.tag_daychange) == true) { - parent.getDecoratedBoundsWithMargins(child, mBounds) - val bottom = mBounds.bottom + Math.round(child.translationY) - val top = mBounds.top + Math.round(child.translationY) + parent.getDecoratedBoundsWithMargins(child, bounds) + val bottom = bounds.bottom + Math.round(child.translationY) + val top = bounds.top + Math.round(child.translationY) val layout = child.getTag(R.id.tag_daychange_layout) as View c.save() c.clipRect(left.toFloat(), top.toFloat(), right.toFloat(), bottom.toFloat()) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MarkerLineItemDecoration.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MarkerLineItemDecoration.kt new file mode 100644 index 0000000000000000000000000000000000000000..a17722a03d0092b1fb78e270a095b8d5149c1060 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MarkerLineItemDecoration.kt @@ -0,0 +1,65 @@ +package de.kuschku.quasseldroid.ui.chat.messages + +import android.content.Context +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Rect +import android.support.annotation.AttrRes +import android.support.annotation.DimenRes +import android.support.v7.widget.RecyclerView +import android.view.View +import de.kuschku.quasseldroid.R +import de.kuschku.quasseldroid.util.helper.styledAttributes + +class MarkerLineItemDecoration( + private val adapter: MessageAdapter, + context: Context, + @DimenRes height: Int, + @AttrRes markerlineColor: Int +) : RecyclerView.ItemDecoration() { + private val bounds = Rect() + private val height = context.resources.getDimensionPixelSize(height) + private val color = context.theme.styledAttributes(markerlineColor) { + Paint().apply { + color = getColor(0, 0) + } + } + + override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + c.save() + val left: Int + val right: Int + if (parent.clipToPadding) { + left = parent.paddingLeft + right = parent.width - parent.paddingRight + c.clipRect(left, parent.paddingTop, right, parent.height - parent.paddingBottom) + } else { + left = 0 + right = parent.width + } + + val childCount = parent.childCount + for (i in 0 until childCount) { + val child = parent.getChildAt(i) + if (child.getTag(R.id.tag_markerline) == true) { + parent.getDecoratedBoundsWithMargins(child, bounds) + val bottom = bounds.bottom + Math.round(child.translationY) + val top = bottom - height + c.drawRect(left.toFloat(), top.toFloat(), right.toFloat(), bottom.toFloat(), color) + } + } + c.restore() + } + + override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, + state: RecyclerView.State) { + adapter[parent.getChildAdapterPosition(view)]?.let { + if (it.isMarkerLine) { + view.setTag(R.id.tag_markerline, true) + outRect.set(0, 0, height, 0) + } else { + view.setTag(R.id.tag_markerline, false) + } + } + } +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt index 0cbe4e1dbdf7ad80dd3752f8975c3afe579c5294..2d973145181d9ea82258153b8ab7b1b242803605 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt @@ -22,7 +22,6 @@ import de.kuschku.quasseldroid.GlideApp import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.persistence.QuasselDatabase import de.kuschku.quasseldroid.util.helper.getOrPut -import de.kuschku.quasseldroid.util.helper.visibleIf import de.kuschku.quasseldroid.viewmodel.data.FormattedMessage import me.saket.bettermovementmethod.BetterLinkMovementMethod @@ -150,10 +149,6 @@ class MessageAdapter( @JvmField var combined: TextView? = null - @BindView(R.id.markerline) - @JvmField - var markerline: View? = null - private var message: FormattedMessage? = null private var selectable: Boolean = false private var clickable: Boolean = false @@ -195,7 +190,6 @@ class MessageAdapter( name?.text = message.name content?.text = message.content combined?.text = message.combined - markerline?.visibleIf(message.isMarkerLine) this.itemView.isSelected = message.isSelected diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt index 22d11cf696125aa2dcaaf6311bc2bb61999e4e88..0d9a20d67223878fc8d32762f4b7f70b207b03f4 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt @@ -377,6 +377,9 @@ class MessageListFragment : ServiceBoundFragment() { messageList.addOnScrollListener(preloader) messageList.addItemDecoration(DayChangeItemDecoration(adapter)) + messageList.addItemDecoration(MarkerLineItemDecoration( + adapter, requireContext(), R.dimen.markerline_height, R.attr.colorMarkerLine + )) return view } diff --git a/app/src/main/res/layout/widget_chatmessage_action.xml b/app/src/main/res/layout/widget_chatmessage_action.xml index 80eeab9e0909c9b55b7c4da34a2b9e12c6a38976..357b871dbfd200524155b4b4c8fb6e5fffc6e25c 100644 --- a/app/src/main/res/layout/widget_chatmessage_action.xml +++ b/app/src/main/res/layout/widget_chatmessage_action.xml @@ -4,67 +4,54 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/backgroundMenuItem" - android:orientation="vertical" + android:orientation="horizontal" + android:paddingBottom="@dimen/message_vertical" + android:paddingEnd="@dimen/message_horizontal" + android:paddingLeft="@dimen/message_horizontal" + android:paddingRight="@dimen/message_horizontal" + android:paddingStart="@dimen/message_horizontal" + android:paddingTop="@dimen/message_vertical" android:textAppearance="?android:attr/textAppearanceListItemSmall"> - <LinearLayout - android:layout_width="match_parent" + <TextView + android:id="@+id/time_left" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - android:paddingBottom="@dimen/message_vertical" - android:paddingEnd="@dimen/message_horizontal" - android:paddingLeft="@dimen/message_horizontal" - android:paddingRight="@dimen/message_horizontal" - android:paddingStart="@dimen/message_horizontal" - android:paddingTop="@dimen/message_vertical"> + android:layout_gravity="top" + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:typeface="monospace" + tools:text="@sample/messages.json/data/time" /> - <TextView - android:id="@+id/time_left" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="top" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" - android:textColor="?attr/colorForegroundSecondary" - android:typeface="monospace" - tools:text="@sample/messages.json/data/time" /> - - <Space - android:id="@+id/avatar_placeholder" - android:layout_width="@dimen/avatar_size" - android:layout_height="match_parent" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" - android:visibility="gone" /> - - <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView - android:id="@+id/combined" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:textColor="?attr/colorForegroundAction" - android:textStyle="italic" - tools:text="@sample/messages.json/data/message" /> + <Space + android:id="@+id/avatar_placeholder" + android:layout_width="@dimen/avatar_size" + android:layout_height="match_parent" + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:visibility="gone" /> - <TextView - android:id="@+id/time_right" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="top" - android:layout_marginLeft="@dimen/message_horizontal" - android:layout_marginStart="@dimen/message_horizontal" - android:textColor="?attr/colorForegroundSecondary" - android:textStyle="italic" - android:visibility="gone" - tools:text="@sample/messages.json/data/time" - tools:textSize="11.9sp" - tools:visibility="visible" /> - </LinearLayout> + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView + android:id="@+id/combined" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1" + android:textColor="?attr/colorForegroundAction" + android:textStyle="italic" + tools:text="@sample/messages.json/data/message" /> - <View - android:id="@+id/markerline" - android:layout_width="match_parent" - android:layout_height="1dp" - android:background="?colorMarkerLine" - android:visibility="gone" /> -</LinearLayout> \ No newline at end of file + <TextView + android:id="@+id/time_right" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top" + android:layout_marginLeft="@dimen/message_horizontal" + android:layout_marginStart="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:textStyle="italic" + android:visibility="gone" + tools:text="@sample/messages.json/data/time" + tools:textSize="11.9sp" + tools:visibility="visible" /> +</LinearLayout> diff --git a/app/src/main/res/layout/widget_chatmessage_daychange.xml b/app/src/main/res/layout/widget_chatmessage_daychange.xml index eda4795f9550594c9b441a1c8edf5fc559a8f6df..a8a5bee40b9a4229c6c0dbd31dc05adadfed711c 100644 --- a/app/src/main/res/layout/widget_chatmessage_daychange.xml +++ b/app/src/main/res/layout/widget_chatmessage_daychange.xml @@ -7,10 +7,6 @@ android:orientation="vertical" android:textAppearance="?android:attr/textAppearanceListItemSmall"> - <Space - android:layout_width="match_parent" - android:layout_height="@dimen/message_vertical" /> - <View android:layout_width="match_parent" android:layout_height="1dp" diff --git a/app/src/main/res/layout/widget_chatmessage_error.xml b/app/src/main/res/layout/widget_chatmessage_error.xml index e543bb3f7982c419ec79f05b2c232184c98634b3..3e6cc388d02de1f8406e19c34bb16131f38dfbd9 100644 --- a/app/src/main/res/layout/widget_chatmessage_error.xml +++ b/app/src/main/res/layout/widget_chatmessage_error.xml @@ -4,65 +4,52 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/backgroundMenuItem" - android:orientation="vertical" + android:orientation="horizontal" + android:paddingBottom="@dimen/message_vertical" + android:paddingEnd="@dimen/message_horizontal" + android:paddingLeft="@dimen/message_horizontal" + android:paddingRight="@dimen/message_horizontal" + android:paddingStart="@dimen/message_horizontal" + android:paddingTop="@dimen/message_vertical" android:textAppearance="?android:attr/textAppearanceListItemSmall"> - <LinearLayout - android:layout_width="match_parent" + <TextView + android:id="@+id/time_left" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - android:paddingBottom="@dimen/message_vertical" - android:paddingEnd="@dimen/message_horizontal" - android:paddingLeft="@dimen/message_horizontal" - android:paddingRight="@dimen/message_horizontal" - android:paddingStart="@dimen/message_horizontal" - android:paddingTop="@dimen/message_vertical"> + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:typeface="monospace" + tools:text="@sample/messages.json/data/time" /> - <TextView - android:id="@+id/time_left" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" - android:textColor="?attr/colorForegroundSecondary" - android:typeface="monospace" - tools:text="@sample/messages.json/data/time" /> - - <Space - android:id="@+id/avatar_placeholder" - android:layout_width="@dimen/avatar_size" - android:layout_height="match_parent" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" - android:visibility="gone" /> - - <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView - android:id="@+id/combined" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:textColor="?attr/colorForegroundError" - tools:text="@sample/messages.json/data/message" /> + <Space + android:id="@+id/avatar_placeholder" + android:layout_width="@dimen/avatar_size" + android:layout_height="match_parent" + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:visibility="gone" /> - <TextView - android:id="@+id/time_right" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="top" - android:layout_marginLeft="@dimen/message_horizontal" - android:layout_marginStart="@dimen/message_horizontal" - android:textColor="?attr/colorForegroundSecondary" - android:textStyle="italic" - android:visibility="gone" - tools:text="@sample/messages.json/data/time" - tools:textSize="11.9sp" - tools:visibility="visible" /> - </LinearLayout> + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView + android:id="@+id/combined" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1" + android:textColor="?attr/colorForegroundError" + tools:text="@sample/messages.json/data/message" /> - <View - android:id="@+id/markerline" - android:layout_width="match_parent" - android:layout_height="1dp" - android:background="?colorMarkerLine" - android:visibility="gone" /> -</LinearLayout> \ No newline at end of file + <TextView + android:id="@+id/time_right" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top" + android:layout_marginLeft="@dimen/message_horizontal" + android:layout_marginStart="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:textStyle="italic" + android:visibility="gone" + tools:text="@sample/messages.json/data/time" + tools:textSize="11.9sp" + tools:visibility="visible" /> +</LinearLayout> diff --git a/app/src/main/res/layout/widget_chatmessage_info.xml b/app/src/main/res/layout/widget_chatmessage_info.xml index 9deb77d4d08ca91c52f634205335acd7931fc330..8b304e287a05736443521063d8a6b3feeec1821e 100644 --- a/app/src/main/res/layout/widget_chatmessage_info.xml +++ b/app/src/main/res/layout/widget_chatmessage_info.xml @@ -4,66 +4,53 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/backgroundMenuItem" - android:orientation="vertical" + android:orientation="horizontal" + android:paddingBottom="@dimen/message_vertical" + android:paddingEnd="@dimen/message_horizontal" + android:paddingLeft="@dimen/message_horizontal" + android:paddingRight="@dimen/message_horizontal" + android:paddingStart="@dimen/message_horizontal" + android:paddingTop="@dimen/message_vertical" android:textAppearance="?android:attr/textAppearanceListItemSmall"> - <LinearLayout - android:layout_width="match_parent" + <TextView + android:id="@+id/time_left" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - android:paddingBottom="@dimen/message_vertical" - android:paddingEnd="@dimen/message_horizontal" - android:paddingLeft="@dimen/message_horizontal" - android:paddingRight="@dimen/message_horizontal" - android:paddingStart="@dimen/message_horizontal" - android:paddingTop="@dimen/message_vertical"> + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:fontFamily="monospace" + android:textColor="?attr/colorForegroundSecondary" + tools:text="@sample/messages.json/data/time" /> - <TextView - android:id="@+id/time_left" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" - android:fontFamily="monospace" - android:textColor="?attr/colorForegroundSecondary" - tools:text="@sample/messages.json/data/time" /> - - <Space - android:id="@+id/avatar_placeholder" - android:layout_width="@dimen/avatar_size" - android:layout_height="match_parent" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" - android:visibility="gone" /> - - <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView - android:id="@+id/combined" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:textColor="?attr/colorForegroundSecondary" - android:textStyle="italic" - tools:text="@sample/messages.json/data/message" /> + <Space + android:id="@+id/avatar_placeholder" + android:layout_width="@dimen/avatar_size" + android:layout_height="match_parent" + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:visibility="gone" /> - <TextView - android:id="@+id/time_right" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="top" - android:layout_marginLeft="@dimen/message_horizontal" - android:layout_marginStart="@dimen/message_horizontal" - android:textColor="?attr/colorForegroundSecondary" - android:textStyle="italic" - android:visibility="gone" - tools:text="@sample/messages.json/data/time" - tools:textSize="11.9sp" - tools:visibility="visible" /> - </LinearLayout> + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView + android:id="@+id/combined" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1" + android:textColor="?attr/colorForegroundSecondary" + android:textStyle="italic" + tools:text="@sample/messages.json/data/message" /> - <View - android:id="@+id/markerline" - android:layout_width="match_parent" - android:layout_height="1dp" - android:background="?colorMarkerLine" - android:visibility="gone" /> -</LinearLayout> \ No newline at end of file + <TextView + android:id="@+id/time_right" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top" + android:layout_marginLeft="@dimen/message_horizontal" + android:layout_marginStart="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:textStyle="italic" + android:visibility="gone" + tools:text="@sample/messages.json/data/time" + tools:textSize="11.9sp" + tools:visibility="visible" /> +</LinearLayout> diff --git a/app/src/main/res/layout/widget_chatmessage_notice.xml b/app/src/main/res/layout/widget_chatmessage_notice.xml index a03184b1c8ae87c8bb9e1b70d85016e57428ea29..5b18d8d8482aca067c60b7fee16296997f0eb3c0 100644 --- a/app/src/main/res/layout/widget_chatmessage_notice.xml +++ b/app/src/main/res/layout/widget_chatmessage_notice.xml @@ -4,65 +4,52 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/backgroundMenuItem" - android:orientation="vertical" + android:orientation="horizontal" + android:paddingBottom="@dimen/message_vertical" + android:paddingEnd="@dimen/message_horizontal" + android:paddingLeft="@dimen/message_horizontal" + android:paddingRight="@dimen/message_horizontal" + android:paddingStart="@dimen/message_horizontal" + android:paddingTop="@dimen/message_vertical" android:textAppearance="?android:attr/textAppearanceListItemSmall"> - <LinearLayout - android:layout_width="match_parent" + <TextView + android:id="@+id/time_left" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - android:paddingBottom="@dimen/message_vertical" - android:paddingEnd="@dimen/message_horizontal" - android:paddingLeft="@dimen/message_horizontal" - android:paddingRight="@dimen/message_horizontal" - android:paddingStart="@dimen/message_horizontal" - android:paddingTop="@dimen/message_vertical"> + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:fontFamily="monospace" + android:textColor="?attr/colorForegroundNotice" + tools:text="@sample/messages.json/data/time" /> - <TextView - android:id="@+id/time_left" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" - android:fontFamily="monospace" - android:textColor="?attr/colorForegroundNotice" - tools:text="@sample/messages.json/data/time" /> - - <Space - android:id="@+id/avatar_placeholder" - android:layout_width="@dimen/avatar_size" - android:layout_height="match_parent" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" - android:visibility="gone" /> - - <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView - android:id="@+id/combined" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:textColor="?attr/colorForegroundNotice" - tools:text="@sample/messages.json/data/message" /> + <Space + android:id="@+id/avatar_placeholder" + android:layout_width="@dimen/avatar_size" + android:layout_height="match_parent" + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:visibility="gone" /> - <TextView - android:id="@+id/time_right" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="top" - android:layout_marginLeft="@dimen/message_horizontal" - android:layout_marginStart="@dimen/message_horizontal" - android:textColor="?attr/colorForegroundSecondary" - android:textStyle="italic" - android:visibility="gone" - tools:text="@sample/messages.json/data/time" - tools:textSize="11.9sp" - tools:visibility="visible" /> - </LinearLayout> + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView + android:id="@+id/combined" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1" + android:textColor="?attr/colorForegroundNotice" + tools:text="@sample/messages.json/data/message" /> - <View - android:id="@+id/markerline" - android:layout_width="match_parent" - android:layout_height="1dp" - android:background="?colorMarkerLine" - android:visibility="gone" /> -</LinearLayout> \ No newline at end of file + <TextView + android:id="@+id/time_right" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top" + android:layout_marginLeft="@dimen/message_horizontal" + android:layout_marginStart="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:textStyle="italic" + android:visibility="gone" + tools:text="@sample/messages.json/data/time" + tools:textSize="11.9sp" + tools:visibility="visible" /> +</LinearLayout> diff --git a/app/src/main/res/layout/widget_chatmessage_plain.xml b/app/src/main/res/layout/widget_chatmessage_plain.xml index 85bf7eeb2127a4808cfde220b1e8acb39e9087f5..03709e314bc2cf608af108c583b3ab8e77bed086 100644 --- a/app/src/main/res/layout/widget_chatmessage_plain.xml +++ b/app/src/main/res/layout/widget_chatmessage_plain.xml @@ -4,120 +4,107 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/backgroundMenuItem" - android:orientation="vertical" + android:orientation="horizontal" + android:paddingBottom="@dimen/message_vertical" + android:paddingEnd="@dimen/message_horizontal" + android:paddingLeft="@dimen/message_horizontal" + android:paddingRight="@dimen/message_horizontal" + android:paddingStart="@dimen/message_horizontal" + android:paddingTop="@dimen/message_vertical" android:textAppearance="?android:attr/textAppearanceListItemSmall" tools:showIn="@layout/fragment_messages"> + <TextView + android:id="@+id/time_left" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top" + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:typeface="monospace" + tools:text="@sample/messages.json/data/time" + tools:visibility="gone" /> + + <FrameLayout + android:id="@+id/avatar_container" + android:layout_width="@dimen/avatar_size" + android:layout_height="wrap_content" + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:visibility="gone" + tools:visibility="visible"> + + <ImageView + android:id="@+id/avatar" + android:layout_width="@dimen/avatar_size" + android:layout_height="@dimen/avatar_size" + android:contentDescription="@string/label_avatar" + android:visibility="gone" + tools:src="@tools:sample/avatars" + tools:visibility="visible" /> + </FrameLayout> + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="horizontal" - android:paddingBottom="@dimen/message_vertical" - android:paddingEnd="@dimen/message_horizontal" - android:paddingLeft="@dimen/message_horizontal" - android:paddingRight="@dimen/message_horizontal" - android:paddingStart="@dimen/message_horizontal" - android:paddingTop="@dimen/message_vertical"> + android:layout_gravity="fill_vertical" + android:orientation="vertical"> <TextView - android:id="@+id/time_left" + android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="top" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" + android:layout_gravity="center_vertical" android:textColor="?attr/colorForegroundSecondary" - android:typeface="monospace" - tools:text="@sample/messages.json/data/time" - tools:visibility="gone" /> - - <FrameLayout - android:id="@+id/avatar_container" - android:layout_width="@dimen/avatar_size" - android:layout_height="wrap_content" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" android:visibility="gone" - tools:visibility="visible"> - - <ImageView - android:id="@+id/avatar" - android:layout_width="@dimen/avatar_size" - android:layout_height="@dimen/avatar_size" - android:contentDescription="@string/label_avatar" - android:visibility="gone" - tools:src="@tools:sample/avatars" - tools:visibility="visible" /> - </FrameLayout> + tools:text="@sample/messages.json/data/sender" + tools:visibility="visible" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_gravity="fill_vertical" - android:orientation="vertical"> - - <TextView - android:id="@+id/name" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:textColor="?attr/colorForegroundSecondary" - android:visibility="gone" - tools:text="@sample/messages.json/data/sender" - tools:visibility="visible" /> + android:layout_gravity="center_vertical|fill_horizontal" + android:orientation="horizontal"> <LinearLayout - android:layout_width="match_parent" + android:layout_width="0dip" android:layout_height="wrap_content" - android:layout_gravity="center_vertical|fill_horizontal" - android:orientation="horizontal"> + android:layout_weight="1" + android:orientation="vertical"> - <LinearLayout - android:layout_width="0dip" + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView + android:id="@+id/content" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_weight="1" - android:orientation="vertical"> - - <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView - android:id="@+id/content" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:textColor="?attr/colorForeground" - android:visibility="gone" - tools:text="@sample/messages.json/data/content" - tools:visibility="visible" /> - - <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView - android:id="@+id/combined" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:textColor="?attr/colorForeground" - tools:text="@sample/messages.json/data/message" - tools:visibility="gone" /> - - </LinearLayout> - - <TextView - android:id="@+id/time_right" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="top" - android:layout_marginLeft="@dimen/message_horizontal" - android:layout_marginStart="@dimen/message_horizontal" - android:textColor="?attr/colorForegroundSecondary" - android:textStyle="italic" + android:textColor="?attr/colorForeground" android:visibility="gone" - tools:text="@sample/messages.json/data/time" - tools:textSize="11.9sp" + tools:text="@sample/messages.json/data/content" tools:visibility="visible" /> + + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView + android:id="@+id/combined" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textColor="?attr/colorForeground" + tools:text="@sample/messages.json/data/message" + tools:visibility="gone" /> + </LinearLayout> + + <TextView + android:id="@+id/time_right" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top" + android:layout_marginLeft="@dimen/message_horizontal" + android:layout_marginStart="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:textStyle="italic" + android:visibility="gone" + tools:text="@sample/messages.json/data/time" + tools:textSize="11.9sp" + tools:visibility="visible" /> </LinearLayout> </LinearLayout> - - <View - android:id="@+id/markerline" - android:layout_width="match_parent" - android:layout_height="1dp" - android:background="?colorMarkerLine" - android:visibility="gone" /> -</LinearLayout> \ No newline at end of file +</LinearLayout> diff --git a/app/src/main/res/layout/widget_chatmessage_server.xml b/app/src/main/res/layout/widget_chatmessage_server.xml index 4b27c76ed259b6a4726686d221f5cb9affb98441..0981257a55309ae3e3c7a526182229e6bd34de0c 100644 --- a/app/src/main/res/layout/widget_chatmessage_server.xml +++ b/app/src/main/res/layout/widget_chatmessage_server.xml @@ -4,65 +4,52 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/backgroundMenuItem" - android:orientation="vertical" + android:orientation="horizontal" + android:paddingBottom="@dimen/message_vertical" + android:paddingEnd="@dimen/message_horizontal" + android:paddingLeft="@dimen/message_horizontal" + android:paddingRight="@dimen/message_horizontal" + android:paddingStart="@dimen/message_horizontal" + android:paddingTop="@dimen/message_vertical" android:textAppearance="?android:attr/textAppearanceListItemSmall"> - <LinearLayout - android:layout_width="match_parent" + <TextView + android:id="@+id/time_left" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - android:paddingBottom="@dimen/message_vertical" - android:paddingEnd="@dimen/message_horizontal" - android:paddingLeft="@dimen/message_horizontal" - android:paddingRight="@dimen/message_horizontal" - android:paddingStart="@dimen/message_horizontal" - android:paddingTop="@dimen/message_vertical"> + android:layout_marginLeft="@dimen/message_horizontal" + android:layout_marginStart="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:typeface="monospace" + tools:text="@sample/messages.json/data/time" /> - <TextView - android:id="@+id/time_left" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginLeft="@dimen/message_horizontal" - android:layout_marginStart="@dimen/message_horizontal" - android:textColor="?attr/colorForegroundSecondary" - android:typeface="monospace" - tools:text="@sample/messages.json/data/time" /> - - <Space - android:id="@+id/avatar_placeholder" - android:layout_width="@dimen/avatar_size" - android:layout_height="match_parent" - android:layout_marginEnd="@dimen/message_horizontal" - android:layout_marginRight="@dimen/message_horizontal" - android:visibility="gone" /> - - <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView - android:id="@+id/combined" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:layout_weight="1" - android:textColor="?attr/colorForegroundSecondary" - tools:text="@sample/messages.json/data/message" /> + <Space + android:id="@+id/avatar_placeholder" + android:layout_width="@dimen/avatar_size" + android:layout_height="match_parent" + android:layout_marginEnd="@dimen/message_horizontal" + android:layout_marginRight="@dimen/message_horizontal" + android:visibility="gone" /> - <TextView - android:id="@+id/time_right" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="top" - android:layout_marginLeft="@dimen/message_horizontal" - android:layout_marginStart="@dimen/message_horizontal" - android:textColor="?attr/colorForegroundSecondary" - android:textStyle="italic" - android:visibility="gone" - tools:text="@sample/messages.json/data/time" - tools:textSize="11.9sp" - tools:visibility="visible" /> - </LinearLayout> + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView + android:id="@+id/combined" + android:layout_width="0dip" + android:layout_height="wrap_content" + android:layout_weight="1" + android:textColor="?attr/colorForegroundSecondary" + tools:text="@sample/messages.json/data/message" /> - <View - android:id="@+id/markerline" - android:layout_width="match_parent" - android:layout_height="1dp" - android:background="?colorMarkerLine" - android:visibility="gone" /> -</LinearLayout> \ No newline at end of file + <TextView + android:id="@+id/time_right" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="top" + android:layout_marginLeft="@dimen/message_horizontal" + android:layout_marginStart="@dimen/message_horizontal" + android:textColor="?attr/colorForegroundSecondary" + android:textStyle="italic" + android:visibility="gone" + tools:text="@sample/messages.json/data/time" + tools:textSize="11.9sp" + tools:visibility="visible" /> +</LinearLayout> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index cf895323a17d24a8a9bdac6a27f97556360e6c05..c185448bba21d0eb97cf0218d2567e1c1cee9611 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -5,6 +5,8 @@ <dimen name="message_vertical">2dp</dimen> <dimen name="message_vertical_daychange">8dp</dimen> + <dimen name="markerline_height">1dp</dimen> + <dimen name="autocomplete_max_height">96dp</dimen> <dimen name="max_content_width">480dp</dimen> diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml index 07001df1e193982c5ed30cca5399f9a632325d0b..b9e0fea61c5e1602fdba384eb96687bcabfbc0ce 100644 --- a/app/src/main/res/values/ids.xml +++ b/app/src/main/res/values/ids.xml @@ -3,4 +3,6 @@ <item name="tag_daychange" type="id" /> <item name="tag_daychange_layout" type="id" /> <item name="tag_daychange_content" type="id" /> + + <item name="tag_markerline" type="id" /> </resources>