diff --git a/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt b/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt index 3891b7e0a..20f8d99ef 100644 --- a/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/base/BaseDialog.kt @@ -19,7 +19,7 @@ abstract class BaseDialog : RxDialogFragment() { private var onDismissListener: (() -> Unit)? = null val binding get() = _binding!! open var width = ScreenUtil.getDialogWidth() - var height = WindowManager.LayoutParams.WRAP_CONTENT + open var height = WindowManager.LayoutParams.WRAP_CONTENT open var gravity = Gravity.CENTER override fun onStart() { diff --git a/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt b/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt index 118f1ef10..869397a8c 100644 --- a/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt +++ b/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt @@ -43,8 +43,8 @@ class HomeViewModel : BaseViewModel() { private val _resourceLiveData = MutableLiveData>() val resourceLiveData: LiveData> = _resourceLiveData - private val _resourceJumpLiveData = MutableLiveData>() - val resourceJumpLiveData: LiveData> = _resourceJumpLiveData + private val _resourceJumpLiveData = MutableLiveData() + val resourceJumpLiveData: LiveData = _resourceJumpLiveData fun getBannerInfo() { safeLaunch { diff --git a/app/src/main/java/com/yizhuan/erban/home/dialog/RecommendRoomDialog.kt b/app/src/main/java/com/yizhuan/erban/home/dialog/RecommendRoomDialog.kt new file mode 100644 index 000000000..3a7f02543 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/dialog/RecommendRoomDialog.kt @@ -0,0 +1,45 @@ +package com.yizhuan.erban.home.dialog + +import android.annotation.SuppressLint +import android.os.Bundle +import com.yizhuan.erban.avroom.activity.AVRoomActivity +import com.yizhuan.erban.base.BaseDialog +import com.yizhuan.erban.databinding.DialogRecommendRoomBinding +import com.yizhuan.erban.ui.utils.ImageLoadUtils +import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo + +class RecommendRoomDialog : BaseDialog() { + + companion object { + + fun newInstance(roomInfo: HomeRoomInfo): RecommendRoomDialog { + val args = Bundle() + args.putSerializable("roomInfo", roomInfo) + val fragment = RecommendRoomDialog() + fragment.arguments = args + return fragment + } + + } + + + private val roomInfo: HomeRoomInfo by lazy { requireArguments().getSerializable("roomInfo") as HomeRoomInfo } + + + @SuppressLint("CheckResult") + override fun init() { + binding.ivClose.setOnClickListener { + dismissAllowingStateLoss() + } + + binding.tvGo.setOnClickListener { + dismissAllowingStateLoss() + AVRoomActivity.start(context, roomInfo.uid) + + } + binding.tvRoomTitle.text = roomInfo.title + ImageLoadUtils.loadImage(context, roomInfo.avatar, binding.ivAvatar) + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RecommendFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RecommendFragment.kt index 6d0fa2f56..81d897c07 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/RecommendFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RecommendFragment.kt @@ -11,12 +11,17 @@ import androidx.fragment.app.activityViewModels import com.scwang.smartrefresh.layout.internal.ProgressDrawable import com.yizhuan.erban.R import com.yizhuan.erban.avroom.adapter.RoomVPAdapter +import com.yizhuan.erban.base.BaseActivity import com.yizhuan.erban.base.BaseFragment +import com.yizhuan.erban.common.widget.dialog.DialogManager import com.yizhuan.erban.databinding.FragmentRecommendBinding import com.yizhuan.erban.home.HomeViewModel import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter +import com.yizhuan.erban.home.dialog.RecommendRoomDialog import com.yizhuan.erban.home.helper.BannerHelper +import com.yizhuan.erban.home.helper.OpenRoomHelper import com.yizhuan.erban.ui.utils.load +import com.yizhuan.erban.ui.webview.CommonWebViewActivity import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent @@ -88,8 +93,12 @@ class RecommendFragment : BaseFragment(), for (i in resourceViews.indices) { resourceViews[i].load(it[i].icon) resourceViews[i].setOnClickListener { _ -> - dialogManager.showProgressDialog(mContext) - homeViewModel.getResourceJumpInfo(it[i].id) + if (it[i].resourceType == 5) { + CommonWebViewActivity.start(context, it[i].resourceContent) + } else { + dialogManager.showProgressDialog(mContext) + homeViewModel.getResourceJumpInfo(it[i].id) + } } } } @@ -97,7 +106,25 @@ class RecommendFragment : BaseFragment(), homeViewModel.resourceJumpLiveData.observe(this) { dialogManager.dismissDialog() it?.let { + if (it.isPick) { + RecommendRoomDialog.newInstance(it).show(context) + } else { + dialogManager.showOkCancelDialog( + it.failContext, + "新建游戏房间", + "交友畅聊", + true, + object : DialogManager.OkCancelDialogListener { + override fun onOk() { + OpenRoomHelper.openHomePartyRoom(requireActivity() as BaseActivity) + } + override fun onCancel() { + OpenRoomHelper.openRoom(requireActivity() as BaseActivity) + } + + }) + } } } diff --git a/app/src/main/res/drawable-xhdpi/bg_recommend_room_dialog.png b/app/src/main/res/drawable-xhdpi/bg_recommend_room_dialog.png new file mode 100644 index 000000000..07d91b551 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_recommend_room_dialog.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_recommend_room_close.png b/app/src/main/res/drawable-xhdpi/ic_recommend_room_close.png new file mode 100644 index 000000000..bce8bb24d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_recommend_room_close.png differ diff --git a/app/src/main/res/layout/dialog_recommend_room.xml b/app/src/main/res/layout/dialog_recommend_room.xml new file mode 100644 index 000000000..a8c5416a3 --- /dev/null +++ b/app/src/main/res/layout/dialog_recommend_room.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_recommend.xml b/app/src/main/res/layout/fragment_recommend.xml index 4ddddf306..6a62bc4b7 100644 --- a/app/src/main/res/layout/fragment_recommend.xml +++ b/app/src/main/res/layout/fragment_recommend.xml @@ -76,13 +76,21 @@ android:layout_marginEnd="15dp" android:orientation="horizontal"> - + app:hw_ratio="0.285"> + + + + + @@ -122,12 +130,12 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableStart="@drawable/ic_home_recommend_tag" + android:drawablePadding="4dp" android:includeFontPadding="false" android:paddingStart="16dp" android:text="最新推荐" android:textColor="@color/color_333333" android:textSize="16sp" - android:drawablePadding="4dp" android:textStyle="bold" android:visibility="visible" tools:visibility="visible" /> @@ -139,8 +147,8 @@ android:layout_gravity="end|center_vertical" android:layout_marginEnd="10dp" android:drawableRight="@drawable/arrow_right" - android:gravity="center" android:drawablePadding="2dp" + android:gravity="center" android:includeFontPadding="false" android:text="更多" android:textColor="#b3333333" diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/HomeRoomInfo.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/HomeRoomInfo.java index 1346ebfbb..aba68b140 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/HomeRoomInfo.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/HomeRoomInfo.java @@ -2,12 +2,13 @@ package com.yizhuan.xchat_android_core.home.bean; import com.chad.library.adapter.base.entity.MultiItemEntity; +import java.io.Serializable; import java.util.List; import lombok.Data; @Data -public class HomeRoomInfo implements MultiItemEntity { +public class HomeRoomInfo implements MultiItemEntity, Serializable { public static final int TYPE_ROOM = 1; public static final int TYPE_BANNER = 2; @@ -40,6 +41,9 @@ public class HomeRoomInfo implements MultiItemEntity { private int roomOnlineNum; private String roomAvatar; + private String failContext; + private boolean isPick; + @Override public int getItemType() { return isBanner ? TYPE_BANNER : TYPE_ROOM; diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/ResourceInfo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/ResourceInfo.kt index 4d036233a..128ca20cb 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/ResourceInfo.kt +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/ResourceInfo.kt @@ -5,6 +5,6 @@ data class ResourceInfo( val id: Int = 0, val posSeq: Int? = null, val resourceContent: String? = null, - val resourceType: Int? = null, + val resourceType: Int = 0, val strategySeq: Int? = null ) \ No newline at end of file diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/HomeModel.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/HomeModel.kt index 5906beec5..c517dae85 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/HomeModel.kt +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/HomeModel.kt @@ -119,7 +119,7 @@ object HomeModel : BaseModel() { api.getHomeResource() } - suspend fun getResourceJumpInfo(id: Int): List? = + suspend fun getResourceJumpInfo(id: Int): HomeRoomInfo? = launchRequest { api.getResourceJumpInfo(id) } @@ -248,7 +248,7 @@ object HomeModel : BaseModel() { * @return */ @GET("/home/pickResource") - suspend fun getResourceJumpInfo(@Query("id") id: Int): ServiceResult> + suspend fun getResourceJumpInfo(@Query("id") id: Int): ServiceResult /** * 首页热门房间 diff --git a/xplan-flutter b/xplan-flutter index d45d49f63..11d027780 160000 --- a/xplan-flutter +++ b/xplan-flutter @@ -1 +1 @@ -Subproject commit d45d49f637ff197e8b6f1577bc0ec501b893b3f2 +Subproject commit 11d027780d95724a5e4c854c366bc91ac72f97cc