mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-21 09:18:27 +00:00
Basic open group invitation view
This commit is contained in:
parent
252f344d93
commit
b8f6321262
@ -13,9 +13,11 @@ import android.view.LayoutInflater
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewOutlineProvider
|
import android.view.ViewOutlineProvider
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import kotlinx.android.synthetic.main.view_link_preview.view.*
|
import kotlinx.android.synthetic.main.view_link_preview.view.*
|
||||||
import network.loki.messenger.R
|
import network.loki.messenger.R
|
||||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
||||||
|
import org.thoughtcrime.securesms.loki.utilities.UiModeUtilities
|
||||||
import org.thoughtcrime.securesms.mms.GlideRequests
|
import org.thoughtcrime.securesms.mms.GlideRequests
|
||||||
|
|
||||||
class LinkPreviewView : LinearLayout {
|
class LinkPreviewView : LinearLayout {
|
||||||
@ -43,6 +45,12 @@ class LinkPreviewView : LinearLayout {
|
|||||||
// TODO: Properly use glide and the actual thumbnail
|
// TODO: Properly use glide and the actual thumbnail
|
||||||
// Title
|
// Title
|
||||||
titleTextView.text = linkPreview.title
|
titleTextView.text = linkPreview.title
|
||||||
|
val textColorID = if (message.isOutgoing && UiModeUtilities.isDayUiMode(context)) {
|
||||||
|
R.color.white
|
||||||
|
} else {
|
||||||
|
if (UiModeUtilities.isDayUiMode(context)) R.color.black else R.color.white
|
||||||
|
}
|
||||||
|
titleTextView.setTextColor(ResourcesCompat.getColor(resources, textColorID, context.theme))
|
||||||
// Body
|
// Body
|
||||||
mainLinkPreviewContainer.addView(VisibleMessageContentView.getBodyTextView(context, message))
|
mainLinkPreviewContainer.addView(VisibleMessageContentView.getBodyTextView(context, message))
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package org.thoughtcrime.securesms.conversation.v2.messages
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.util.AttributeSet
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.widget.LinearLayout
|
||||||
|
import androidx.annotation.ColorInt
|
||||||
|
import kotlinx.android.synthetic.main.view_open_group_invitation.view.*
|
||||||
|
import network.loki.messenger.R
|
||||||
|
import org.session.libsession.messaging.utilities.UpdateMessageData
|
||||||
|
import org.session.libsession.utilities.OpenGroupUrlParser
|
||||||
|
import org.thoughtcrime.securesms.database.model.MessageRecord
|
||||||
|
|
||||||
|
class OpenGroupInvitationView : LinearLayout {
|
||||||
|
|
||||||
|
constructor(context: Context): super(context) { initialize() }
|
||||||
|
constructor(context: Context, attrs: AttributeSet?): super(context, attrs) { initialize() }
|
||||||
|
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int): super(context, attrs, defStyleAttr) { initialize() }
|
||||||
|
|
||||||
|
private fun initialize() {
|
||||||
|
LayoutInflater.from(context).inflate(R.layout.view_open_group_invitation, this)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun bind(message: MessageRecord, @ColorInt textColor: Int) {
|
||||||
|
// FIXME: This is a really weird approach
|
||||||
|
val umd = UpdateMessageData.fromJSON(message.body)!!
|
||||||
|
val data = umd.kind as UpdateMessageData.Kind.OpenGroupInvitation
|
||||||
|
val iconID = if (message.isOutgoing) R.drawable.ic_globe else R.drawable.ic_plus
|
||||||
|
openGroupInvitationIconImageView.setImageResource(iconID)
|
||||||
|
openGroupTitleTextView.text = data.groupName
|
||||||
|
openGroupURLTextView.text = OpenGroupUrlParser.trimQueryParameter(data.groupUrl)
|
||||||
|
openGroupTitleTextView.setTextColor(textColor)
|
||||||
|
openGroupJoinMessageTextView.setTextColor(textColor)
|
||||||
|
openGroupURLTextView.setTextColor(textColor)
|
||||||
|
}
|
||||||
|
}
|
@ -5,7 +5,6 @@ import android.graphics.drawable.Drawable
|
|||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewOutlineProvider
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.annotation.ColorInt
|
import androidx.annotation.ColorInt
|
||||||
@ -15,6 +14,8 @@ import androidx.core.graphics.BlendModeColorFilterCompat
|
|||||||
import androidx.core.graphics.BlendModeCompat
|
import androidx.core.graphics.BlendModeCompat
|
||||||
import kotlinx.android.synthetic.main.view_visible_message_content.view.*
|
import kotlinx.android.synthetic.main.view_visible_message_content.view.*
|
||||||
import network.loki.messenger.R
|
import network.loki.messenger.R
|
||||||
|
import org.session.libsession.messaging.utilities.UpdateMessageData
|
||||||
|
import org.session.libsession.messaging.utilities.UpdateMessageData.Companion.fromJSON
|
||||||
import org.session.libsession.utilities.ThemeUtil
|
import org.session.libsession.utilities.ThemeUtil
|
||||||
import org.session.libsession.utilities.ViewUtil
|
import org.session.libsession.utilities.ViewUtil
|
||||||
import org.thoughtcrime.securesms.database.model.MessageRecord
|
import org.thoughtcrime.securesms.database.model.MessageRecord
|
||||||
@ -24,7 +25,6 @@ import org.thoughtcrime.securesms.loki.utilities.UiModeUtilities
|
|||||||
import org.thoughtcrime.securesms.loki.utilities.getColorWithID
|
import org.thoughtcrime.securesms.loki.utilities.getColorWithID
|
||||||
import org.thoughtcrime.securesms.loki.utilities.toPx
|
import org.thoughtcrime.securesms.loki.utilities.toPx
|
||||||
import org.thoughtcrime.securesms.mms.GlideRequests
|
import org.thoughtcrime.securesms.mms.GlideRequests
|
||||||
import java.lang.IllegalStateException
|
|
||||||
|
|
||||||
class VisibleMessageContentView : LinearLayout {
|
class VisibleMessageContentView : LinearLayout {
|
||||||
var onContentClick: (() -> Unit)? = null
|
var onContentClick: (() -> Unit)? = null
|
||||||
@ -77,6 +77,10 @@ class VisibleMessageContentView : LinearLayout {
|
|||||||
mainContainer.addView(documentView)
|
mainContainer.addView(documentView)
|
||||||
} else if (message is MmsMessageRecord && message.slideDeck.asAttachments().isNotEmpty()) {
|
} else if (message is MmsMessageRecord && message.slideDeck.asAttachments().isNotEmpty()) {
|
||||||
throw IllegalStateException("Not yet implemented; we may want to use Signal's album view here.")
|
throw IllegalStateException("Not yet implemented; we may want to use Signal's album view here.")
|
||||||
|
} else if (message.isOpenGroupInvitation) {
|
||||||
|
val openGroupInvitationView = OpenGroupInvitationView(context)
|
||||||
|
openGroupInvitationView.bind(message, VisibleMessageContentView.getTextColor(context, message))
|
||||||
|
mainContainer.addView(openGroupInvitationView)
|
||||||
} else {
|
} else {
|
||||||
val bodyTextView = VisibleMessageContentView.getBodyTextView(context, message)
|
val bodyTextView = VisibleMessageContentView.getBodyTextView(context, message)
|
||||||
mainContainer.addView(bodyTextView)
|
mainContainer.addView(bodyTextView)
|
||||||
|
68
app/src/main/res/layout/view_open_group_invitation.xml
Normal file
68
app/src/main/res/layout/view_open_group_invitation.xml
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="44dp"
|
||||||
|
android:layout_height="44dp"
|
||||||
|
android:background="@drawable/circle_tintable"
|
||||||
|
android:backgroundTint="@color/accent">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/openGroupInvitationIconImageView"
|
||||||
|
android:layout_width="20dp"
|
||||||
|
android:layout_height="20dp"
|
||||||
|
android:src="@drawable/ic_plus"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
|
app:tint="@color/white" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:paddingEnd="2dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/openGroupTitleTextView"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
tools:text="Lokinet"
|
||||||
|
android:textColor="@color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:textSize="@dimen/large_font_size" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/openGroupJoinMessageTextView"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/open_group_invitation_view__open_group_invitation"
|
||||||
|
android:textColor="@color/black"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:textSize="@dimen/small_font_size" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/openGroupURLTextView"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
tools:text="http://117.204.71.34"
|
||||||
|
android:textColor="@color/black"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:textSize="@dimen/very_small_font_size" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
Loading…
x
Reference in New Issue
Block a user