房间更多弹窗增加推荐房间列表
This commit is contained in:
@@ -0,0 +1,24 @@
|
|||||||
|
package com.yizhuan.erban.avroom.adapter
|
||||||
|
|
||||||
|
import android.graphics.Color
|
||||||
|
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||||
|
import com.chad.library.adapter.base.BaseViewHolder
|
||||||
|
import com.yizhuan.erban.R
|
||||||
|
import com.yizhuan.erban.ui.utils.ImageLoadUtils
|
||||||
|
import com.yizhuan.erban.ui.widget.LivingIconView
|
||||||
|
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||||
|
|
||||||
|
class ExitRoomAdapter :
|
||||||
|
BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layout.item_exit_room) {
|
||||||
|
|
||||||
|
override fun convert(helper: BaseViewHolder, item: HomeRoomInfo) {
|
||||||
|
|
||||||
|
ImageLoadUtils.loadImage(mContext, item.avatar, helper.getView(R.id.iv_avatar))
|
||||||
|
ImageLoadUtils.loadImage(mContext, item.tagPict, helper.getView(R.id.iv_tag))
|
||||||
|
helper.setText(R.id.tv_online_num, item.onlineNum.toString())
|
||||||
|
.setText(R.id.tv_title, item.title)
|
||||||
|
val livingIconView = helper.getView<LivingIconView>(R.id.liv_living_icon)
|
||||||
|
livingIconView.setColor(Color.WHITE)
|
||||||
|
livingIconView.start()
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,199 @@
|
|||||||
|
package com.yizhuan.erban.avroom.dialog
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Context
|
||||||
|
import android.graphics.Bitmap
|
||||||
|
import android.graphics.Color
|
||||||
|
import android.graphics.drawable.ColorDrawable
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.WindowManager
|
||||||
|
import android.widget.ImageView
|
||||||
|
import android.widget.PopupWindow
|
||||||
|
import android.widget.TextView
|
||||||
|
import androidx.core.view.drawToBitmap
|
||||||
|
import androidx.core.view.isGone
|
||||||
|
import androidx.core.view.isVisible
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||||
|
import com.yizhuan.erban.R
|
||||||
|
import com.yizhuan.erban.UIHelper
|
||||||
|
import com.yizhuan.erban.avroom.activity.AVRoomActivity
|
||||||
|
import com.yizhuan.erban.avroom.adapter.ExitRoomAdapter
|
||||||
|
import com.yizhuan.erban.avroom.presenter.HomePartyPresenter
|
||||||
|
import com.yizhuan.erban.common.widget.dialog.DialogManager.LambdaOkDialogListener
|
||||||
|
import com.yizhuan.erban.common.widget.dialog.DialogManager.OkCancelDialogListener
|
||||||
|
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||||
|
import com.yizhuan.erban.utils.FastBlur
|
||||||
|
import com.yizhuan.xchat_android_constants.XChatConstants
|
||||||
|
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||||
|
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
|
||||||
|
import com.yizhuan.xchat_android_core.room.model.AvRoomModel
|
||||||
|
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||||
|
import io.reactivex.disposables.Disposable
|
||||||
|
|
||||||
|
|
||||||
|
@ActLayoutRes(R.layout.dialog_exit_room)
|
||||||
|
class ExitRoomPopupWindow(val avRoomActivity: AVRoomActivity, val rootView: View) : PopupWindow() {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun newInstance(avRoomActivity: AVRoomActivity, rootView: View): ExitRoomPopupWindow {
|
||||||
|
return ExitRoomPopupWindow(avRoomActivity, rootView)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val recyclerView: RecyclerView
|
||||||
|
private val llEmpty: View
|
||||||
|
private val tvReport: TextView
|
||||||
|
private val tvMiniRoom: TextView
|
||||||
|
private val tvExitRoom: TextView
|
||||||
|
|
||||||
|
private var disposable: Disposable? = null
|
||||||
|
|
||||||
|
private val exitRoomAdapter = ExitRoomAdapter()
|
||||||
|
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||||
|
|
||||||
|
init {
|
||||||
|
contentView = LayoutInflater.from(avRoomActivity).inflate(R.layout.dialog_exit_room, null)
|
||||||
|
width = ScreenUtil.dip2px(250f)
|
||||||
|
height = WindowManager.LayoutParams.MATCH_PARENT
|
||||||
|
isFocusable = true
|
||||||
|
recyclerView = contentView.findViewById(R.id.recycler_view)
|
||||||
|
llEmpty = contentView.findViewById(R.id.ll_empty)
|
||||||
|
tvReport = contentView.findViewById(R.id.tv_report)
|
||||||
|
tvMiniRoom = contentView.findViewById(R.id.tv_mini_room)
|
||||||
|
tvExitRoom = contentView.findViewById(R.id.tv_exit_room)
|
||||||
|
initView()
|
||||||
|
isClippingEnabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun initView() {
|
||||||
|
|
||||||
|
animationStyle = R.style.style_anim_right_in_out
|
||||||
|
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||||
|
|
||||||
|
contentView.findViewById<View>(R.id.tv_more).setOnClickListener {
|
||||||
|
//HomeMoreRoomActivity.start(context)
|
||||||
|
}
|
||||||
|
|
||||||
|
tvReport.setOnClickListener {
|
||||||
|
val roomInfo = AvRoomDataManager.get().mCurrentRoomInfo ?: return@setOnClickListener
|
||||||
|
UIHelper.showReportPage(avRoomActivity, roomInfo.uid, XChatConstants.REPORT_TYPE_ROOM)
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
tvExitRoom.setOnClickListener {
|
||||||
|
handleExitRoom()
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
tvMiniRoom.setOnClickListener {
|
||||||
|
if (AvRoomDataManager.get().isSelfGamePlaying) {
|
||||||
|
avRoomActivity.dialogManager.showOkCancelDialog(
|
||||||
|
"游戏中最小化房间默认逃跑,确定进行此操作?", false
|
||||||
|
) {
|
||||||
|
avRoomActivity.toBack()
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
return@setOnClickListener
|
||||||
|
}
|
||||||
|
avRoomActivity.onBackPressed()
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||||
|
.setLayoutManager(LinearLayoutManager(avRoomActivity))
|
||||||
|
.setRecyclerView(recyclerView)
|
||||||
|
.setAdapter(exitRoomAdapter)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
exitRoomAdapter.setOnItemClickListener { _, _, position ->
|
||||||
|
exitRoomAdapter.getItem(position)?.let {
|
||||||
|
AVRoomActivity.start(avRoomActivity, it.uid)
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
disposable = AvRoomModel.get()
|
||||||
|
.getRecommendRoomList(AvRoomDataManager.get().roomId.toString())
|
||||||
|
.subscribe(
|
||||||
|
{
|
||||||
|
llEmpty.isVisible = it.isNullOrEmpty()
|
||||||
|
recyclerView.isGone = it.isNullOrEmpty()
|
||||||
|
rvDelegate.setNewData(it)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
llEmpty.isVisible = true
|
||||||
|
recyclerView.isVisible = true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
setOnDismissListener {
|
||||||
|
disposable?.dispose()
|
||||||
|
}
|
||||||
|
|
||||||
|
val bitmap = rootView.drawToBitmap()
|
||||||
|
val bitmapX = bitmap.width
|
||||||
|
val bitmapY = bitmap.height
|
||||||
|
val bitmap1 = Bitmap.createBitmap(
|
||||||
|
bitmap,
|
||||||
|
bitmapX - ScreenUtil.dip2px(250f),
|
||||||
|
0,
|
||||||
|
ScreenUtil.dip2px(250f),
|
||||||
|
bitmapY
|
||||||
|
)
|
||||||
|
blur(bitmap1, contentView.findViewById(R.id.iv_blur))
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun blur(bkg: Bitmap, view: ImageView) {
|
||||||
|
val scaleFactor = 8
|
||||||
|
var overlay =
|
||||||
|
Bitmap.createScaledBitmap(bkg, bkg.width / scaleFactor, bkg.height / scaleFactor, false)
|
||||||
|
overlay = FastBlur.blur(overlay, 5, true) //高斯模糊
|
||||||
|
view.setImageBitmap(overlay)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun handleExitRoom() {
|
||||||
|
if (AvRoomDataManager.get().isSelfGamePlaying) {
|
||||||
|
avRoomActivity.dialogManager.showOkCancelDialog("游戏中退出房间默认逃跑,确定进行此操作?", false,
|
||||||
|
OkCancelDialogListener { avRoomActivity.toBack() })
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (AvRoomDataManager.get().isOpenKTV && AvRoomDataManager.get().isOwnerOnMic) {
|
||||||
|
avRoomActivity.dialogManager.showOkCancelDialog("KTV模式下退出房间会移除您已点的所有歌曲,确定进行此操作?",
|
||||||
|
false,
|
||||||
|
OkCancelDialogListener { avRoomActivity.toBack() })
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if ((AvRoomDataManager.get().isQueuingMicro || AvRoomDataManager.get().isOpenPKMode)
|
||||||
|
&& AvRoomDataManager.get().myIsInQueue
|
||||||
|
) {
|
||||||
|
avRoomActivity.dialogManager.showOkCancelDialog("退出房间将会取消你的报名,确定进行此操作?", false,
|
||||||
|
LambdaOkDialogListener { avRoomActivity.toBack() })
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (AvRoomDataManager.get().haveStartDragon) {
|
||||||
|
avRoomActivity.dialogManager.showOkCancelDialog(
|
||||||
|
"你正在交友匹配中,此操作代表你放弃本局匹配展示,确定进行此操作?",
|
||||||
|
false,
|
||||||
|
object : OkCancelDialogListener {
|
||||||
|
override fun onCancel() {}
|
||||||
|
|
||||||
|
@SuppressLint("CheckResult")
|
||||||
|
override fun onOk() {
|
||||||
|
avRoomActivity.giveUpDragonBar()
|
||||||
|
.subscribe { s: String? ->
|
||||||
|
HomePartyPresenter().cancelDragon()
|
||||||
|
avRoomActivity.toBack()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
avRoomActivity.toBack()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -3,6 +3,7 @@ package com.yizhuan.erban.avroom.fragment;
|
|||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewConfiguration;
|
import android.view.ViewConfiguration;
|
||||||
import android.view.ViewStub;
|
import android.view.ViewStub;
|
||||||
@@ -25,6 +26,7 @@ import com.yizhuan.erban.UIHelper;
|
|||||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||||
import com.yizhuan.erban.avroom.activity.RoomOnlineUserActivity;
|
import com.yizhuan.erban.avroom.activity.RoomOnlineUserActivity;
|
||||||
import com.yizhuan.erban.avroom.adapter.SelectGameAdapter;
|
import com.yizhuan.erban.avroom.adapter.SelectGameAdapter;
|
||||||
|
import com.yizhuan.erban.avroom.dialog.ExitRoomPopupWindow;
|
||||||
import com.yizhuan.erban.avroom.presenter.HomePartyPresenter;
|
import com.yizhuan.erban.avroom.presenter.HomePartyPresenter;
|
||||||
import com.yizhuan.erban.avroom.widget.GiftV2View;
|
import com.yizhuan.erban.avroom.widget.GiftV2View;
|
||||||
import com.yizhuan.erban.base.BaseFragment;
|
import com.yizhuan.erban.base.BaseFragment;
|
||||||
@@ -492,7 +494,9 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
|||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
switch (v.getId()) {
|
switch (v.getId()) {
|
||||||
case R.id.room_more:
|
case R.id.room_more:
|
||||||
showMoreItems();
|
View view = requireActivity().findViewById(android.R.id.content);
|
||||||
|
ExitRoomPopupWindow.newInstance((AVRoomActivity) requireActivity(), view)
|
||||||
|
.showAtLocation(gameMainBinding.getRoot(), Gravity.END, 0, 0);
|
||||||
break;
|
break;
|
||||||
case R.id.ll_room_info:
|
case R.id.ll_room_info:
|
||||||
RoomOnlineUserActivity.start(getActivity());
|
RoomOnlineUserActivity.start(getActivity());
|
||||||
@@ -563,83 +567,6 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
|
|||||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_ROOM_SHARE_CLICK, "语音房_分享");
|
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_ROOM_SHARE_CLICK, "语音房_分享");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 房间右上角更多
|
|
||||||
*/
|
|
||||||
@SuppressLint("CheckResult")
|
|
||||||
private void showMoreItems() {
|
|
||||||
List<ButtonItem> buttonItems = new ArrayList<>();
|
|
||||||
|
|
||||||
ButtonItem buttonItem1 = new ButtonItem("退出房间", new ButtonItem.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick() {
|
|
||||||
if (AvRoomDataManager.get().isSelfGamePlaying()) {
|
|
||||||
getDialogManager().showOkCancelDialog("游戏中退出房间默认逃跑,确定进行此操作?", false,
|
|
||||||
() -> ((AVRoomActivity) getActivity()).toBack());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (AvRoomDataManager.get().isOpenKTV() && AvRoomDataManager.get().isOwnerOnMic()) {
|
|
||||||
getDialogManager().showOkCancelDialog("KTV模式下退出房间会移除您已点的所有歌曲,确定进行此操作?", false,
|
|
||||||
() -> ((AVRoomActivity) getActivity()).toBack());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ((AvRoomDataManager.get().isQueuingMicro() || AvRoomDataManager.get().isOpenPKMode())
|
|
||||||
&& AvRoomDataManager.get().myIsInQueue) {
|
|
||||||
getDialogManager().showOkCancelDialog("退出房间将会取消你的报名,确定进行此操作?", false,
|
|
||||||
(DialogManager.LambdaOkDialogListener) () ->
|
|
||||||
((AVRoomActivity) getActivity()).toBack());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (AvRoomDataManager.get().haveStartDragon) {
|
|
||||||
getDialogManager().showOkCancelDialog("你正在交友匹配中,此操作代表你放弃本局匹配展示,确定进行此操作?", false, new DialogManager.OkCancelDialogListener() {
|
|
||||||
@Override
|
|
||||||
public void onCancel() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onOk() {
|
|
||||||
((AVRoomActivity) getActivity()).giveUpDragonBar().subscribe(s -> {
|
|
||||||
new HomePartyPresenter().cancelDragon();
|
|
||||||
((AVRoomActivity) getActivity()).toBack();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
((AVRoomActivity) getActivity()).toBack();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ButtonItem buttonItem2 = new ButtonItem("最小化房间", new ButtonItem.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick() {
|
|
||||||
if (AvRoomDataManager.get().isSelfGamePlaying()) {
|
|
||||||
getDialogManager().showOkCancelDialog("游戏中最小化房间默认逃跑,确定进行此操作?", false,
|
|
||||||
() -> ((AVRoomActivity) getActivity()).toBack());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
getActivity().onBackPressed();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ButtonItem buttonItem3 = new ButtonItem("举报房间", new ButtonItem.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick() {
|
|
||||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
|
||||||
if (roomInfo == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
UIHelper.showReportPage(mContext, roomInfo.getUid(), XChatConstants.REPORT_TYPE_ROOM);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//buttonItems.add(buttonItem0);
|
|
||||||
buttonItems.add(buttonItem1);
|
|
||||||
buttonItems.add(buttonItem2);
|
|
||||||
buttonItems.add(buttonItem3);
|
|
||||||
DialogManager dialogManager = ((BaseMvpActivity) getActivity()).getDialogManager();
|
|
||||||
if (dialogManager != null) {
|
|
||||||
dialogManager.showCommonPopupDialog(buttonItems, "取消");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInAppSharingItemClick() {
|
public void onInAppSharingItemClick() {
|
||||||
shareDialog.dismiss();
|
shareDialog.dismiss();
|
||||||
|
BIN
app/src/main/res/drawable-xhdpi/ic_room_exit.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/ic_room_exit.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.0 KiB |
BIN
app/src/main/res/drawable-xhdpi/ic_room_mini.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/ic_room_mini.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
BIN
app/src/main/res/drawable-xhdpi/ic_room_report.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/ic_room_report.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
10
app/src/main/res/drawable/bg_item_recommend_onlien_num.xml
Normal file
10
app/src/main/res/drawable/bg_item_recommend_onlien_num.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="@color/black_transparent_40" />
|
||||||
|
<corners
|
||||||
|
android:bottomLeftRadius="8dp"
|
||||||
|
android:bottomRightRadius="8dp"
|
||||||
|
android:topLeftRadius="8dp"
|
||||||
|
android:topRightRadius="2dp" />
|
||||||
|
</shape>
|
10
app/src/main/res/drawable/bg_item_recommend_room.xml
Normal file
10
app/src/main/res/drawable/bg_item_recommend_room.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<solid android:color="@color/white_transparent_15" />
|
||||||
|
<corners
|
||||||
|
android:bottomLeftRadius="12dp"
|
||||||
|
android:bottomRightRadius="12dp"
|
||||||
|
android:topLeftRadius="12dp"
|
||||||
|
android:topRightRadius="12dp" />
|
||||||
|
</shape>
|
108
app/src/main/res/layout/dialog_exit_room.xml
Normal file
108
app/src/main/res/layout/dialog_exit_room.xml
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout 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">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:background="@color/blue">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_blur"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:scaleType="fitXY" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="250dp"
|
||||||
|
android:layout_height="100dp"
|
||||||
|
android:layout_gravity="end"
|
||||||
|
android:layout_marginTop="52dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_report"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:drawableTop="@drawable/ic_room_report"
|
||||||
|
android:drawablePadding="12dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="举报房间"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_mini_room"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:drawableTop="@drawable/ic_room_mini"
|
||||||
|
android:drawablePadding="12dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="收起房间"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_exit_room"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:drawableTop="@drawable/ic_room_exit"
|
||||||
|
android:drawablePadding="12dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="退出房间"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/recycler_view"
|
||||||
|
android:layout_width="250dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="end"
|
||||||
|
android:layout_marginTop="152dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:paddingBottom="20dp" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ll_empty"
|
||||||
|
android:layout_width="250dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="end"
|
||||||
|
android:layout_marginTop="152dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="努力寻找中..."
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_more"
|
||||||
|
android:layout_width="100dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_marginTop="13dp"
|
||||||
|
android:background="@drawable/bg_common_confirm"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="查看更多"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="15sp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
</layout>
|
72
app/src/main/res/layout/item_exit_room.xml
Normal file
72
app/src/main/res/layout/item_exit_room.xml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<?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"
|
||||||
|
android:layout_marginStart="15dp"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
|
android:layout_marginEnd="6dp"
|
||||||
|
tools:background="@color/blue">
|
||||||
|
|
||||||
|
<com.makeramen.roundedimageview.RoundedImageView
|
||||||
|
android:id="@+id/iv_avatar"
|
||||||
|
android:layout_width="72dp"
|
||||||
|
android:layout_height="72dp"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
android:src="@drawable/default_cover"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:riv_corner_radius="8dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="7dp"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
|
android:includeFontPadding="false"
|
||||||
|
android:text="余生点唱歌曲大..."
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/iv_avatar"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/iv_avatar" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/tv_title"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tv_title">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_tag"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="@dimen/dp_18"
|
||||||
|
android:visibility="visible"
|
||||||
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:src="@drawable/tag_101" />
|
||||||
|
|
||||||
|
<com.yizhuan.erban.ui.widget.LivingIconView
|
||||||
|
android:id="@+id/liv_living_icon"
|
||||||
|
android:layout_width="6dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:background="@color/transparent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_online_num"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="3dp"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="12sp"
|
||||||
|
tools:text="77" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -561,4 +561,9 @@
|
|||||||
<item name="android:textColor">@color/color_black_333333</item>
|
<item name="android:textColor">@color/color_black_333333</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="style_anim_right_in_out">
|
||||||
|
<item name="android:windowEnterAnimation">@anim/anim_right_in</item>
|
||||||
|
<item name="android:windowExitAnimation">@anim/anim_right_out</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -20,6 +20,7 @@ import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
|
|||||||
import com.yizhuan.xchat_android_core.decoration.car.bean.CarInfo;
|
import com.yizhuan.xchat_android_core.decoration.car.bean.CarInfo;
|
||||||
import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo;
|
import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo;
|
||||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||||
|
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo;
|
||||||
import com.yizhuan.xchat_android_core.level.UserLevelVo;
|
import com.yizhuan.xchat_android_core.level.UserLevelVo;
|
||||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||||
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
||||||
@@ -631,4 +632,11 @@ public class AvRoomModel extends RoomBaseModel implements IAvRoomModel {
|
|||||||
.compose(RxHelper.handleStringData())
|
.compose(RxHelper.handleStringData())
|
||||||
.compose(RxHelper.handleSchAndExce());
|
.compose(RxHelper.handleSchAndExce());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Single<List<HomeRoomInfo>> getRecommendRoomList(String roomId) {
|
||||||
|
return mRoomService.getRecommendRoomList(roomId)
|
||||||
|
.compose(RxHelper.handleBeanData())
|
||||||
|
.compose(RxHelper.handleSchedulers());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -29,6 +29,7 @@ import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
|
|||||||
import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo;
|
import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo;
|
||||||
import com.yizhuan.xchat_android_core.exception.ErrorThrowable;
|
import com.yizhuan.xchat_android_core.exception.ErrorThrowable;
|
||||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||||
|
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo;
|
||||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||||
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
||||||
import com.yizhuan.xchat_android_core.room.activitytimer.TimerBean;
|
import com.yizhuan.xchat_android_core.room.activitytimer.TimerBean;
|
||||||
@@ -1126,6 +1127,14 @@ public class RoomBaseModel extends BaseModel implements IRoomBaseModel {
|
|||||||
Single<ServiceResult<String>> cleanScreen(@Field("roomUid") long roomUid,
|
Single<ServiceResult<String>> cleanScreen(@Field("roomUid") long roomUid,
|
||||||
@Field("uid") long uid);
|
@Field("uid") long uid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 房内推荐房间列表
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GET("/roominsiderecommend/recommendRoomList")
|
||||||
|
Single<ServiceResult<List<HomeRoomInfo>>> getRecommendRoomList(@Query("roomId") String roomId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -5,6 +5,7 @@ import com.netease.nimlib.sdk.chatroom.model.EnterChatRoomResultData;
|
|||||||
import com.yizhuan.xchat_android_core.base.IModel;
|
import com.yizhuan.xchat_android_core.base.IModel;
|
||||||
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
|
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
|
||||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||||
|
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo;
|
||||||
import com.yizhuan.xchat_android_core.room.activitytimer.TimerBean;
|
import com.yizhuan.xchat_android_core.room.activitytimer.TimerBean;
|
||||||
import com.yizhuan.xchat_android_core.room.bean.BroadcastInfo;
|
import com.yizhuan.xchat_android_core.room.bean.BroadcastInfo;
|
||||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||||
@@ -174,4 +175,6 @@ public interface IAvRoomModel extends IModel {
|
|||||||
Single<String> sendRoomBroadcast(String msg, long roomId);
|
Single<String> sendRoomBroadcast(String msg, long roomId);
|
||||||
|
|
||||||
Single<String> cleanScreen(long roomUid, long uid);
|
Single<String> cleanScreen(long roomUid, long uid);
|
||||||
|
|
||||||
|
Single<List<HomeRoomInfo>> getRecommendRoomList(String roomId);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user