新用户打招呼弹窗UI修改
This commit is contained in:
@@ -484,7 +484,7 @@ public class BaseRoomPresenter<V extends IBaseRoomView> extends BaseMvpPresenter
|
|||||||
.takeWhile(aBoolean -> !aBoolean && getMvpView() != null)
|
.takeWhile(aBoolean -> !aBoolean && getMvpView() != null)
|
||||||
.doOnNext(aBoolean -> getMvpView().noFollow())
|
.doOnNext(aBoolean -> getMvpView().noFollow())
|
||||||
//个人主播房新加的关注提醒弹窗,以后还会不会有呢???
|
//个人主播房新加的关注提醒弹窗,以后还会不会有呢???
|
||||||
.takeWhile(aBoolean -> AvRoomDataManager.get().isSingleRoom())
|
.takeWhile(aBoolean -> !AvRoomDataManager.get().isSingleRoom())
|
||||||
.delay(4, TimeUnit.MINUTES)
|
.delay(4, TimeUnit.MINUTES)
|
||||||
.single(false)
|
.single(false)
|
||||||
.flatMap(aBoolean -> PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), uid))
|
.flatMap(aBoolean -> PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), uid))
|
||||||
|
@@ -2,13 +2,21 @@ package com.mango.moshen.home.dialog
|
|||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.text.TextUtils
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import com.mango.moshen.avroom.activity.AVRoomActivity
|
import com.mango.moshen.avroom.activity.AVRoomActivity
|
||||||
import com.mango.moshen.base.BaseDialog
|
import com.mango.moshen.base.BaseDialog
|
||||||
import com.mango.moshen.databinding.DialogNewUserHelloBinding
|
import com.mango.moshen.databinding.DialogNewUserHelloBinding
|
||||||
import com.mango.moshen.ui.utils.load
|
import com.mango.moshen.ui.utils.load
|
||||||
import com.mango.core.channel_page.bean.NewUserHelloInfo
|
import com.mango.core.channel_page.bean.NewUserHelloInfo
|
||||||
|
import com.mango.core.statistic.StatisticManager
|
||||||
|
import com.mango.core.statistic.protocol.StatisticsProtocol
|
||||||
import com.mango.core.utils.subAndReplaceDot
|
import com.mango.core.utils.subAndReplaceDot
|
||||||
|
import com.mango.moshen.R
|
||||||
|
import com.mango.moshen.audio.helper.AudioPlayerHelper
|
||||||
|
import com.mango.moshen.audio.helper.OnPlayListener
|
||||||
|
import com.mango.xchat_android_library.utils.ListUtils
|
||||||
|
import com.mango.xchat_android_library.utils.SingleToastUtil
|
||||||
|
|
||||||
class NewUserHelloDialog : BaseDialog<DialogNewUserHelloBinding>() {
|
class NewUserHelloDialog : BaseDialog<DialogNewUserHelloBinding>() {
|
||||||
|
|
||||||
@@ -25,7 +33,8 @@ class NewUserHelloDialog : BaseDialog<DialogNewUserHelloBinding>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override var width: Int = WindowManager.LayoutParams.MATCH_PARENT
|
override var width: Int = WindowManager.LayoutParams.MATCH_PARENT
|
||||||
override var dimAmount: Float = 0.8f
|
override var dimAmount: Float = 0.3f
|
||||||
|
private var audioPlaying = false
|
||||||
|
|
||||||
private val newUserHelloInfo: NewUserHelloInfo by lazy {
|
private val newUserHelloInfo: NewUserHelloInfo by lazy {
|
||||||
requireArguments().getSerializable("newUserHelloInfo") as NewUserHelloInfo
|
requireArguments().getSerializable("newUserHelloInfo") as NewUserHelloInfo
|
||||||
@@ -33,13 +42,10 @@ class NewUserHelloDialog : BaseDialog<DialogNewUserHelloBinding>() {
|
|||||||
|
|
||||||
@SuppressLint("CheckResult", "SetTextI18n")
|
@SuppressLint("CheckResult", "SetTextI18n")
|
||||||
override fun init() {
|
override fun init() {
|
||||||
binding.ivClose.setOnClickListener {
|
|
||||||
dismissAllowingStateLoss()
|
|
||||||
}
|
|
||||||
binding.ivAvatar.load(newUserHelloInfo.sayHelloUserAvatar)
|
binding.ivAvatar.load(newUserHelloInfo.sayHelloUserAvatar)
|
||||||
binding.tvId.text = "ID:${newUserHelloInfo.sayHelloUserErbanNo}"
|
|
||||||
binding.tvNick.text = newUserHelloInfo.sayHelloUserNickname.subAndReplaceDot(8)
|
binding.tvNick.text = newUserHelloInfo.sayHelloUserNickname.subAndReplaceDot(8)
|
||||||
binding.tvGoRoom.setOnClickListener {
|
binding.tvContent.text = newUserHelloInfo.sayHelloMsg
|
||||||
|
binding.ivGoRoom.setOnClickListener {
|
||||||
AVRoomActivity.startForFromType(
|
AVRoomActivity.startForFromType(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
newUserHelloInfo.roomUid,
|
newUserHelloInfo.roomUid,
|
||||||
@@ -49,6 +55,52 @@ class NewUserHelloDialog : BaseDialog<DialogNewUserHelloBinding>() {
|
|||||||
)
|
)
|
||||||
dismissAllowingStateLoss()
|
dismissAllowingStateLoss()
|
||||||
}
|
}
|
||||||
|
binding.llAudio.setOnClickListener { toggleAudio(newUserHelloInfo.voiceCard?.propVals) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun toggleAudio(list: List<String>?) {
|
||||||
|
if (list.isNullOrEmpty()) return
|
||||||
|
val url: String? = list.findLast { it == "http" }
|
||||||
|
if (TextUtils.isEmpty(url)) return
|
||||||
|
if (!audioPlaying) {
|
||||||
|
playAudio(url)
|
||||||
|
} else {
|
||||||
|
stopAudio()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun playAudio(url: String?) {
|
||||||
|
if (audioPlaying) return
|
||||||
|
audioPlaying = true
|
||||||
|
binding.ivAudioControl.setImageResource(R.drawable.ic_skill_play)
|
||||||
|
AudioPlayerHelper.get().playInThread(url, object : OnPlayListener {
|
||||||
|
override fun onError(error: String) {
|
||||||
|
SingleToastUtil.showToast("播放出错,请重试")
|
||||||
|
stopAudio()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onPrepared() {}
|
||||||
|
override fun onPlaying(currDuration: Long) {}
|
||||||
|
override fun onCompletion() {
|
||||||
|
stopAudio()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
StatisticManager.Instance()
|
||||||
|
.onEvent(StatisticsProtocol.EVENT_PERSONALSHOW_TOP_CARD_VOICE_CLICK, "个播展示卡片播放语音点击")
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun stopAudio() {
|
||||||
|
if (!audioPlaying) return
|
||||||
|
audioPlaying = false
|
||||||
|
binding.ivAudioControl.setImageResource(R.drawable.ic_skill_pause)
|
||||||
|
AudioPlayerHelper.get().endPlay()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDestroyView() {
|
||||||
|
stopAudio()
|
||||||
|
super.onDestroyView()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Binary file not shown.
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 29 KiB |
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_title.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_title.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_voice.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_voice.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 819 B |
26
app/src/main/res/drawable/shape_new_user_avatar_bg.xml
Normal file
26
app/src/main/res/drawable/shape_new_user_avatar_bg.xml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<solid android:color="#80ffffff" />
|
||||||
|
<corners android:radius="24dp" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:bottom="5dp"
|
||||||
|
android:left="5dp"
|
||||||
|
android:right="5dp"
|
||||||
|
android:top="5dp">
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient
|
||||||
|
android:angle="180"
|
||||||
|
android:endColor="#3BE4FF"
|
||||||
|
android:startColor="#7BFFD9" />
|
||||||
|
|
||||||
|
<corners android:radius="20dp" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</layer-list>
|
11
app/src/main/res/drawable/shape_new_user_voice_bg.xml
Normal file
11
app/src/main/res/drawable/shape_new_user_voice_bg.xml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<gradient
|
||||||
|
android:angle="180"
|
||||||
|
android:endColor="#F3F4ED"
|
||||||
|
android:startColor="#DFF8FC"
|
||||||
|
android:type="linear"
|
||||||
|
android:useLevel="true" />
|
||||||
|
<corners android:radius="20dp" />
|
||||||
|
</shape>
|
@@ -1,5 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
@@ -14,83 +13,106 @@
|
|||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/iv_close"
|
android:id="@+id/iv_title"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="end"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_marginEnd="52dp"
|
android:src="@drawable/new_user_hello_bg_title" />
|
||||||
android:src="@drawable/new_user_hello_ic_close" />
|
|
||||||
|
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:layout_width="253dp"
|
android:layout_width="250dp"
|
||||||
android:layout_height="220dp"
|
android:layout_height="290dp"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_marginTop="32dp">
|
android:layout_marginTop="6dp"
|
||||||
|
android:background="@drawable/shape_new_user_avatar_bg">
|
||||||
|
|
||||||
<com.mango.moshen.common.widget.CircleImageView
|
<ImageView
|
||||||
android:id="@+id/iv_avatar"
|
android:id="@+id/iv_avatar"
|
||||||
android:layout_width="150dp"
|
android:layout_width="232dp"
|
||||||
android:layout_height="150dp"
|
android:layout_height="272dp"
|
||||||
android:layout_gravity="center_horizontal|bottom"
|
android:layout_gravity="center"
|
||||||
android:layout_marginBottom="10dp"
|
|
||||||
android:scaleType="centerCrop"
|
android:scaleType="centerCrop"
|
||||||
android:src="@drawable/default_cover"
|
android:src="@drawable/default_cover"
|
||||||
app:cborder_color="@color/white"
|
app:cborder_color="@color/white"
|
||||||
app:cborder_width="2dp" />
|
app:cborder_width="2dp" />
|
||||||
|
|
||||||
<View
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_audio"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="21dp"
|
||||||
|
android:layout_gravity="end"
|
||||||
|
android:layout_marginTop="17dp"
|
||||||
|
android:layout_marginEnd="14dp"
|
||||||
|
android:background="@drawable/shape_new_user_voice_bg"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingStart="5dp"
|
||||||
|
android:paddingEnd="5dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_audio_control"
|
||||||
|
android:layout_width="@dimen/dp_14"
|
||||||
|
android:layout_height="@dimen/dp_14"
|
||||||
|
android:src="@drawable/ic_skill_pause" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/liv_user"
|
||||||
|
android:layout_width="20dp"
|
||||||
|
android:layout_height="10dp"
|
||||||
|
android:layout_marginStart="2dp"
|
||||||
|
android:background="@color/transparent"
|
||||||
|
android:scaleType="fitXY"
|
||||||
|
android:src="@drawable/new_user_hello_voice" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:background="@drawable/new_user_hello_bg_avatar" />
|
android:layout_gravity="bottom"
|
||||||
|
android:layout_marginStart="9dp"
|
||||||
|
android:layout_marginEnd="9dp"
|
||||||
|
android:layout_marginBottom="9dp"
|
||||||
|
android:background="@drawable/bg_single_anchor_more_bottom"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_nick"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:text="魔力可可鸭魔力可..." />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_content"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginEnd="6dp"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:text="欢迎来到魔力,Ta已经等待你很久啦,快来一起玩吧~"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<TextView
|
<ImageView
|
||||||
android:id="@+id/tv_nick"
|
android:id="@+id/iv_go_room"
|
||||||
android:layout_width="165dp"
|
|
||||||
android:layout_height="28dp"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_marginTop="4dp"
|
|
||||||
android:background="@drawable/new_user_hello_bg_nick"
|
|
||||||
android:gravity="center"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="14sp"
|
|
||||||
tools:text="魔力可可鸭魔力可..." />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_id"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_marginTop="7dp"
|
android:layout_marginTop="28dp"
|
||||||
android:textColor="@color/white"
|
android:src="@drawable/new_user_hello_bg_go_room" />
|
||||||
android:textSize="12sp"
|
|
||||||
tools:text="ID:123456" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_marginTop="15dp"
|
|
||||||
android:background="@drawable/new_user_hello_bg_content"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="欢迎来到魔力,Ta已经等待你很\n久啦,快来一起玩吧~"
|
|
||||||
android:textColor="#ffa00bbb"
|
|
||||||
android:textSize="12sp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_go_room"
|
|
||||||
android:layout_width="240dp"
|
|
||||||
android:layout_height="48dp"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_marginTop="35dp"
|
|
||||||
android:includeFontPadding="false"
|
|
||||||
android:background="@drawable/new_user_hello_bg_go_room"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="开启浪漫之旅"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="20sp" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
package com.mango.core.user.bean
|
package com.mango.core.user.bean
|
||||||
|
|
||||||
|
import java.io.Serializable
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {
|
* {
|
||||||
"code": 0,
|
"code": 0,
|
||||||
@@ -23,4 +25,4 @@ data class UserInfoSkillEntity(
|
|||||||
val id: Int,
|
val id: Int,
|
||||||
val name: String,
|
val name: String,
|
||||||
val propVals: List<String>
|
val propVals: List<String>
|
||||||
)
|
) : Serializable
|
@@ -1,5 +1,6 @@
|
|||||||
package com.mango.core.channel_page.bean
|
package com.mango.core.channel_page.bean
|
||||||
|
|
||||||
|
import com.mango.core.user.bean.UserInfoSkillEntity
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
|
||||||
data class NewUserHelloInfo(
|
data class NewUserHelloInfo(
|
||||||
@@ -9,5 +10,6 @@ data class NewUserHelloInfo(
|
|||||||
val sayHelloUserUid: Long = 0L,
|
val sayHelloUserUid: Long = 0L,
|
||||||
val sayHelloUserAvatar: String = "",
|
val sayHelloUserAvatar: String = "",
|
||||||
val sayHelloUserErbanNo: Int = 0,
|
val sayHelloUserErbanNo: Int = 0,
|
||||||
val sayHelloUserNickname: String = ""
|
val sayHelloUserNickname: String = "",
|
||||||
|
val voiceCard: UserInfoSkillEntity? = null
|
||||||
) : Serializable
|
) : Serializable
|
Reference in New Issue
Block a user