feat:完成房间主题背景设置功能
This commit is contained in:
@@ -265,6 +265,9 @@
|
||||
android:name=".avroom.activity.RoomSettingActivity"
|
||||
android:label="@string/main_androidmanifest_07"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".avroom.activity.RoomBgSettingActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".avroom.activity.RoomManagerListActivity"
|
||||
android:label="@string/main_androidmanifest_08"
|
||||
|
@@ -0,0 +1,77 @@
|
||||
package com.chwl.app.avroom.activity
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import androidx.core.view.WindowCompat
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.avroom.adapter.RoomBgAdapter
|
||||
import com.chwl.app.base.BaseViewBindingActivity
|
||||
import com.chwl.app.databinding.RoomBgSettingActivityBinding
|
||||
import com.chwl.core.auth.AuthModel
|
||||
import com.chwl.core.manager.AvRoomDataManager
|
||||
import com.chwl.core.room.model.RoomSettingModel
|
||||
import com.chwl.library.utils.ResUtil
|
||||
import com.netease.nim.uikit.StatusBarUtil
|
||||
|
||||
class RoomBgSettingActivity : BaseViewBindingActivity<RoomBgSettingActivityBinding>() {
|
||||
private val adapter = RoomBgAdapter()
|
||||
|
||||
private val model = RoomSettingModel()
|
||||
override fun init() {
|
||||
initWhiteTitleBar(ResUtil.getString(R.string.room_theme))
|
||||
mTitleBar.setTitleColor(resources.getColor(R.color.white))
|
||||
mTitleBar.setLeftImageResource(R.drawable.arrow_left_white)
|
||||
binding.recyclerView.adapter = adapter
|
||||
adapter.selectItem(AvRoomDataManager.get().mCurrentRoomInfo?.backPic)
|
||||
adapter.setOnItemClickListener { _, view, position ->
|
||||
adapter.getItem(position)?.let {
|
||||
if (adapter.getSelectItem() != it) {
|
||||
showUpdateRoomBackgroundTips(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
val list = listOf(
|
||||
"https://image.molistar.xyz/BG.webp",
|
||||
"https ://image.molistar.xyz/BG2.webp",
|
||||
"https ://image.molistar.xyz/BG3.webp",
|
||||
"https ://image.molistar.xyz/BG4.webp",
|
||||
"https ://image.molistar.xyz/BG5.webp",
|
||||
"https ://image.molistar.xyz/BG6.webp"
|
||||
)
|
||||
adapter.setNewData(list)
|
||||
}
|
||||
|
||||
private fun showUpdateRoomBackgroundTips(url: String) {
|
||||
dialogManager.showOkCancelDialog(
|
||||
getString(R.string.room_theme_changed_tips),
|
||||
getString(R.string.btn_text_confirm_select_team_member)
|
||||
) {
|
||||
updateRoomBackground(url)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private fun updateRoomBackground(url: String) {
|
||||
dialogManager.showProgressDialog(this)
|
||||
model.updateRoomBackground(AuthModel.get().currentUid, url)
|
||||
.compose(bindToLifecycle()).subscribe({
|
||||
dialogManager.dismissDialog()
|
||||
toast(R.string.avroom_dialog_roomimposedialog_04)
|
||||
adapter.selectItem(url)
|
||||
}, {
|
||||
dialogManager.dismissDialog()
|
||||
toast(it.message)
|
||||
})
|
||||
}
|
||||
|
||||
override fun needSteepStateBar(): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun setStatusBar() {
|
||||
StatusBarUtil.transparencyBar(this)
|
||||
StatusBarUtil.StatusBarLightMode(this)
|
||||
WindowCompat.getInsetsController(window, window.decorView).let {
|
||||
it.isAppearanceLightStatusBars = false
|
||||
}
|
||||
}
|
||||
}
|
@@ -156,6 +156,7 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
managerLayout.setOnClickListener(this);
|
||||
blackLayout.setOnClickListener(this);
|
||||
mRoomBgLayout.setOnClickListener(this);
|
||||
binding.layoutTheme.setOnClickListener(this);
|
||||
|
||||
binding.switchAudio.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
@@ -324,6 +325,9 @@ public class RoomSettingActivity extends BaseMvpActivity<IRoomSettingView, RoomS
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.layout_theme:
|
||||
startActivity(new Intent(context, RoomBgSettingActivity.class));
|
||||
break;
|
||||
case R.id.manager_layout:
|
||||
RoomManagerListActivity.start(this);
|
||||
break;
|
||||
|
@@ -0,0 +1,45 @@
|
||||
package com.chwl.app.avroom.adapter
|
||||
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import androidx.core.view.isVisible
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.load.DataSource
|
||||
import com.bumptech.glide.load.engine.GlideException
|
||||
import com.bumptech.glide.request.RequestListener
|
||||
import com.bumptech.glide.request.target.Target
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.chwl.app.R
|
||||
import com.chwl.app.ui.utils.load
|
||||
|
||||
class RoomBgAdapter : BaseQuickAdapter<String, BaseViewHolder>(R.layout.room_bg_setting_item) {
|
||||
private var selectItem: String? = null
|
||||
override fun convertPayloads(
|
||||
helper: BaseViewHolder,
|
||||
item: String?,
|
||||
payloads: MutableList<Any>
|
||||
) {
|
||||
super.convertPayloads(helper, item, payloads)
|
||||
convertStatus(helper, item)
|
||||
}
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: String?) {
|
||||
val imageView = helper.getView<ImageView>(R.id.iv_image)
|
||||
imageView.load(item)
|
||||
convertStatus(helper, item)
|
||||
}
|
||||
|
||||
private fun convertStatus(helper: BaseViewHolder, item: String?) {
|
||||
val statusView = helper.getView<View>(R.id.tv_status)
|
||||
statusView.isVisible = item == selectItem
|
||||
}
|
||||
|
||||
fun getSelectItem() = selectItem
|
||||
|
||||
fun selectItem(url: String?) {
|
||||
selectItem = url
|
||||
notifyItemRangeChanged(0, itemCount, true)
|
||||
}
|
||||
}
|
@@ -293,7 +293,6 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
|
||||
public void setRoomBg(RoomInfo roomInfo) {
|
||||
if (svgaRoomBg == null) return;
|
||||
updateView(roomInfo);
|
||||
AVRoomActivity.setBackBg(mContext, roomInfo, svgaRoomBg, bgPicture);
|
||||
}
|
||||
|
||||
@@ -316,7 +315,6 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
addTipMsg();
|
||||
case RoomEvent.ROOM_INFO_UPDATE:
|
||||
updateView(AvRoomDataManager.get().mCurrentRoomInfo);
|
||||
setRoomBg(AvRoomDataManager.get().mCurrentRoomInfo);
|
||||
break;
|
||||
case RoomEvent.RECEIVE_NORMALE_GIFT:
|
||||
onReceiveGiftMsg(roomEvent.getGiftReceiveInfo());
|
||||
@@ -449,7 +447,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
||||
.replace(R.id.container, roomFragment)
|
||||
.commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
setRoomBg(currentRoomInfo);
|
||||
gameMainBinding.setRoomInfo(currentRoomInfo);
|
||||
updateHasAnimationEffect();
|
||||
roomTitle.setText(RegexUtil.getPrintableString(currentRoomInfo.getTitle()));
|
||||
|
5
app/src/main/res/drawable/shape_b2afff_5dp.xml
Normal file
5
app/src/main/res/drawable/shape_b2afff_5dp.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="5dp" />
|
||||
<solid android:color="#B2AFFF" />
|
||||
</shape>
|
@@ -225,6 +225,44 @@
|
||||
|
||||
</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/layout_theme"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="44dp"
|
||||
android:onClick="@{click}">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:text="@string/room_theme"
|
||||
android:textColor="@color/text_title_color"
|
||||
android:textSize="@dimen/sp_15" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
android:drawableEnd="@drawable/arrow_right"
|
||||
android:drawablePadding="@dimen/dp_10"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_vertical"
|
||||
android:maxWidth="250dp"
|
||||
android:maxLines="1"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/sp_14" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
|
26
app/src/main/res/layout/room_bg_setting_activity.xml
Normal file
26
app/src/main/res/layout/room_bg_setting_activity.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout 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="#181526"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.chwl.app.base.TitleBar
|
||||
android:id="@+id/title_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_30" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginHorizontal="@dimen/dp_5"
|
||||
android:orientation="vertical"
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
app:spanCount="2"
|
||||
tools:listitem="@layout/room_bg_setting_item" />
|
||||
|
||||
</LinearLayout>
|
34
app/src/main/res/layout/room_bg_setting_item.xml
Normal file
34
app/src/main/res/layout/room_bg_setting_item.xml
Normal file
@@ -0,0 +1,34 @@
|
||||
<?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="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_image"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginHorizontal="@dimen/dp_7"
|
||||
android:layout_marginVertical="@dimen/dp_8"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_cover"
|
||||
app:layout_constraintDimensionRatio="166:206"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/shape_b2afff_5dp"
|
||||
android:paddingHorizontal="@dimen/dp_6"
|
||||
android:paddingVertical="@dimen/dp_3"
|
||||
android:text="@string/layout_item_live_tag_01"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/dp_13"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_image"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_image"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -1550,7 +1550,7 @@
|
||||
<string name="avroom_presenter_roomnewbiepresenter_02">بالفعل في الأسفل</string>
|
||||
<string name="avroom_presenter_roomsettingpresenter_01">فتح وضع الخروج</string>
|
||||
<string name="avroom_recommendcard_myrecommendcardactivity_01">غير مستخدم</string>
|
||||
<string name="avroom_recommendcard_myrecommendcardactivity_02">في الاستخدام</string>
|
||||
<string name="avroom_recommendcard_myrecommendcardactivity_02">قيد الاستخدام</string>
|
||||
<string name="avroom_recommendcard_myrecommendcardactivity_03">مستخدم</string>
|
||||
<string name="avroom_recommendcard_myrecommendcardactivity_04">منتهية الصلاحية</string>
|
||||
<string name="avroom_recommendcard_recommendcardlistadapter_01">وقت الاستخدام 2019/01/13 20:00-21:00</string>
|
||||
@@ -3475,7 +3475,7 @@
|
||||
<string name="layout_item_ktv_type_room_02">أقوى حفلة سطح أقوى حفلة سطح أقوى حفلة سطح أقوى حفلة سطح أقوى حفلة سطح</string>
|
||||
<string name="layout_item_ktv_type_room_03">100 على الانترنت</string>
|
||||
<string name="layout_item_lately_give_01">رسالة حب</string>
|
||||
<string name="layout_item_live_tag_01">في الاستخدام</string>
|
||||
<string name="layout_item_live_tag_01">قيد الاستخدام</string>
|
||||
<string name="layout_item_lucky_money_member_list_01">يجب أن يكون طول الاسم داخل عشرة أحرف</string>
|
||||
<string name="layout_item_lucky_money_member_list_02">100 فول الذهب</string>
|
||||
<string name="layout_item_lucky_money_member_list_03">فول الذهب</string>
|
||||
@@ -5279,4 +5279,7 @@
|
||||
<string name="fans_team_9">نجح في ترك نادي المعجبين</string>
|
||||
|
||||
<string name="gift_value">قيمة الهدايا</string>
|
||||
|
||||
<string name="room_theme">خلفية الغرفة</string>
|
||||
<string name="room_theme_changed_tips">هل أنت متأكد أنك تريد اختيار هذه الصورة لتكون خلفية لغرفتك؟</string>
|
||||
</resources>
|
@@ -5223,4 +5223,6 @@
|
||||
<string name="fans_team_9">退出粉絲團成功!</string>
|
||||
|
||||
<string name="gift_value">禮物值</string>
|
||||
<string name="room_theme">房間主題</string>
|
||||
<string name="room_theme_changed_tips">確認選擇這張圖片作為房間主題嗎?</string>
|
||||
</resources>
|
@@ -5261,6 +5261,9 @@ You cannot join again within 24 hours after leaving</string>
|
||||
<string name="fans_team_9">Successfully exited the fan club!</string>
|
||||
|
||||
<string name="gift_value">Gift Value</string>
|
||||
|
||||
<string name="room_theme">Room Background</string>
|
||||
<string name="room_theme_changed_tips">Are you sure you want to select this image as the room background?</string>
|
||||
</resources>
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user