[Modify]房间背景

This commit is contained in:
wushaocheng
2023-07-28 19:51:00 +08:00
parent 2bb57e2b3f
commit 31266aaee0
17 changed files with 413 additions and 77 deletions

View File

@@ -502,6 +502,10 @@
android:name=".avroom.activity.RoomBlackListActivity"
android:label="黑名单"
android:screenOrientation="portrait" />
<activity
android:name=".avroom.activity.RoomBgActivity"
android:label="房间背景"
android:screenOrientation="portrait" />
<activity
android:name="com.nnbc123.app.music.activity.AddLocalMusicListActivity"
android:label="添加本地音乐"

View File

@@ -0,0 +1,26 @@
package com.nnbc123.app.avroom
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.nnbc123.app.base.BaseViewModel
import com.nnbc123.core.manager.AvRoomDataManager
import com.nnbc123.core.privilege.bean.PrivilegeCardInfo
import com.nnbc123.core.roombg.bean.RoomBgInfo
import com.nnbc123.core.roombg.model.RoomBgModel
class RoomBgViewModel : BaseViewModel() {
private val _roomBgListLiveData = MutableLiveData<List<RoomBgInfo>>()
val roomBgListLiveData: LiveData<List<RoomBgInfo>> = _roomBgListLiveData
fun getRoomBackgroundList(type: String) {
safeLaunch(
block = {
_roomBgListLiveData.value = RoomBgModel.getRoomBgList(
type, AvRoomDataManager.get().roomUid.toString()
)
}
)
}
}

View File

@@ -0,0 +1,89 @@
package com.nnbc123.app.avroom.activity
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.text.SpannableString
import android.text.Spanned
import android.text.method.LinkMovementMethod
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import com.netease.nim.uikit.StatusBarUtil
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.nnbc123.app.R
import com.nnbc123.app.adapter.CommonVPAdapter
import com.nnbc123.app.avroom.dialog.CreatePrivilegeCardDialog
import com.nnbc123.app.avroom.fragment.PrivilegeCardFragment
import com.nnbc123.app.avroom.fragment.RoomBgFragment
import com.nnbc123.app.base.BaseViewBindingActivity
import com.nnbc123.app.common.widget.OriginalDrawStatusClickSpan
import com.nnbc123.app.databinding.ActivityPrivilegeBinding
import com.nnbc123.app.databinding.ActivityRoomBgBinding
import com.nnbc123.app.home.adapter.MainMagicIndicatorAdapter
import com.nnbc123.app.ui.webview.CommonWebViewActivity
import com.nnbc123.app.ui.widget.magicindicator.ViewPagerHelper
import com.nnbc123.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
import com.nnbc123.core.UriProvider
import com.nnbc123.library.annatation.ActLayoutRes
/**
* @author wushaocheng
* @Description 特权卡
* @Date 2023/07/21
*/
@ActLayoutRes(R.layout.activity_room_bg)
class RoomBgActivity : BaseViewBindingActivity<ActivityRoomBgBinding>() {
companion object {
@JvmStatic
fun start(context: Context) {
val starter = Intent(context, RoomBgActivity::class.java)
context.startActivity(starter)
}
}
override fun init() {
initTitleBar(getString(R.string.room_bg))
initViewPager()
}
private fun initViewPager() {
val fragmentList: MutableList<Fragment> = ArrayList(2)
fragmentList.add(RoomBgFragment.newInstance("0"))
fragmentList.add(RoomBgFragment.newInstance("1"))
val tagList: MutableList<String> = ArrayList(2)
tagList.add(getString(R.string.room_bg_recommend))
tagList.add(getString(R.string.room_bg_exclusive))
val commonNavigator = CommonNavigator(context)
commonNavigator.titleMargin = ScreenUtil.dip2px(2.0f)
val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList)
magicIndicatorAdapter.setOnItemSelectListener { position: Int, _: TextView? ->
binding.viewPager.currentItem = position
}
magicIndicatorAdapter.textSize = 16
magicIndicatorAdapter.minScale = 0.875f
magicIndicatorAdapter.selectedColor = ContextCompat.getColor(this, R.color.color_2B2D33)
magicIndicatorAdapter.normalColor = ContextCompat.getColor(this, R.color.color_A2A7B8)
magicIndicatorAdapter.setResId(R.drawable.ic_home_indicator_center)
commonNavigator.setTitleWrapContent(true)
commonNavigator.adapter = magicIndicatorAdapter
binding.magicIndicator.navigator = commonNavigator
commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
binding.viewPager.adapter = CommonVPAdapter(supportFragmentManager, lifecycle, fragmentList)
ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager)
}
override fun needSteepStateBar() = true
override fun setStatusBar() {
super.setStatusBar()
StatusBarUtil.transparencyBar(this)
StatusBarUtil.StatusBarLightMode(this)
}
}

View File

@@ -120,8 +120,8 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
managerLayout.setVisibility(View.GONE);
} else {
managerLayout.setVisibility(View.VISIBLE);
if (AvRoomDataManager.get().isRoomOwner()) {
mRoomBgLayout.setVisibility(View.GONE);
if (AvRoomDataManager.get().isRoomOwner() || AvRoomDataManager.get().isSuperAdmin()) {
mRoomBgLayout.setVisibility(View.VISIBLE);
}
}
if (AvRoomDataManager.get().isCpRoom() || AvRoomDataManager.get().isSingleRoom()) {
@@ -304,9 +304,9 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
RoomBlackListActivity.start(this);
break;
case R.id.room_bg_layout:
CommonWebViewActivity.start(this, UriProvider.getRoomBg());
RoomBgActivity.start(this);
// CommonWebViewActivity.start(this, UriProvider.getRoomBg());
break;
case R.id.layout_room_name_edit:
EditRoomTitleDialog nameDialog = new EditRoomTitleDialog(this,
EditRoomTitleDialog.TYPE_EDIT_NAME, binding.tvRoomName.getText().toString());

View File

@@ -2,8 +2,11 @@ package com.nnbc123.app.avroom.dialog
import android.annotation.SuppressLint
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.Gravity
import androidx.fragment.app.viewModels
import com.hjq.toast.ToastUtils
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.nnbc123.app.ErbanTakePhotoActivity
import com.nnbc123.app.ErbanTakePhotoActivity.TakePhotoCallBack
@@ -20,7 +23,9 @@ import com.nnbc123.core.file.FileModel
import com.nnbc123.core.privilege.bean.PrivilegeCardInfo
import com.nnbc123.core.utils.TextUtils
import com.nnbc123.library.utils.SingleToastUtil
import com.nnbc123.library.utils.net.MobileNumberUtils
import org.greenrobot.eventbus.EventBus
import java.util.regex.Pattern
/**
* @author wushaocheng
@@ -73,6 +78,42 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
this.url = it.cardUrl
}
binding.edName.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
override fun afterTextChanged(s: Editable?) {
if ((s?.length ?: 0) > 12) {
ToastUtils.show("最多只能输入12个字")
binding.edName.setText(s?.substring(0, 12))
}
}
})
binding.edExplain.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
override fun afterTextChanged(s: Editable?) {
if ((s?.length ?: 0) > 20) {
ToastUtils.show("最多只能输入20个字")
binding.edExplain.setText(s?.substring(0, 20))
}
}
})
binding.ivPic.setOnClickListener {
ErbanTakePhotoActivity.startToSelectPhoto(context, this)
}
@@ -80,7 +121,9 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
dismissAllowingStateLoss()
}
binding.tvConfirm.setOnClickListener {
if (checkEmpty()) {
if(!isStringComma(binding.edId.text.toString())){
SingleToastUtil.showToast("请输入以逗号分隔的id")
} else if (checkEmpty()) {
SingleToastUtil.showToast("请填写完整信息")
} else {
showTip()
@@ -130,6 +173,12 @@ class CreatePrivilegeCardDialog : BaseDialog<DialogCreatePrivilegeCardBinding>()
))
}
private fun isStringComma(text: CharSequence?): Boolean {
val pattern = Pattern.compile("^[0-9]+(,[0-9]+)*$")
val matcher = pattern.matcher(text)
return matcher.matches()
}
@SuppressLint("CheckResult")
override fun takeSuccess(result: TResult?) {
FileModel.get()

View File

@@ -1,7 +1,11 @@
package com.nnbc123.app.avroom.fragment
import android.annotation.SuppressLint
import android.graphics.Typeface
import android.os.Bundle
import android.text.Spannable
import android.text.SpannableStringBuilder
import android.text.style.StyleSpan
import androidx.fragment.app.viewModels
import androidx.recyclerview.widget.LinearLayoutManager
import com.nnbc123.app.R
@@ -20,6 +24,7 @@ import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
/**
* @author wushaocheng
* @Description 特权卡
@@ -80,33 +85,41 @@ class PrivilegeCardFragment : BaseViewBindingFragment<FragmentPrivilegeCardBindi
mAdapter.setOnItemChildClickListener { adapter, view, position ->
when (view.id) {
R.id.ivDelete -> {
mAdapter.getItem(position)?.id?.let { showDeleteDialog(it) }
mAdapter.getItem(position)?.let { showDeleteDialog(it.id, it.cardName) }
}
R.id.tvCause -> {
mAdapter.getItem(position)?.checkReason?.let { showFailureDialog(it) }
}
R.id.tvEdit -> {
mAdapter.getItem(position)?.let { CreatePrivilegeCardDialog.newInstance(it).show(context) }
mAdapter.getItem(position)
?.let { CreatePrivilegeCardDialog.newInstance(it).show(context) }
}
}
}
}
private fun showDeleteDialog(id: Int) {
if (deleteTipDialog == null) {
deleteTipDialog = CommonTipDialog(context)
deleteTipDialog?.setTipMsg("确认将【女神卡】删除吗")
deleteTipDialog?.setOnActionListener(object : CommonTipDialog.OnActionListener {
override fun onOk() {
privilegeViewModel?.deletePrivilegeCard(id)
deleteTipDialog?.dismiss()
}
private fun showDeleteDialog(id: Int, cardName: String) {
val title = "确认将【${cardName}】删除吗"
val spannableStringBuilder = SpannableStringBuilder(title)
val styleSpan = StyleSpan(Typeface.BOLD) //粗体
spannableStringBuilder.setSpan(
styleSpan,
3,
title.length - 3,
Spannable.SPAN_EXCLUSIVE_INCLUSIVE
)
deleteTipDialog = CommonTipDialog(context)
deleteTipDialog?.setTipMsg(spannableStringBuilder.toString())
deleteTipDialog?.setOnActionListener(object : CommonTipDialog.OnActionListener {
override fun onOk() {
privilegeViewModel?.deletePrivilegeCard(id)
deleteTipDialog?.dismiss()
}
override fun onCancel() {
deleteTipDialog?.dismiss()
}
})
}
override fun onCancel() {
deleteTipDialog?.dismiss()
}
})
if (deleteTipDialog?.isShowing == true) {
deleteTipDialog?.dismiss()
}
@@ -114,18 +127,16 @@ class PrivilegeCardFragment : BaseViewBindingFragment<FragmentPrivilegeCardBindi
}
private fun showFailureDialog(message: String) {
if (failureTipDialog == null) {
failureTipDialog = CommonTipDialog(context)
failureTipDialog?.setTitleMsg("审核不通过原因")
failureTipDialog?.setTipMsg(message)
failureTipDialog?.setOkText("知道了")
failureTipDialog?.setTextCancelShow(false)
failureTipDialog?.setOnActionListener(object : CommonTipDialog.OnActionListener {
override fun onOk() {
failureTipDialog?.dismiss()
}
})
}
failureTipDialog = CommonTipDialog(context)
failureTipDialog?.setTitleMsg("审核不通过原因")
failureTipDialog?.setTipMsg(message)
failureTipDialog?.setOkText("知道了")
failureTipDialog?.setTextCancelShow(false)
failureTipDialog?.setOnActionListener(object : CommonTipDialog.OnActionListener {
override fun onOk() {
failureTipDialog?.dismiss()
}
})
if (failureTipDialog?.isShowing == true) {
failureTipDialog?.dismiss()
}
@@ -145,7 +156,7 @@ class PrivilegeCardFragment : BaseViewBindingFragment<FragmentPrivilegeCardBindi
override fun onResume() {
super.onResume()
if(isNeedLoad && (TextUtils.isEmptyText(type) || type == "0")){
if (isNeedLoad && (TextUtils.isEmptyText(type) || type == "0")) {
loadData(true)
isNeedLoad = false
}
@@ -154,7 +165,7 @@ class PrivilegeCardFragment : BaseViewBindingFragment<FragmentPrivilegeCardBindi
@Subscribe(threadMode = ThreadMode.MAIN)
fun privilegeCardEvent(event: PrivilegeCardEvent?) {
isNeedLoad = true
if(isResumed && isNeedLoad && (TextUtils.isEmptyText(type) || type == "0")){
if (isResumed && isNeedLoad && (TextUtils.isEmptyText(type) || type == "0")) {
loadData(true)
isNeedLoad = false
}

View File

@@ -0,0 +1,45 @@
package com.nnbc123.app.avroom.fragment
import android.os.Bundle
import androidx.fragment.app.viewModels
import com.nnbc123.app.avroom.PrivilegeViewModel
import com.nnbc123.app.avroom.RoomBgViewModel
import com.nnbc123.app.base.BaseViewBindingFragment
import com.nnbc123.app.databinding.FragmentRoomBgBinding
/**
* @author wushaocheng
* @Description 特权卡
* @Date 2023/07/21
*/
class RoomBgFragment : BaseViewBindingFragment<FragmentRoomBgBinding>() {
private var type = ""
private val roomBgViewModel: RoomBgViewModel by viewModels()
companion object {
private const val TYPE = "type"
fun newInstance(type: String): RoomBgFragment {
val args = Bundle()
args.putString(TYPE, type)
val fragment = RoomBgFragment()
fragment.arguments = args
return fragment
}
}
override fun init() {
type = arguments?.getString(TYPE, "").toString()
roomBgViewModel.roomBgListLiveData.observe(this) {
}
}
override fun onLazyLoad() {
super.onLazyLoad()
roomBgViewModel.getRoomBackgroundList(type)
}
}

View File

@@ -434,7 +434,9 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_SING_ROOM, "人气", "人气"));
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_DRAW_GIFT, "涂鸦礼物", "涂鸦礼物"));
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_PENALTY, "惩罚礼物", "惩罚礼物"));
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_PRIVILEGE, "特权卡", "特权卡"));
if(AvRoomDataManager.get().isHasRoomPrivilegeCard()) {
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_PRIVILEGE, "特权卡", "特权卡"));
}
tabInfoList.add(new GiftTab(GiftIndicator.TYPE_KNAP, "背包", "背包"));
giftIndicator = findViewById(R.id.gift_indicator);
giftIndicator.initTab(
@@ -1458,6 +1460,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
giftIndicator.showPosition(GiftIndicator.TYPE_NOBLE);
giftIndicator.showPosition(GiftIndicator.TYPE_WEEK);
giftIndicator.showPosition(GiftIndicator.TYPE_NORMAL);
giftIndicator.showPosition(GiftIndicator.TYPE_PRIVILEGE);
if (AvRoomDataManager.get().isSingleRoom()) {
giftIndicator.showPosition(GiftIndicator.TYPE_SING_ROOM);
} else {

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_F5F6FA"
tools:context=".avroom.activity.RoomBgActivity">
<com.nnbc123.app.base.TitleBar
android:id="@+id/title_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_30"
app:layout_constraintTop_toTopOf="parent"
app:mBackgroundColor="@color/color_FA940A" />
<com.nnbc123.app.ui.widget.magicindicator.MagicIndicator
android:id="@+id/magicIndicator"
android:layout_width="0dp"
android:layout_height="30dp"
android:layout_marginTop="@dimen/dp_20"
android:paddingStart="@dimen/dp_8"
android:paddingEnd="@dimen/dp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_bar" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/magicIndicator" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -231,6 +231,38 @@
android:layout_height="@dimen/dp_10"
android:background="@color/line_353548" />
<RelativeLayout
android:id="@+id/room_bg_layout"
android:layout_width="match_parent"
android:layout_height="44dp"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:text="@string/room_bg_text"
android:textColor="@color/text_title_282828"
android:textSize="@dimen/sp_15" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/arrow_right" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginStart="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" />
<RelativeLayout
android:id="@+id/manager_layout"
android:layout_width="match_parent"
@@ -292,30 +324,6 @@
android:layout_marginEnd="@dimen/dp_15"
android:background="@color/line_353548" />
<RelativeLayout
android:id="@+id/room_bg_layout"
android:layout_width="match_parent"
android:layout_height="44dp"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:text="@string/room_bg_text"
android:textColor="@color/text_title_282828"
android:textSize="@dimen/sp_15" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:src="@drawable/arrow_right" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/audio_layout"
android:layout_width="match_parent"

View File

@@ -73,6 +73,7 @@
android:textColorHint="@color/color_CED1DB"
android:textCursorDrawable="@null"
android:textSize="@dimen/sp_13"
android:maxLength="4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tv2"
app:layout_constraintTop_toBottomOf="@+id/view1" />
@@ -150,6 +151,7 @@
android:textColorHint="@color/color_CED1DB"
android:textCursorDrawable="@null"
android:textSize="@dimen/sp_13"
android:maxLength="4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tv4"
app:layout_constraintTop_toBottomOf="@+id/view3" />
@@ -184,6 +186,7 @@
android:background="@null"
android:gravity="end"
android:hint="@string/dialog_privilege_10"
android:inputType="number"
android:textColor="@color/color_696D7A"
android:textColorHint="@color/color_CED1DB"
android:textCursorDrawable="@null"

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:spanCount="2"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"/>

View File

@@ -21,23 +21,6 @@
app:layout_constraintTop_toTopOf="parent"
app:riv_corner_radius="@dimen/dp_16" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_in_pk"
android:layout_width="44dp"
android:layout_height="16dp"
android:background="@drawable/bg_common_pk"
android:gravity="center"
android:includeFontPadding="false"
android:text="PK中"
android:textColor="#ffffffff"
android:textSize="@dimen/sp_12"
android:visibility="gone"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_6"
app:layout_constraintStart_toStartOf="@id/iv_room_image"
app:layout_constraintTop_toTopOf="@id/iv_room_image"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_tag_content"
android:layout_width="wrap_content"
@@ -144,6 +127,19 @@
</LinearLayout>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_in_pk"
android:layout_width="40dp"
android:layout_height="16dp"
android:background="@drawable/bg_pk"
android:gravity="center"
android:visibility="gone"
android:layout_marginEnd="@dimen/dp_8"
android:layout_marginBottom="@dimen/dp_2"
app:layout_constraintEnd_toEndOf="@+id/iv_room_image"
app:layout_constraintBottom_toTopOf="@+id/tv_room_title"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_room_title"
android:layout_width="0dp"

View File

@@ -966,5 +966,8 @@
<string name="dialog_privilege_13">图片比例16:9</string>
<string name="dialog_privilege_14">取消</string>
<string name="dialog_privilege_15">确认</string>
<string name="room_bg">房间背景</string>
<string name="room_bg_recommend">推荐</string>
<string name="room_bg_exclusive">专属</string>
</resources>

View File

@@ -0,0 +1,15 @@
package com.nnbc123.core.roombg.bean
data class RoomBgInfo(
val erbanNoStr: String = "",
val id: Int = 0,
val isDefault: Int = 0,
val isUsed: Int = 0,
val name: String = "",
val picUrl: String = "",
val roomUid: Int = 0,
val roomUidStr: String = "",
val seq: Int = 0,
val type: Int = 0,
val viewUrl: String = ""
)

View File

@@ -0,0 +1,38 @@
package com.nnbc123.core.roombg.model
import com.nnbc123.core.base.BaseModel
import com.nnbc123.core.bean.response.ServiceResult
import com.nnbc123.core.home.bean.*
import com.nnbc123.core.privilege.bean.PrivilegeCardInfo
import com.nnbc123.core.roombg.bean.RoomBgInfo
import com.nnbc123.core.utils.net.launchRequest
import com.nnbc123.library.net.rxnet.RxNet
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Query
object RoomBgModel : BaseModel() {
private val api = RxNet.create(Api::class.java)
suspend fun getRoomBgList(type: String, roomUid: String): List<RoomBgInfo>? =
launchRequest {
api.getRoomBgList(type, roomUid)
}
private interface Api {
/**
* 房间背景列表
*
* @return
*/
@GET("/room/background/list")
suspend fun getRoomBgList(
@Query("type") type: String,
@Query("roomUid") roomUid: String
): ServiceResult<List<RoomBgInfo>>
}
}