[Modify]房间背景
This commit is contained in:
@@ -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="添加本地音乐"
|
||||
|
26
app/src/main/java/com/nnbc123/app/avroom/RoomBgViewModel.kt
Normal file
26
app/src/main/java/com/nnbc123/app/avroom/RoomBgViewModel.kt
Normal 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()
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
}
|
@@ -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)
|
||||
}
|
||||
|
||||
}
|
@@ -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());
|
||||
|
@@ -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()
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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)
|
||||
}
|
||||
|
||||
}
|
@@ -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 {
|
||||
|
BIN
app/src/main/res/drawable-xhdpi/bg_pk.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/bg_pk.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
38
app/src/main/res/layout/activity_room_bg.xml
Normal file
38
app/src/main/res/layout/activity_room_bg.xml
Normal 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>
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
8
app/src/main/res/layout/fragment_room_bg.xml
Normal file
8
app/src/main/res/layout/fragment_room_bg.xml
Normal 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"/>
|
@@ -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"
|
||||
|
@@ -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>
|
||||
|
@@ -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 = ""
|
||||
)
|
@@ -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>>
|
||||
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user