diff --git a/app/src/main/java/com/yizhuan/erban/avroom/adapter/RoomVPAdapter.java b/app/src/main/java/com/yizhuan/erban/avroom/adapter/RoomVPAdapter.java new file mode 100644 index 000000000..aaeb6512d --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/avroom/adapter/RoomVPAdapter.java @@ -0,0 +1,35 @@ +package com.yizhuan.erban.avroom.adapter; + +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentPagerAdapter; + +import java.util.List; + +/** + * Created by MadisonRong on 25/04/2018. + */ + +public class RoomVPAdapter extends FragmentPagerAdapter { + + private List fragmentList; + + public RoomVPAdapter(FragmentManager fm, List fragmentList) { + super(fm,FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); + this.fragmentList = fragmentList; + } + + public RoomVPAdapter(FragmentManager fm) { + super(fm,FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); + } + + @Override + public Fragment getItem(int position) { + return fragmentList.get(position); + } + + @Override + public int getCount() { + return fragmentList.size(); + } +} 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 a2874af83..0ed0b1b1e 100644 --- a/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt +++ b/app/src/main/java/com/yizhuan/erban/home/HomeViewModel.kt @@ -5,8 +5,11 @@ import androidx.lifecycle.MutableLiveData import com.yizhuan.erban.base.BaseViewModel import com.yizhuan.xchat_android_core.bean.response.ListResult import com.yizhuan.xchat_android_core.home.bean.BannerInfo +import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo import com.yizhuan.xchat_android_core.home.bean.HomeRoom +import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo import com.yizhuan.xchat_android_core.home.model.HomeModel +import com.yizhuan.xchat_android_library.utils.SingleToastUtil class HomeViewModel : BaseViewModel() { @@ -16,12 +19,31 @@ class HomeViewModel : BaseViewModel() { private val _hotRoomLiveData = MutableLiveData>() val hotRoomLiveData: LiveData> = _hotRoomLiveData + private val _concernsLiveData = MutableLiveData>() + val concernsLiveData: LiveData> = _concernsLiveData + + private val _collectLiveData = MutableLiveData>() + val collectLiveData: LiveData> = _collectLiveData + + + private val _tagLiveData = MutableLiveData>() + val tagLiveData: LiveData> = _tagLiveData + + private val _commonRoomLiveData = MutableLiveData>() + val commonRoomLiveData: LiveData> = _commonRoomLiveData + fun getBannerInfo() { safeLaunch { _bannerLiveData.value = HomeModel.getHomeBanner("9") } } + fun getTagInfo() { + safeLaunch { + _tagLiveData.value = HomeModel.getHomeTag() + } + } + fun getHotRoom(pageNum: Int, pageSize: Int) { safeLaunch( onError = { @@ -33,4 +55,36 @@ class HomeViewModel : BaseViewModel() { } ) } + + fun getCommonRoom(tabId: Int,pageNum: Int, pageSize: Int) { + safeLaunch( + onError = { + _commonRoomLiveData.value = ListResult.failed(pageNum) + }, + block = { + val result = HomeModel.getCommonRoom(tabId,pageNum, pageSize) + _commonRoomLiveData.value = ListResult.success(result, pageNum) + } + ) + } + + fun getConcernsRoom() { + safeLaunch { + _concernsLiveData.value = HomeModel.getConcernsRoom() + } + } + + + fun getCollectRoom(pageNum: Int, pageSize: Int) { + safeLaunch( + onError = { + _collectLiveData.value = ListResult.failed(pageNum) + }, + block = { + val result = HomeModel.getCollectRoom(pageNum,pageSize) + _collectLiveData.value = ListResult.success(result, pageNum) + } + ) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/HomeConcernsAdapter.java b/app/src/main/java/com/yizhuan/erban/home/adapter/HomeConcernsAdapter.java index fe67c3eaa..497ddc8a3 100644 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/HomeConcernsAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/HomeConcernsAdapter.java @@ -1,34 +1,25 @@ package com.yizhuan.erban.home.adapter; -import android.content.Context; -import android.graphics.Color; - -import androidx.annotation.Nullable; +import androidx.annotation.NonNull; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.yizhuan.erban.R; import com.yizhuan.erban.common.widget.CircleImageView; import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2; -import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil; import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo; -import java.util.List; - public class HomeConcernsAdapter extends BaseQuickAdapter { - private Context mContext; - public HomeConcernsAdapter(@Nullable List data, Context context) { - super(R.layout.item_home_concerns, data); - mContext = context; + public HomeConcernsAdapter() { + super(R.layout.item_home_concerns, null); } @Override - protected void convert(BaseViewHolder helper, HomeConcernsInfo item) { + protected void convert(@NonNull BaseViewHolder helper, HomeConcernsInfo item) { if (item == null) { return; } -// helper.setVisible(R.id.tv_room_name,true); CircleImageView circleImageView = helper.getView(R.id.civ_room_avatar); ImageLoadUtilsV2.loadImage(circleImageView, item.getAvatar()); helper.setText(R.id.tv_room_name, item.getFollowType() == 1 ? "" : item.getName()); diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/HomePlayAdapter.kt b/app/src/main/java/com/yizhuan/erban/home/adapter/HomePlayAdapter.kt index aadbac4ed..7bac7e08b 100644 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/HomePlayAdapter.kt +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/HomePlayAdapter.kt @@ -1,44 +1,36 @@ -package com.yizhuan.erban.home.adapter; +package com.yizhuan.erban.home.adapter - -import android.widget.ImageView; - -import com.bumptech.glide.load.engine.DiskCacheStrategy; -import com.bumptech.glide.load.resource.bitmap.CenterCrop; -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.netease.nim.uikit.common.util.sys.ScreenUtil; -import com.netease.nim.uikit.support.glide.GlideApp; -import com.yizhuan.erban.R; -import com.yizhuan.erban.ui.utils.ImageLoadUtils; -import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2; -import com.yizhuan.xchat_android_core.home.bean.HomePlayInfo; -import com.yizhuan.xchat_android_core.utils.TextUtils; - -import org.jetbrains.annotations.NotNull; - -import jp.wasabeef.glide.transformations.BlurTransformation; +import android.widget.ImageView +import androidx.core.view.isGone +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.yizhuan.erban.R +import com.yizhuan.xchat_android_core.home.bean.HomePlayInfo +import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2 +import com.yizhuan.erban.ui.utils.load +import com.yizhuan.xchat_android_core.utils.TextUtils /** * create by lvzebiao @2019/11/13 */ -public class HomePlayAdapter extends BaseQuickAdapter { - - public HomePlayAdapter() { - super(R.layout.item_home_play); +class HomePlayAdapter : BaseQuickAdapter(R.layout.item_home_play) { + override fun convert(helper: BaseViewHolder, item: HomePlayInfo) { + helper.setText(R.id.tv_room_title, item.title) + helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict)) + ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict) + ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_room_image), item.avatar) + helper.setText(R.id.tv_online_number, "${item.onlineNum}") + val avatars: Array = arrayOf( + helper.getView(R.id.iv_avatar_0), + helper.getView(R.id.iv_avatar_1), + helper.getView(R.id.iv_avatar_2), + helper.getView(R.id.iv_avatar_3), + helper.getView(R.id.iv_avatar_4) + ) + for (i in avatars.indices) { + val avatarUrl = item.micUsers?.getOrNull(i)?.avatar + avatars[i].isGone = avatarUrl.isNullOrBlank() + avatars[i].load(avatarUrl) + } } - - @Override - protected void convert(@NotNull BaseViewHolder helper, HomePlayInfo item) { - helper.setText(R.id.tv_title, item.getTitle()); - helper.setVisible(R.id.iv_tag, !TextUtils.isEmptyText(item.getTagPict())); - ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_tag), item.getTagPict()); - ImageLoadUtilsV2.loadAvatar(helper.getView(R.id.iv_avatar), item.getAvatar()); - - GlideApp.with(mContext) - .load(item.getAvatar()) - .transform(new BlurTransformation(20, 1), new CenterCrop()) - .into((ImageView) helper.getView(R.id.iv_blur_bg)); - } - -} +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/MainMagicIndicatorAdapter.java b/app/src/main/java/com/yizhuan/erban/home/adapter/MainMagicIndicatorAdapter.java index 58b89f0eb..81fc38100 100644 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/MainMagicIndicatorAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/MainMagicIndicatorAdapter.java @@ -1,6 +1,8 @@ package com.yizhuan.erban.home.adapter; import android.content.Context; +import android.graphics.Color; +import android.view.Gravity; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.TextView; @@ -20,12 +22,14 @@ import java.util.List; public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter { private final Context mContext; private final List mTitleList; - private boolean mIsShowIndicator; - public MainMagicIndicatorAdapter(Context context, List charSequences, boolean isShowIndicator) { + private int textSize = 24; + private float minScale = 0.83f; + private boolean showIndicator =true; + + public MainMagicIndicatorAdapter(Context context, List charSequences ) { this.mContext = context; this.mTitleList = charSequences; - this.mIsShowIndicator = isShowIndicator; } @Override @@ -39,8 +43,8 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter { ScaleTransitionPagerTitleView scaleTransitionPagerTitleView = new ScaleTransitionPagerTitleView(context, true); scaleTransitionPagerTitleView.setNormalColor(ContextCompat.getColor(context,R.color.color_444444)); scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(context,R.color.color_333333)); - scaleTransitionPagerTitleView.setMinScale(0.83f); - scaleTransitionPagerTitleView.setTextSize(24); + scaleTransitionPagerTitleView.setMinScale(minScale); + scaleTransitionPagerTitleView.setTextSize(textSize); int padding = UIUtil.dip2px(context, 5); scaleTransitionPagerTitleView.setPadding(padding, 0, padding, 0); scaleTransitionPagerTitleView.setText(mTitleList.get(i)); @@ -49,9 +53,6 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter { mOnItemSelectListener.onItemSelect(i, scaleTransitionPagerTitleView); } - if (mOnBottomItemSelectListener != null) { - mOnBottomItemSelectListener.onBottomItemSelect(i, scaleTransitionPagerTitleView); - } }); return scaleTransitionPagerTitleView; } @@ -59,21 +60,44 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter { @Override public IPagerIndicator getIndicator(Context context) { - - if (!mIsShowIndicator) return null; - + if (!showIndicator) return null; LinePagerIndicator indicator = new LinePagerIndicator(context); indicator.setMode(LinePagerIndicator.MODE_EXACTLY); - indicator.setLineHeight(UIUtil.dip2px(mContext, 5)); - indicator.setRoundRadius(UIUtil.dip2px(mContext, 5)); - indicator.setLineWidth(UIUtil.dip2px(mContext, 9)); - indicator.setColors(context.getResources().getColor(R.color.appColor)); - FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); + indicator.setLineHeight(UIUtil.dip2px(mContext, 10)); + indicator.setRoundRadius(UIUtil.dip2px(mContext, 10)); + indicator.setLineWidth(UIUtil.dip2px(mContext, 48)); + indicator.setColors(Color.parseColor("#FFFFD15A")); + FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + lp.gravity = Gravity.END; lp.bottomMargin = UIUtil.dip2px(mContext, 0); indicator.setLayoutParams(lp); return indicator; } + public int getTextSize() { + return textSize; + } + + public void setTextSize(int textSize) { + this.textSize = textSize; + } + + public float getMinScale() { + return minScale; + } + + public void setMinScale(float minScale) { + this.minScale = minScale; + } + + public boolean isShowIndicator() { + return showIndicator; + } + + public void setShowIndicator(boolean showIndicator) { + this.showIndicator = showIndicator; + } + private OnItemSelectListener mOnItemSelectListener; public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) { @@ -83,14 +107,4 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter { public interface OnItemSelectListener { void onItemSelect(int position, TextView view); } - - private OnBottomItemSelectListener mOnBottomItemSelectListener; - - public void setOnBottomItemSelectListener(OnBottomItemSelectListener onBottomItemSelectListener) { - mOnBottomItemSelectListener = onBottomItemSelectListener; - } - - public interface OnBottomItemSelectListener { - void onBottomItemSelect(int position, TextView view); - } } diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/PartyMagicIndicatorAdapter.java b/app/src/main/java/com/yizhuan/erban/home/adapter/PartyMagicIndicatorAdapter.java new file mode 100644 index 000000000..f0b5f076d --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/PartyMagicIndicatorAdapter.java @@ -0,0 +1,94 @@ +package com.yizhuan.erban.home.adapter; + +import android.content.Context; +import android.graphics.Color; +import android.view.Gravity; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.yizhuan.erban.R; +import com.yizhuan.erban.ui.widget.XRecyclerView.ScaleTransitionPagerTitleView; +import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil; +import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.indicators.WrapPagerIndicator; + +import java.util.List; + +public class PartyMagicIndicatorAdapter extends CommonNavigatorAdapter { + private final Context mContext; + private final List mTitleList; + + private int textSize = 14; + private float minScale = 1f; + + public PartyMagicIndicatorAdapter(Context context, List charSequences ) { + this.mContext = context; + this.mTitleList = charSequences; + } + + @Override + public int getCount() { + return mTitleList == null ? 0 : mTitleList.size(); + } + + + @Override + public IPagerTitleView getTitleView(Context context, final int i) { + ScaleTransitionPagerTitleView scaleTransitionPagerTitleView = new ScaleTransitionPagerTitleView(context, true); + scaleTransitionPagerTitleView.setNormalColor(ContextCompat.getColor(context,R.color.color_444444)); + scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(context,R.color.color_333333)); + scaleTransitionPagerTitleView.setMinScale(minScale); + scaleTransitionPagerTitleView.setTextSize(textSize); + int padding = UIUtil.dip2px(context, 5); + scaleTransitionPagerTitleView.setPadding(padding, 0, padding, 0); + scaleTransitionPagerTitleView.setText(mTitleList.get(i)); + scaleTransitionPagerTitleView.setOnClickListener(view -> { + if (mOnItemSelectListener != null) { + mOnItemSelectListener.onItemSelect(i, scaleTransitionPagerTitleView); + } + + }); + return scaleTransitionPagerTitleView; + } + + + @Override + public IPagerIndicator getIndicator(Context context) { + WrapPagerIndicator indicator = new WrapPagerIndicator(context); + indicator.setFillColor(Color.parseColor("#FFFFA936")); + return indicator; + } + + public int getTextSize() { + return textSize; + } + + public void setTextSize(int textSize) { + this.textSize = textSize; + } + + public float getMinScale() { + return minScale; + } + + public void setMinScale(float minScale) { + this.minScale = minScale; + } + + + private OnItemSelectListener mOnItemSelectListener; + + public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) { + mOnItemSelectListener = onItemSelectListener; + } + + public interface OnItemSelectListener { + void onItemSelect(int position, TextView view); + } +} diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/RoomCommonAdapter.kt b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomCommonAdapter.kt new file mode 100644 index 000000000..838ec6058 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomCommonAdapter.kt @@ -0,0 +1,46 @@ +package com.yizhuan.erban.home.adapter + +import android.widget.ImageView +import androidx.core.view.isGone +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.yizhuan.erban.R +import com.yizhuan.erban.avroom.activity.AVRoomActivity +import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2 +import com.yizhuan.erban.ui.utils.load +import com.yizhuan.xchat_android_core.home.bean.HomeRoom +import com.yizhuan.xchat_android_core.utils.TextUtils + + +class RoomCommonAdapter : BaseQuickAdapter(R.layout.item_room_common) { + + + override fun convert(helper: BaseViewHolder, item: HomeRoom) { + helper.apply { + getView(R.id.iv_room_image).load(item.avatar) + setText(R.id.tv_online_number, "${item.onlineNum}") + setText(R.id.tv_room_title, item.title) + itemView.setOnClickListener { + AVRoomActivity.start(mContext, item.uid) + } + setText(R.id.tv_id, "ID:${item.erbanNo}") + } + helper.setVisible(R.id.tv_in_pk, item.isCrossPking) + helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict)) + ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict) + + val avatars: Array = arrayOf( + helper.getView(R.id.iv_avatar_0), + helper.getView(R.id.iv_avatar_1), + helper.getView(R.id.iv_avatar_2), + helper.getView(R.id.iv_avatar_3), + helper.getView(R.id.iv_avatar_4) + ) + for (i in avatars.indices) { + val avatarUrl = item.micUsers?.getOrNull(i)?.avatar + avatars[i].isGone = avatarUrl.isNullOrBlank() + avatars[i].load(avatarUrl) + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/HotRoomAdapter.kt b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomGameAdapter.kt similarity index 68% rename from app/src/main/java/com/yizhuan/erban/home/adapter/HotRoomAdapter.kt rename to app/src/main/java/com/yizhuan/erban/home/adapter/RoomGameAdapter.kt index 1c786a461..0a39af216 100644 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/HotRoomAdapter.kt +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomGameAdapter.kt @@ -5,16 +5,18 @@ import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.BaseViewHolder import com.yizhuan.erban.R import com.yizhuan.erban.avroom.activity.AVRoomActivity +import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2 import com.yizhuan.erban.ui.utils.load import com.yizhuan.xchat_android_core.home.bean.HomeRoom +import com.yizhuan.xchat_android_core.utils.TextUtils -class HotRoomAdapter : BaseQuickAdapter(R.layout.item_room_common) { +class RoomGameAdapter : BaseQuickAdapter(R.layout.item_room_common) { override fun convert(helper: BaseViewHolder, item: HomeRoom) { helper.apply { - getView(R.id.iv_room_image).load(item.avatar, 8f) + getView(R.id.iv_room_image).load(item.avatar) setText(R.id.tv_online_number, "${item.onlineNum}人热聊中") setText(R.id.tv_room_title, item.title) setText(R.id.tv_room_tag, item.roomTag) @@ -22,6 +24,9 @@ class HotRoomAdapter : BaseQuickAdapter(R.layout.item_ AVRoomActivity.start(mContext, item.uid) } } + + helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict)) + ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict) } } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/RoomHotAdapter.kt b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomHotAdapter.kt new file mode 100644 index 000000000..c8b204549 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomHotAdapter.kt @@ -0,0 +1,48 @@ +package com.yizhuan.erban.home.adapter + +import android.widget.ImageView +import androidx.core.view.isGone +import androidx.core.view.isVisible +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.yizhuan.erban.R +import com.yizhuan.erban.avroom.activity.AVRoomActivity +import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2 +import com.yizhuan.erban.ui.utils.load +import com.yizhuan.xchat_android_core.home.bean.HomeRoom +import com.yizhuan.xchat_android_core.utils.TextUtils + + +class RoomHotAdapter : BaseQuickAdapter(R.layout.item_room_hot) { + + + override fun convert(helper: BaseViewHolder, item: HomeRoom) { + helper.apply { + getView(R.id.iv_room_image).load(item.avatar) + setText(R.id.tv_online_number, "${item.onlineNum}") + setText(R.id.tv_room_title, item.title) + itemView.setOnClickListener { + AVRoomActivity.start(mContext, item.uid) + } + setText(R.id.tv_id, "ID:${item.erbanNo}") + } + + helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict)) + ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict) + helper.setVisible(R.id.tv_in_pk, item.isCrossPking) + val avatars: Array = arrayOf( + helper.getView(R.id.iv_avatar_0), + helper.getView(R.id.iv_avatar_1), + helper.getView(R.id.iv_avatar_2), + helper.getView(R.id.iv_avatar_3), + helper.getView(R.id.iv_avatar_4) + ) + for (i in avatars.indices) { + val avatarUrl = item.micUsers?.getOrNull(i)?.avatar + avatars[i].isGone = avatarUrl.isNullOrBlank() + avatars[i].load(avatarUrl) + } + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/RoomLikeAdapter.kt b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomLikeAdapter.kt new file mode 100644 index 000000000..93a945b06 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/RoomLikeAdapter.kt @@ -0,0 +1,46 @@ +package com.yizhuan.erban.home.adapter + +import android.widget.ImageView +import androidx.core.view.isGone +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.yizhuan.erban.R +import com.yizhuan.erban.avroom.activity.AVRoomActivity +import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2 +import com.yizhuan.erban.ui.utils.load +import com.yizhuan.xchat_android_core.home.bean.HomeRoom +import com.yizhuan.xchat_android_core.utils.TextUtils + + +class RoomLikeAdapter : BaseQuickAdapter(R.layout.item_room_like) { + + + override fun convert(helper: BaseViewHolder, item: HomeRoom) { + helper.apply { + getView(R.id.iv_room_image).load(item.avatar) + setText(R.id.tv_online_number, "${item.onlineNum}") + setText(R.id.tv_room_title, item.title) + itemView.setOnClickListener { + AVRoomActivity.start(mContext, item.uid) + } + setText(R.id.tv_id, "ID:${item.erbanNo}") + } + helper.setVisible(R.id.tv_in_pk, item.isCrossPking) + helper.setVisible(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict)) + ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict) + + val avatars: Array = arrayOf( + helper.getView(R.id.iv_avatar_0), + helper.getView(R.id.iv_avatar_1), + helper.getView(R.id.iv_avatar_2), + helper.getView(R.id.iv_avatar_3), + helper.getView(R.id.iv_avatar_4) + ) + for (i in avatars.indices) { + val avatarUrl = item.micUsers?.getOrNull(i)?.avatar + avatars[i].isGone = avatarUrl.isNullOrBlank() + avatars[i].load(avatarUrl) + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt index b877d2542..548442f09 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt @@ -24,7 +24,7 @@ import java.util.* * 音游首页 */ class HomeFragment : BaseFragment(), View.OnClickListener, - MainMagicIndicatorAdapter.OnBottomItemSelectListener { + MainMagicIndicatorAdapter.OnItemSelectListener { private lateinit var mBinding: FragmentHomeBinding override fun onClick(v: View) { when (v.id) { @@ -69,8 +69,9 @@ class HomeFragment : BaseFragment(), View.OnClickListener, fragmentPos.add(PartyFragment.newInstance()) val commonNavigator = CommonNavigator(context) commonNavigator.setTitleWrapContent(true) - val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList, false) - magicIndicatorAdapter.setOnBottomItemSelectListener(this) + val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList) + magicIndicatorAdapter.textSize = 24 + magicIndicatorAdapter.setOnItemSelectListener(this) commonNavigator.adapter = magicIndicatorAdapter mBinding.magicIndicator.navigator = commonNavigator commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE @@ -83,7 +84,7 @@ class HomeFragment : BaseFragment(), View.OnClickListener, ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager) } - override fun onBottomItemSelect(position: Int, view: TextView?) { + override fun onItemSelect(position: Int, view: TextView?) { mBinding.viewPager.currentItem = position } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomePlayFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/HomePlayFragment.java index 9810080d8..2d65358f5 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomePlayFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomePlayFragment.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.os.Bundle; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.yizhuan.erban.R; @@ -53,7 +54,7 @@ public class HomePlayFragment extends BaseFragment { playAdapter = new HomePlayAdapter(); rvDelegate = new RVDelegate.Builder() .setAdapter(playAdapter) - .setLayoutManager(new GridLayoutManager(mContext, 2)) + .setLayoutManager(new LinearLayoutManager(mContext)) .setRecyclerView(recyclerView) .setEmptyView(EmptyViewHelper.createEmptyView(getContext(), "暂无数据")) .build(); diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/PartyFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/PartyFragment.kt index 58a2b1599..34261ca3b 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/PartyFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/PartyFragment.kt @@ -5,15 +5,16 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment +import androidx.fragment.app.activityViewModels import com.coorchice.library.utils.LogUtils import com.yizhuan.erban.R -import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter +import com.yizhuan.erban.avroom.adapter.RoomVPAdapter import com.yizhuan.erban.base.BaseFragment import com.yizhuan.erban.databinding.FragmentPartyBinding -import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter +import com.yizhuan.erban.home.HomeViewModel +import com.yizhuan.erban.home.adapter.PartyMagicIndicatorAdapter import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator -import com.yizhuan.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent import org.greenrobot.eventbus.EventBus @@ -23,22 +24,24 @@ import org.greenrobot.eventbus.ThreadMode /** * 音游首页 */ -class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectListener { +class PartyFragment : BaseFragment(), PartyMagicIndicatorAdapter.OnItemSelectListener { private lateinit var mBinding: FragmentPartyBinding - private var isLoaded = false private val mFragments: ArrayList = ArrayList() private val mTabInfoList: ArrayList = ArrayList() + private val homeViewModel: HomeViewModel by activityViewModels() - companion object{ + companion object { fun newInstance(): PartyFragment { val args = Bundle() - val fragment = PartyFragment() fragment.arguments = args return fragment } } + override fun getRootLayoutId(): Int { + return R.layout.fragment_party + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -50,34 +53,20 @@ class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectList EventBus.getDefault().unregister(this) } - - override fun getRootLayoutId(): Int { - return R.layout.fragment_party - } - override fun onFindViews() { mBinding = DataBindingUtil.bind(mView)!! } - override fun onSetListener() { - - } - override fun initiate() { - if (AuthModel.get().currentUid != 0L) { - tryLoadData(false) + homeViewModel.getTagInfo() + homeViewModel.tagLiveData.observe(this) { + it?.let { + onGetHomeTagSuccess(it) + } } } - //尝试加载不需要登录就可以加载的数据 - private fun tryLoadData(refresh: Boolean) { - if (!isLoaded || refresh) { - isLoaded = true - } - } - - - fun onGetHomeTagSuccess(info: List) { + private fun onGetHomeTagSuccess(info: List) { var changed = false val oldTabInfoList: List = ArrayList(mTabInfoList) for (tagInfo in info) { @@ -102,26 +91,37 @@ class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectList title = name mTabInfoList.add(title) val tabId: Int = info[i].id - fragment = HomeTabHomeFragment.newInstance(tabId) + fragment = when (title) { + "喜欢" -> { + RoomLikeFragment.newInstance() + } + "小游戏" -> { + RoomGameFragment.newInstance() + } + else -> { + RoomCommonFragment.newInstance(tabId) + } + } mFragments.add(fragment) } val commonNavigator = CommonNavigator(context) commonNavigator.setTitleWrapContent(true) - val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, mTabInfoList, false) + commonNavigator.titleMargin = 8 + val magicIndicatorAdapter = PartyMagicIndicatorAdapter(context, mTabInfoList) + magicIndicatorAdapter.textSize = 14 magicIndicatorAdapter.setOnItemSelectListener(this) commonNavigator.adapter = magicIndicatorAdapter mBinding.magicIndicator.navigator = commonNavigator - commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE mBinding.viewPager.offscreenPageLimit = 5 - mBinding.viewPager.adapter = RoomContributeListAdapter( + mBinding.viewPager.adapter = RoomVPAdapter( childFragmentManager, mFragments ) ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager) } else { for (fragment in mFragments) { - if (fragment is LazyLoadFragment) { - fragment.tryLoadData() + if (fragment is RoomCommonFragment) { + fragment.loadData(true) } } } @@ -134,7 +134,7 @@ class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectList */ @Subscribe(threadMode = ThreadMode.MAIN) fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) { - tryLoadData(true) + } override fun onItemSelect(position: Int, view: TextView?) { 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 7f61df923..908f2a1a4 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 @@ -10,18 +10,15 @@ import android.widget.TextView import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels -import androidx.fragment.app.viewModels import com.netease.nim.uikit.common.util.sys.ScreenUtil import com.scwang.smartrefresh.layout.internal.ProgressDrawable import com.yizhuan.erban.R -import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter +import com.yizhuan.erban.avroom.adapter.RoomVPAdapter import com.yizhuan.erban.base.BaseFragment import com.yizhuan.erban.databinding.FragmentRecommendBinding import com.yizhuan.erban.home.HomeViewModel import com.yizhuan.erban.home.adapter.BannerAdapter import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter -import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter.OnBottomItemSelectListener -import com.yizhuan.erban.ui.widget.OnPageSelectedListener import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator import com.yizhuan.erban.ui.widget.rollviewpager.Util @@ -29,7 +26,6 @@ import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView import com.yizhuan.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_core.home.bean.BannerInfo import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent -import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel import com.yizhuan.xchat_android_core.statistic.StatisticManager import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol import com.yizhuan.xchat_android_core.user.event.LoadLoginUserInfoEvent @@ -43,7 +39,8 @@ import java.util.* /** * 音游首页 */ -class RecommendFragment : BaseFragment(), View.OnClickListener, OnBottomItemSelectListener { +class RecommendFragment : BaseFragment(), View.OnClickListener, + MainMagicIndicatorAdapter.OnItemSelectListener { private lateinit var mBinding: FragmentRecommendBinding private var mFragmentsBottom: MutableList = ArrayList() private lateinit var bannerAdapter: BannerAdapter @@ -54,7 +51,6 @@ class RecommendFragment : BaseFragment(), View.OnClickListener, OnBottomItemSele companion object { fun newInstance(): RecommendFragment { val args = Bundle() - val fragment = RecommendFragment() fragment.arguments = args return fragment @@ -132,40 +128,24 @@ class RecommendFragment : BaseFragment(), View.OnClickListener, OnBottomItemSele */ private fun initTitleTab() { val tagList: MutableList = ArrayList() - tagList.add("热门房间") tagList.add("组队开黑") - mFragmentsBottom.add(RoomHotFragment.newInstance()) + tagList.add("热门房间") mFragmentsBottom.add(HomePlayFragment.newInstance()) + mFragmentsBottom.add(RoomHotFragment.newInstance()) val commonNavigator = CommonNavigator(context) commonNavigator.setTitleWrapContent(true) - val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList, false) - magicIndicatorAdapter.setOnBottomItemSelectListener(this) + val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, tagList) + magicIndicatorAdapter.textSize = 16 + magicIndicatorAdapter.setOnItemSelectListener(this) commonNavigator.adapter = magicIndicatorAdapter mBinding.magicIndicator.navigator = commonNavigator commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE mBinding.viewPager.offscreenPageLimit = 5 mBinding.viewPager.adapter = - RoomContributeListAdapter(childFragmentManager, mFragmentsBottom) + RoomVPAdapter(childFragmentManager, mFragmentsBottom) ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager) } - /** - * 底部动态聊天交友 - * - * @param position - * @param view - */ - override fun onBottomItemSelect(position: Int, view: TextView) { - if (mFragmentsBottom.isEmpty()) { - return - } - mBinding.viewPager.currentItem = position - if (position == 1) { - StatisticManager.Instance() - .onEvent(StatisticsProtocol.Event.EVENT_HOME_SCREEN_DONG_TAI_CLICK, "首页_聊天交友切换到动态") - } - } - /** * 用户信息更新 * @@ -242,4 +222,15 @@ class RecommendFragment : BaseFragment(), View.OnClickListener, OnBottomItemSele bannerAdapter.notifyDataSetChanged() } + override fun onItemSelect(position: Int, view: TextView?) { + if (mFragmentsBottom.isEmpty()) { + return + } + mBinding.viewPager.currentItem = position + if (position == 1) { + StatisticManager.Instance() + .onEvent(StatisticsProtocol.Event.EVENT_HOME_SCREEN_DONG_TAI_CLICK, "首页_聊天交友切换到动态") + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomCommonFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomCommonFragment.kt new file mode 100644 index 000000000..689c8d87b --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomCommonFragment.kt @@ -0,0 +1,68 @@ +package com.yizhuan.erban.home.fragment + +import android.annotation.SuppressLint +import android.os.Bundle +import androidx.fragment.app.viewModels +import androidx.recyclerview.widget.LinearLayoutManager +import com.yizhuan.erban.avroom.activity.AVRoomActivity +import com.yizhuan.erban.base.BaseViewBindingFragment +import com.yizhuan.erban.common.EmptyViewHelper +import com.yizhuan.erban.databinding.FragmentRoomCommonBinding +import com.yizhuan.erban.home.HomeViewModel +import com.yizhuan.erban.home.adapter.RoomCommonAdapter +import com.yizhuan.erban.ui.utils.RVDelegate +import com.yizhuan.xchat_android_core.home.bean.HomeRoom + + +class RoomCommonFragment : BaseViewBindingFragment() { + + companion object { + fun newInstance(tabID: Int): RoomCommonFragment { + val args = Bundle() + args.putInt("tab_id", tabID) + val fragment = RoomCommonFragment() + fragment.arguments = args + return fragment + } + } + + private val tabID: Int by lazy { arguments?.getInt("tab_id") ?: -1 } + private var pageNum: Int = 1 + private val pageSize = 20 + + private val mAdapter = RoomCommonAdapter() + private lateinit var rvDelegate: RVDelegate + + private val homeViewModel: HomeViewModel by viewModels() + + override fun init() { + rvDelegate = RVDelegate.Builder() + .setAdapter(mAdapter) + .setLayoutManager(LinearLayoutManager(mContext)) + .setPageSize(20) + .setEmptyView(EmptyViewHelper.createEmptyView(mContext, "暂无房间")) + .setRefreshLayout(binding.refreshLayout) + .setRecyclerView(binding.recyclerView) + .build() + mAdapter.setOnItemClickListener { _, _, position -> + mAdapter.getItem(position)?.let { AVRoomActivity.start(context, it.uid) } + } + mAdapter.setOnLoadMoreListener({ + loadData(false) + }, binding.recyclerView) + binding.refreshLayout.setOnRefreshListener { + loadData(true) + } + homeViewModel.commonRoomLiveData.observe(this) { + rvDelegate.loadData(it) + } + loadData(true) + } + + @SuppressLint("CheckResult") + fun loadData(isRefresh: Boolean) { + binding.refreshLayout.isRefreshing = isRefresh + pageNum = if (isRefresh) 1 else (pageNum + 1) + homeViewModel.getCommonRoom(tabID, pageNum, pageSize) + } +} diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt new file mode 100644 index 000000000..67dc4c88d --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt @@ -0,0 +1,56 @@ +package com.yizhuan.erban.home.fragment + +import android.os.Bundle +import androidx.fragment.app.activityViewModels +import androidx.recyclerview.widget.LinearLayoutManager +import com.yizhuan.erban.base.BaseViewBindingFragment +import com.yizhuan.erban.common.EmptyViewHelper +import com.yizhuan.erban.databinding.FragmentRoomGameBinding +import com.yizhuan.erban.home.HomeViewModel +import com.yizhuan.erban.home.adapter.RoomHotAdapter +import com.yizhuan.erban.ui.utils.RVDelegate +import com.yizhuan.xchat_android_core.home.bean.HomeRoom + + +class RoomGameFragment : BaseViewBindingFragment() { + + companion object { + fun newInstance(): RoomGameFragment { + val args = Bundle() + val fragment = RoomGameFragment() + fragment.arguments = args + return fragment + } + } + + private val roomHotAdapter = RoomHotAdapter() + private var page = 1 + private lateinit var rvDelegate: RVDelegate + private val pageSize = 20 + private val homeViewModel: HomeViewModel by activityViewModels() + + override fun init() { + rvDelegate = RVDelegate.Builder() + .setAdapter(roomHotAdapter) + .setRecyclerView(binding.recyclerView) + .setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间")) + .setLayoutManager(LinearLayoutManager(mContext)) + .setPageSize(pageSize) + .build() + roomHotAdapter.setOnLoadMoreListener({ loadData(false) }, binding.recyclerView) + + homeViewModel.hotRoomLiveData.observe(this) { + rvDelegate.loadData(it) + } + loadData(true) + } + + private fun loadData(isRefresh: Boolean) { + if (isRefresh) { + page = 1 + } else { + page++ + } + homeViewModel.getHotRoom(page, pageSize) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomHotFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomHotFragment.kt index 1af741d1c..6e84b5244 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomHotFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomHotFragment.kt @@ -5,14 +5,14 @@ import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.LinearLayoutManager import com.yizhuan.erban.base.BaseViewBindingFragment import com.yizhuan.erban.common.EmptyViewHelper -import com.yizhuan.erban.databinding.FragmentHotRoomBinding +import com.yizhuan.erban.databinding.FragmentRoomHotBinding import com.yizhuan.erban.home.HomeViewModel -import com.yizhuan.erban.home.adapter.HotRoomAdapter +import com.yizhuan.erban.home.adapter.RoomHotAdapter import com.yizhuan.erban.ui.utils.RVDelegate import com.yizhuan.xchat_android_core.home.bean.HomeRoom -class RoomHotFragment : BaseViewBindingFragment() { +class RoomHotFragment : BaseViewBindingFragment() { companion object { fun newInstance(): RoomHotFragment { @@ -23,7 +23,7 @@ class RoomHotFragment : BaseViewBindingFragment() { } } - private val roomHotAdapter = HotRoomAdapter() + private val roomHotAdapter = RoomHotAdapter() private var page = 1 private lateinit var rvDelegate: RVDelegate private val pageSize = 20 @@ -33,13 +33,11 @@ class RoomHotFragment : BaseViewBindingFragment() { rvDelegate = RVDelegate.Builder() .setAdapter(roomHotAdapter) .setRecyclerView(binding.recyclerView) - .setRefreshLayout(binding.refreshLayout) .setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间")) .setLayoutManager(LinearLayoutManager(mContext)) .setPageSize(pageSize) .build() roomHotAdapter.setOnLoadMoreListener({ loadData(false) }, binding.recyclerView) - binding.refreshLayout.setOnRefreshListener { loadData(true) } homeViewModel.hotRoomLiveData.observe(this) { rvDelegate.loadData(it) @@ -48,7 +46,6 @@ class RoomHotFragment : BaseViewBindingFragment() { } private fun loadData(isRefresh: Boolean) { - binding.refreshLayout.isRefreshing = isRefresh if (isRefresh) { page = 1 } else { diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomLikeFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomLikeFragment.kt new file mode 100644 index 000000000..8b095b17d --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomLikeFragment.kt @@ -0,0 +1,93 @@ +package com.yizhuan.erban.home.fragment + +import android.os.Bundle +import androidx.fragment.app.activityViewModels +import androidx.recyclerview.widget.LinearLayoutManager +import com.google.android.material.appbar.AppBarLayout +import com.yizhuan.erban.base.BaseViewBindingFragment +import com.yizhuan.erban.common.EmptyViewHelper +import com.yizhuan.erban.databinding.FragmentRoomLikeBinding +import com.yizhuan.erban.home.HomeViewModel +import com.yizhuan.erban.home.adapter.HomeConcernsAdapter +import com.yizhuan.erban.home.adapter.RoomCommonAdapter +import com.yizhuan.erban.home.adapter.RoomLikeAdapter +import com.yizhuan.erban.ui.utils.RVDelegate +import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo +import com.yizhuan.xchat_android_core.home.bean.HomeRoom + + +class RoomLikeFragment : BaseViewBindingFragment() { + + companion object { + fun newInstance(): RoomLikeFragment { + val args = Bundle() + val fragment = RoomLikeFragment() + fragment.arguments = args + return fragment + } + } + + private val concernsAdapter = HomeConcernsAdapter() + private lateinit var likeRvDelegate: RVDelegate + + private val mAdapter = RoomLikeAdapter() + private lateinit var rvDelegate: RVDelegate + private var pageNum = 1 + private val pageSize = 20 + private val homeViewModel: HomeViewModel by activityViewModels() + + override fun init() { + + binding.appBarLayout.addOnOffsetChangedListener( + AppBarLayout.OnOffsetChangedListener { _, verticalOffset -> + binding.refreshLayout.isEnabled = verticalOffset == 0 + }) + likeRvDelegate = RVDelegate.Builder() + .setAdapter(concernsAdapter) + .setRecyclerView(binding.rvLike) + .setEmptyView(EmptyViewHelper.createEmptyView(context, "暂无房间")) + .setLayoutManager(LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)) + .build() + + homeViewModel.concernsLiveData.observe(this) { + likeRvDelegate.setNewData(it) + } + homeViewModel.getConcernsRoom() + + rvDelegate = RVDelegate.Builder() + .setAdapter(mAdapter) + .setLayoutManager(LinearLayoutManager(mContext)) + .setPageSize(pageSize) + .setRefreshLayout(binding.refreshLayout) + .setEmptyView(EmptyViewHelper.createEmptyView(mContext, "暂无房间")) + .setRecyclerView(binding.rvCollect) + .build() + + homeViewModel.collectLiveData.observe(this) { + rvDelegate.loadData(it) + } + + mAdapter.setOnLoadMoreListener({ + loadData(false) + }, binding.rvCollect) + + binding.refreshLayout.setOnRefreshListener { + loadData(true) + } + + + loadData(true) + + } + + private fun loadData(isRefresh: Boolean) { + if (isRefresh) { + pageNum = 1 + } else { + pageNum++ + } + homeViewModel.getCollectRoom(pageNum, pageSize) + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/ui/utils/RVDelegate.java b/app/src/main/java/com/yizhuan/erban/ui/utils/RVDelegate.java index 8ee01c282..77620b4bd 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/utils/RVDelegate.java +++ b/app/src/main/java/com/yizhuan/erban/ui/utils/RVDelegate.java @@ -51,7 +51,7 @@ public class RVDelegate { if (result.isSuccess()) { loadData(result.getData(), result.isRefresh()); } else { - loadErr(result.isSuccess()); + loadErr(result.isRefresh()); } } diff --git a/app/src/main/java/com/yizhuan/erban/ui/widget/magicindicator/buildins/commonnavigator/CommonNavigator.java b/app/src/main/java/com/yizhuan/erban/ui/widget/magicindicator/buildins/commonnavigator/CommonNavigator.java index aa9a1acba..fb5b983fc 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/widget/magicindicator/buildins/commonnavigator/CommonNavigator.java +++ b/app/src/main/java/com/yizhuan/erban/ui/widget/magicindicator/buildins/commonnavigator/CommonNavigator.java @@ -9,6 +9,7 @@ import android.widget.FrameLayout; import android.widget.HorizontalScrollView; import android.widget.LinearLayout; +import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.yizhuan.erban.R; import com.yizhuan.erban.ui.widget.magicindicator.NavigatorHelper; import com.yizhuan.erban.ui.widget.magicindicator.ScrollState; @@ -52,6 +53,7 @@ public class CommonNavigator extends FrameLayout implements IPagerNavigator, Nav private boolean mIndicatorOnTop; // 指示器是否在title上层,默认为下层 private boolean mSkimOver; // 跨多页切换时,中间页是否显示 "掠过" 效果 private boolean mReselectWhenLayout = true; // PositionData准备好时,是否重新选中当前页,为true可保证在极端情况下指示器状态正确 + private int titleMargin; /****************************************************/ // 保存每个title的位置信息,为扩展indicator提供保障 @@ -166,6 +168,7 @@ public class CommonNavigator extends FrameLayout implements IPagerNavigator, Nav lp.weight = mAdapter.getTitleWeight(getContext(), i); } else if (mTitleWrapContent) { lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); + lp.setMargins(titleMargin, 0, titleMargin, 0); } else { lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT); } @@ -451,6 +454,14 @@ public class CommonNavigator extends FrameLayout implements IPagerNavigator, Nav mReselectWhenLayout = reselectWhenLayout; } + public int getTitleMargin() { + return titleMargin; + } + + public void setTitleMargin(int titleMargin) { + this.titleMargin = titleMargin; + } + private NavigatorSelectedListener mNavigatorSelectedListener; public void setmNavigatorSelectedListener(NavigatorSelectedListener navigatorSelectedListener) { diff --git a/app/src/main/java/com/yizhuan/erban/ui/widget/magicindicator/buildins/commonnavigator/indicators/WrapPagerIndicator.java b/app/src/main/java/com/yizhuan/erban/ui/widget/magicindicator/buildins/commonnavigator/indicators/WrapPagerIndicator.java index aaf66b093..a14a45732 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/widget/magicindicator/buildins/commonnavigator/indicators/WrapPagerIndicator.java +++ b/app/src/main/java/com/yizhuan/erban/ui/widget/magicindicator/buildins/commonnavigator/indicators/WrapPagerIndicator.java @@ -43,8 +43,7 @@ public class WrapPagerIndicator extends View implements IPagerIndicator { private void init(Context context) { mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setStyle(Paint.Style.FILL); - mVerticalPadding = UIUtil.dip2px(context, 6); - mHorizontalPadding = UIUtil.dip2px(context, 10); + mHorizontalPadding = UIUtil.dip2px(context, 8); } @Override diff --git a/app/src/main/res/drawable-xhdpi/bg_common_pk.png b/app/src/main/res/drawable-xhdpi/bg_common_pk.png new file mode 100644 index 000000000..012034f53 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_common_pk.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_home_common_avatar.png b/app/src/main/res/drawable-xhdpi/bg_home_common_avatar.png new file mode 100644 index 000000000..b9612e2eb Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_home_common_avatar.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_home_common_item.png b/app/src/main/res/drawable-xhdpi/bg_home_common_item.png new file mode 100644 index 000000000..de82138a0 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_home_common_item.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_home_common_pk.png b/app/src/main/res/drawable-xhdpi/bg_home_common_pk.png new file mode 100644 index 000000000..012034f53 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_home_common_pk.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_home_hot_avatar.png b/app/src/main/res/drawable-xhdpi/bg_home_hot_avatar.png new file mode 100644 index 000000000..74941f0c2 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_home_hot_avatar.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_home_hot_item.png b/app/src/main/res/drawable-xhdpi/bg_home_hot_item.png new file mode 100644 index 000000000..0643362c1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_home_hot_item.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_home_play_item_man.png b/app/src/main/res/drawable-xhdpi/bg_home_play_item_man.png new file mode 100644 index 000000000..49a028235 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_home_play_item_man.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_home_play_item_woman.png b/app/src/main/res/drawable-xhdpi/bg_home_play_item_woman.png new file mode 100644 index 000000000..bf29bd65e Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_home_play_item_woman.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_home_recommend_item.png b/app/src/main/res/drawable-xhdpi/bg_home_recommend_item.png new file mode 100644 index 000000000..c61407c53 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_home_recommend_item.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_like_pk.png b/app/src/main/res/drawable-xhdpi/bg_like_pk.png new file mode 100644 index 000000000..08ec631f1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_like_pk.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_home_hot_hot.png b/app/src/main/res/drawable-xhdpi/ic_home_hot_hot.png new file mode 100644 index 000000000..bb35f2b04 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_home_hot_hot.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_home_online_tag.png b/app/src/main/res/drawable-xhdpi/ic_home_online_tag.png index 2af2c2974..8e6fa4cc3 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_home_online_tag.png and b/app/src/main/res/drawable-xhdpi/ic_home_online_tag.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_home_play_online.png b/app/src/main/res/drawable-xhdpi/ic_home_play_online.png new file mode 100644 index 000000000..e14c43471 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_home_play_online.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_resource_0.png b/app/src/main/res/drawable-xhdpi/ic_resource_0.png new file mode 100644 index 000000000..249bd905e Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_resource_0.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_resource_1.png b/app/src/main/res/drawable-xhdpi/ic_resource_1.png new file mode 100644 index 000000000..8d81c3f00 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_resource_1.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_resource_2.png b/app/src/main/res/drawable-xhdpi/ic_resource_2.png new file mode 100644 index 000000000..11c91d051 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_resource_2.png differ diff --git a/app/src/main/res/drawable/bg_shape_common_pk.xml b/app/src/main/res/drawable/bg_shape_common_pk.xml new file mode 100644 index 000000000..7df2b8e0f --- /dev/null +++ b/app/src/main/res/drawable/bg_shape_common_pk.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/app/src/main/res/drawable/bg_shape_play_pk.xml b/app/src/main/res/drawable/bg_shape_play_pk.xml new file mode 100644 index 000000000..7df2b8e0f --- /dev/null +++ b/app/src/main/res/drawable/bg_shape_play_pk.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/app/src/main/res/drawable/shape_item_room_online_member.xml b/app/src/main/res/drawable/shape_item_room_online_member.xml index d0503477f..381547372 100644 --- a/app/src/main/res/drawable/shape_item_room_online_member.xml +++ b/app/src/main/res/drawable/shape_item_room_online_member.xml @@ -1,11 +1,7 @@ - - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e5ce780da..38fd2990c 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -10,15 +10,9 @@ android:id="@+id/main_fragment" android:layout_width="match_parent" android:layout_height="0dp" - app:layout_constraintBottom_toTopOf="@id/bg_main_tab" + app:layout_constraintBottom_toTopOf="@id/main_tab_layout" app:layout_constraintTop_toTopOf="parent" /> - - - - - - - - - - - - - - - - - - + android:layout_height="match_parent" + android:orientation="vertical"> + + android:layout_height="match_parent" /> - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_recommend.xml b/app/src/main/res/layout/fragment_recommend.xml index 34237b5e9..21aecc7f2 100644 --- a/app/src/main/res/layout/fragment_recommend.xml +++ b/app/src/main/res/layout/fragment_recommend.xml @@ -60,7 +60,7 @@ android:layout_width="match_parent" android:layout_height="0dp" android:visibility="gone" - app:layout_constraintDimensionRatio="345:80" + app:layout_constraintDimensionRatio="345:130" app:layout_constraintTop_toTopOf="parent" app:rollviewpager_hint_gravity="left" app:rollviewpager_hint_paddingBottom="8dp" @@ -68,6 +68,49 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_hot_room.xml b/app/src/main/res/layout/fragment_room_common.xml similarity index 100% rename from app/src/main/res/layout/fragment_hot_room.xml rename to app/src/main/res/layout/fragment_room_common.xml diff --git a/app/src/main/res/layout/fragment_room_game.xml b/app/src/main/res/layout/fragment_room_game.xml new file mode 100644 index 000000000..3d7ae06d1 --- /dev/null +++ b/app/src/main/res/layout/fragment_room_game.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/fragment_room_hot.xml b/app/src/main/res/layout/fragment_room_hot.xml new file mode 100644 index 000000000..3d7ae06d1 --- /dev/null +++ b/app/src/main/res/layout/fragment_room_hot.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/fragment_room_like.xml b/app/src/main/res/layout/fragment_room_like.xml new file mode 100644 index 000000000..fc31ba3e2 --- /dev/null +++ b/app/src/main/res/layout/fragment_room_like.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_home_play.xml b/app/src/main/res/layout/item_home_play.xml index ac28f38a0..43f2f4f29 100644 --- a/app/src/main/res/layout/item_home_play.xml +++ b/app/src/main/res/layout/item_home_play.xml @@ -4,79 +4,128 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="5dp" - android:layout_marginTop="7dp" - android:layout_marginEnd="5dp" - android:layout_marginBottom="7dp"> - - + android:layout_marginStart="7dp" + android:layout_marginEnd="7dp"> - - - - - - + + android:maxLines="1" + android:textColor="@color/text_primary" + android:textSize="14sp" + android:textStyle="bold" + app:layout_constraintBottom_toTopOf="@id/iv_room_tag" + app:layout_constraintStart_toEndOf="@id/iv_room_image" + app:layout_constraintTop_toTopOf="parent" + tools:text="余生点唱歌曲交友房间" /> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_home_tab_map.xml b/app/src/main/res/layout/item_home_tab_map.xml index 56646e04a..b70b8efe5 100644 --- a/app/src/main/res/layout/item_home_tab_map.xml +++ b/app/src/main/res/layout/item_home_tab_map.xml @@ -1,53 +1,57 @@ - + tools:layout_width="120dp"> + + + android:layout_marginStart="3dp" + android:layout_marginEnd="4dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + android:src="@drawable/default_cover" + app:riv_corner_radius_bottom_left="0dp" + app:riv_corner_radius_bottom_right="0dp" + app:riv_corner_radius_top_left="8dp" + app:riv_corner_radius_top_right="8dp" /> - - - - - + android:drawableStart="@drawable/ic_home_online_tag" + android:gravity="center" + android:maxLines="1" + android:paddingStart="4dp" + android:paddingEnd="4dp" + android:textColor="@color/white" + android:textSize="10sp" + tools:text="100" /> - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/item_room_common.xml b/app/src/main/res/layout/item_room_common.xml index 11b127ebf..7d3248d3a 100644 --- a/app/src/main/res/layout/item_room_common.xml +++ b/app/src/main/res/layout/item_room_common.xml @@ -3,93 +3,165 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="98dp" - android:layout_marginStart="10dp" + android:layout_height="wrap_content" + android:layout_marginStart="12dp" android:layout_marginTop="5dp" android:layout_marginEnd="10dp"> - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:riv_corner_radius="8dp" /> + + + + app:layout_constraintEnd_toEndOf="@id/iv_room_image" + app:layout_constraintStart_toStartOf="@id/iv_room_image" + app:layout_constraintTop_toTopOf="@id/iv_room_image" /> - + + + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:text="266" /> - + app:layout_constraintEnd_toEndOf="parent"> + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_room_game.xml b/app/src/main/res/layout/item_room_game.xml new file mode 100644 index 000000000..11b127ebf --- /dev/null +++ b/app/src/main/res/layout/item_room_game.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_room_hot.xml b/app/src/main/res/layout/item_room_hot.xml new file mode 100644 index 000000000..ca59c2d1f --- /dev/null +++ b/app/src/main/res/layout/item_room_hot.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_room_like.xml b/app/src/main/res/layout/item_room_like.xml new file mode 100644 index 000000000..2d3ce38ec --- /dev/null +++ b/app/src/main/res/layout/item_room_like.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/main_tab_layout.xml b/app/src/main/res/layout/main_tab_layout.xml index ae4bd98de..b3225f30c 100644 --- a/app/src/main/res/layout/main_tab_layout.xml +++ b/app/src/main/res/layout/main_tab_layout.xml @@ -18,7 +18,7 @@ app:tab_icon_select="@mipmap/ic_main_tab_game_pressed" app:tab_text="派对" app:tab_text_color="@color/main_tab_normal" - app:tab_text_color_select="@color/app_248cfe" /> + app:tab_text_color_select="@color/color_333333" /> + app:tab_text_color_select="@color/color_333333" /> + app:tab_text_color_select="@color/color_333333" /> + app:tab_text_color_select="@color/color_333333" /> + app:tab_text_color_select="@color/color_333333" /> \ No newline at end of file diff --git a/app/src/main/res/mipmap-xhdpi/ic_home_rank.png b/app/src/main/res/mipmap-xhdpi/ic_home_rank.png new file mode 100644 index 000000000..04399fed1 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_home_rank.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_find.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_find.png index a02a0e9b8..0c2cf9f52 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_find.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_find.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_find_pressed.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_find_pressed.png index 8ffe2cb6a..bc04d4e76 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_find_pressed.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_find_pressed.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_game_home.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_game_home.png index 5ed11d8c5..b76c6539a 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_game_home.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_game_home.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_game_pressed.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_game_pressed.png index ef73b8ed5..324041343 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_game_pressed.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_game_pressed.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_me.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_me.png index 24037d13f..e5c07997a 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_me.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_me.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_me_pressed.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_me_pressed.png index e4a0115fc..ab16c783e 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_me_pressed.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_me_pressed.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_msg.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_msg.png index 67c79392d..ddab1ff4b 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_msg.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_msg.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_msg_pressed.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_msg_pressed.png index 8952193cd..dea4ff089 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_msg_pressed.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_msg_pressed.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_peace.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_peace.png index 6a1e27025..41c82a34e 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_peace.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_peace.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_main_tab_peace_pressed.png b/app/src/main/res/mipmap-xhdpi/ic_main_tab_peace_pressed.png index c14f49b13..6972a765c 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_main_tab_peace_pressed.png and b/app/src/main/res/mipmap-xhdpi/ic_main_tab_peace_pressed.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index aecb1e018..dc96e906f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -356,7 +356,7 @@ #FFB15E #FFC4AB - + #33000000 #66000000 #4D000000 #40FFFFFF @@ -579,7 +579,7 @@ #7727E4 - #555574 + #66333333 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c24c9097c..d717584a1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -157,7 +157,7 @@ 我的粉丝 你还没有关注任何音游好友哦! \n快去添加关注吧! - 搜索昵称/音游号/房间名 + 搜索昵称或ID 在线中… 客服 diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/HomeRoom.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/HomeRoom.java index 3a52254cd..19e0caf97 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/HomeRoom.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/bean/HomeRoom.java @@ -9,6 +9,7 @@ import com.yizhuan.xchat_android_core.noble.NobleInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import java.io.Serializable; +import java.util.List; import lombok.Data; import lombok.EqualsAndHashCode; @@ -54,6 +55,10 @@ public class HomeRoom extends RoomInfo implements Parcelable, Serializable, Mult /** 背景图标 */ private String icon; + private List micUsers; + + private boolean crossPking; + public HomeRoom() { super(); } 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 56d52cf64..7ced3955c 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 @@ -138,6 +138,27 @@ object HomeModel : BaseModel() { api.getHotRoom(pageNum, pageSize) } + suspend fun getCommonRoom(tabId: Int, pageNum: Int, pageSize: Int): List? = + launchRequest { + api.getCommonRoom(tabId, pageNum, pageSize) + } + + + suspend fun getHomeTag(): List? = + launchRequest { + api.getHomeTag() + } + + suspend fun getConcernsRoom(): List? = + launchRequest { + api.getConcernsRoom() + } + + suspend fun getCollectRoom(pageNum: Int, pageSize: Int): List? = + launchRequest { + api.getCollectRoom(AuthModel.get().currentUid,pageNum, pageSize) + } + val homeConcerns: Single> get() = api.apiHomeConcerns( @@ -303,6 +324,46 @@ object HomeModel : BaseModel() { @Query("pageSize") pageSize: Int ): ServiceResult> + /** + * 首页热门房间 + * + * @return + */ + @GET("/home/tab/mapV2") + suspend fun getCommonRoom( + @Query("tabId") tabId: Int, + @Query("pageNum") pageNum: Int, + @Query("pageSize") pageSize: Int + ): ServiceResult> + + /** + * 首页派对 Tag List + * + * @return + */ + @GET("/home/tagV2") + suspend fun getHomeTag(): ServiceResult> + + /** + * 首页派对 Tag List + * + * @return + */ + @GET("/fans/partTabFollowList") + suspend fun getConcernsRoom(): ServiceResult> + + + /** + * 首页派对 Tag List + * + * @return + */ + @GET("/fans/fansRoomList") + suspend fun getCollectRoom( + @Query("uid") uid: Long, + @Query("page") pageNum: Int, + @Query("pageSize") pageSize: Int + ): ServiceResult> /** * 首页顶部收藏房间列表 diff --git a/library/src/main/java/com/yizhuan/xchat_android_library/net/rxnet/interceptor/HttpLoggingInterceptor.java b/library/src/main/java/com/yizhuan/xchat_android_library/net/rxnet/interceptor/HttpLoggingInterceptor.java index 41afe60cd..ec997c6a2 100644 --- a/library/src/main/java/com/yizhuan/xchat_android_library/net/rxnet/interceptor/HttpLoggingInterceptor.java +++ b/library/src/main/java/com/yizhuan/xchat_android_library/net/rxnet/interceptor/HttpLoggingInterceptor.java @@ -145,7 +145,7 @@ public final class HttpLoggingInterceptor implements Interceptor { return level; } - @Override public synchronized Response intercept(Chain chain) throws IOException { + @Override public Response intercept(Chain chain) throws IOException { Level level = this.level; Request request = chain.request();