移除了旧版首页相关代码
This commit is contained in:
@@ -981,16 +981,6 @@
|
||||
<activity
|
||||
android:name=".avroom.activity.CpRoomInviteActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".avroom.game.MatchActivity"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".avroom.game.PlayGameActivity"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/AVRoomTheme"
|
||||
android:windowSoftInputMode="stateHidden" />
|
||||
<activity
|
||||
android:name=".module_hall.hall.activity.HallSearchActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -1012,12 +1002,7 @@
|
||||
android:name=".avroom.recommendcard.MyRecommendCardActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".home.activity.AllGameActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".home.activity.UserMatchActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
|
||||
<!-- 房间内私聊 -->
|
||||
<activity
|
||||
android:name="com.yizhuan.tutu.room_chat.activity.NimRoomP2PMessageActivity"
|
||||
android:theme="@style/room_message_activity" />
|
||||
@@ -1136,7 +1121,7 @@
|
||||
android:screenOrientation="portrait" />
|
||||
|
||||
<activity
|
||||
android:name=".home.fragment.CommunityNoticeAct"
|
||||
android:name=".home.activity.CommunityNoticeAct"
|
||||
android:exported="true"
|
||||
android:screenOrientation="portrait" />
|
||||
|
||||
|
@@ -206,7 +206,6 @@ public class MessageView extends FrameLayout {
|
||||
private Consumer<String> clickConsumer;
|
||||
@Setter
|
||||
private OnClick onClick;
|
||||
private Disposable subscribe;
|
||||
|
||||
public MessageView(Context context) {
|
||||
this(context, null);
|
||||
@@ -235,8 +234,7 @@ public class MessageView extends FrameLayout {
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
disposable.dispose();
|
||||
subscribe.dispose();
|
||||
if (disposable != null) disposable.dispose();
|
||||
super.onDetachedFromWindow();
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
package com.yizhuan.erban.home.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
@@ -150,31 +150,6 @@ public class HomeMoreRoomActivity extends BaseMvpActivity<IMainFragmentView, Mai
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void titleListSuccess(List<TagListInfo> tagListInfoList) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void titleListFail(String msg) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetFirstPageBannerFailed(String message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void roomWorldModeCloseSuccess() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void roomWorldModeCloseFail(String error) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetHomeBannerSuccess(List<BannerInfo> bannerInfos) {
|
||||
|
||||
@@ -221,11 +196,6 @@ public class HomeMoreRoomActivity extends BaseMvpActivity<IMainFragmentView, Mai
|
||||
ViewPagerHelper.bind(magicIndicator, viewPager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getRoomShortcut(String data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean needSteepStateBar() {
|
||||
return true;
|
||||
|
@@ -1,83 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
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.xchat_android_core.home.bean.TabInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p> 公共多个滑动tab样式 </p>
|
||||
*
|
||||
* @author Administrator
|
||||
* @date 2017/11/15
|
||||
*/
|
||||
public class CommonMagicIndicatorAdapter extends CommonNavigatorAdapter {
|
||||
|
||||
private Context mContext;
|
||||
private List<TabInfo> mTitleList;
|
||||
private int mBottomMargin;
|
||||
|
||||
public CommonMagicIndicatorAdapter(Context context, List<TabInfo> titleList, int bottomMargin) {
|
||||
mContext = context;
|
||||
mTitleList = titleList;
|
||||
mBottomMargin = bottomMargin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mTitleList == null ? 0 : mTitleList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerTitleView getTitleView(Context context, final int i) {
|
||||
ScaleTransitionPagerTitleView scaleTransitionPagerTitleView = new ScaleTransitionPagerTitleView(context);
|
||||
scaleTransitionPagerTitleView.setNormalColor(ContextCompat.getColor(mContext, R.color.color_666666));
|
||||
scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(mContext, R.color.color_000000));
|
||||
scaleTransitionPagerTitleView.setMinScale(1);
|
||||
scaleTransitionPagerTitleView.setTextSize(16);
|
||||
scaleTransitionPagerTitleView.setText(mTitleList.get(i).getName());
|
||||
scaleTransitionPagerTitleView.setOnClickListener(view -> {
|
||||
if (mOnItemSelectListener != null) {
|
||||
mOnItemSelectListener.onItemSelect(i);
|
||||
}
|
||||
});
|
||||
return scaleTransitionPagerTitleView;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IPagerIndicator getIndicator(Context context) {
|
||||
LinePagerIndicator indicator = new LinePagerIndicator(context);
|
||||
indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);
|
||||
indicator.setLineHeight(UIUtil.dip2px(mContext, 2.5));
|
||||
indicator.setRoundRadius(UIUtil.dip2px(mContext, 1.25));
|
||||
indicator.setLineWidth(UIUtil.dip2px(mContext, 27));
|
||||
indicator.setColors(context.getResources().getColor(R.color.appColor));
|
||||
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
lp.bottomMargin = mBottomMargin;
|
||||
indicator.setLayoutParams(lp);
|
||||
return indicator;
|
||||
}
|
||||
|
||||
private OnItemSelectListener mOnItemSelectListener;
|
||||
|
||||
public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
|
||||
mOnItemSelectListener = onItemSelectListener;
|
||||
}
|
||||
|
||||
public interface OnItemSelectListener {
|
||||
void onItemSelect(int position);
|
||||
}
|
||||
}
|
@@ -1,172 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.bumptech.glide.load.DataSource;
|
||||
import com.bumptech.glide.load.engine.GlideException;
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||
import com.bumptech.glide.request.RequestListener;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.LivingIconView;
|
||||
import com.yizhuan.erban.ui.widget.RoomItemView;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/4/16
|
||||
*/
|
||||
|
||||
public class ErbanRecommendAdapter extends BaseMultiItemQuickAdapter<HomeRoom, BaseViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private int mRound, mTagHeight, mBadgeHeight;
|
||||
|
||||
public ErbanRecommendAdapter(Context context, @Nullable List<HomeRoom> data) {
|
||||
super(data);
|
||||
addItemType(HomeRoom.TYPE_GIRD, R.layout.item_erban_recommend);
|
||||
addItemType(HomeRoom.TYPE_LINEAR, R.layout.item_room_recommended);
|
||||
addItemType(HomeRoom.TYPE_GIRD_EMPTY, R.layout.item_erban_grid_empty);
|
||||
this.mContext = context;
|
||||
mRound = Utils.dip2px(mContext, 9);
|
||||
mTagHeight = (int) context.getResources().getDimension(R.dimen.tag_height);
|
||||
mBadgeHeight = (int) context.getResources().getDimension(R.dimen.tag_height);
|
||||
}
|
||||
private void setLinearTypeData(BaseViewHolder helper, HomeRoom homeRoom) {
|
||||
RoomItemView roomItemView = helper.getView(R.id.riv_room_view);
|
||||
roomItemView.bindData(homeRoom);
|
||||
}
|
||||
|
||||
private void setGridEmptyData(BaseViewHolder helper, HomeRoom homeRoom) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, HomeRoom homeRoom) {
|
||||
if (homeRoom.getItemType() == HomeRoom.TYPE_LINEAR) {
|
||||
setLinearTypeData(helper, homeRoom);
|
||||
return;
|
||||
}
|
||||
if (homeRoom.getItemType() == HomeRoom.TYPE_GIRD_EMPTY) {
|
||||
setGridEmptyData(helper, homeRoom);
|
||||
return;
|
||||
}
|
||||
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AVRoomActivity.start(mContext, homeRoom.getUid());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
LivingIconView livingIconView = helper.getView(R.id.liv_living_icon);
|
||||
livingIconView.setColor(Color.WHITE);
|
||||
livingIconView.start();
|
||||
|
||||
helper.setText(R.id.tv_online_number, mContext.getString(R.string.online_number_text, homeRoom.getOnlineNum()))
|
||||
.setText(R.id.tv_title, homeRoom.getTitle());
|
||||
|
||||
helper.getView(R.id.lock_bg).setVisibility(!TextUtils.isEmpty(homeRoom.getRoomPwd()) ? View.VISIBLE : View.GONE);
|
||||
|
||||
ImageView mIvTabLabel = helper.getView(R.id.iv_tab_label);
|
||||
//
|
||||
// mIvEmperorRecommend.setVisibility(homeRoom.getIsRecom() > 0 ? View.VISIBLE : View.GONE);
|
||||
// GlideApp.with(mContext)
|
||||
// .load(mContext.getResources().getDrawable(R.drawable.ic_king_recommend))
|
||||
//// .load(homeRoom.getIsRecom() > 0 ? NobleUtil.getEmperorRecommendTag(7) : 0)
|
||||
// .fitCenter()
|
||||
// .into(mIvEmperorRecommend);
|
||||
|
||||
if (homeRoom.getIsRecom() > 0) {
|
||||
mIvTabLabel.setVisibility(View.VISIBLE);
|
||||
GlideApp.with(mContext)
|
||||
.load(mContext.getResources().getDrawable(R.drawable.ic_king_recommend))
|
||||
.fitCenter()
|
||||
.into(mIvTabLabel);
|
||||
} else if (!TextUtils.isEmpty(homeRoom.badge)) {
|
||||
mIvTabLabel.setVisibility(View.VISIBLE);
|
||||
GlideApp.with(mContext)
|
||||
.load(homeRoom.badge)
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object o, Target<Drawable> target, boolean b) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable drawable, Object o, Target<Drawable> target, DataSource dataSource, boolean b) {
|
||||
float ratio = (drawable.getIntrinsicHeight() + 0.F) / drawable.getIntrinsicWidth();
|
||||
int width = Math.round(mBadgeHeight / ratio);
|
||||
int height = mBadgeHeight;
|
||||
ViewGroup.LayoutParams params = mIvTabLabel.getLayoutParams();
|
||||
params.width = width;
|
||||
params.height = height;
|
||||
mIvTabLabel.setLayoutParams(params);
|
||||
mIvTabLabel.setImageDrawable(drawable);
|
||||
return true;
|
||||
}
|
||||
})
|
||||
.into(mIvTabLabel);
|
||||
|
||||
} else
|
||||
mIvTabLabel.setVisibility(View.INVISIBLE);
|
||||
|
||||
// mIvTabLabel.setVisibility(TextUtils.isEmpty(homeRoom.badge) ? View.INVISIBLE : View.VISIBLE);
|
||||
|
||||
// GlideApp.with(mContext)
|
||||
// .load(homeRoom.badge)
|
||||
// .listener(new RequestListener<Drawable>() {
|
||||
// @Override
|
||||
// public boolean onLoadFailed(@Nullable GlideException e, Object o, Target<Drawable> target, boolean b) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean onResourceReady(Drawable drawable, Object o, Target<Drawable> target, DataSource dataSource, boolean b) {
|
||||
// float ratio = (drawable.getIntrinsicHeight() + 0.F) / drawable.getIntrinsicWidth();
|
||||
// int width = Math.round(mBadgeHeight / ratio);
|
||||
// int height = mBadgeHeight;
|
||||
// ViewGroup.LayoutParams params = mIvTabLabel.getLayoutParams();
|
||||
// params.width = width;
|
||||
// params.height = height;
|
||||
// mIvTabLabel.setLayoutParams(params);
|
||||
// mIvTabLabel.setImageDrawable(drawable);
|
||||
// return true;
|
||||
// }
|
||||
// })
|
||||
// .into(mIvTabLabel);
|
||||
|
||||
|
||||
ImageView ivCover = helper.getView(R.id.iv_cover);
|
||||
if (!TextUtils.isEmpty(homeRoom.getAvatar())) {
|
||||
ImageLoadUtils.loadAvatarBig(homeRoom.getAvatar(), ivCover, R.drawable.default_cover);
|
||||
} else {
|
||||
GlideApp.with(mContext)
|
||||
.load(R.drawable.default_cover)
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.transforms(new CenterCrop(), new RoundedCorners(mRound))
|
||||
.into(ivCover);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,112 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.BetterMarqueeView;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TopMessage;
|
||||
import com.yizhuan.xchat_android_core.home.bean.VMTopMessage;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description 滚动轮播适配器
|
||||
* @Date 2018/5/3
|
||||
*/
|
||||
|
||||
public class ErbanTopMessageAdapter extends BetterMarqueeView.Adapter<ErbanTopMessageAdapter.ErBanTopMessageViewHolder> {
|
||||
private Context context;
|
||||
private List<VMTopMessage> vmTopMessageList;
|
||||
|
||||
public ErbanTopMessageAdapter(Context context,List<VMTopMessage> vmTopMessageList) {
|
||||
this.context = context;
|
||||
this.vmTopMessageList = vmTopMessageList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErbanTopMessageAdapter.ErBanTopMessageViewHolder onCreateView(ViewGroup parent) {
|
||||
return new ErBanTopMessageViewHolder(LayoutInflater.from(this.context).inflate(R.layout.item_erban_top_message,parent,false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(ErbanTopMessageAdapter.ErBanTopMessageViewHolder holder, int position) {
|
||||
VMTopMessage item = vmTopMessageList.get(position);
|
||||
|
||||
TextView[] textViews = new TextView[]{holder.tvMsg1,holder.tvMsg2};
|
||||
for (TextView textView : textViews) {
|
||||
textView.setText("");
|
||||
}
|
||||
ImageView[] imageViews = new ImageView[]{holder.ivMsg1,holder.ivMsg2};
|
||||
for (ImageView imageView : imageViews) {
|
||||
imageView.setVisibility(View.GONE);
|
||||
|
||||
}
|
||||
String imgUrl = null;
|
||||
for (int i = 0; i < item.getTopMessageList().size() ; i++) {
|
||||
if (i >= textViews.length) break;
|
||||
TopMessage topMessage = item.getTopMessageList().get(i);
|
||||
if (!TextUtils.isEmpty(topMessage.getImg()) && imgUrl == null){
|
||||
imgUrl = topMessage.getImg();
|
||||
}
|
||||
if (!TextUtils.isEmpty(topMessage.getTitle())){
|
||||
textViews[i].setText(topMessage.getTitle());
|
||||
if (topMessage.getTipType() == TopMessage.TIP_TYPE_ABOUT_ME){
|
||||
imageViews[i].setVisibility(View.VISIBLE);
|
||||
imageViews[i].setImageResource(R.drawable.erban_toutiao_tag_about_me);
|
||||
|
||||
}else if (topMessage.getTipType() == TopMessage.TIP_TYPE_NEW){
|
||||
imageViews[i].setVisibility(View.VISIBLE);
|
||||
imageViews[i].setImageResource(R.drawable.erban_toutiao_tag_new);
|
||||
|
||||
}else if (topMessage.getTipType() == TopMessage.TIP_TYPE_MONSTER){
|
||||
imageViews[i].setVisibility(View.VISIBLE);
|
||||
imageViews[i].setImageResource(R.drawable.erban_toutiao_tag_monster);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (null != imgUrl){
|
||||
holder.ivPic.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(context,imgUrl,holder.ivPic, R.drawable.default_cover);
|
||||
}else{
|
||||
holder.ivPic.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return vmTopMessageList.size();
|
||||
}
|
||||
|
||||
|
||||
class ErBanTopMessageViewHolder extends BetterMarqueeView.ViewHolder{
|
||||
private TextView tvMsg1;
|
||||
private TextView tvMsg2;
|
||||
private ImageView ivPic;
|
||||
private ImageView ivMsg1;
|
||||
private ImageView ivMsg2;
|
||||
|
||||
public ErBanTopMessageViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ivMsg1 = (ImageView) itemView.findViewById(R.id.iv_msg1);
|
||||
ivMsg2 = (ImageView) itemView.findViewById(R.id.iv_msg2);
|
||||
tvMsg1 = (TextView) itemView.findViewById(R.id.tv_msg1);
|
||||
tvMsg2 = (TextView) itemView.findViewById(R.id.tv_msg2);
|
||||
ivPic = (ImageView) itemView.findViewById(R.id.iv_pic);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@@ -1,135 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
|
||||
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.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.decoration.view.DecorationStoreActivity;
|
||||
import com.yizhuan.erban.ui.im.RouterHandler;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.RedPointView;
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.home.bean.FindEntranceInfo;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.RouterType;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jackI
|
||||
* @Description
|
||||
* @Date 2018/5/24
|
||||
*/
|
||||
|
||||
public class FindAdapter extends BaseQuickAdapter<FindEntranceInfo, BaseViewHolder> {
|
||||
|
||||
private Context context;
|
||||
private final int itemWidth;
|
||||
|
||||
public FindAdapter(Context context, @Nullable List<FindEntranceInfo> data) {
|
||||
super(R.layout.list_item_find_rv, data);
|
||||
this.context = context;
|
||||
|
||||
int screenWidth = context.getResources().getDisplayMetrics().widthPixels;
|
||||
itemWidth = (screenWidth - ScreenUtil.dip2px(20) * 2 - ScreenUtil.dip2px(12) * 3) / 4;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BaseViewHolder onCreateDefViewHolder(ViewGroup parent, int viewType) {
|
||||
BaseViewHolder baseViewHolder = super.onCreateDefViewHolder(parent, viewType);
|
||||
ViewGroup.LayoutParams layoutParams = baseViewHolder.itemView.getLayoutParams();
|
||||
layoutParams.width = itemWidth;
|
||||
baseViewHolder.itemView.setLayoutParams(layoutParams);
|
||||
return baseViewHolder;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, FindEntranceInfo item) {
|
||||
|
||||
ImageView rivPic = helper.getView(R.id.iv_pic);
|
||||
GlideApp.with(context)
|
||||
.load(item.getMinPic())
|
||||
.transforms(new CenterCrop())
|
||||
.dontAnimate()
|
||||
.into(rivPic);
|
||||
|
||||
helper.setText(R.id.tv_name, item.getName());
|
||||
RedPointView tvTaskNumber = helper.getView(R.id.tv_task_number);
|
||||
if (item.getActivityType() == FindEntranceInfo.ACTIVITYTYPE_TASK && item.getMissionNum() > 0) {
|
||||
String numText;
|
||||
if (item.getMissionNum() > 99) {
|
||||
numText = "99+";
|
||||
} else {
|
||||
numText = String.valueOf(item.getMissionNum());
|
||||
}
|
||||
tvTaskNumber.setNumber(String.valueOf(numText));
|
||||
tvTaskNumber.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
tvTaskNumber.setVisibility(View.GONE);
|
||||
}
|
||||
boolean isVisible = (item.getActivityType() == FindEntranceInfo.ACTIVITYTYPE_SIGN_IN
|
||||
&& !item.isSignStatus());
|
||||
helper.setGone(R.id.stv_has_sign_stutas, isVisible);
|
||||
|
||||
helper.itemView.setOnClickListener(v -> jumpByType(item));
|
||||
|
||||
}
|
||||
|
||||
private void jumpByType(FindEntranceInfo info) {
|
||||
int type = info.getType();
|
||||
String param = info.getParam();
|
||||
switch (type) {
|
||||
case FindEntranceInfo.TYPE_H5:
|
||||
//跳转H5界面
|
||||
CommonWebViewActivity.start(mContext, param);
|
||||
|
||||
break;
|
||||
case FindEntranceInfo.TYPE_ROOM:
|
||||
//跳转聊天室界面
|
||||
if (TextUtils.isEmpty(param)) return;
|
||||
try {
|
||||
AVRoomActivity.start(mContext, Long.valueOf(param));
|
||||
} catch (NumberFormatException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
break;
|
||||
case FindEntranceInfo.TYPE_GAME:
|
||||
//跳转H5 游戏
|
||||
CommonWebViewActivity.start(mContext, param);
|
||||
break;
|
||||
case FindEntranceInfo.TYPE_DECORATION:
|
||||
long uid = AuthModel.get().getCurrentUid();
|
||||
DecorationStoreActivity.start(mContext, uid);
|
||||
break;
|
||||
case FindEntranceInfo.TYPE_TO_ROUTERTYPE:
|
||||
//旧版保留读取type的方式,新版type=5
|
||||
//转到routerType处理
|
||||
if (info.getRouterType() == RouterType.SIGN_IN) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_FIND_SIGN_CLICK,
|
||||
"签到-发现页");
|
||||
}
|
||||
boolean result = RouterHandler.handle(mContext, info.getRouterType(),
|
||||
info.getRouterValue());
|
||||
if (!result) {
|
||||
SingleToastUtil.showToast(XChatConstants.UPDATE_VERSION_TIPS);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
SingleToastUtil.showToast(XChatConstants.UPDATE_VERSION_TIPS);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,54 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.user.UserInfoActivity;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/30
|
||||
*/
|
||||
public class FindNewerListAdapter extends BaseQuickAdapter<UserInfo, BaseViewHolder> {
|
||||
private Context context;
|
||||
|
||||
public FindNewerListAdapter(Context context, @Nullable List<UserInfo> data) {
|
||||
super(R.layout.item_home_find_newer_list, data);
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, UserInfo item) {
|
||||
helper.setText(R.id.tv_name, item.getNick());
|
||||
|
||||
ImageView ivAvatar = helper.getView(R.id.civ_avatar);
|
||||
GlideApp.with(context)
|
||||
.load(item.getAvatar())
|
||||
.dontAnimate()
|
||||
.into(ivAvatar);
|
||||
|
||||
if (item.getGender() == 1) {
|
||||
helper.setImageResource(R.id.iv_sex, R.drawable.ic_gender_male);
|
||||
} else {
|
||||
helper.setImageResource(R.id.iv_sex, R.drawable.ic_gender_female);
|
||||
}
|
||||
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
UserInfoActivity.Companion.start(context, item.getUid());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
@@ -1,57 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
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.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RankingFamilyInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jackI
|
||||
* @Description
|
||||
* @Date 2018/5/24
|
||||
*/
|
||||
|
||||
public class FindStarFamilyAdapter extends BaseQuickAdapter<RankingFamilyInfo, BaseViewHolder> {
|
||||
|
||||
private Context context;
|
||||
|
||||
public FindStarFamilyAdapter(Context context, @Nullable List<RankingFamilyInfo> data) {
|
||||
super(R.layout.list_item_find_star_family_list_vertical, data);
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, RankingFamilyInfo item) {
|
||||
if (item == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
ImageView rivPic = helper.getView(R.id.riv_pic);
|
||||
ImageLoadUtils.loadRectImage(context, item.getIcon(), rivPic, R.drawable.default_avatar, ScreenUtil.dip2px(5));
|
||||
TextView tvName = helper.getView(R.id.tv_name);
|
||||
tvName.setText(item.getName());
|
||||
|
||||
TextView familyId = helper.getView(R.id.tv_family_id);
|
||||
TextView familyMemberCount = helper.getView(R.id.tv_family_member_count);
|
||||
if (familyId != null) {
|
||||
// ID
|
||||
familyId.setText(TextUtils.isEmpty(item.getId()) ? "" : "ID:" + item.getId());
|
||||
}
|
||||
if (familyMemberCount != null) {
|
||||
// 成员数量
|
||||
familyMemberCount.setText(item.getMemberCount() == 0 ? "" : "成员:" + item.getMemberCount());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,64 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.TextView;
|
||||
|
||||
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.ImageLoadUtils;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeHallMsgInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class HallChatAdapter extends BaseQuickAdapter<HomeHallMsgInfo, BaseViewHolder> {
|
||||
|
||||
public HallChatAdapter(@Nullable List<HomeHallMsgInfo> data) {
|
||||
super(R.layout.item_home_hall_chat, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, HomeHallMsgInfo item) {
|
||||
|
||||
CircleImageView civAvatar = (CircleImageView) helper.getView(R.id.civ_avatar);
|
||||
if (!TextUtils.isEmpty(item.getSenderAvatar())) {
|
||||
ImageLoadUtils.loadAvatar(mContext, item.getSenderAvatar(), civAvatar);
|
||||
} else {
|
||||
civAvatar.setImageResource(R.drawable.default_avatar);
|
||||
}
|
||||
|
||||
TextView textView = helper.getView(R.id.tv_content);
|
||||
if (TextUtils.isEmpty(item.getContent())) {
|
||||
textView.setText(textView.getResources().getText(R.string.not_support_message_tip));
|
||||
} else {
|
||||
if (item.getMessageType() == HomeHallMsgInfo.MESSAGE_TYPE_TEXT) {
|
||||
textView.setText(item.getContent());
|
||||
// MoonUtil.identifyFaceExpressionSmall(mContext, textView, item.getContent().toString(), ImageSpan.ALIGN_BOTTOM);
|
||||
} else if (item.getMessageType() == HomeHallMsgInfo.MESSAGE_TYPE_GIFT) {
|
||||
SpannableStringBuilder ssb = new SpannableStringBuilder("赠送 ");
|
||||
String targetNick = item.getTargetNick();
|
||||
if (targetNick == null) {
|
||||
targetNick = "";
|
||||
}
|
||||
ssb.append(targetNick);
|
||||
int start = ssb.length();
|
||||
ssb.append("[");
|
||||
if (!TextUtils.isEmpty(item.getGiftName())) {
|
||||
ssb.append(item.getGiftName());
|
||||
} else {
|
||||
ssb.append("礼物");
|
||||
}
|
||||
ssb.append("]");
|
||||
start = ssb.length();
|
||||
ssb.append("x").append(String.valueOf(item.getGiftCount()));
|
||||
// ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(mContext.getResources().getColor(R.color.color_FF3D56));
|
||||
// ssb.setSpan(foregroundColorSpan, start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
textView.setText(ssb);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,993 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.AnimationDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.LinearInterpolator;
|
||||
import android.view.animation.RotateAnimation;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.bumptech.glide.load.DataSource;
|
||||
import com.bumptech.glide.load.engine.GlideException;
|
||||
import com.bumptech.glide.request.RequestListener;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.Util;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.netease.nim.uikit.support.glide.GlideRequest;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.yizhuan.erban.BR;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.avroom.widget.MessageView;
|
||||
import com.yizhuan.erban.bindadapter.BaseAdapter;
|
||||
import com.yizhuan.erban.bindadapter.BindingViewHolder;
|
||||
import com.yizhuan.erban.databinding.ItemHomeTwoNBinding;
|
||||
import com.yizhuan.erban.home.view.HomeConfigModule;
|
||||
import com.yizhuan.erban.public_chat_hall.activity.PublicChatHallHomeActivity;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.LivingIconView;
|
||||
import com.yizhuan.erban.ui.widget.RoomItemView;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.BetterMarqueeView;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.GridSpacingItemDecoration;
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeItem;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
import com.yizhuan.xchat_android_core.home.bean.KTVRoomInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.MakeFriendsInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.RecommendInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.VMTopMessageInfo;
|
||||
import com.yizhuan.xchat_android_core.level.UserLevelVo;
|
||||
import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleUtil;
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_core.user.bean.RecommendationUserInfo;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p> 首页热门adapter </p>
|
||||
*
|
||||
* @author Administrator
|
||||
* @date 2017/11/16
|
||||
*/
|
||||
public class HomeFragmentAdapter extends BaseMultiItemQuickAdapter<HomeItem, BaseViewHolder> {
|
||||
|
||||
private int mBadgeHeight;
|
||||
private Context mContext;
|
||||
/**
|
||||
* 校验跳转房间的频率
|
||||
*/
|
||||
private long mLastOpen;
|
||||
private String mTabName;
|
||||
|
||||
public HomeFragmentAdapter(Context context, List<HomeItem> data) {
|
||||
super(data);
|
||||
this.mContext = context;
|
||||
addItemType(HomeItem.TYPE_DIV_1, R.layout.list_item_div_1);
|
||||
addItemType(HomeItem.TYPE_DIV_2, R.layout.list_item_div_2);
|
||||
|
||||
addItemType(HomeItem.TYPE_BANNER, R.layout.layout_rollpage_view);
|
||||
addItemType(HomeItem.TYPE_TOP_MESSAGE, R.layout.list_item_home_erban_top_message);
|
||||
addItemType(HomeItem.TYPE_RECOMMEND, R.layout.list_item_erban_recommend);
|
||||
addItemType(HomeItem.TYPE_CONFIG, R.layout.list_item_three_plus_n);
|
||||
addItemType(HomeItem.TYPE_TWO_LINES, R.layout.item_game_home_two_lines);
|
||||
addItemType(HomeItem.TYPE_KTV, R.layout.list_item_home_ktv);
|
||||
addItemType(HomeItem.TYPE_MAKE_FRIENDS, R.layout.list_item_home_make_friends);
|
||||
|
||||
//3.1.2之后删除怪兽
|
||||
//addItemType(HomeItem.TYPE_MONSTER, R.layout.list_item_home_monster);
|
||||
//3.1.2之后加入
|
||||
addItemType(HomeItem.TYPE_SQUARE_PIC, R.layout.item_erban_recommend);
|
||||
addItemType(HomeItem.TYPE_LINEAR_LITTLE_PIC, R.layout.item_room_recommended);
|
||||
addItemType(HomeItem.TYPE_SQUARE_EMPTY, R.layout.item_erban_grid_empty);
|
||||
addItemType(HomeItem.TYPE_BLOCK_TITLE, R.layout.home_module_block_title);
|
||||
|
||||
//end3.1.2
|
||||
|
||||
//添加两列单个显示
|
||||
addItemType(HomeItem.TYPE_BLOCK_SINGLE, R.layout.item_home_two_single_show);
|
||||
//不带背景的banner
|
||||
addItemType(HomeItem.TYPE_BANNER_NO_TOP_BG, R.layout.item_banner);
|
||||
//新版首页用户信息
|
||||
addItemType(HomeItem.TYPE_USER_LINEAR, R.layout.item_user);
|
||||
//两个的虚位以待
|
||||
addItemType(HomeItem.TYPE_DOUBLE_SQUARE_EMPTY, R.layout.item_erban_grid_2_empty);
|
||||
|
||||
mBadgeHeight = (int) context.getResources().getDimension(R.dimen.tag_height);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull BaseViewHolder holder, int position, @NonNull List<Object> payloads) {
|
||||
super.onBindViewHolder(holder, position, payloads);
|
||||
int viewType = holder.getItemViewType();
|
||||
if (position - getHeaderLayoutCount() < 0) {
|
||||
return;
|
||||
}
|
||||
switch (viewType) {
|
||||
case 0:
|
||||
convert(holder, getItem(position - getHeaderLayoutCount()), payloads);
|
||||
break;
|
||||
|
||||
default:
|
||||
convert(holder, getItem(position - getHeaderLayoutCount()), payloads);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder holder, HomeItem homeItem) {
|
||||
}
|
||||
|
||||
protected void convert(BaseViewHolder holder, HomeItem homeItem, @NonNull List<Object> payloads) {
|
||||
if (homeItem == null) {
|
||||
return;
|
||||
}
|
||||
switch (homeItem.getItemType()) {
|
||||
case HomeItem.TYPE_BANNER:
|
||||
setBannerData(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_RECOMMEND:
|
||||
setErbanRecommend(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_CONFIG:
|
||||
setConfigRecommend(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_TWO_LINES:
|
||||
setTwoLinesData(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_TOP_MESSAGE:
|
||||
setErbanTopMessageData(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_KTV:
|
||||
setKTVRoom(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_MAKE_FRIENDS:
|
||||
setMakeFriend(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_SQUARE_PIC:
|
||||
setSquarePicData(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_SQUARE_EMPTY:
|
||||
setSquareEmpty(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_LINEAR_LITTLE_PIC:
|
||||
setLinearLittlePicData(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_BLOCK_TITLE:
|
||||
setBlockTitle(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_BLOCK_SINGLE:
|
||||
setTwoSingle(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_BANNER_NO_TOP_BG:
|
||||
setNoBgBannerData(holder, homeItem);
|
||||
break;
|
||||
case HomeItem.TYPE_USER_LINEAR:
|
||||
setUserData(holder, homeItem);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void setUserData(BaseViewHolder holder, HomeItem homeItem) {
|
||||
Object obj = homeItem.getData();
|
||||
if (!(obj instanceof RecommendationUserInfo)) {
|
||||
return;
|
||||
}
|
||||
RecommendationUserInfo item = (RecommendationUserInfo) obj;
|
||||
|
||||
View inOfficialMask = holder.getView(R.id.in_official_mask);
|
||||
UserInfo.NamePlate namePlate = item.getNameplate();
|
||||
if (namePlate != null) {
|
||||
inOfficialMask.setVisibility(View.VISIBLE);
|
||||
TextView tvOfficialMask = inOfficialMask.findViewById(R.id.tv_official_mask);
|
||||
if (tvOfficialMask != null) {
|
||||
tvOfficialMask.setText(namePlate.getFixedWord());
|
||||
}
|
||||
|
||||
ImageView ivOfficialMask = inOfficialMask.findViewById(R.id.iv_official_mask);
|
||||
NobleUtil.loadResource(namePlate.getIconPic(), ivOfficialMask);
|
||||
|
||||
} else {
|
||||
inOfficialMask.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
//common begin
|
||||
holder.setGone(R.id.iv_noble_level, false);
|
||||
holder.setGone(R.id.iv_user_level, false);
|
||||
holder.setGone(R.id.iv_charm_level, false);
|
||||
|
||||
//setTag
|
||||
ImageView ivTag = holder.getView(R.id.iv_tag);
|
||||
|
||||
//distance
|
||||
holder.setGone(R.id.tv_distance, !TextUtils.isEmpty(item.getDistanceStr()))
|
||||
.setText(R.id.tv_distance, item.getDistanceStr());
|
||||
|
||||
//common end
|
||||
holder.setGone(R.id.iv_gender, false).setGone(R.id.tv_age, false);
|
||||
|
||||
CharSequence title;
|
||||
String avatar;
|
||||
HomeRoom roomInfo = item.getRoomVo();
|
||||
String tag;
|
||||
String badge = null;
|
||||
CharSequence description;
|
||||
|
||||
holder.addOnClickListener(R.id.fl_avatar);
|
||||
holder.addOnClickListener(R.id.ll_sub_content);
|
||||
holder.addOnClickListener(R.id.rl_opt);
|
||||
|
||||
TextView tvNum = holder.getView(R.id.tv_num);
|
||||
Integer num = getRoomOnlineNum(roomInfo, item.getOnlineNum());
|
||||
|
||||
if (item.getStatus() != RecommendationUserInfo.STATUS_RECOMMEND_ROOM) {
|
||||
UserLevelVo userLevelVo = item.getUserLevelVo();
|
||||
AppCompatImageView ivUserLevel = holder.getView(R.id.iv_user_level);
|
||||
AppCompatImageView ivCharmLevel = holder.getView(R.id.iv_charm_level);
|
||||
// 是否展示等级图标
|
||||
showLevel(userLevelVo, ivUserLevel, ivCharmLevel);
|
||||
|
||||
if (item.getGender() == 1) {
|
||||
if (item.getAge() > 0) {
|
||||
holder.setBackgroundRes(R.id.tv_age, R.drawable.ic_home_male_age)
|
||||
.setText(R.id.tv_age, item.getAge() + "")
|
||||
.setGone(R.id.tv_age, true)
|
||||
.setGone(R.id.iv_gender, false);
|
||||
|
||||
} else {
|
||||
holder.setImageResource(R.id.iv_gender, R.drawable.ic_gender_male)
|
||||
.setGone(R.id.tv_age, false)
|
||||
.setGone(R.id.iv_gender, true);
|
||||
}
|
||||
} else {
|
||||
|
||||
if (item.getAge() > 0) {
|
||||
holder.setBackgroundRes(R.id.tv_age, R.drawable.ic_home_female_age)
|
||||
.setText(R.id.tv_age, item.getAge() + "")
|
||||
.setGone(R.id.tv_age, true)
|
||||
.setGone(R.id.iv_gender, false);
|
||||
|
||||
} else {
|
||||
holder.setImageResource(R.id.iv_gender, R.drawable.ic_gender_female)
|
||||
.setGone(R.id.iv_gender, true)
|
||||
.setGone(R.id.tv_age, false);
|
||||
}
|
||||
}
|
||||
|
||||
AppCompatImageView ivNobleLevel = holder.getView(R.id.iv_noble_level);
|
||||
if (item.getNobleUsers() != null) {
|
||||
ivNobleLevel.setVisibility(View.VISIBLE);
|
||||
String badgeByLevel = NobleUtil.getBadgeByLevel(item.getNobleUsers().getLevel());
|
||||
if (!TextUtils.isEmpty(badgeByLevel)) {
|
||||
NobleUtil.loadResource(badgeByLevel, ivNobleLevel);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//判断类型
|
||||
switch (item.getStatus()) {
|
||||
//普通
|
||||
case RecommendationUserInfo.STATUS_NORMAL:
|
||||
title = item.getNick();
|
||||
avatar = item.getAvatar();
|
||||
description = item.getDescription();
|
||||
tag = item.getSkillTag();
|
||||
|
||||
if (isCpRoom(roomInfo)) {
|
||||
tvNum.setVisibility(View.VISIBLE);
|
||||
tvNum.setText("一起玩");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_play_together, 0, 0, 0);
|
||||
}
|
||||
else {
|
||||
tvNum.setText("撩一下");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_accost, 0, 0, 0);
|
||||
}
|
||||
break;
|
||||
//KTV
|
||||
case RecommendationUserInfo.STATUS_KTV:
|
||||
|
||||
title = getRoomTitle(roomInfo, item.getNick());
|
||||
tag = getRoomTag(roomInfo, null);
|
||||
badge = getRoomBadge(roomInfo, null);
|
||||
avatar = getRoomAvatar(roomInfo, item.getAvatar());
|
||||
description = getRoomDescription(roomInfo, item.getDescription());
|
||||
if (isCpRoom(roomInfo)) {
|
||||
tvNum.setVisibility(View.VISIBLE);
|
||||
tvNum.setText("一起玩");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_play_together, 0, 0, 0);
|
||||
} else {
|
||||
tvNum.setText("去找TA");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_find_ta, 0, 0, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case RecommendationUserInfo.STATUS_GAME:
|
||||
|
||||
title = getRoomTitle(roomInfo, item.getNick());
|
||||
tag = getRoomTag(roomInfo, null);
|
||||
badge = getRoomBadge(roomInfo, null);
|
||||
avatar = getRoomAvatar(roomInfo, item.getAvatar());
|
||||
description = getRoomDescription(roomInfo, item.getDescription());
|
||||
tvNum.setText("一起玩");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_play_together, 0, 0, 0);
|
||||
break;
|
||||
|
||||
case RecommendationUserInfo.STATUS_ROOM:
|
||||
|
||||
title = getRoomTitle(roomInfo, item.getNick());
|
||||
avatar = getRoomAvatar(roomInfo, item.getAvatar());
|
||||
description = getRoomDescription(roomInfo, item.getDescription());
|
||||
tag = getRoomTag(roomInfo, null);
|
||||
badge = getRoomBadge(roomInfo, null);
|
||||
if (isCpRoom(roomInfo)) {
|
||||
tvNum.setVisibility(View.VISIBLE);
|
||||
tvNum.setText("一起玩");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_play_together, 0, 0, 0);
|
||||
}
|
||||
else {
|
||||
tvNum.setText("去找TA");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_find_ta, 0, 0, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case RecommendationUserInfo.STATUS_RECOMMEND_ROOM:
|
||||
title = getRoomTitle(roomInfo, item.getNick());
|
||||
avatar = getRoomAvatar(roomInfo, item.getAvatar());
|
||||
description = getRoomDescription(roomInfo, item.getDescription());
|
||||
tag = getRoomTag(roomInfo, null);
|
||||
badge = getRoomBadge(roomInfo, null);
|
||||
if (isCpRoom(roomInfo)) {
|
||||
tvNum.setVisibility(View.VISIBLE);
|
||||
tvNum.setText("一起玩");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_play_together, 0, 0, 0);
|
||||
} else if (num != null && num > 0) {
|
||||
tvNum.setVisibility(View.VISIBLE);
|
||||
tvNum.setText(num + "人在看");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_find_ta, 0, 0, 0);
|
||||
|
||||
} else {
|
||||
tvNum.setText("去找TA");
|
||||
tvNum.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_home_find_ta, 0, 0, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
holder.setText(R.id.tv_title, title);
|
||||
//显示标签
|
||||
if (StringUtils.isEmpty(tag)) {
|
||||
holder.setGone(R.id.iv_tag, false);
|
||||
} else {
|
||||
holder.setGone(R.id.iv_tag, true);
|
||||
ImageLoadUtils.loadImage(mContext, tag, ivTag);
|
||||
}
|
||||
ImageView ivAvatarBadge = holder.getView(R.id.iv_avatar_badge);
|
||||
//显示头像角标
|
||||
if (StringUtils.isEmpty(badge)) {
|
||||
ivAvatarBadge.setVisibility(View.GONE);
|
||||
} else {
|
||||
ivAvatarBadge.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(ivAvatarBadge.getContext(), badge, ivAvatarBadge);
|
||||
}
|
||||
ImageView avatarView = holder.getView(R.id.noble_avatar_view);
|
||||
if (StringUtils.isEmpty(avatar)) {
|
||||
avatarView.setVisibility(View.GONE);
|
||||
} else {
|
||||
avatarView.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadAvatar(avatar, avatarView);
|
||||
}
|
||||
|
||||
holder.setGone(R.id.tv_desc, !StringUtils.isBlank(description));
|
||||
//描述
|
||||
holder.setText(R.id.tv_desc, description);
|
||||
|
||||
}
|
||||
|
||||
private boolean isCpRoom(HomeRoom roomInfo) {
|
||||
if (roomInfo == null) {
|
||||
return false;
|
||||
}
|
||||
return roomInfo.getType() == RoomInfo.ROOMTYPE_CP;
|
||||
}
|
||||
|
||||
private void showLevel(UserLevelVo userLevelVo, AppCompatImageView ivUserLevel, AppCompatImageView ivCharmLevel) {
|
||||
if (userLevelVo != null) {
|
||||
if (!TextUtils.isEmpty(userLevelVo.getExperUrl())) {
|
||||
ivUserLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage1(ivUserLevel.getContext(), userLevelVo.getExperUrl(), ivUserLevel);
|
||||
}
|
||||
|
||||
if (!TextUtils.isEmpty(userLevelVo.getCharmUrl())) {
|
||||
ivCharmLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage1(ivCharmLevel.getContext(), userLevelVo.getCharmUrl(), ivCharmLevel);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void setNoBgBannerData(BaseViewHolder holder, HomeItem homeItem) {
|
||||
ArrayList<BannerInfo> bannerList = (ArrayList<BannerInfo>) homeItem.getData();
|
||||
|
||||
if (!ListUtils.isListEmpty(bannerList)) {
|
||||
|
||||
//审核中状态,去掉跳转房间banner
|
||||
if (MarketVerifyModel.get().isMarketChecking()) {
|
||||
Iterator<BannerInfo> iterator = bannerList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
BannerInfo bannerInfo = iterator.next();
|
||||
if (bannerInfo.getSkipType() == 2) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RollPagerView rollPagerView = holder.getView(R.id.roll_view);
|
||||
ViewGroup.LayoutParams layoutParams = rollPagerView.getLayoutParams();
|
||||
int bannerWidth = UIUtil.getScreenWidth(mContext) - UIUtil.dip2px(mContext, 40);
|
||||
layoutParams.width = bannerWidth;
|
||||
layoutParams.height = bannerWidth * 80 / 345;
|
||||
rollPagerView.setLayoutParams(layoutParams);
|
||||
|
||||
rollPagerView.setHintView(new ColorPointHintView(mContext, Color.WHITE, mContext.getResources().getColor(R.color.color_66FFFFFF)) {
|
||||
@Override
|
||||
public Drawable makeFocusDrawable() {
|
||||
GradientDrawable dotFocus = new GradientDrawable();
|
||||
dotFocus.setColor(Color.WHITE);
|
||||
dotFocus.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotFocus.setSize(Util.dip2px(getContext(), 9), Util.dip2px(getContext(), 4));
|
||||
return dotFocus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable makeNormalDrawable() {
|
||||
GradientDrawable dotNormal = new GradientDrawable();
|
||||
dotNormal.setColor(mContext.getResources().getColor(R.color.color_66FFFFFF));
|
||||
dotNormal.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotNormal.setSize(Util.dip2px(getContext(), 4), Util.dip2px(getContext(), 4));
|
||||
return dotNormal;
|
||||
}
|
||||
});
|
||||
|
||||
BannerAdapter bannerAdapter = new BannerAdapter(bannerList, mContext);
|
||||
bannerAdapter.setRoundingRadius(ScreenUtil.dip2px(12));
|
||||
rollPagerView.setAdapter(bannerAdapter);
|
||||
rollPagerView.setPlayDelay(3000);
|
||||
//设置透明度
|
||||
rollPagerView.setAnimationDurtion(500);
|
||||
rollPagerView.setVisibility(View.VISIBLE);
|
||||
bannerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
//审核中状态隐藏
|
||||
LinearLayout llPanelContainer = holder.getView(R.id.ll_panel_container);
|
||||
if (MarketVerifyModel.get().isMarketChecking()) {
|
||||
llPanelContainer.setVisibility(View.GONE);
|
||||
return;
|
||||
} else {
|
||||
llPanelContainer.setVisibility(View.VISIBLE);
|
||||
}
|
||||
llPanelContainer.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 房间单个item
|
||||
*/
|
||||
private void setTwoSingle(BaseViewHolder helper, HomeItem homeItem) {
|
||||
HomeRoom item = (HomeRoom) homeItem.getData();
|
||||
if (item == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
SVGAImageView ivTabLabel = helper.getView(R.id.iv_tab_label);
|
||||
ImageView livLivingIcon = helper.getView(R.id.liv_living_icon);
|
||||
TextView tvOnlineNumber = helper.getView(R.id.tv_online_number);
|
||||
View lockBg = helper.getView(R.id.lock_bg);
|
||||
ImageView ivCover = helper.getView(R.id.iv_cover);
|
||||
TextView tvTitle = helper.getView(R.id.tv_title);
|
||||
String badge = item.getBadge();
|
||||
if (StringUtils.isEmpty(badge)) {
|
||||
ivTabLabel.setVisibility(View.GONE);
|
||||
} else {
|
||||
ivTabLabel.setVisibility(View.VISIBLE);
|
||||
|
||||
SVGAParser svgaParser = (SVGAParser) ivTabLabel.getTag();
|
||||
if (svgaParser == null) {
|
||||
svgaParser = new SVGAParser(mContext);
|
||||
ivTabLabel.setTag(svgaParser);
|
||||
}
|
||||
try {
|
||||
svgaParser.decodeFromURL(new URL(badge), new SVGAParser.ParseCompletion() {
|
||||
@Override
|
||||
public void onComplete(@Nullable SVGAVideoEntity svgaVideoEntity) {
|
||||
SVGADrawable drawable = new SVGADrawable(svgaVideoEntity);
|
||||
ivTabLabel.setImageDrawable(drawable);
|
||||
ivTabLabel.startAnimation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError() {
|
||||
ImageLoadUtils.loadImage(mContext, badge, ivTabLabel);
|
||||
}
|
||||
},null);
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
Drawable drawable = livLivingIcon.getDrawable();
|
||||
if (drawable instanceof AnimationDrawable) {
|
||||
((AnimationDrawable) drawable).start();
|
||||
}
|
||||
|
||||
//tvOnlineNumber
|
||||
tvOnlineNumber.setText(String.valueOf(item.getOnlineNum()));
|
||||
|
||||
//lockBg
|
||||
lockBg.setVisibility(StringUtils.isEmpty(item.getRoomPwd()) ? View.GONE : View.VISIBLE);
|
||||
//ivCover
|
||||
String avatar = item.getAvatar();
|
||||
if (StringUtils.isEmpty(avatar)) {
|
||||
ivCover.setVisibility(View.GONE);
|
||||
} else {
|
||||
ivCover.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, avatar, ivCover);
|
||||
}
|
||||
|
||||
//tvTitle
|
||||
MessageView.SpannableBuilder text = new MessageView.SpannableBuilder(tvTitle)
|
||||
.appendImg(item.tagPict)
|
||||
.append(item.title);
|
||||
tvTitle.setText(text.build());
|
||||
|
||||
helper.itemView.setOnClickListener(v -> AVRoomActivity.start(mContext, item.getUid()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 交友
|
||||
*/
|
||||
private void setMakeFriend(BaseViewHolder holder, HomeItem homeItem) {
|
||||
MakeFriendsInfo makeFriendsInfo = (MakeFriendsInfo) homeItem.getData();
|
||||
if (makeFriendsInfo == null) return;
|
||||
holder.setText(R.id.tv_title, makeFriendsInfo.getTitle());
|
||||
holder.setText(R.id.tv_sub_title, makeFriendsInfo.getSubTitle());
|
||||
holder.getView(R.id.tv_refresh).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (actionListener != null) {
|
||||
actionListener.onRefreshMakeFriendList();
|
||||
makeFriendsInfo.setVmIsLoading(true);
|
||||
notifyItemChanged(holder.getAdapterPosition());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
TextView tvRefresh = holder.getView(R.id.tv_refresh);
|
||||
ImageView ivRefreshArrow = holder.getView(R.id.iv_refresh_arrow);
|
||||
if (makeFriendsInfo.isVmIsLoading()) {
|
||||
tvRefresh.setText("我刷刷刷...");
|
||||
RotateAnimation rotateAnimation = new RotateAnimation(0, 359,
|
||||
Animation.RELATIVE_TO_SELF, 0.5f,
|
||||
Animation.RELATIVE_TO_SELF, 0.5f);
|
||||
rotateAnimation.setRepeatCount(-1);
|
||||
rotateAnimation.setDuration(300);
|
||||
LinearInterpolator lin = new LinearInterpolator();
|
||||
rotateAnimation.setInterpolator(lin);
|
||||
ivRefreshArrow.startAnimation(rotateAnimation);
|
||||
} else {
|
||||
tvRefresh.setText("换一换");
|
||||
ivRefreshArrow.clearAnimation();
|
||||
}
|
||||
|
||||
List<HomeRoom> roomList = makeFriendsInfo.getRoomList();
|
||||
RecyclerView recyclerView = holder.getView(R.id.rv_list);
|
||||
recyclerView.setItemAnimator(null);
|
||||
recyclerView.setFocusable(false);
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(mContext, 3));
|
||||
if (recyclerView.getItemDecorationCount() == 0) {
|
||||
recyclerView.addItemDecoration(new GridSpacingItemDecoration(holder.itemView.getContext(), 3, 10));
|
||||
}
|
||||
MakeFriendAdapter makeFriendAdapter = new MakeFriendAdapter(mContext, roomList);
|
||||
recyclerView.setAdapter(makeFriendAdapter);
|
||||
}
|
||||
|
||||
/**
|
||||
* KTV 房间列表
|
||||
*/
|
||||
private void setKTVRoom(BaseViewHolder holder, HomeItem homeItem) {
|
||||
KTVRoomInfo ktvRoomInfo = (KTVRoomInfo) homeItem.getData();
|
||||
holder.setText(R.id.tv_title, ktvRoomInfo.getTitle());
|
||||
holder.setText(R.id.tv_sub_title, ktvRoomInfo.getSubTitle());
|
||||
holder.getView(R.id.tv_more).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (actionListener != null) {
|
||||
actionListener.onMoreKTVRoom();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
ViewPager viewPager = holder.getView(R.id.vp_rooms);
|
||||
viewPager.setAdapter(new HomeItemVPAdapter(mContext, ktvRoomInfo.getRoomList()));
|
||||
|
||||
|
||||
MagicIndicator magicIndicator = holder.getView(R.id.mi_indicator);
|
||||
CommonNavigator commonNavigator = new CommonNavigator(mContext);
|
||||
KTVMagicIndicatorAdapter ktvMagicIndicatorAdapter = new KTVMagicIndicatorAdapter(mContext, ktvRoomInfo.getRoomList().size());
|
||||
commonNavigator.setAdapter(ktvMagicIndicatorAdapter);
|
||||
magicIndicator.setNavigator(commonNavigator);
|
||||
|
||||
ViewPagerHelper.bind(magicIndicator, viewPager);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置音游头条数据
|
||||
*/
|
||||
private void setErbanTopMessageData(BaseViewHolder holder, HomeItem homeItem) {
|
||||
VMTopMessageInfo topMessageInfo = (VMTopMessageInfo) homeItem.getData();
|
||||
BetterMarqueeView betterMarqueeView = holder.getView(R.id.bmv_marquee_view);
|
||||
ErbanTopMessageAdapter adapter = new ErbanTopMessageAdapter(mContext, topMessageInfo.getVmTopMessageList());
|
||||
betterMarqueeView.setAdapter(adapter);
|
||||
betterMarqueeView.start();
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
PublicChatHallHomeActivity.openHeadlinePage(mContext);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置顶部数据
|
||||
*/
|
||||
private void setBannerData(BaseViewHolder holder, HomeItem homeItem) {
|
||||
@SuppressWarnings("unchecked")
|
||||
ArrayList<BannerInfo> bannerList = (ArrayList<BannerInfo>) homeItem.getData();
|
||||
|
||||
if (!ListUtils.isListEmpty(bannerList)) {
|
||||
//审核中状态,去掉跳转房间banner
|
||||
if (MarketVerifyModel.get().isMarketChecking()) {
|
||||
Iterator<BannerInfo> iterator = bannerList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
BannerInfo bannerInfo = iterator.next();
|
||||
if (bannerInfo.getSkipType() == 2) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RollPagerView rollPagerView = holder.getView(R.id.roll_view);
|
||||
ViewGroup.LayoutParams layoutParams = rollPagerView.getLayoutParams();
|
||||
int bannerWidth = UIUtil.getScreenWidth(mContext) - UIUtil.dip2px(mContext, 30);
|
||||
layoutParams.width = bannerWidth;
|
||||
layoutParams.height = bannerWidth * 120 / 345;
|
||||
rollPagerView.setLayoutParams(layoutParams);
|
||||
|
||||
rollPagerView.setHintView(new ColorPointHintView(mContext, Color.WHITE, mContext.getResources().getColor(R.color.color_66FFFFFF)) {
|
||||
@Override
|
||||
public Drawable makeFocusDrawable() {
|
||||
GradientDrawable dotFocus = new GradientDrawable();
|
||||
dotFocus.setColor(Color.WHITE);
|
||||
dotFocus.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotFocus.setSize(Util.dip2px(getContext(), 9), Util.dip2px(getContext(), 4));
|
||||
return dotFocus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable makeNormalDrawable() {
|
||||
GradientDrawable dotNormal = new GradientDrawable();
|
||||
dotNormal.setColor(mContext.getResources().getColor(R.color.color_66FFFFFF));
|
||||
dotNormal.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotNormal.setSize(Util.dip2px(getContext(), 4), Util.dip2px(getContext(), 4));
|
||||
return dotNormal;
|
||||
}
|
||||
});
|
||||
|
||||
BannerAdapter bannerAdapter = new BannerAdapter(bannerList, mContext);
|
||||
rollPagerView.setAdapter(bannerAdapter);
|
||||
rollPagerView.setPlayDelay(3000);
|
||||
//设置透明度
|
||||
rollPagerView.setAnimationDurtion(500);
|
||||
rollPagerView.setVisibility(View.VISIBLE);
|
||||
bannerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
//审核中状态隐藏
|
||||
LinearLayout llPanelContainer = (LinearLayout) holder.getView(R.id.ll_panel_container);
|
||||
if (MarketVerifyModel.get().isMarketChecking()) {
|
||||
llPanelContainer.setVisibility(View.GONE);
|
||||
return;
|
||||
} else {
|
||||
llPanelContainer.setVisibility(View.VISIBLE);
|
||||
}
|
||||
llPanelContainer.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置音游推荐item
|
||||
*/
|
||||
private void setErbanRecommend(BaseViewHolder holder, HomeItem homeItem) {
|
||||
RecommendInfo recommendInfo = (RecommendInfo) homeItem.getData();
|
||||
holder.setText(R.id.tv_title, recommendInfo.getTitle());
|
||||
|
||||
List<HomeRoom> roomList = recommendInfo.getRoomList();
|
||||
RecyclerView recyclerView = holder.getView(R.id.rv_list);
|
||||
recyclerView.setItemAnimator(null);
|
||||
recyclerView.setFocusable(false);
|
||||
GridLayoutManager manager = new GridLayoutManager(mContext, 3);
|
||||
recyclerView.setLayoutManager(manager);
|
||||
if (recyclerView.getItemDecorationCount() == 0) {
|
||||
int px = UIUtil.dip2px(mContext, 15);
|
||||
recyclerView.addItemDecoration(new RecommendThreeNModelDecoration(px));
|
||||
}
|
||||
ErbanRecommendAdapter erbanRecommendAdapter = new ErbanRecommendAdapter(mContext, roomList);
|
||||
recyclerView.setAdapter(erbanRecommendAdapter);
|
||||
erbanRecommendAdapter.setSpanSizeLookup(new SpanSizeLookup() {
|
||||
@Override
|
||||
public int getSpanSize(GridLayoutManager gridLayoutManager, int position) {
|
||||
if (position < 3) {
|
||||
return 1;
|
||||
}
|
||||
return manager.getSpanCount();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置运营可配置模块
|
||||
*
|
||||
* @param holder holder
|
||||
* @param homeItem homeItem
|
||||
*/
|
||||
private void setConfigRecommend(BaseViewHolder holder, HomeItem homeItem) {
|
||||
RecommendInfo recommendInfo = (RecommendInfo) homeItem.getData();
|
||||
HomeConfigModule module = holder.getView(R.id.home_config_module);
|
||||
module.setData(recommendInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置游戏首页两列的数据
|
||||
*
|
||||
* @param holder holder
|
||||
* @param homeItem homeItem
|
||||
*/
|
||||
private void setTwoLinesData(BaseViewHolder holder, HomeItem homeItem) {
|
||||
RecommendInfo recommendInfo = (RecommendInfo) homeItem.getData();
|
||||
TextView textView = holder.getView(R.id.tv_title);
|
||||
if (!ListUtils.isListEmpty(recommendInfo.getRoomList())) {
|
||||
textView.setVisibility(View.VISIBLE);
|
||||
textView.setText(recommendInfo.getTitle());
|
||||
} else {
|
||||
textView.setVisibility(View.GONE);
|
||||
}
|
||||
RecyclerView recyclerView = holder.getView(R.id.recycler_view);
|
||||
GridLayoutManager manager = new GridLayoutManager(mContext, 2) {
|
||||
@Override
|
||||
public boolean canScrollVertically() {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
recyclerView.setLayoutManager(manager);
|
||||
BaseAdapter<HomeRoom> adapter = new BaseAdapter<HomeRoom>(R.layout.item_home_two_n, BR.homeInfo) {
|
||||
@Override
|
||||
protected void convert(BindingViewHolder helper, HomeRoom item) {
|
||||
|
||||
super.convert(helper, item);
|
||||
|
||||
ItemHomeTwoNBinding binding = (ItemHomeTwoNBinding) helper.getBinding();
|
||||
if (binding == null) {
|
||||
return;
|
||||
}
|
||||
binding.livLivingIcon.setColor(Color.WHITE);
|
||||
binding.livLivingIcon.start();
|
||||
MessageView.SpannableBuilder text = new MessageView.SpannableBuilder(binding.tvTitle)
|
||||
.appendImg(item.tagPict)
|
||||
.append(item.title);
|
||||
binding.tvTitle.setText(text.build());
|
||||
}
|
||||
};
|
||||
adapter.setOnItemClickListener((adapt, view, position) -> AVRoomActivity.start(mContext, adapter.getItem(position).getUid()));
|
||||
recyclerView.setAdapter(adapter);
|
||||
adapter.setNewData(recommendInfo.getRoomList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置3+n布局中的格子数据
|
||||
*/
|
||||
private void setSquarePicData(BaseViewHolder helper, HomeItem homeItem) {
|
||||
HomeRoom homeRoom = (HomeRoom) homeItem.getData();
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AVRoomActivity.start(mContext, homeRoom.getUid());
|
||||
}
|
||||
});
|
||||
|
||||
LivingIconView livingIconView = helper.getView(R.id.liv_living_icon);
|
||||
livingIconView.setColor(Color.WHITE);
|
||||
livingIconView.start();
|
||||
|
||||
helper.setText(R.id.tv_online_number, mContext.getString(R.string.online_number_text, homeRoom.getOnlineNum()))
|
||||
.setText(R.id.tv_title, homeRoom.getTitle());
|
||||
|
||||
helper.getView(R.id.lock_bg).setVisibility(!TextUtils.isEmpty(homeRoom.getRoomPwd()) ? View.VISIBLE : View.GONE);
|
||||
|
||||
ImageView mIvTabLabel = helper.getView(R.id.iv_tab_label);
|
||||
|
||||
boolean showTab = false;
|
||||
Drawable icon = null;
|
||||
if (homeItem.isShowRankHalfIcon()) {
|
||||
showTab = true;
|
||||
icon = mContext.getResources().getDrawable(R.drawable.icon_rank_half);
|
||||
} else if (homeRoom.getIsRecom() > 0) {
|
||||
showTab = true;
|
||||
icon = mContext.getResources().getDrawable(R.drawable.ic_king_recommend);
|
||||
} else if (!TextUtils.isEmpty(homeRoom.badge)) {
|
||||
showTab = true;
|
||||
} else
|
||||
mIvTabLabel.setVisibility(View.INVISIBLE);
|
||||
|
||||
if (showTab) {
|
||||
mIvTabLabel.setVisibility(View.VISIBLE);
|
||||
GlideRequest request;
|
||||
if (icon != null)
|
||||
request = GlideApp.with(mContext).load(icon);
|
||||
else
|
||||
request = GlideApp.with(mContext).load(homeRoom.badge);
|
||||
|
||||
request.listener(new RequestListener<Drawable>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object o, Target<Drawable> target, boolean b) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable drawable, Object o, Target<Drawable> target, DataSource dataSource, boolean b) {
|
||||
float ratio = (drawable.getIntrinsicHeight() + 0.F) / drawable.getIntrinsicWidth();
|
||||
int width = Math.round(mBadgeHeight / ratio);
|
||||
int height = mBadgeHeight;
|
||||
ViewGroup.LayoutParams params = mIvTabLabel.getLayoutParams();
|
||||
params.width = width;
|
||||
params.height = height;
|
||||
mIvTabLabel.setLayoutParams(params);
|
||||
mIvTabLabel.setImageDrawable(drawable);
|
||||
return true;
|
||||
}
|
||||
})
|
||||
.into(mIvTabLabel);
|
||||
|
||||
}
|
||||
|
||||
|
||||
ImageView ivCover = helper.getView(R.id.iv_cover);
|
||||
if (!TextUtils.isEmpty(homeRoom.getAvatar())) {
|
||||
ImageLoadUtils.loadAvatarBig(homeRoom.getAvatar(), ivCover, R.drawable.default_cover);
|
||||
} else {
|
||||
GlideApp.with(mContext)
|
||||
.load(R.drawable.default_cover)
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.into(ivCover);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置3+N布局中,虚位以待的数据
|
||||
*/
|
||||
private void setSquareEmpty(BaseViewHolder holder, HomeItem homeItem) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置3+N布局中,小图列表的数据
|
||||
*/
|
||||
private void setLinearLittlePicData(BaseViewHolder helper, HomeItem homeItem) {
|
||||
HomeRoom homeRoom = (HomeRoom) homeItem.getData();
|
||||
RoomItemView roomItemView = helper.getView(R.id.riv_room_view);
|
||||
roomItemView.bindData(homeRoom);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置每个模块的标题
|
||||
*/
|
||||
private void setBlockTitle(BaseViewHolder holder, HomeItem homeItem) {
|
||||
holder.setText(R.id.tv_title, (String) homeItem.getData());
|
||||
}
|
||||
|
||||
private String getRoomTitle(HomeRoom roomInfo, String defaultValue) {
|
||||
if (roomInfo == null || StringUtils.isEmpty(roomInfo.getTitle())) {
|
||||
return defaultValue;
|
||||
}
|
||||
return roomInfo.getTitle();
|
||||
}
|
||||
|
||||
private String getRoomTag(HomeRoom roomInfo, String defaultValue) {
|
||||
if (roomInfo == null || StringUtils.isEmpty(roomInfo.getSkillTag())) {
|
||||
return getRoomTagPic(roomInfo, defaultValue);
|
||||
}
|
||||
return roomInfo.getSkillTag();
|
||||
}
|
||||
|
||||
private String getRoomTagPic(HomeRoom roomInfo, String defaultValue) {
|
||||
if (roomInfo == null || StringUtils.isEmpty(roomInfo.getTagPict())) {
|
||||
return defaultValue;
|
||||
}
|
||||
return roomInfo.getTagPict();
|
||||
}
|
||||
|
||||
private String getRoomBadge(HomeRoom roomInfo, String defaultValue) {
|
||||
if (roomInfo == null || StringUtils.isEmpty(roomInfo.getIcon())) {
|
||||
return defaultValue;
|
||||
}
|
||||
return roomInfo.getIcon();
|
||||
}
|
||||
|
||||
private String getRoomAvatar(HomeRoom roomInfo, String defaultValue) {
|
||||
if (roomInfo == null || StringUtils.isEmpty(roomInfo.getAvatar())) {
|
||||
return defaultValue;
|
||||
}
|
||||
return roomInfo.getAvatar();
|
||||
}
|
||||
|
||||
private String getRoomDescription(HomeRoom roomInfo, String defaultValue) {
|
||||
if (roomInfo == null || StringUtils.isEmpty(roomInfo.getDescription())) {
|
||||
return defaultValue;
|
||||
}
|
||||
return roomInfo.getDescription();
|
||||
}
|
||||
|
||||
private Integer getRoomOnlineNum(HomeRoom roomInfo, Integer defaultValue) {
|
||||
if (roomInfo == null || roomInfo.getOnlineNum() == 0) {
|
||||
return defaultValue;
|
||||
}
|
||||
return roomInfo.getOnlineNum();
|
||||
}
|
||||
|
||||
public interface OnActionListener {
|
||||
void onRefreshMakeFriendList();
|
||||
|
||||
void onMoreKTVRoom();
|
||||
|
||||
void onGoTalkHall();
|
||||
}
|
||||
|
||||
private OnActionListener actionListener;
|
||||
|
||||
public void setActionListener(OnActionListener actionListener) {
|
||||
this.actionListener = actionListener;
|
||||
}
|
||||
}
|
@@ -1,167 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.ImageSpan;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.netease.nim.uikit.business.session.emoji.MoonUtil;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.common.widget.CircleImageView;
|
||||
import com.yizhuan.erban.common.widget.CustomImageSpan;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeHallMsgInfo;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.JavaUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/11/21
|
||||
*/
|
||||
public class HomeHallAdapter extends BaseMultiItemQuickAdapter<HomeHallMsgInfo, BaseViewHolder> {
|
||||
|
||||
private Context context;
|
||||
|
||||
public HomeHallAdapter(Context context, @Nullable List<HomeHallMsgInfo> data) {
|
||||
super(data);
|
||||
this.context = context;
|
||||
|
||||
addItemType(HomeHallMsgInfo.ITEM_TYPE_LEFT, R.layout.item_home_hall_left);
|
||||
addItemType(HomeHallMsgInfo.ITEM_TYPE_RIGHT, R.layout.item_home_hall_right);
|
||||
addItemType(HomeHallMsgInfo.ITEM_TYPE_TIP, R.layout.item_home_hall_tip);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected View getItemView(int layoutResId, ViewGroup parent) {
|
||||
return LayoutInflater.from(context).inflate(layoutResId, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, HomeHallMsgInfo item) {
|
||||
helper.itemView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
if (HomeHallMsgInfo.ITEM_TYPE_TIP == item.getItemType()) {
|
||||
helper.setText(R.id.tv_tip_text, item.getFormatTime());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
helper.setText(R.id.tv_user_name, item.getNick());
|
||||
|
||||
TextView textView = helper.getView(R.id.tv_content);
|
||||
if (TextUtils.isEmpty(item.getContent())) {
|
||||
textView.setText(textView.getResources().getText(R.string.not_support_message_tip));
|
||||
} else {
|
||||
if (item.getMessageType() == HomeHallMsgInfo.MESSAGE_TYPE_TEXT) {
|
||||
MoonUtil.identifyFaceExpression(context, textView, item.getContent().toString(), ImageSpan.ALIGN_BOTTOM);
|
||||
} else if (item.getMessageType() == HomeHallMsgInfo.MESSAGE_TYPE_GIFT) {
|
||||
SpannableStringBuilder ssb = new SpannableStringBuilder("赠送 ");
|
||||
String targetNick = item.getTargetNick();
|
||||
if (targetNick == null) {
|
||||
targetNick = "";
|
||||
}
|
||||
ssb.append(targetNick).append("\n");
|
||||
int start = ssb.length();
|
||||
if (!TextUtils.isEmpty(item.getGiftImage())) {
|
||||
ssb.append("-");
|
||||
CustomImageSpan imageSpan = new CustomImageSpan(new ColorDrawable(Color.TRANSPARENT),
|
||||
textView, item.getGiftImage(), Utils.dip2px(mContext, 35), Utils.dip2px(mContext, 35));
|
||||
ssb.setSpan(imageSpan, start, ssb.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
} else {
|
||||
ssb.append("礼物");
|
||||
}
|
||||
start = ssb.length();
|
||||
ssb.append("x").append(String.valueOf(item.getGiftCount()));
|
||||
ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(mContext.getResources().getColor(R.color.color_FF3D56));
|
||||
ssb.setSpan(foregroundColorSpan, start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
textView.setText(ssb);
|
||||
}
|
||||
}
|
||||
|
||||
CircleImageView civAvatar = (CircleImageView) helper.getView(R.id.civ_avatar);
|
||||
if (!TextUtils.isEmpty(item.getSenderAvatar())) {
|
||||
GlideApp.with(context)
|
||||
.load(item.getSenderAvatar())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.dontAnimate()
|
||||
.into(civAvatar);
|
||||
} else {
|
||||
civAvatar.setImageResource(R.drawable.default_avatar);
|
||||
}
|
||||
|
||||
// 官字
|
||||
helper.getView(R.id.message_item_name_icon_official).setVisibility(item.isOfficial() ? View.VISIBLE : View.GONE);
|
||||
// 新字
|
||||
helper.getView(R.id.message_item_name_icon_new).setVisibility(item.isNewUser() ? View.VISIBLE : View.GONE);
|
||||
// 靓字
|
||||
helper.getView(R.id.message_item_name_icon_pretty).setVisibility(item.isPrettyErbanNo() ? View.VISIBLE : View.GONE);
|
||||
|
||||
AppCompatImageView ivNobleLevel = (AppCompatImageView) helper.getView(R.id.iv_noble_level);
|
||||
if (!TextUtils.isEmpty(item.getNobleLevel())) {
|
||||
String badgeUrl = NobleUtil.getBadgeByLevel(JavaUtil.str2int(item.getNobleLevel()));
|
||||
if (!TextUtils.isEmpty(badgeUrl)) {
|
||||
ivNobleLevel.setVisibility(View.VISIBLE);
|
||||
NobleUtil.loadResource(badgeUrl, ivNobleLevel);
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
AppCompatImageView ivUserLevel = (AppCompatImageView) helper.getView(R.id.iv_user_level);
|
||||
ivUserLevel.setVisibility(View.GONE);
|
||||
if (!TextUtils.isEmpty(item.getUserLevelUrl())) {
|
||||
ivUserLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, item.getUserLevelUrl(), ivUserLevel);
|
||||
}
|
||||
|
||||
AppCompatImageView ivCharmLevel = (AppCompatImageView) helper.getView(R.id.iv_charm_level);
|
||||
ivCharmLevel.setVisibility(View.GONE);
|
||||
if (!TextUtils.isEmpty(item.getUserCharmLevelUrl())) {
|
||||
ivCharmLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, item.getUserCharmLevelUrl(), ivCharmLevel);
|
||||
}
|
||||
|
||||
// 官方认证标识
|
||||
View inOfficialMask = helper.getView(R.id.in_official_mask);
|
||||
if (!TextUtils.isEmpty(item.getFixedWord()) && !TextUtils.isEmpty(item.getIconPic())) {
|
||||
inOfficialMask.setVisibility(View.VISIBLE);
|
||||
|
||||
TextView tvOfficialMask = inOfficialMask.findViewById(R.id.tv_official_mask);
|
||||
if (tvOfficialMask != null) {
|
||||
tvOfficialMask.setText(item.getFixedWord());
|
||||
}
|
||||
|
||||
ImageView ivOfficialMask = inOfficialMask.findViewById(R.id.iv_official_mask);
|
||||
if (ivOfficialMask != null) {
|
||||
NobleUtil.loadResource(item.getIconPic(), ivOfficialMask);
|
||||
}
|
||||
|
||||
} else {
|
||||
inOfficialMask.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@@ -1,69 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.viewpager.widget.PagerAdapter;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.xchat_android_core.home.bean.KTVRoom;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/30
|
||||
*/
|
||||
public class HomeItemVPAdapter extends PagerAdapter {
|
||||
private Context context;
|
||||
private List<List<KTVRoom>> data;
|
||||
|
||||
|
||||
public HomeItemVPAdapter(Context context, List<List<KTVRoom>> data) {
|
||||
this.context = context;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return data.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
|
||||
return view == object;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Object instantiateItem(@NonNull ViewGroup container, int position) {
|
||||
List<KTVRoom> homeRoomList = data.get(position);
|
||||
View rootView = LayoutInflater.from(context).inflate(R.layout.item_home_ktv_vp, container, false);
|
||||
RecyclerView recyclerView = rootView.findViewById(R.id.rv_list);
|
||||
recyclerView.setItemAnimator(null);
|
||||
recyclerView.setFocusable(false);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false));
|
||||
if (recyclerView.getItemDecorationCount() == 0) {
|
||||
recyclerView.addItemDecoration(new ColorDecoration(Color.TRANSPARENT, Utils.dip2px(context, 10), 0, false));
|
||||
}
|
||||
KTVRoomAdapter ktvRoomAdapter = new KTVRoomAdapter(context, homeRoomList);
|
||||
recyclerView.setAdapter(ktvRoomAdapter);
|
||||
|
||||
container.addView(rootView);
|
||||
return rootView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
|
||||
container.removeView((View) object);
|
||||
}
|
||||
}
|
@@ -1,111 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import android.view.View;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.Util;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.widget.RoomItemView;
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomItem;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
import com.yizhuan.xchat_android_core.home.bean.OtherBannerInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/11/2
|
||||
*/
|
||||
public class HomeRoomAdapter extends BaseMultiItemQuickAdapter<HomeRoomItem, BaseViewHolder> {
|
||||
|
||||
private Context context;
|
||||
|
||||
public HomeRoomAdapter(Context context, List<HomeRoomItem> data) {
|
||||
super(data);
|
||||
this.context = context;
|
||||
addItemType(HomeRoomItem.TYPE_HOME_ROOM, R.layout.list_item_home_room_room);
|
||||
addItemType(HomeRoomItem.TYPE_BANNER, R.layout.list_item_home_room_banner);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, HomeRoomItem item) {
|
||||
if (item == null) {
|
||||
return;
|
||||
}
|
||||
switch (item.getItemType()) {
|
||||
case HomeRoomItem.TYPE_HOME_ROOM:
|
||||
setRoom(helper, item);
|
||||
break;
|
||||
case HomeRoomItem.TYPE_BANNER:
|
||||
setOtherBanner(helper, item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置房间
|
||||
*
|
||||
* @param holder
|
||||
* @param item
|
||||
*/
|
||||
private void setRoom(BaseViewHolder holder, HomeRoomItem item) {
|
||||
HomeRoom homeRoom = (HomeRoom) item.getData();
|
||||
RoomItemView roomItemView = holder.getView(R.id.riv_room_view);
|
||||
roomItemView.bindData(homeRoom);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置中间的scrollView page
|
||||
*
|
||||
* @param holder
|
||||
* @param homeItem
|
||||
*/
|
||||
private void setOtherBanner(BaseViewHolder holder, HomeRoomItem homeItem) {
|
||||
List<BannerInfo> bannerInfos = (List<BannerInfo>) homeItem.getData();
|
||||
if (!ListUtils.isListEmpty(bannerInfos)) {
|
||||
RollPagerView rollPagerView = holder.getView(R.id.rpv_other_banner);
|
||||
|
||||
rollPagerView.setHintView(new ColorPointHintView(mContext, Color.WHITE, mContext.getResources().getColor(R.color.color_66FFFFFF)) {
|
||||
@Override
|
||||
public Drawable makeFocusDrawable() {
|
||||
GradientDrawable dotFocus = new GradientDrawable();
|
||||
dotFocus.setColor(Color.WHITE);
|
||||
dotFocus.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotFocus.setSize(Util.dip2px(getContext(), 9), Util.dip2px(getContext(), 4));
|
||||
return dotFocus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable makeNormalDrawable() {
|
||||
GradientDrawable dotNormal = new GradientDrawable();
|
||||
dotNormal.setColor(mContext.getResources().getColor(R.color.color_66FFFFFF));
|
||||
dotNormal.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotNormal.setSize(Util.dip2px(getContext(), 4), Util.dip2px(getContext(), 4));
|
||||
return dotNormal;
|
||||
}
|
||||
});
|
||||
|
||||
OtherBannerAdapter bannerAdapter = new OtherBannerAdapter(mContext, bannerInfos);
|
||||
rollPagerView.setAdapter(bannerAdapter);
|
||||
rollPagerView.setPlayDelay(3000);
|
||||
//设置透明度
|
||||
rollPagerView.setAnimationDurtion(500);
|
||||
rollPagerView.setVisibility(View.VISIBLE);
|
||||
bannerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,81 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
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;
|
||||
|
||||
/**
|
||||
* <p> 公共多个滑动tab样式 </p>
|
||||
*
|
||||
* @author Administrator
|
||||
* @date 2017/11/15
|
||||
*/
|
||||
public class KTVMagicIndicatorAdapter extends CommonNavigatorAdapter {
|
||||
|
||||
private Context mContext;
|
||||
private int size;
|
||||
|
||||
public KTVMagicIndicatorAdapter(Context context, int size) {
|
||||
mContext = context;
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerTitleView getTitleView(Context context, final int i) {
|
||||
ColorPagerTitleView colorPagerTitleView = new ColorPagerTitleView(context);
|
||||
|
||||
return colorPagerTitleView;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IPagerIndicator getIndicator(Context context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
class ColorPagerTitleView extends RelativeLayout implements IPagerTitleView {
|
||||
View view;
|
||||
|
||||
public ColorPagerTitleView(Context context) {
|
||||
super(context);
|
||||
view = new View(context);
|
||||
LayoutParams lp = new LayoutParams(16, 4);
|
||||
lp.setMargins(5, 0, 5, 0);
|
||||
addView(view, lp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSelected(int index, int totalCount) {
|
||||
view.setBackgroundColor(getResources().getColor(R.color.appColor));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeselected(int index, int totalCount) {
|
||||
view.setBackgroundColor(getResources().getColor(R.color.color_CCCCCC));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -1,106 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.LivingIconView;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
import com.yizhuan.xchat_android_core.home.bean.KTVRoom;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/4/16
|
||||
*/
|
||||
|
||||
public class KTVRoomAdapter extends BaseMultiItemQuickAdapter<KTVRoom, BaseViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private int mRound, mTagHeight, mBadgeHeight;
|
||||
|
||||
public KTVRoomAdapter(Context context, @Nullable List<KTVRoom> data) {
|
||||
super(data);
|
||||
this.mContext = context;
|
||||
mRound = Utils.dip2px(mContext, 9);
|
||||
mTagHeight = (int) context.getResources().getDimension(R.dimen.tag_height);
|
||||
mBadgeHeight = (int) context.getResources().getDimension(R.dimen.tag_height);
|
||||
|
||||
addItemType(KTVRoom.TYPE_GIRD, R.layout.item_home_ktv_room);
|
||||
addItemType(KTVRoom.TYPE_GIRD_EMPTY, R.layout.item_home_empty_ktv_room);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, KTVRoom homeRoom) {
|
||||
|
||||
View view = helper.getView(R.id.ll_container);
|
||||
ViewGroup.LayoutParams lp = view.getLayoutParams();
|
||||
lp.width = (Utils.getWindowWidth(mContext) - Utils.dip2px(mContext, 50)) / 3;
|
||||
view.setLayoutParams(lp);
|
||||
|
||||
|
||||
if (homeRoom.getItemType() == KTVRoom.TYPE_GIRD_EMPTY) {
|
||||
// FIXME: 2018/11/15 使用 ContentWrapViewPager 下面两句代码不能去掉,否则显示异常。
|
||||
ImageView ivCover = helper.getView(R.id.iv_cover);
|
||||
GlideApp.with(mContext)
|
||||
.load(R.mipmap.bg_item_empty_ktv_room)
|
||||
.skipMemoryCache(true)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.into(ivCover);
|
||||
} else {
|
||||
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// AVRoomActivity.start(mContext, Long.parseLong(homeRoom.getRoomUid()));
|
||||
AVRoomActivity.start(mContext, homeRoom.getRoomUid());
|
||||
}
|
||||
});
|
||||
|
||||
helper.getView(R.id.lock_bg).setVisibility(!TextUtils.isEmpty(homeRoom.getRoomPwd()) ? View.VISIBLE : View.GONE);
|
||||
|
||||
LivingIconView livingIconView = helper.getView(R.id.liv_living_icon);
|
||||
livingIconView.setColor(Color.WHITE);
|
||||
livingIconView.start();
|
||||
|
||||
helper.setText(R.id.tv_online_number, mContext.getString(R.string.online_number_text, homeRoom.getOnlineNum()))
|
||||
.setText(R.id.tv_title, homeRoom.getTitle());
|
||||
|
||||
if (!TextUtils.isEmpty(homeRoom.getSingingMusicName())) {
|
||||
helper.setText(R.id.tv_singing_song, String.format(mContext.getResources().getString(R.string.home_ktv_singing_song), homeRoom.getSingingMusicName()));
|
||||
} else {
|
||||
helper.setText(R.id.tv_singing_song, mContext.getResources().getString(R.string.home_ktv_no_singing_song));
|
||||
}
|
||||
|
||||
ImageView ivCover = helper.getView(R.id.iv_cover);
|
||||
if (!TextUtils.isEmpty(homeRoom.getAvatar())) {
|
||||
ImageLoadUtils.loadRectImage(mContext, homeRoom.getAvatar(), ivCover, R.drawable.default_cover, mRound);
|
||||
} else {
|
||||
GlideApp.with(mContext)
|
||||
.load(R.drawable.default_cover)
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.transforms(new CenterCrop(), new RoundedCorners(mRound))
|
||||
.into(ivCover);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,75 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.xchat_android_core.home.bean.KTVRoom;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/31
|
||||
*/
|
||||
public class KTVTypeRoomAdapter extends BaseQuickAdapter<KTVRoom, BaseViewHolder> {
|
||||
private Context context;
|
||||
private int[] bgIds = new int[]{R.drawable.ktv_room_bg_1,
|
||||
R.drawable.ktv_room_bg_2,
|
||||
R.drawable.ktv_room_bg_3,
|
||||
R.drawable.ktv_room_bg_4};
|
||||
|
||||
public KTVTypeRoomAdapter(Context context, @Nullable List<KTVRoom> data) {
|
||||
super(R.layout.item_ktv_type_room, data);
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, KTVRoom item) {
|
||||
|
||||
int index = helper.getAdapterPosition() % bgIds.length;
|
||||
helper.setBackgroundRes(R.id.ll_container, bgIds[index]);
|
||||
|
||||
helper.setText(R.id.tv_title, item.getTitle())
|
||||
.setText(R.id.tv_member_count, mContext.getString(R.string.online_number_text, item.getOnlineNum()));
|
||||
|
||||
if (!TextUtils.isEmpty(item.getSingingMusicName())) {
|
||||
helper.setText(R.id.tv_sing_song, String.format(mContext.getResources().getString(R.string.home_ktv_singing_song), item.getSingingMusicName()));
|
||||
} else {
|
||||
helper.setText(R.id.tv_sing_song, mContext.getResources().getString(R.string.home_ktv_no_singing_song));
|
||||
}
|
||||
|
||||
helper.getView(R.id.iv_lock).setVisibility(!TextUtils.isEmpty(item.getRoomPwd()) ? View.VISIBLE : View.GONE);
|
||||
|
||||
ImageView ivCover = helper.getView(R.id.civ_avatar);
|
||||
if (!TextUtils.isEmpty(item.getAvatar())) {
|
||||
GlideApp.with(mContext)
|
||||
.load(item.getAvatar())
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.error(R.drawable.default_cover)
|
||||
.into(ivCover);
|
||||
} else {
|
||||
GlideApp.with(mContext)
|
||||
.load(R.drawable.default_cover)
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.error(R.drawable.default_cover)
|
||||
.into(ivCover);
|
||||
}
|
||||
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AVRoomActivity.start(context, item.getRoomUid());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@@ -1,44 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.view.View;
|
||||
|
||||
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.ImageLoadUtils;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/30
|
||||
*/
|
||||
public class MakeFriendAdapter extends BaseQuickAdapter<HomeRoom, BaseViewHolder> {
|
||||
private Context context;
|
||||
|
||||
public MakeFriendAdapter(Context context, @Nullable List<HomeRoom> data) {
|
||||
super(R.layout.item_home_make_friends_room, data);
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, HomeRoom item) {
|
||||
helper.setText(R.id.tv_title, item.getTitle())
|
||||
.setText(R.id.tv_online_number,
|
||||
String.format(context.getResources().getString(R.string.online_number_text), item.getOnlineNum()));
|
||||
|
||||
ImageLoadUtils.loadAvatar(context, item.getAvatar(), helper.getView(R.id.civ_avatar));
|
||||
helper.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AVRoomActivity.start(mContext, item.getUid());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
@@ -1,81 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.adapter.StaticPagerAdapter;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.RoomItemView;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/4/16
|
||||
*/
|
||||
|
||||
public class OtherBannerAdapter extends StaticPagerAdapter {
|
||||
|
||||
private Context mContext;
|
||||
private List<BannerInfo> data;
|
||||
|
||||
public OtherBannerAdapter(Context context, List<BannerInfo> data) {
|
||||
this.data = data;
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View getView(ViewGroup container, int position) {
|
||||
View view = LayoutInflater.from(mContext).inflate(R.layout.list_item_other_banner_cover,container,false);
|
||||
ImageView ivCover = view.findViewById(R.id.iv_cover);
|
||||
BannerInfo bannerInfo = data.get(position);
|
||||
String url = bannerInfo.getSkipUri();
|
||||
ImageLoadUtils.loadGameBannerRoundBackground(mContext, bannerInfo.getBannerPic(), ivCover);
|
||||
|
||||
ivCover.setOnClickListener(v -> {
|
||||
if (TextUtils.isEmpty(url)) return;
|
||||
if (bannerInfo.getSkipType() == BannerInfo.SKIP_TYP_H5) {
|
||||
Intent intent = new Intent(mContext, CommonWebViewActivity.class);
|
||||
intent.putExtra("url", url);
|
||||
mContext.startActivity(intent);
|
||||
} else if (bannerInfo.getSkipType() == BannerInfo.SKIP_TYP_CHAT_ROOM) {
|
||||
if (TextUtils.isEmpty(url)) return;
|
||||
try {
|
||||
AVRoomActivity.start(mContext, Long.valueOf(url));
|
||||
} catch (NumberFormatException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
if (data != null) {
|
||||
return data.size();
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,44 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.graphics.Rect;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
|
||||
/**
|
||||
* 推荐 3+n 界面专用的分割线
|
||||
* Created by lvzebiao on 2019/2/18.
|
||||
*/
|
||||
|
||||
public class RecommendThreeNModelDecoration extends RecyclerView.ItemDecoration{
|
||||
|
||||
private int valuePx;
|
||||
|
||||
public RecommendThreeNModelDecoration(int valuePx) {
|
||||
this.valuePx = valuePx;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
|
||||
super.getItemOffsets(outRect, view, parent, state);
|
||||
if (parent.getLayoutManager() == null || !(parent.getLayoutManager() instanceof GridLayoutManager)) {
|
||||
return;
|
||||
}
|
||||
int position = parent.getChildAdapterPosition(view);
|
||||
GridLayoutManager layoutManager = (GridLayoutManager) parent.getLayoutManager();
|
||||
int spanCount = layoutManager.getSpanCount();
|
||||
int column = position % spanCount;
|
||||
int spanSize = layoutManager.getSpanSizeLookup().getSpanSize(position);
|
||||
if (spanSize == spanCount) {
|
||||
//独占一行的,不需要左右分割线
|
||||
outRect.set(0, 0, 0, 0);
|
||||
} else {
|
||||
getGridItemOffsets(outRect, column, spanCount);
|
||||
}
|
||||
}
|
||||
|
||||
private void getGridItemOffsets(Rect outRect, int column, int spanCount) {
|
||||
outRect.left = valuePx * column / spanCount;
|
||||
outRect.right = valuePx * (spanCount - 1 - column) / spanCount;
|
||||
}
|
||||
}
|
@@ -1,117 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
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.xchat_android_core.home.bean.TabInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/11/1
|
||||
*/
|
||||
public class RoomCategoryIndicatorAdapter extends CommonNavigatorAdapter {
|
||||
private List<TabInfo> mTitleList;
|
||||
private Context mContext;
|
||||
|
||||
public RoomCategoryIndicatorAdapter(Context mContext, List<TabInfo> mTitleList) {
|
||||
this.mTitleList = mTitleList;
|
||||
this.mContext = mContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mTitleList == null ? 0 : mTitleList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerTitleView getTitleView(Context context, int index) {
|
||||
CategoryPagerTitleView categoryPagerTitleView = new CategoryPagerTitleView(context, mTitleList.get(index));
|
||||
categoryPagerTitleView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (null != mOnItemSelectListener) {
|
||||
mOnItemSelectListener.onItemSelect(index);
|
||||
}
|
||||
}
|
||||
});
|
||||
return categoryPagerTitleView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerIndicator getIndicator(Context context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private OnItemSelectListener mOnItemSelectListener;
|
||||
|
||||
public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
|
||||
mOnItemSelectListener = onItemSelectListener;
|
||||
}
|
||||
|
||||
public interface OnItemSelectListener {
|
||||
void onItemSelect(int position);
|
||||
}
|
||||
|
||||
class CategoryPagerTitleView extends RelativeLayout implements IPagerTitleView {
|
||||
|
||||
private RelativeLayout rlContainer;
|
||||
private RoundedImageView ivIcon;
|
||||
private TextView tvName;
|
||||
private TabInfo tabInfo;
|
||||
private View vCover;
|
||||
|
||||
public CategoryPagerTitleView(Context context, TabInfo tabInfo) {
|
||||
super(context);
|
||||
this.tabInfo = tabInfo;
|
||||
LayoutInflater.from(context).inflate(R.layout.item_room_category, this, true);
|
||||
|
||||
rlContainer = (RelativeLayout) findViewById(R.id.rl_container);
|
||||
ivIcon = (RoundedImageView) findViewById(R.id.iv_icon);
|
||||
tvName = (TextView) findViewById(R.id.tv_name);
|
||||
|
||||
|
||||
vCover = (View) findViewById(R.id.v_cover);
|
||||
|
||||
ImageLoadUtils.loadImage(context, tabInfo.getPict(), ivIcon);
|
||||
// tvName.setText(tabInfo.getName());
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onSelected(int index, int totalCount) {
|
||||
vCover.setBackgroundResource(R.drawable.shape_room_category_selected);
|
||||
// tvName.setTextColor(getResources().getColor(R.color.black));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeselected(int index, int totalCount) {
|
||||
vCover.setBackgroundResource(R.drawable.shape_room_category_unselected);
|
||||
// tvName.setTextColor(getResources().getColor(R.color.white));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,40 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentPagerAdapter;
|
||||
import android.util.SparseArray;
|
||||
|
||||
import com.yizhuan.erban.home.fragment.RoomListFragment;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TabInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p> 房间 adapter </p>
|
||||
* Created by Administrator on 2017/11/15.
|
||||
*/
|
||||
public class RoomCategoryViewPagerAdapter extends FragmentPagerAdapter {
|
||||
private SparseArray<Fragment> mFragmentList;
|
||||
private List<TabInfo> mTitleList;
|
||||
|
||||
public RoomCategoryViewPagerAdapter(FragmentManager fm, List<TabInfo> titleList) {
|
||||
super(fm);
|
||||
this.mTitleList = titleList;
|
||||
mFragmentList = new SparseArray<>();
|
||||
int size = titleList.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
mFragmentList.put(i, RoomListFragment.newInstance(titleList.get(i)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return mFragmentList.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mTitleList == null ? 0 : mTitleList.size();
|
||||
}
|
||||
}
|
@@ -1,149 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.Util;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.widget.RoomItemView;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomItem;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RoomTabAdapter extends BaseMultiItemQuickAdapter<HomeRoomItem, BaseViewHolder> {
|
||||
|
||||
private Context context;
|
||||
private int mScreenWidth;
|
||||
|
||||
public RoomTabAdapter(Context context, List<HomeRoomItem> data) {
|
||||
super(data);
|
||||
this.context = context;
|
||||
addItemType(HomeRoomItem.TYPE_HOME_ROOM, R.layout.list_item_home_room_room);
|
||||
// addItemType(HomeRoomItem.TYPE_BANNER, R.layout.list_item_home_room_banner);
|
||||
addItemType(HomeRoomItem.TYPE_BANNER, R.layout.layout_rollpage_view);
|
||||
addItemType(HomeRoomItem.TYPE_TOP_THREE, R.layout.list_top_three);
|
||||
addItemType(HomeRoomItem.TYPE_TOP_EMPTY, R.layout.layout_top_empty);
|
||||
mScreenWidth = Utils.getWindowWidth(context) - Utils.dip2px(context, 30);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, HomeRoomItem item) {
|
||||
if (item == null) {
|
||||
return;
|
||||
}
|
||||
switch (item.getItemType()) {
|
||||
case HomeRoomItem.TYPE_HOME_ROOM:
|
||||
setRoom(helper, item);
|
||||
break;
|
||||
case HomeRoomItem.TYPE_BANNER:
|
||||
setOtherBanner(helper, item);
|
||||
break;
|
||||
|
||||
case HomeRoomItem.TYPE_TOP_THREE:
|
||||
setTopThree(helper, item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void setTopThree(BaseViewHolder holder, HomeRoomItem item) {
|
||||
ArrayList<HomeRoom> roomList = (ArrayList<HomeRoom>) item.getData();
|
||||
|
||||
RecyclerView recyclerView = holder.getView(R.id.rv_list);
|
||||
recyclerView.setItemAnimator(null);
|
||||
recyclerView.setFocusable(false);
|
||||
GridLayoutManager manager = new GridLayoutManager(mContext, 3);
|
||||
recyclerView.setLayoutManager(manager);
|
||||
if (recyclerView.getItemDecorationCount() == 0) {
|
||||
int px = UIUtil.dip2px(mContext, 15);
|
||||
recyclerView.addItemDecoration(new RecommendThreeNModelDecoration(px));
|
||||
}
|
||||
|
||||
ErbanRecommendAdapter erbanRecommendAdapter = new ErbanRecommendAdapter(mContext, roomList);
|
||||
recyclerView.setAdapter(erbanRecommendAdapter);
|
||||
erbanRecommendAdapter.setSpanSizeLookup(((gridLayoutManager, position) -> {
|
||||
if (position < 3) {
|
||||
return 1;
|
||||
}
|
||||
return manager.getSpanCount();
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置房间
|
||||
*
|
||||
* @param holder
|
||||
* @param item
|
||||
*/
|
||||
private void setRoom(BaseViewHolder holder, HomeRoomItem item) {
|
||||
HomeRoom homeRoom = (HomeRoom) item.getData();
|
||||
RoomItemView roomItemView = holder.getView(R.id.riv_room_view);
|
||||
roomItemView.bindData(homeRoom);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置中间的scrollView page
|
||||
*
|
||||
* @param holder
|
||||
* @param homeItem
|
||||
*/
|
||||
private void setOtherBanner(BaseViewHolder holder, HomeRoomItem homeItem) {
|
||||
List<BannerInfo> bannerInfos = (List<BannerInfo>) homeItem.getData();
|
||||
|
||||
if (!ListUtils.isListEmpty(bannerInfos)) {
|
||||
RollPagerView rollPagerView = holder.getView(R.id.roll_view);
|
||||
ViewGroup.LayoutParams layoutParams = rollPagerView.getLayoutParams();
|
||||
int bannerWidth = UIUtil.getScreenWidth(mContext) - UIUtil.dip2px(mContext, 30);
|
||||
layoutParams.width = bannerWidth;
|
||||
layoutParams.height = bannerWidth * 120 / 345;
|
||||
rollPagerView.setLayoutParams(layoutParams);
|
||||
// RollPagerView rollPagerView = holder.getView(R.id.rpv_other_banner);
|
||||
|
||||
rollPagerView.setHintView(new ColorPointHintView(mContext, Color.WHITE, mContext.getResources().getColor(R.color.color_66FFFFFF)) {
|
||||
@Override
|
||||
public Drawable makeFocusDrawable() {
|
||||
GradientDrawable dotFocus = new GradientDrawable();
|
||||
dotFocus.setColor(Color.WHITE);
|
||||
dotFocus.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotFocus.setSize(Util.dip2px(getContext(), 9), Util.dip2px(getContext(), 4));
|
||||
return dotFocus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable makeNormalDrawable() {
|
||||
GradientDrawable dotNormal = new GradientDrawable();
|
||||
dotNormal.setColor(mContext.getResources().getColor(R.color.color_66FFFFFF));
|
||||
dotNormal.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotNormal.setSize(Util.dip2px(getContext(), 4), Util.dip2px(getContext(), 4));
|
||||
return dotNormal;
|
||||
}
|
||||
});
|
||||
|
||||
OtherBannerAdapter bannerAdapter = new OtherBannerAdapter(mContext, bannerInfos);
|
||||
rollPagerView.setAdapter(bannerAdapter);
|
||||
rollPagerView.setPlayDelay(3000);
|
||||
//设置透明度
|
||||
rollPagerView.setAnimationDurtion(500);
|
||||
rollPagerView.setVisibility(View.VISIBLE);
|
||||
bannerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -1,48 +0,0 @@
|
||||
package com.yizhuan.erban.home.adapter;
|
||||
|
||||
import android.graphics.Color;
|
||||
|
||||
import com.yizhuan.erban.bindadapter.BaseAdapter;
|
||||
import com.yizhuan.erban.bindadapter.BindingViewHolder;
|
||||
import com.yizhuan.erban.databinding.ItemHomeTwoNBinding;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
|
||||
public class TwoXNAdapter extends BaseAdapter<HomeRoom> {
|
||||
|
||||
public TwoXNAdapter(int layoutResId, int brid) {
|
||||
super(layoutResId, brid);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BindingViewHolder helper, HomeRoom item) {
|
||||
super.convert(helper, item);
|
||||
ItemHomeTwoNBinding binding = (ItemHomeTwoNBinding) helper.getBinding();
|
||||
binding.livLivingIcon.setColor(Color.WHITE);
|
||||
binding.livLivingIcon.start();
|
||||
/*GlideApp.with(mContext)
|
||||
.asDrawable()
|
||||
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||
.dontAnimate()
|
||||
.dontTransform()
|
||||
.load(item.tagPict)
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
|
||||
if (resource == null) return true;
|
||||
MessageView.SpannableBuilder text = new MessageView.SpannableBuilder(binding.tvTitle)
|
||||
.append(resource,resource.getIntrinsicWidth(),resource.getIntrinsicHeight())
|
||||
.append(item.title);
|
||||
binding.tvTitle.setText(text.build());
|
||||
binding.tvTitle.postInvalidate();
|
||||
|
||||
return true;
|
||||
}
|
||||
})
|
||||
.submit();*/
|
||||
}
|
||||
}
|
@@ -1,53 +0,0 @@
|
||||
package com.yizhuan.erban.home.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog;
|
||||
import com.yizhuan.erban.databinding.DialogCreateRoomBinding;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
|
||||
@ActLayoutRes(R.layout.dialog_create_room)
|
||||
public class CreateRoomDialog extends BaseBindingDialog<DialogCreateRoomBinding> {
|
||||
private OpenRoomListener openRoomListener;
|
||||
|
||||
public CreateRoomDialog(Context context, OpenRoomListener openRoomListener) {
|
||||
super(context);
|
||||
this.openRoomListener = openRoomListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
binding.tvCp.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
closeDialog();
|
||||
if (openRoomListener != null) {
|
||||
openRoomListener.onCpRoom();
|
||||
}
|
||||
}
|
||||
});
|
||||
binding.tvNormal.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
closeDialog();
|
||||
if (openRoomListener != null) {
|
||||
openRoomListener.onNormalRoom();
|
||||
}
|
||||
}
|
||||
});
|
||||
binding.tvExplain.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
new RoomShowsDialog(getContext()).openDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public interface OpenRoomListener {
|
||||
void onNormalRoom();
|
||||
|
||||
void onCpRoom();
|
||||
}
|
||||
}
|
@@ -1,95 +0,0 @@
|
||||
package com.yizhuan.erban.home.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import androidx.appcompat.app.AppCompatDialog;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description 新人推荐房间dialog
|
||||
* @Date 2018/7/9
|
||||
*/
|
||||
|
||||
public class RecommendRoomForNewerDialog extends AppCompatDialog implements View.OnClickListener{
|
||||
|
||||
private ImageView ivContent;
|
||||
private ImageView ivGoRoom;
|
||||
private ImageView imgClose;
|
||||
|
||||
|
||||
public RecommendRoomForNewerDialog(Context context) {
|
||||
super(context, R.style.common_dialog_theme);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
setContentView(R.layout.dialog_recommend_room_for_newer);
|
||||
Window window = getWindow();
|
||||
if (window != null) {
|
||||
// window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
WindowManager.LayoutParams windowParams = window.getAttributes();
|
||||
windowParams.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
windowParams.height = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
windowParams.gravity = Gravity.CENTER_HORIZONTAL;
|
||||
window.setAttributes(windowParams);
|
||||
}
|
||||
|
||||
|
||||
ivContent = (ImageView) findViewById(R.id.iv_content);
|
||||
|
||||
ivGoRoom = findViewById(R.id.tv_go_room);
|
||||
imgClose = (ImageView) findViewById(R.id.img_close);
|
||||
ivGoRoom.setOnClickListener(this);
|
||||
imgClose.setOnClickListener(this);
|
||||
|
||||
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
|
||||
if (userInfo == null){
|
||||
return;
|
||||
}
|
||||
if (userInfo.getGender() == 1){
|
||||
ivContent.setImageResource(R.mipmap.bg_recommend_room_girls);
|
||||
}else if (userInfo.getGender() == 2){
|
||||
ivContent.setImageResource(R.mipmap.bg_recommend_room_boys);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == ivGoRoom.getId()){
|
||||
if (this.actionListener != null){
|
||||
this.actionListener.onGoIntoRoom(this);
|
||||
}
|
||||
}else if (id == imgClose.getId()){
|
||||
if (this.actionListener != null){
|
||||
this.actionListener.onCancel(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private onActionListener actionListener;
|
||||
|
||||
public void setActionListener(onActionListener actionListener) {
|
||||
this.actionListener = actionListener;
|
||||
}
|
||||
|
||||
public interface onActionListener{
|
||||
void onGoIntoRoom(DialogInterface dialogInterface);
|
||||
void onCancel(DialogInterface dialogInterface);
|
||||
}
|
||||
}
|
@@ -1,26 +0,0 @@
|
||||
package com.yizhuan.erban.home.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog;
|
||||
import com.yizhuan.erban.databinding.DialogRoomShowsBinding;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
|
||||
@ActLayoutRes(R.layout.dialog_room_shows)
|
||||
public class RoomShowsDialog extends BaseBindingDialog<DialogRoomShowsBinding> {
|
||||
public RoomShowsDialog(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
binding.ivClose.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,423 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.Util;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView;
|
||||
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.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.family.view.activity.FamilyHomeActivity;
|
||||
import com.yizhuan.erban.family.view.activity.FamilyPlazaActivity;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyBannerAdapter;
|
||||
import com.yizhuan.erban.home.adapter.FindStarFamilyAdapter;
|
||||
import com.yizhuan.erban.home.presenter.FamilyFragmentPresenter;
|
||||
import com.yizhuan.erban.home.view.IFamilyFragmentView;
|
||||
import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.SquareImageView;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.HorizontalDecoration;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_core.family.bean.CustomServiceInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyCustomServiceInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FindBannerInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RankingFamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
@CreatePresenter(FamilyFragmentPresenter.class)
|
||||
public class FamilyFragment extends BaseMvpFragment<IFamilyFragmentView, FamilyFragmentPresenter>
|
||||
implements IFamilyFragmentView, View.OnClickListener, SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
private SwipeRefreshLayout srlRefreshContainer;
|
||||
private LinearLayout rlBannerContainer;
|
||||
|
||||
|
||||
private RollPagerView rpvFamilyPlaza;
|
||||
private LinearLayout llFamilyPlaza;
|
||||
private LinearLayout llCreateFamily;
|
||||
private LinearLayout llMyFamilyContainer;
|
||||
private TextView tvTitle;
|
||||
private LinearLayout llMyFamily;
|
||||
private SquareImageView ivCover;
|
||||
private TextView tvFamilyName;
|
||||
private TextView tvFamilyId;
|
||||
private TextView tvFamilyMemberCount;
|
||||
private LinearLayout llStarFamilyContainer;
|
||||
private RecyclerView rvStartFamilyList;
|
||||
|
||||
private LinearLayout llFamilyCustomerService;
|
||||
private LinearLayout llFamilyInstruction;
|
||||
// private TextView tvCustomerServiceHotline;
|
||||
// private TextView tvCustomerServiceId;
|
||||
|
||||
|
||||
private FamilyBannerAdapter bannerAdapter;
|
||||
private FindStarFamilyAdapter starFamilyAdapter;
|
||||
|
||||
@Override
|
||||
public void setUserVisibleHint(boolean isVisibleToUser) {
|
||||
super.setUserVisibleHint(isVisibleToUser);
|
||||
|
||||
// 模拟展示家族tab的操作
|
||||
if (isVisibleToUser) {
|
||||
StatisticManager.Instance().onEvent(BasicConfig.INSTANCE.getAppContext(),
|
||||
StatisticsProtocol.Event.HOME_FAMILY_CLICK, "家族tab", null);
|
||||
}
|
||||
}
|
||||
|
||||
public static Fragment newInstance() {
|
||||
return new FamilyFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_family;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
srlRefreshContainer = (SwipeRefreshLayout) getView().findViewById(R.id.srl_refresh_container);
|
||||
|
||||
rlBannerContainer = getView().findViewById(R.id.rl_banner_container);
|
||||
rpvFamilyPlaza = (RollPagerView) getView().findViewById(R.id.rpv_family_plaza);
|
||||
|
||||
llFamilyPlaza = (LinearLayout) getView().findViewById(R.id.ll_family_plaza);
|
||||
llCreateFamily = (LinearLayout) getView().findViewById(R.id.ll_create_family);
|
||||
|
||||
llMyFamilyContainer = (LinearLayout) getView().findViewById(R.id.ll_my_family_container);
|
||||
tvTitle = (TextView) getView().findViewById(R.id.tv_title);
|
||||
llMyFamily = (LinearLayout) getView().findViewById(R.id.ll_my_family);
|
||||
ivCover = (SquareImageView) getView().findViewById(R.id.iv_cover);
|
||||
tvFamilyName = (TextView) getView().findViewById(R.id.tv_family_name);
|
||||
tvFamilyId = (TextView) getView().findViewById(R.id.tv_family_id);
|
||||
tvFamilyMemberCount = (TextView) getView().findViewById(R.id.tv_family_member_count);
|
||||
|
||||
llStarFamilyContainer = (LinearLayout) getView().findViewById(R.id.ll_star_family_container);
|
||||
rvStartFamilyList = (RecyclerView) getView().findViewById(R.id.rv_start_family_list);
|
||||
|
||||
llFamilyCustomerService = (LinearLayout) getView().findViewById(R.id.ll_family_customer_service);
|
||||
llFamilyInstruction = (LinearLayout) getView().findViewById(R.id.ll_family_instruction);
|
||||
// tvCustomerServiceHotline = (TextView) getView().findViewById(R.id.tv_customer_service_hotline);
|
||||
// tvCustomerServiceId = (TextView) getView().findViewById(R.id.tv_customer_service_id);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
srlRefreshContainer.setOnRefreshListener(this);
|
||||
llFamilyPlaza.setOnClickListener(this);
|
||||
llCreateFamily.setOnClickListener(this);
|
||||
llMyFamily.setOnClickListener(this);
|
||||
llFamilyCustomerService.setOnClickListener(this);
|
||||
llFamilyInstruction.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
// rvStartFamilyList.setLayoutManager(new FullyGridLayoutManager(getActivity(), 3));
|
||||
// rvStartFamilyList.addItemDecoration(new SpacingDecoration(0, 30, true));
|
||||
rvStartFamilyList.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
rvStartFamilyList.addItemDecoration(new HorizontalDecoration(ScreenUtil.dip2px(17), true, true));
|
||||
starFamilyAdapter = new FindStarFamilyAdapter(getActivity(), new ArrayList<>());
|
||||
starFamilyAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
RankingFamilyInfo familyInfo = (RankingFamilyInfo) adapter.getData().get(position);
|
||||
FamilyHomeActivity.start(getActivity(), familyInfo.getId());
|
||||
}
|
||||
});
|
||||
rvStartFamilyList.setAdapter(starFamilyAdapter);
|
||||
|
||||
bannerAdapter = new FamilyBannerAdapter(new ArrayList<>(), getContext());
|
||||
rpvFamilyPlaza.setAdapter(bannerAdapter);
|
||||
rpvFamilyPlaza.setPlayDelay(3000);
|
||||
//设置透明度
|
||||
rpvFamilyPlaza.setAnimationDurtion(500);
|
||||
rpvFamilyPlaza.setVisibility(View.VISIBLE);
|
||||
rpvFamilyPlaza.setHintView(new ColorPointHintView(getContext(), Color.WHITE, this.getResources().getColor(R.color.color_66FFFFFF)) {
|
||||
@Override
|
||||
public Drawable makeFocusDrawable() {
|
||||
GradientDrawable dotFocus = new GradientDrawable();
|
||||
dotFocus.setColor(Color.WHITE);
|
||||
dotFocus.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotFocus.setSize(Util.dip2px(getContext(), 9), Util.dip2px(getContext(), 4));
|
||||
return dotFocus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable makeNormalDrawable() {
|
||||
GradientDrawable dotNormal = new GradientDrawable();
|
||||
dotNormal.setColor(getContext().getResources().getColor(R.color.color_66FFFFFF));
|
||||
dotNormal.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotNormal.setSize(Util.dip2px(getContext(), 4), Util.dip2px(getContext(), 4));
|
||||
return dotNormal;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
loadData();
|
||||
// getMvpPresenter().showCustomerServiceInfo().subscribe(new SingleObserver<FamilyCustomServiceInfo>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// mCompositeDisposable.add(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onSuccess(FamilyCustomServiceInfo familyCustomServiceInfo) {
|
||||
// onCustomServiceInfo(familyCustomServiceInfo);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(Throwable e) {
|
||||
// onCustomServiceFail(e.getMessage());
|
||||
// }
|
||||
// });
|
||||
|
||||
getMvpPresenter().checkMyFamilyInfo();
|
||||
|
||||
if (ListUtils.isListEmpty(starFamilyAdapter.getData())) {
|
||||
loadWeeklyStarList();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onHiddenChanged(boolean hidden) {
|
||||
super.onHiddenChanged(hidden);
|
||||
// if (!hidden){
|
||||
// loadWeeklyStarList();
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == llFamilyPlaza.getId()) {
|
||||
FamilyPlazaActivity.start(this.getActivity());
|
||||
} else if (id == llCreateFamily.getId()) {
|
||||
CommonWebViewActivity.start(this.getActivity(), UriProvider.getCreateFamilyUrl());
|
||||
} else if (id == llMyFamily.getId()) {
|
||||
|
||||
StatisticManager.Instance().onEvent(BasicConfig.INSTANCE.getAppContext(),
|
||||
StatisticsProtocol.Event.FAMILY_MY_FAMILY_CLICK, "我的家族", null);
|
||||
|
||||
FamilyHomeActivity.start(getActivity(), getMvpPresenter().getMyFamily().getFamilyId());
|
||||
} else if (id == llFamilyCustomerService.getId()) {
|
||||
getMvpPresenter().contactCustomerService().subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
NimP2PMessageActivity.start(getContext(), s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
} else if (id == llFamilyInstruction.getId()) {
|
||||
CommonWebViewActivity.start(getContext(), UriProvider.getFamilyInstructionUrl());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showMyFamilyInfo(FamilyInfo familyInfo) {
|
||||
if (null != familyInfo) {
|
||||
llMyFamilyContainer.setVisibility(View.VISIBLE);
|
||||
GlideApp.with(this)
|
||||
.load(familyInfo.getFamilyIcon())
|
||||
.dontAnimate()
|
||||
.transforms(new CenterCrop(), new RoundedCorners(10))
|
||||
.into(ivCover);
|
||||
tvFamilyName.setText(familyInfo.getFamilyName());
|
||||
tvFamilyId.setText(String.format(Locale.CHINA, "ID:%s", familyInfo.getFamilyId()));
|
||||
tvFamilyMemberCount.setText(String.format(Locale.CHINA, "成员:%s", String.valueOf(familyInfo.getMemberCount())));
|
||||
|
||||
llCreateFamily.setVisibility(View.GONE);
|
||||
} else {
|
||||
llCreateFamily.setVisibility(View.VISIBLE);
|
||||
llMyFamilyContainer.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCustomServiceInfo(FamilyCustomServiceInfo customServiceInfo) {
|
||||
List<CustomServiceInfo> customServiceInfoList = customServiceInfo.getServices();
|
||||
for (int i = 0; i < customServiceInfoList.size(); i++) {
|
||||
CustomServiceInfo serviceInfo = customServiceInfoList.get(i);
|
||||
if (serviceInfo.getType() == CustomServiceInfo.TYPE_ONLINE) {
|
||||
// tvCustomerServiceId.setText(String.format(getResources().getString(R.string.family_customer_service_hint),
|
||||
// serviceInfo.getContent()));
|
||||
} else if (serviceInfo.getType() == CustomServiceInfo.TYPE_PHONE) {
|
||||
// tvCustomerServiceHotline.setText(String.format(getResources().getString(R.string.family_customer_service_hotline),
|
||||
// serviceInfo.getContent()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCustomServiceFail(String reason) {
|
||||
toast(reason);
|
||||
}
|
||||
|
||||
private void loadWeeklyStarList() {
|
||||
getMvpPresenter().loadWeeklyStarList().subscribe(new SingleObserver<List<RankingFamilyInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<RankingFamilyInfo> list) {
|
||||
if (ListUtils.isListEmpty(list)) {
|
||||
llStarFamilyContainer.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
llStarFamilyContainer.setVisibility(View.VISIBLE);
|
||||
starFamilyAdapter.setNewData(list);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData() {
|
||||
Observable.create(new ObservableOnSubscribe<Integer>() {
|
||||
@Override
|
||||
public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
|
||||
getMvpPresenter().loadBannerDate().subscribe(new SingleObserver<List<FindBannerInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<FindBannerInfo> bannerInfoList) {
|
||||
emitter.onNext(1);
|
||||
if (ListUtils.isListEmpty(bannerInfoList)) {
|
||||
rlBannerContainer.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
rlBannerContainer.setVisibility(View.VISIBLE);
|
||||
bannerAdapter.setNewData(bannerInfoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
emitter.onNext(1);
|
||||
}
|
||||
});
|
||||
|
||||
getMvpPresenter().loadWeeklyStarList().subscribe(new SingleObserver<List<RankingFamilyInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<RankingFamilyInfo> list) {
|
||||
emitter.onNext(1);
|
||||
if (ListUtils.isListEmpty(list)) {
|
||||
llStarFamilyContainer.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
llStarFamilyContainer.setVisibility(View.VISIBLE);
|
||||
starFamilyAdapter.setNewData(list);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
emitter.onNext(1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}).subscribe(new Observer<Integer>() {
|
||||
Disposable disposable;
|
||||
int i = 0;
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
disposable = d;
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(Integer integer) {
|
||||
i += integer;
|
||||
if (i == 2) {
|
||||
srlRefreshContainer.setRefreshing(false);
|
||||
disposable.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,575 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.Util;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView;
|
||||
import com.netease.nim.uikit.api.NimUIKit;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||
import com.netease.nimlib.sdk.msg.attachment.MsgAttachment;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.home.adapter.BannerAdapter;
|
||||
import com.yizhuan.erban.home.adapter.ErbanTopMessageAdapter;
|
||||
import com.yizhuan.erban.home.adapter.FindAdapter;
|
||||
import com.yizhuan.erban.home.adapter.HomeHallAdapter;
|
||||
import com.yizhuan.erban.home.presenter.FindFragmentPresenter;
|
||||
import com.yizhuan.erban.home.view.IFindFragmentView;
|
||||
import com.yizhuan.erban.public_chat_hall.activity.PublicChatHallHomeActivity;
|
||||
import com.yizhuan.erban.public_chat_hall.msg.viewholder.ChatRoomViewHolderHelper;
|
||||
import com.yizhuan.erban.ui.widget.InterceptTouchLayout;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.BetterMarqueeView;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.SpacingDecoration;
|
||||
import com.yizhuan.tutu.mentoring_relationship.activity.MentoringRelationshipActivity;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.auth.event.LoginEvent;
|
||||
import com.yizhuan.xchat_android_core.gift.GiftModel;
|
||||
import com.yizhuan.xchat_android_core.gift.bean.GiftInfo;
|
||||
import com.yizhuan.xchat_android_core.gift.bean.GiftReceiveInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.FindEntranceInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.FindInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeHallMsgInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.MakeFriendsHallInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.VMTopMessageInfo;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.GiftAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.ImTipAttachment;
|
||||
import com.yizhuan.xchat_android_core.level.UserLevelResourceType;
|
||||
import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleResourceType;
|
||||
import com.yizhuan.xchat_android_core.public_chat_hall.attachment.AitFriendsAttachment;
|
||||
import com.yizhuan.xchat_android_core.public_chat_hall.bean.AitFriendsInfo;
|
||||
import com.yizhuan.xchat_android_core.public_chat_hall.event.PublicChatHallAitMeEvent;
|
||||
import com.yizhuan.xchat_android_core.public_chat_hall.event.PublicChatHallHistoryEvent;
|
||||
import com.yizhuan.xchat_android_core.public_chat_hall.event.PublicChatHallMsgIncomingEvent;
|
||||
import com.yizhuan.xchat_android_core.public_chat_hall.manager.PublicChatHallDataManager;
|
||||
import com.yizhuan.xchat_android_core.radish.event.ReceivePrizeEvent;
|
||||
import com.yizhuan.xchat_android_core.radish.event.SignInSuccessEvent;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.list.NoScrollingLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/22
|
||||
*/
|
||||
@CreatePresenter(FindFragmentPresenter.class)
|
||||
public class FindFragment extends BaseMvpFragment<IFindFragmentView, FindFragmentPresenter>
|
||||
implements IFindFragmentView, View.OnClickListener {
|
||||
public final static String TAG = FindFragment.class.getSimpleName();
|
||||
|
||||
private RecyclerView rvEntrance;
|
||||
private LinearLayout llMentoringRelationship;
|
||||
private InterceptTouchLayout llPublicChatHallContainer;
|
||||
|
||||
private FindAdapter findAdapter;
|
||||
private View tvMore;
|
||||
private TextView tvHallNewAitTips;
|
||||
private RecyclerView publicChatHallMsgView;
|
||||
private MakeFriendsHallInfo makeFriendsHallInfo;
|
||||
private SimpleDateFormat chatHallTimeFormater = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", Locale.getDefault());
|
||||
private ChatRoomMessage tempMsg = null;
|
||||
private final int hallMsgMaxSize = 30;
|
||||
private HomeHallAdapter homeHallAdapter;
|
||||
// private CircleImageView newUserAvatarOne;
|
||||
// private CircleImageView newUserAvatarTwo;
|
||||
// private CircleImageView newUserAvatarThree;
|
||||
|
||||
//banner
|
||||
private RollPagerView rollPagerView;
|
||||
//头条
|
||||
private BetterMarqueeView betterMarqueeView;
|
||||
|
||||
private View llTopMsgContainer;
|
||||
|
||||
private SwipeRefreshLayout swipeRefresh;
|
||||
|
||||
public static Fragment newInstance() {
|
||||
return new FindFragment();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_find;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
rvEntrance = (RecyclerView) getView().findViewById(R.id.rv_entrance);
|
||||
|
||||
tvMore = getView().findViewById(R.id.tv_more);
|
||||
tvHallNewAitTips = getView().findViewById(R.id.tv_new_ait_tip);
|
||||
publicChatHallMsgView = getView().findViewById(R.id.rv_hall_msg_list);
|
||||
|
||||
llPublicChatHallContainer = getView().findViewById(R.id.ll_public_chat_hall_container);
|
||||
llMentoringRelationship = getView().findViewById(R.id.ll_mentoring_relationship);
|
||||
|
||||
// newUserAvatarOne = getView().findViewById(R.id.iv_new_user_1);
|
||||
// newUserAvatarTwo = getView().findViewById(R.id.iv_new_user_2);
|
||||
// newUserAvatarThree = getView().findViewById(R.id.iv_new_user_3);
|
||||
|
||||
rollPagerView = getView().findViewById(R.id.roll_view);
|
||||
betterMarqueeView = getView().findViewById(R.id.bmv_marquee_view);
|
||||
llTopMsgContainer = getView().findViewById(R.id.ll_top_msg_container);
|
||||
|
||||
swipeRefresh = getView().findViewById(R.id.swipe_refresh);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
mView = super.onCreateView(inflater, container, savedInstanceState);
|
||||
EventBus.getDefault().register(this);
|
||||
return mView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
tvMore.setOnClickListener(this);
|
||||
tvHallNewAitTips.setOnClickListener(this);
|
||||
llPublicChatHallContainer.setOnClickListener(this);
|
||||
llMentoringRelationship.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
Activity activity = getActivity();
|
||||
if (activity == null) {
|
||||
return;
|
||||
}
|
||||
rvEntrance.setLayoutManager(new GridLayoutManager(mContext, 4));
|
||||
|
||||
findAdapter = new FindAdapter(getActivity(), new ArrayList<>());
|
||||
rvEntrance.setAdapter(findAdapter);
|
||||
rvEntrance.addItemDecoration(new SpacingDecoration(ScreenUtil.dip2px(12), ScreenUtil.dip2px(10), false));
|
||||
|
||||
makeFriendsHallInfo = new MakeFriendsHallInfo();
|
||||
makeFriendsHallInfo.setAitUserName(null);
|
||||
ArrayList<ChatRoomMessage> list = new ArrayList<>(PublicChatHallDataManager.get().getMessages());
|
||||
Collections.reverse(list);
|
||||
while (list.size() > hallMsgMaxSize) {
|
||||
list.remove(0);
|
||||
}
|
||||
makeFriendsHallInfo.setMsgList(transformChatRoomMessage(list));
|
||||
List<HomeHallMsgInfo> chatRoomMessageList = makeFriendsHallInfo.getMsgList();
|
||||
publicChatHallMsgView.setItemAnimator(null);
|
||||
publicChatHallMsgView.setFocusable(false);
|
||||
NoScrollingLinearLayoutManager noScrollingLinearLayoutManager =
|
||||
new NoScrollingLinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false);
|
||||
noScrollingLinearLayoutManager.setScrollEnabled(false);
|
||||
publicChatHallMsgView.setLayoutManager(noScrollingLinearLayoutManager);
|
||||
if (publicChatHallMsgView.getItemDecorationCount() == 0) {
|
||||
publicChatHallMsgView.addItemDecoration(new ColorDecoration(Color.TRANSPARENT, 0, Utils.dip2px(mContext, 10), false));
|
||||
}
|
||||
homeHallAdapter = new HomeHallAdapter(mContext, chatRoomMessageList);
|
||||
publicChatHallMsgView.setAdapter(homeHallAdapter);
|
||||
publicChatHallMsgView.scrollToPosition(homeHallAdapter.getItemCount() - 1);
|
||||
//增加刷新功能
|
||||
swipeRefresh.setOnRefreshListener(() -> getMvpPresenter().loadData());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置音游头条数据
|
||||
*/
|
||||
private void setTuTuTopMessageData(VMTopMessageInfo topMessageInfo) {
|
||||
ErbanTopMessageAdapter adapter = new ErbanTopMessageAdapter(mContext, topMessageInfo.getVmTopMessageList());
|
||||
betterMarqueeView.setAdapter(adapter);
|
||||
betterMarqueeView.start();
|
||||
llTopMsgContainer.setOnClickListener(v -> PublicChatHallHomeActivity.openHeadlinePage(mContext));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (null == getMvpPresenter().getFindInfo()) {
|
||||
getMvpPresenter().loadData();
|
||||
// getMvpPresenter().loadNewerList();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHiddenChanged(boolean hidden) {
|
||||
super.onHiddenChanged(hidden);
|
||||
if (!hidden) {
|
||||
getMvpPresenter().loadData();
|
||||
// getMvpPresenter().loadNewerList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == tvMore.getId() || id == tvHallNewAitTips.getId() || id == llPublicChatHallContainer.getId()) {
|
||||
PublicChatHallHomeActivity.openPublicChatHallPage(mContext);
|
||||
makeFriendsHallInfo.setAitUserName(null);
|
||||
if (tvHallNewAitTips.getVisibility() == View.VISIBLE) {
|
||||
tvHallNewAitTips.setVisibility(View.GONE);
|
||||
}
|
||||
} else if (id == llMentoringRelationship.getId()) {
|
||||
MentoringRelationshipActivity.start(mContext);
|
||||
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.FIND_APPRENTICE_ENTRANCE, "收个徒弟赢钻石");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadData(FindInfo findInfo) {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
findAdapter.setNewData(findInfo.getBanners());
|
||||
//设置banner
|
||||
setBannerData(findInfo.getBannerVos());
|
||||
VMTopMessageInfo info = getMvpPresenter().transformHomeData2TopMessageInfos(findInfo.getTopLineVos());
|
||||
if (info == null) {
|
||||
llTopMsgContainer.setVisibility(View.GONE);
|
||||
} else {
|
||||
llTopMsgContainer.setVisibility(View.VISIBLE);
|
||||
setTuTuTopMessageData(info);
|
||||
}
|
||||
}
|
||||
|
||||
private void setBannerData(List<BannerInfo> bannerList) {
|
||||
if (!ListUtils.isListEmpty(bannerList)) {
|
||||
//审核中状态,去掉跳转房间banner
|
||||
if (MarketVerifyModel.get().isMarketChecking()) {
|
||||
Iterator<BannerInfo> iterator = bannerList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
BannerInfo bannerInfo = iterator.next();
|
||||
if (bannerInfo.getSkipType() == 2) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
ViewGroup.LayoutParams layoutParams = rollPagerView.getLayoutParams();
|
||||
int bannerWidth = UIUtil.getScreenWidth(mContext) - UIUtil.dip2px(mContext, 20) * 2;
|
||||
layoutParams.width = bannerWidth;
|
||||
layoutParams.height = bannerWidth * 232 / 670;
|
||||
rollPagerView.setLayoutParams(layoutParams);
|
||||
|
||||
rollPagerView.setHintView(new ColorPointHintView(mContext, Color.WHITE, mContext.getResources().getColor(R.color.color_66FFFFFF)) {
|
||||
@Override
|
||||
public Drawable makeFocusDrawable() {
|
||||
GradientDrawable dotFocus = new GradientDrawable();
|
||||
dotFocus.setColor(Color.WHITE);
|
||||
dotFocus.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotFocus.setSize(Util.dip2px(getContext(), 9), Util.dip2px(getContext(), 4));
|
||||
return dotFocus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Drawable makeNormalDrawable() {
|
||||
GradientDrawable dotNormal = new GradientDrawable();
|
||||
dotNormal.setColor(mContext.getResources().getColor(R.color.color_66FFFFFF));
|
||||
dotNormal.setCornerRadius(Util.dip2px(getContext(), 2));
|
||||
dotNormal.setSize(Util.dip2px(getContext(), 4), Util.dip2px(getContext(), 4));
|
||||
return dotNormal;
|
||||
}
|
||||
});
|
||||
|
||||
BannerAdapter bannerAdapter = new BannerAdapter(bannerList, mContext);
|
||||
rollPagerView.setAdapter(bannerAdapter);
|
||||
rollPagerView.setPlayDelay(3000);
|
||||
//设置透明度
|
||||
rollPagerView.setAnimationDurtion(500);
|
||||
rollPagerView.setVisibility(View.VISIBLE);
|
||||
bannerAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
rollPagerView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadDataFail(String error) {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
// Toast.makeText(this.getContext(), error, Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(error);
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void onLoadNewUserList(List<UserInfo> userInfoList) {
|
||||
// if (!ListUtils.isListEmpty(userInfoList)) {
|
||||
// newUserAvatarOne.setVisibility(View.GONE);
|
||||
// newUserAvatarTwo.setVisibility(View.GONE);
|
||||
// newUserAvatarThree.setVisibility(View.GONE);
|
||||
// for (int i = 0; i < userInfoList.size(); i++) {
|
||||
// if (i == 0) {
|
||||
// newUserAvatarOne.setVisibility(View.VISIBLE);
|
||||
// ImageLoadUtils.loadAvatar(getContext(), userInfoList.get(i).getAvatar(), newUserAvatarOne);
|
||||
// }
|
||||
// if (i == 1) {
|
||||
// newUserAvatarTwo.setVisibility(View.VISIBLE);
|
||||
// ImageLoadUtils.loadAvatar(getContext(), userInfoList.get(i).getAvatar(), newUserAvatarTwo);
|
||||
// }
|
||||
// if (i == 2) {
|
||||
// newUserAvatarThree.setVisibility(View.VISIBLE);
|
||||
// ImageLoadUtils.loadAvatar(getContext(), userInfoList.get(i).getAvatar(), newUserAvatarThree);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onPublicChatHallHistoryEvent(PublicChatHallHistoryEvent event) {
|
||||
ArrayList<ChatRoomMessage> list = new ArrayList<>(event.getMessages());
|
||||
Collections.reverse(list);
|
||||
while (list.size() > hallMsgMaxSize) {
|
||||
list.remove(0);
|
||||
}
|
||||
updateHallData(list);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onPublicChatHallMsgIncomingEvent(PublicChatHallMsgIncomingEvent event) {
|
||||
ArrayList<ChatRoomMessage> chatRoomMessages = new ArrayList<>();
|
||||
chatRoomMessages.add(event.getChatRoomMessage());
|
||||
updateHallData(chatRoomMessages);
|
||||
}
|
||||
|
||||
|
||||
private void updateHallData(List<ChatRoomMessage> messageList) {
|
||||
if (ListUtils.isListEmpty(makeFriendsHallInfo.getMsgList())) {
|
||||
ArrayList<ChatRoomMessage> list = new ArrayList<>(messageList);
|
||||
makeFriendsHallInfo.setMsgList(transformChatRoomMessage(list));
|
||||
} else {
|
||||
while (makeFriendsHallInfo.getMsgList().size() > hallMsgMaxSize) {
|
||||
makeFriendsHallInfo.getMsgList().remove(0);
|
||||
}
|
||||
makeFriendsHallInfo.getMsgList().addAll(transformChatRoomMessage(messageList));
|
||||
}
|
||||
|
||||
List<HomeHallMsgInfo> chatRoomMessageList = makeFriendsHallInfo.getMsgList();
|
||||
homeHallAdapter.setNewData(chatRoomMessageList);
|
||||
publicChatHallMsgView.scrollToPosition(homeHallAdapter.getItemCount() - 1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onPublicChatHallAitMeEvent(PublicChatHallAitMeEvent event) {
|
||||
makeFriendsHallInfo.setAitUserName(event.getNick());
|
||||
if (!TextUtils.isEmpty(makeFriendsHallInfo.getAitUserName())) {
|
||||
tvHallNewAitTips.setVisibility(View.VISIBLE);
|
||||
String temp = makeFriendsHallInfo.getAitUserName();
|
||||
if (temp.length() >= 6) {
|
||||
temp = temp.substring(0, 4).concat("...");
|
||||
}
|
||||
tvHallNewAitTips.setText(String.format(mContext.getResources().getString(R.string.hall_new_ait_tip), temp));
|
||||
} else {
|
||||
tvHallNewAitTips.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 把chatRoomMessage 转换成我们首页显示上的bean
|
||||
*
|
||||
* @param messageList
|
||||
* @return
|
||||
*/
|
||||
private List<HomeHallMsgInfo> transformChatRoomMessage(List<ChatRoomMessage> messageList) {
|
||||
List<HomeHallMsgInfo> homeHallMsgInfos = new ArrayList<>();
|
||||
|
||||
for (ChatRoomMessage chatRoomMessage : messageList) {
|
||||
if (chatRoomMessage.getAttachment() instanceof ImTipAttachment) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isNeedShowTimeFlag(chatRoomMessage, tempMsg)) {
|
||||
HomeHallMsgInfo item = new HomeHallMsgInfo();
|
||||
item.setItemType(HomeHallMsgInfo.ITEM_TYPE_TIP);
|
||||
item.setMessageType(HomeHallMsgInfo.MESSAGE_TYPE_TIME);
|
||||
item.setFormatTime(chatHallTimeFormater.format(new Date(chatRoomMessage.getTime())));
|
||||
homeHallMsgInfos.add(item);
|
||||
}
|
||||
tempMsg = chatRoomMessage;
|
||||
|
||||
HomeHallMsgInfo item = new HomeHallMsgInfo();
|
||||
item.setFromAccount(chatRoomMessage.getFromAccount());
|
||||
if (item.getFromAccount().equals(String.valueOf(AuthModel.get().getCurrentUid()))) {
|
||||
item.setItemType(HomeHallMsgInfo.ITEM_TYPE_RIGHT);
|
||||
} else {
|
||||
item.setItemType(HomeHallMsgInfo.ITEM_TYPE_LEFT);
|
||||
}
|
||||
final com.netease.nimlib.sdk.uinfo.model.UserInfo userInfo = NimUIKit.getUserInfoProvider().getUserInfo(chatRoomMessage.getFromAccount());
|
||||
if (userInfo != null) {
|
||||
item.setSenderAvatar(userInfo.getAvatar());
|
||||
}
|
||||
item.setNick(ChatRoomViewHolderHelper.getNameText(chatRoomMessage));
|
||||
item.setContent(chatRoomMessage.getContent());
|
||||
//贵族等级,等级,魅力等级相关
|
||||
Map<String, Object> remoteExtension = chatRoomMessage.getRemoteExtension();
|
||||
if (remoteExtension != null) {
|
||||
Map<String, Object> extension = (Map<String, Object>) remoteExtension.get(chatRoomMessage.getFromAccount());
|
||||
if (extension != null) {
|
||||
item.setNobleLevel(extension.get(NobleResourceType.KEY_LEVEL) + "");
|
||||
item.setUserLevelUrl((String) extension.get(UserLevelResourceType.EXPER_URL));
|
||||
item.setUserCharmLevelUrl((String) extension.get(UserLevelResourceType.CHARM_URL));
|
||||
if (extension.get(UserInfo.IS_OFFICIAL) != null) {
|
||||
item.setOfficial((Boolean) extension.get(UserInfo.IS_OFFICIAL));
|
||||
} else {
|
||||
if (extension.get(UserInfo.DEF_USER) != null) {
|
||||
int userType = (int) extension.get(UserInfo.DEF_USER);
|
||||
item.setOfficial(userType == UserInfo.USER_TYPE_OFFICIAL);
|
||||
}
|
||||
}
|
||||
if (extension.get(UserInfo.IS_NEW_USER) != null) {
|
||||
item.setNewUser((Boolean) extension.get(UserInfo.IS_NEW_USER));
|
||||
}
|
||||
if (extension.get(UserInfo.HAS_PRETTY) != null) {
|
||||
item.setPrettyErbanNo((Boolean) extension.get(UserInfo.HAS_PRETTY
|
||||
));
|
||||
}
|
||||
|
||||
if (extension.get(UserInfo.OAC_NAME) != null) {
|
||||
item.setFixedWord((String) extension.get(UserInfo.OAC_NAME));
|
||||
}
|
||||
|
||||
if (extension.get(UserInfo.OAC_ICON) != null) {
|
||||
item.setIconPic((String) extension.get(UserInfo.OAC_ICON));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//礼物的消息的时候
|
||||
MsgAttachment attachment = chatRoomMessage.getAttachment();
|
||||
if (attachment != null) {
|
||||
CustomAttachment customAttachment = (CustomAttachment) chatRoomMessage.getAttachment();
|
||||
int first = customAttachment.getFirst();
|
||||
int second = customAttachment.getSecond();
|
||||
if (first == CustomAttachment.CUSTOM_MSG_PUBLIC_CHAT_HALL) {
|
||||
if (second == CustomAttachment.CUSTOM_MSG_SUB_PUBLIC_CHAT_HALL_GIFT) {
|
||||
GiftAttachment giftAttachment = (GiftAttachment) customAttachment;
|
||||
GiftReceiveInfo giftReceiveInfo = giftAttachment.getGiftReceiveInfo();
|
||||
item.setMessageType(HomeHallMsgInfo.MESSAGE_TYPE_GIFT);
|
||||
item.setTargetNick(giftReceiveInfo.getTargetNick());
|
||||
item.setGiftCount(giftReceiveInfo.getGiftNum());
|
||||
GiftInfo giftInfo = giftReceiveInfo.getGift();
|
||||
if (giftInfo == null) {
|
||||
giftInfo = GiftModel.get().findGiftInfoById(giftReceiveInfo.getGiftId());
|
||||
}
|
||||
if (null != giftInfo) {
|
||||
item.setGiftImage(giftInfo.getGiftUrl());
|
||||
}
|
||||
|
||||
//这里使得内容不为空
|
||||
String sb = "赠送 " + giftReceiveInfo.getTargetNick() + "\n" +
|
||||
"礼物" +
|
||||
"x" +
|
||||
giftReceiveInfo.getGiftNum();
|
||||
item.setContent(sb);
|
||||
} else if (second == CustomAttachment.CUSTOM_MSG_SUB_PUBLIC_CHAT_HALL_AIT) {
|
||||
AitFriendsAttachment aitFriendsAttachment = (AitFriendsAttachment) customAttachment;
|
||||
AitFriendsInfo aitFriendsInfo = aitFriendsAttachment.getAitFriendsInfo();
|
||||
item.setContent(aitFriendsInfo.getContent());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
homeHallMsgInfos.add(item);
|
||||
}
|
||||
return homeHallMsgInfos;
|
||||
}
|
||||
|
||||
private boolean isNeedShowTimeFlag(ChatRoomMessage message, @Nullable ChatRoomMessage anchor) {
|
||||
boolean update = false;
|
||||
if (anchor == null) {
|
||||
return true;
|
||||
}
|
||||
long time = anchor.getTime();
|
||||
long now = message.getTime();
|
||||
if (now - time > (long) (5 * 60 * 1000)) {
|
||||
update = true;
|
||||
}
|
||||
return update;
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onLoginEvent(LoginEvent event) {
|
||||
//不同用户的,签到和任务状态不同,需要刷新
|
||||
getMvpPresenter().loadData();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onSignInSuccessEvent(SignInSuccessEvent event) {
|
||||
//签到成功,做一下数字处理
|
||||
if (findAdapter == null) {
|
||||
return;
|
||||
}
|
||||
List<FindEntranceInfo> list = findAdapter.getData();
|
||||
if (ListUtils.isListEmpty(list)) {
|
||||
return;
|
||||
}
|
||||
for (FindEntranceInfo info : list) {
|
||||
if (info == null) {
|
||||
continue;
|
||||
}
|
||||
if (info.getActivityType() == FindEntranceInfo.ACTIVITYTYPE_SIGN_IN) {
|
||||
info.setSignStatus(true);
|
||||
} else if (info.getActivityType() == FindEntranceInfo.ACTIVITYTYPE_TASK) {
|
||||
int num = info.getMissionNum() - 1;
|
||||
if (num < 0) {
|
||||
num = 0;
|
||||
}
|
||||
info.setMissionNum(num);
|
||||
}
|
||||
}
|
||||
findAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onReceivePrizeEvent(ReceivePrizeEvent event) {
|
||||
getMvpPresenter().loadData();
|
||||
}
|
||||
|
||||
}
|
@@ -1,229 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.netease.nim.uikit.common.ui.draggablebubbles.BubbleView;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.common.widget.DragLayout;
|
||||
import com.yizhuan.erban.community.publish.view.PublishActivity;
|
||||
import com.yizhuan.erban.home.adapter.FragmentViewPagerAdapter;
|
||||
import com.yizhuan.erban.home.adapter.TopMagicIndicatorAdapter;
|
||||
import com.yizhuan.erban.home.presenter.FindTabFragmentPresenter;
|
||||
import com.yizhuan.erban.home.view.IFindTabFragmentView;
|
||||
import com.yizhuan.erban.community.square.SquareFragment;
|
||||
import com.yizhuan.erban.ui.behavior.FixAppBarBehavior;
|
||||
import com.yizhuan.erban.ui.widget.OnPageSelectedListener;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
|
||||
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.community.event.UnReadCountEvent;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
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;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.functions.BiConsumer;
|
||||
|
||||
import static android.view.View.GONE;
|
||||
import static android.view.View.VISIBLE;
|
||||
|
||||
@CreatePresenter(FindTabFragmentPresenter.class)
|
||||
public class FindTabFragment extends BaseMvpFragment<IFindTabFragmentView, FindTabFragmentPresenter>
|
||||
implements IFindTabFragmentView, TopMagicIndicatorAdapter.OnItemSelectListener, View.OnClickListener {
|
||||
|
||||
public static final String TAG = "FindTabFragment";
|
||||
|
||||
private MagicIndicator miHomeIndicator;
|
||||
private ViewPager mainViewpager;
|
||||
|
||||
private FrameLayout flContactList;
|
||||
private TextView tvCommunityUnread;
|
||||
private AppBarLayout appBarLayout;
|
||||
private RelativeLayout rlTopGroup;
|
||||
private DragLayout ivSquarePublish;
|
||||
|
||||
public static Fragment newInstance() {
|
||||
return new FindFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_find_tab;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
miHomeIndicator = mView.findViewById(R.id.mi_home_indicator);
|
||||
mainViewpager = mView.findViewById(R.id.main_viewpager);
|
||||
|
||||
flContactList = mView.findViewById(R.id.fl_contact_list);
|
||||
tvCommunityUnread = mView.findViewById(R.id.msg_number);
|
||||
appBarLayout = mView.findViewById(R.id.app_bar_layout);
|
||||
|
||||
rlTopGroup = mView.findViewById(R.id.rl_top_group);
|
||||
ivSquarePublish = mView.findViewById(R.id.iv_square_publish);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
if (flContactList != null) {
|
||||
flContactList.setOnClickListener(this);
|
||||
}
|
||||
|
||||
if (ivSquarePublish != null) {
|
||||
ivSquarePublish.setOnClickListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
EventBus.getDefault().register(this);
|
||||
|
||||
List<String> mTabInfoList = new ArrayList<>();
|
||||
List<Fragment> fragmentList = new ArrayList<>();
|
||||
|
||||
//广场 1.3.2版本添加
|
||||
mTabInfoList.add(getResources().getString(R.string.dys_find_tab_square));
|
||||
fragmentList.add(SquareFragment.newInstance());
|
||||
|
||||
mTabInfoList.add(getResources().getString(R.string.main_find));
|
||||
fragmentList.add(FindFragment.newInstance());
|
||||
|
||||
if (!MarketVerifyModel.get().isMarketChecking()) {
|
||||
mTabInfoList.add(getResources().getString(R.string.main_tab_family));
|
||||
fragmentList.add(FamilyFragment.newInstance());
|
||||
}
|
||||
|
||||
CommonNavigator commonNavigator = new CommonNavigator(getContext());
|
||||
TopMagicIndicatorAdapter magicIndicatorAdapter = new TopMagicIndicatorAdapter(getContext(), mTabInfoList);
|
||||
magicIndicatorAdapter.setOnItemSelectListener(this);
|
||||
|
||||
commonNavigator.setAdapter(magicIndicatorAdapter);
|
||||
miHomeIndicator.setNavigator(commonNavigator);
|
||||
mainViewpager.setAdapter(new FragmentViewPagerAdapter(getChildFragmentManager(), fragmentList));
|
||||
mainViewpager.setOffscreenPageLimit(3);
|
||||
ViewPagerHelper.bind(miHomeIndicator, mainViewpager);
|
||||
|
||||
getUnReadCount();
|
||||
mainViewpager.addOnPageChangeListener(new OnPageSelectedListener() {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
updateTopView(position);
|
||||
}
|
||||
});
|
||||
updateTopView(0);
|
||||
|
||||
}
|
||||
|
||||
private void updateTopView(int currPos) {
|
||||
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) rlTopGroup.getLayoutParams();
|
||||
if (currPos == 0) {
|
||||
ivSquarePublish.setVisibility(VISIBLE);
|
||||
flContactList.setVisibility(VISIBLE);
|
||||
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL);
|
||||
} else {
|
||||
ivSquarePublish.setVisibility(GONE);
|
||||
flContactList.setVisibility(View.INVISIBLE);
|
||||
params.setScrollFlags(0);
|
||||
}
|
||||
rlTopGroup.setLayoutParams(params);
|
||||
}
|
||||
|
||||
|
||||
public void scrollToTop() {
|
||||
try {
|
||||
FixAppBarBehavior behavior = (FixAppBarBehavior)
|
||||
((CoordinatorLayout.LayoutParams)appBarLayout.getLayoutParams())
|
||||
.getBehavior();
|
||||
if (behavior != null) {
|
||||
behavior.setTopAndBottomOffset(0);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemSelect(int position) {
|
||||
mainViewpager.setCurrentItem(position);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onUnReadCount(UnReadCountEvent event) {
|
||||
setNumber(event.getTotal());
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
public void setNumber(int number) {
|
||||
if(tvCommunityUnread instanceof BubbleView){
|
||||
((BubbleView) tvCommunityUnread).setNumText(number);
|
||||
return;
|
||||
}
|
||||
tvCommunityUnread.setVisibility(number <= 0 ? GONE : VISIBLE);
|
||||
if (number > 99) {
|
||||
tvCommunityUnread.setText("99+");
|
||||
} else
|
||||
tvCommunityUnread.setText(String.valueOf(number));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onLoginUserInfoUpdateEvent(LoadLoginUserInfoEvent event) {
|
||||
getUnReadCount();
|
||||
}
|
||||
|
||||
@SuppressWarnings("CheckResult")
|
||||
private void getUnReadCount() {
|
||||
HomeModel.get().getUnreadCount(AuthModel.get().getCurrentUid())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new BiConsumer<Integer, Throwable>() {
|
||||
@Override
|
||||
public void accept(Integer integer, Throwable throwable) throws Exception {
|
||||
if (integer != null) {
|
||||
EventBus.getDefault().post(new UnReadCountEvent(integer));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.fl_contact_list:
|
||||
CommunityNoticeAct.start(mContext);
|
||||
break;
|
||||
|
||||
case R.id.iv_square_publish:
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_WORLD_PUBLISH_MOMENTS_B,
|
||||
"发布动态-广场");
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_WORLD_PUBLISH_MOMENTS,
|
||||
"发布动态-区分话题-无话题");
|
||||
PublishActivity.start(getDialogManager());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
@@ -116,7 +116,6 @@ public class HomeFragment extends BaseMvpFragment<IMainFragmentView, MainFragmen
|
||||
private final List<CharSequence> mTabInfoList = new ArrayList<>();
|
||||
private FragmentGameHomeBinding mBinding;
|
||||
private List<Fragment> mFragmentsBottom;
|
||||
private Handler uiHandler;
|
||||
private boolean needAutoScroll = true;
|
||||
private HomeAddFriendsAdapter addFriendsAdapter;
|
||||
private BannerAdapter bannerAdapter;
|
||||
@@ -193,7 +192,6 @@ public class HomeFragment extends BaseMvpFragment<IMainFragmentView, MainFragmen
|
||||
@Override
|
||||
public void initiate() {
|
||||
mBinding.rollView.setVisibility(View.GONE);
|
||||
this.uiHandler = new Handler();
|
||||
initGuide();
|
||||
initRefreshView();
|
||||
initTitleTab();
|
||||
@@ -352,16 +350,6 @@ public class HomeFragment extends BaseMvpFragment<IMainFragmentView, MainFragmen
|
||||
getMvpPresenter().getHomeConcerns();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void titleListSuccess(List<TagListInfo> tagListInfoList) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void titleListFail(String msg) {
|
||||
SingleToastUtil.showToast(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* 推荐房间
|
||||
*
|
||||
@@ -401,21 +389,6 @@ public class HomeFragment extends BaseMvpFragment<IMainFragmentView, MainFragmen
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetFirstPageBannerFailed(String message) {
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void roomWorldModeCloseSuccess() {
|
||||
OpenRoomHelper.openRoom(getBaseActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void roomWorldModeCloseFail(String error) {
|
||||
toast(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetHomeBannerSuccess(List<BannerInfo> bannerInfos) {
|
||||
setBanner(bannerInfos);
|
||||
@@ -474,14 +447,6 @@ public class HomeFragment extends BaseMvpFragment<IMainFragmentView, MainFragmen
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getRoomShortcut(String data) {
|
||||
if (TextUtils.isEmptyText(data)) {
|
||||
return;
|
||||
}
|
||||
AVRoomActivity.start(mContext, Long.parseLong(data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户信息更新
|
||||
*
|
||||
|
@@ -1,319 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadmoreListener;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseFragment;
|
||||
import com.yizhuan.erban.common.NoDataFragment;
|
||||
import com.yizhuan.erban.home.adapter.HomeFragmentAdapter;
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeItem;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CancellationException;
|
||||
|
||||
import io.reactivex.functions.BiConsumer;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* 语音排队 没用下拉式的tab
|
||||
*/
|
||||
public class HomeOtherTabFragment extends BaseFragment {
|
||||
|
||||
|
||||
public static final int ROWS = 2;
|
||||
|
||||
private static final int PAGE_SIZE = 20;
|
||||
|
||||
|
||||
private static final String PARAM_TAB_ID = "tabId";
|
||||
private String tabId;
|
||||
private RecyclerView recyclerView;
|
||||
private SmartRefreshLayout smartRefreshLayout;
|
||||
private int pageIndex = 1;
|
||||
private HomeFragmentAdapter mHomeHotAdapter;
|
||||
private final Object lock = new Object();
|
||||
/**
|
||||
* 是否包含了banner
|
||||
*/
|
||||
private boolean isContainsBanner = false;
|
||||
/**
|
||||
* 广告
|
||||
*/
|
||||
private HomeItem<ArrayList<BannerInfo>> bannerHomeItem;
|
||||
|
||||
/**
|
||||
* 用于显示的数据
|
||||
*/
|
||||
private List<HomeItem> totalHomeItemList = new ArrayList<>();
|
||||
|
||||
public static HomeOtherTabFragment newInstance(int tabId) {
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putString(PARAM_TAB_ID, String.valueOf(tabId));
|
||||
HomeOtherTabFragment fragment = new HomeOtherTabFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
public HomeOtherTabFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getArguments() != null) {
|
||||
tabId = getArguments().getString(PARAM_TAB_ID);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_home_other_tab;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
super.onFindViews();
|
||||
recyclerView = mView.findViewById(R.id.recycler_view);
|
||||
smartRefreshLayout = mView.findViewById(R.id.smart_refresh_layout);
|
||||
initRefreshView();
|
||||
initRecyclerView();
|
||||
|
||||
}
|
||||
|
||||
private void initRefreshView() {
|
||||
|
||||
smartRefreshLayout.setEnableRefresh(true);
|
||||
smartRefreshLayout.setOnRefreshListener(new OnRefreshLoadmoreListener() {
|
||||
@Override
|
||||
public void onLoadmore(RefreshLayout refreshlayout) {
|
||||
loadMoreData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh(RefreshLayout refreshlayout) {
|
||||
refreshData();
|
||||
}
|
||||
});
|
||||
smartRefreshLayout.setEnableLoadmore(false);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新数据
|
||||
*/
|
||||
public void refresh() {
|
||||
smartRefreshLayout.autoRefresh();
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新数据
|
||||
*/
|
||||
private void refreshData() {
|
||||
pageIndex = 1;
|
||||
getData(true);
|
||||
}
|
||||
|
||||
private void loadMoreData() {
|
||||
getData(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求数据
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
private void getData(boolean isRefresh) {
|
||||
HomeModel.get()
|
||||
.getTabRoomList(pageIndex, PAGE_SIZE, tabId)
|
||||
.map(new Function<List<HomeRoom>, List<HomeItem>>() {
|
||||
@Override
|
||||
public List<HomeItem> apply(List<HomeRoom> homeRooms) throws Exception {
|
||||
|
||||
if (ListUtils.isListEmpty(homeRooms)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<HomeItem> list = new ArrayList<>(homeRooms.size());
|
||||
for (HomeRoom homeRoom : homeRooms) {
|
||||
HomeItem homeItem = new HomeItem(HomeItem.TYPE_BLOCK_SINGLE, homeRoom);
|
||||
list.add(homeItem);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
})
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
|
||||
.subscribe(new BiConsumer<List<HomeItem>, Throwable>() {
|
||||
@Override
|
||||
public void accept(List<HomeItem> homeItems, Throwable throwable) throws Exception {
|
||||
if (throwable == null) {
|
||||
if (ListUtils.isListEmpty(homeItems)) {
|
||||
mHomeHotAdapter.setEnableLoadMore(false);
|
||||
if (isRefresh) {
|
||||
totalHomeItemList.clear();
|
||||
mHomeHotAdapter.notifyDataSetChanged();
|
||||
}
|
||||
} else {
|
||||
pageIndex++;
|
||||
//添加虚位以待
|
||||
int count = homeItems.size() % ROWS;
|
||||
if (count != 0) {
|
||||
count = ROWS - count;
|
||||
}
|
||||
for (int i = 0; i < count; i++) {
|
||||
homeItems.add(new HomeItem(HomeItem.TYPE_DOUBLE_SQUARE_EMPTY));
|
||||
}
|
||||
synchronized (lock) {
|
||||
if (isRefresh) {
|
||||
totalHomeItemList.clear();
|
||||
|
||||
totalHomeItemList.addAll(homeItems);
|
||||
isContainsBanner = false;
|
||||
recombinationData();
|
||||
} else {
|
||||
totalHomeItemList.addAll(homeItems);
|
||||
mHomeHotAdapter.notifyDataSetChanged();
|
||||
}
|
||||
mHomeHotAdapter.setEnableLoadMore(true);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
if (!(throwable instanceof CancellationException)) {
|
||||
toast("请求失败,请稍后再试!!" + throwable.getMessage());
|
||||
}
|
||||
}
|
||||
if (isRefresh) {
|
||||
smartRefreshLayout.finishRefresh();
|
||||
mHomeHotAdapter.loadMoreComplete();
|
||||
} else {
|
||||
mHomeHotAdapter.loadMoreComplete();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
recyclerView.setItemAnimator(null);
|
||||
mHomeHotAdapter = new HomeFragmentAdapter(getContext(), totalHomeItemList);
|
||||
mHomeHotAdapter.setEnableLoadMore(false);
|
||||
GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), ROWS);
|
||||
mHomeHotAdapter.setSpanSizeLookup(new BaseQuickAdapter.SpanSizeLookup() {
|
||||
@Override
|
||||
public int getSpanSize(GridLayoutManager gridLayoutManager, int position) {
|
||||
HomeItem homeItem = mHomeHotAdapter.getItem(position);
|
||||
if (homeItem != null && (homeItem.getItemType() == HomeItem.TYPE_BLOCK_SINGLE || homeItem.getItemType() == HomeItem.TYPE_DOUBLE_SQUARE_EMPTY)) {
|
||||
return 1;
|
||||
}
|
||||
return gridLayoutManager.getSpanCount();
|
||||
}
|
||||
});
|
||||
mHomeHotAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
loadMoreData();
|
||||
}
|
||||
}, recyclerView);
|
||||
mHomeHotAdapter.setEnableLoadMore(false);
|
||||
recyclerView.setLayoutManager(gridLayoutManager);
|
||||
recyclerView.setAdapter(mHomeHotAdapter);
|
||||
|
||||
View emptyView = getLayoutInflater().inflate(R.layout.layout_home_empty_no_header, null);
|
||||
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
emptyView.setLayoutParams(lp);
|
||||
mHomeHotAdapter.setEmptyView(emptyView);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
refresh();
|
||||
initBanner();
|
||||
}
|
||||
|
||||
private void initBanner() {
|
||||
HomeModel.get()
|
||||
.getTabBanner(tabId)
|
||||
.map(new Function<ArrayList<BannerInfo>, HomeItem<ArrayList<BannerInfo>>>() {
|
||||
@Override
|
||||
public HomeItem<ArrayList<BannerInfo>> apply(ArrayList<BannerInfo> bannerInfos) throws Exception {
|
||||
if (ListUtils.isListEmpty(bannerInfos)) {
|
||||
return null;
|
||||
}
|
||||
HomeItem homeItem = new HomeItem(HomeItem.TYPE_BANNER_NO_TOP_BG, bannerInfos);
|
||||
return homeItem;
|
||||
}
|
||||
})
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new BiConsumer<HomeItem<ArrayList<BannerInfo>>, Throwable>() {
|
||||
@Override
|
||||
public void accept(HomeItem<ArrayList<BannerInfo>> homeItem, Throwable throwable) throws Exception {
|
||||
if (throwable == null) {
|
||||
bannerHomeItem = homeItem;
|
||||
recombinationData();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void recombinationData() {
|
||||
synchronized (lock) {
|
||||
List<HomeItem> homeItems = totalHomeItemList;
|
||||
if (bannerHomeItem != null && !isContainsBanner) {
|
||||
|
||||
totalHomeItemList.add(homeItems.size() > 4 ? 4 : homeItems.size(), bannerHomeItem);
|
||||
isContainsBanner = true;
|
||||
}
|
||||
mHomeHotAdapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUserVisibleHint(boolean isVisibleToUser) {
|
||||
super.setUserVisibleHint(isVisibleToUser);
|
||||
}
|
||||
|
||||
@SuppressLint("ResourceType")
|
||||
@Override
|
||||
public void showNoData(View view, int drawable, CharSequence charSequence) {
|
||||
if (!checkActivityValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (view == null) {
|
||||
MLog.error(this, "xuwakao, showNoData view is NULL");
|
||||
return;
|
||||
}
|
||||
View status = view.findViewById(R.id.status_layout);
|
||||
if (status == null || status.getId() <= 0) {
|
||||
MLog.error(this, "xuwakao, had not set layout id ");
|
||||
return;
|
||||
}
|
||||
NoDataFragment fragment = NoDataFragment.newInstance(R.layout.layout_home_empty_no_header, drawable, charSequence);
|
||||
fragment.setListener(getLoadListener());
|
||||
getChildFragmentManager().beginTransaction().replace(status.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
|
||||
}
|
||||
}
|
@@ -1,145 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.graphics.Color;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.home.adapter.KTVTypeRoomAdapter;
|
||||
import com.yizhuan.erban.home.presenter.HottestKTVRoomFragmentPresenter;
|
||||
import com.yizhuan.erban.home.view.IHottestKTVRoomFragmentView;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.xchat_android_core.home.bean.KTVRoom;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Action;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/31
|
||||
*/
|
||||
@CreatePresenter(HottestKTVRoomFragmentPresenter.class)
|
||||
public class HottestKTVRoomFragment extends BaseMvpFragment<IHottestKTVRoomFragmentView, HottestKTVRoomFragmentPresenter>
|
||||
implements IHottestKTVRoomFragmentView, SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener {
|
||||
|
||||
private SwipeRefreshLayout srlRefreshContainer;
|
||||
private RecyclerView rvList;
|
||||
|
||||
private KTVTypeRoomAdapter adapter;
|
||||
|
||||
public static Fragment newInstance() {
|
||||
return new HottestKTVRoomFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_hottest_ktv;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
srlRefreshContainer = (SwipeRefreshLayout) getView().findViewById(R.id.srl_refresh_container);
|
||||
rvList = (RecyclerView) getView().findViewById(R.id.rv_list);
|
||||
rvList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
|
||||
rvList.addItemDecoration(new ColorDecoration(Color.TRANSPARENT, 0, Utils.dip2px(getContext(), 10), false));
|
||||
adapter = new KTVTypeRoomAdapter(getContext(), null);
|
||||
adapter.setEnableLoadMore(true);
|
||||
adapter.setOnLoadMoreListener(this, rvList);
|
||||
rvList.setAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
srlRefreshContainer.setOnRefreshListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
onRefresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReloadData() {
|
||||
super.onReloadData();
|
||||
onRefresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
getMvpPresenter().refreshData()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.doAfterTerminate(new Action() {
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
srlRefreshContainer.setRefreshing(false);
|
||||
}
|
||||
})
|
||||
.subscribe(new SingleObserver<List<KTVRoom>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<KTVRoom> roomList) {
|
||||
if (ListUtils.isListEmpty(roomList)) {
|
||||
showNoData();
|
||||
return;
|
||||
}
|
||||
hideStatus();
|
||||
adapter.setNewData(roomList);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
showNetworkErr();
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
getMvpPresenter().loadMoreData()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new SingleObserver<List<KTVRoom>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<KTVRoom> strings) {
|
||||
if (!ListUtils.isListEmpty(strings)) {
|
||||
adapter.addData(strings);
|
||||
adapter.loadMoreComplete();
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,93 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.home.adapter.CommonMagicIndicatorAdapter;
|
||||
import com.yizhuan.erban.home.adapter.FragmentViewPagerAdapter;
|
||||
import com.yizhuan.erban.home.presenter.KTVFragmentPresenter;
|
||||
import com.yizhuan.erban.home.view.IKTVFragmentView;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
|
||||
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.bean.TabInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
@CreatePresenter(KTVFragmentPresenter.class)
|
||||
public class KTVFragment extends BaseMvpFragment<IKTVFragmentView, KTVFragmentPresenter>
|
||||
implements IKTVFragmentView, CommonMagicIndicatorAdapter.OnItemSelectListener {
|
||||
|
||||
private MagicIndicator miIndicator;
|
||||
private ViewPager vpKtv;
|
||||
|
||||
|
||||
public static Fragment newInstance() {
|
||||
return new KTVFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_ktv;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
miIndicator = (MagicIndicator) getView().findViewById(R.id.mi_indicator);
|
||||
vpKtv = (ViewPager) getView().findViewById(R.id.vp_ktv);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
List<TabInfo> tabInfoList = new ArrayList<>();
|
||||
tabInfoList.add(new TabInfo(1, getString(R.string.home_ktv_newest)));
|
||||
tabInfoList.add(new TabInfo(2, getString(R.string.home_ktv_hottest)));
|
||||
|
||||
|
||||
List<Fragment> mTabs = new ArrayList<>();
|
||||
mTabs.add(NewestKTVRoomFragment.newInstance());
|
||||
mTabs.add(HottestKTVRoomFragment.newInstance());
|
||||
|
||||
|
||||
CommonMagicIndicatorAdapter mMsgIndicatorAdapter = new CommonMagicIndicatorAdapter(mContext, tabInfoList, 5);
|
||||
mMsgIndicatorAdapter.setOnItemSelectListener(this);
|
||||
CommonNavigator commonNavigator = new CommonNavigator(getContext());
|
||||
commonNavigator.setAdjustMode(true);
|
||||
commonNavigator.setAdapter(mMsgIndicatorAdapter);
|
||||
miIndicator.setNavigator(commonNavigator);
|
||||
// must after setNavigator
|
||||
LinearLayout titleContainer = commonNavigator.getTitleContainer();
|
||||
titleContainer.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
|
||||
|
||||
vpKtv.setAdapter(new FragmentViewPagerAdapter(getChildFragmentManager(), mTabs));
|
||||
ViewPagerHelper.bind(miIndicator, vpKtv);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemSelect(int position) {
|
||||
vpKtv.setCurrentItem(position);
|
||||
}
|
||||
}
|
@@ -1,275 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.home.adapter.FragmentViewPagerAdapter;
|
||||
import com.yizhuan.erban.home.adapter.TopMagicIndicatorAdapter;
|
||||
import com.yizhuan.erban.home.helper.OpenRoomHelper;
|
||||
import com.yizhuan.erban.home.presenter.MainFragmentPresenter;
|
||||
import com.yizhuan.erban.home.view.IMainFragmentTabBg;
|
||||
import com.yizhuan.erban.home.view.IMainFragmentView;
|
||||
import com.yizhuan.erban.ui.search.SearchActivity;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ext.MainCommonNavigatorAdapter;
|
||||
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.HomeTagInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TagListInfo;
|
||||
import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel;
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>首页 fragment </p>
|
||||
*
|
||||
* @author Administrator
|
||||
* @date 2017/11/14
|
||||
* 修改 jack
|
||||
*/
|
||||
|
||||
@CreatePresenter(MainFragmentPresenter.class)
|
||||
public class MainFragment extends BaseMvpFragment<IMainFragmentView, MainFragmentPresenter>
|
||||
implements IMainFragmentView, View.OnClickListener, TopMagicIndicatorAdapter.OnItemSelectListener,
|
||||
IMainFragmentTabBg {
|
||||
|
||||
|
||||
public static final String TAG = MainFragment.class.getSimpleName();
|
||||
|
||||
|
||||
private MagicIndicator miHomeIndicator;
|
||||
private ImageView ivSearchRoom;
|
||||
private ImageView ivOpenRoom;
|
||||
private ViewPager mainViewpager;
|
||||
|
||||
private LinearLayout llHomeTitle;
|
||||
private boolean mIsBannerTop = true;
|
||||
// 有可能出现miHomeIndicator未初始就调用handleGuide的情况
|
||||
private boolean showGuide = false;
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_main;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
miHomeIndicator = mView.findViewById(R.id.mi_home_indicator);
|
||||
ivSearchRoom = (ImageView) mView.findViewById(R.id.iv_search_room);
|
||||
ivOpenRoom = (ImageView) mView.findViewById(R.id.iv_open_room);
|
||||
mainViewpager = (ViewPager) mView.findViewById(R.id.main_viewpager);
|
||||
|
||||
llHomeTitle = mView.findViewById(R.id.ll_home_title);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
ivSearchRoom.setOnClickListener(this);
|
||||
ivOpenRoom.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == ivSearchRoom.getId()) {
|
||||
SearchActivity.start(getActivity());
|
||||
} else if (id == ivOpenRoom.getId()) {
|
||||
OpenRoomHelper.openRoom(getBaseActivity());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
//初始化延迟到获取到审核结果后
|
||||
if (!"baidutg".equals(AppMetaDataUtil.getChannelID())) {
|
||||
getMvpPresenter().tagList();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestOpenRoomResult(int openRoomFailType, Object... arg) {
|
||||
|
||||
}
|
||||
|
||||
private void initTabIndicator(List<String> mTabInfoList) {
|
||||
CommonNavigator commonNavigator = new CommonNavigator(mContext, UIUtil.dip2px(mContext, 20));
|
||||
MainCommonNavigatorAdapter commonNavigatorAdapter = new MainCommonNavigatorAdapter(mContext, mTabInfoList);
|
||||
commonNavigatorAdapter.setOnTabClickListener(index -> mainViewpager.setCurrentItem(index));
|
||||
commonNavigator.setAdapter(commonNavigatorAdapter);
|
||||
miHomeIndicator.setNavigator(commonNavigator);
|
||||
ViewPagerHelper.bind(miHomeIndicator, mainViewpager);
|
||||
|
||||
if (showGuide)
|
||||
showGuide();
|
||||
// mBinding.mainViewpager.setOffscreenPageLimit(7);
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核包,隐藏,重新刷新
|
||||
*/
|
||||
@Override
|
||||
public void showByMarketCheckingStatus(List<TagListInfo> tagListInfoList) {
|
||||
//审核包隐藏搜索
|
||||
if (MarketVerifyModel.get().isMarketChecking()) {
|
||||
ivSearchRoom.setVisibility(View.INVISIBLE);
|
||||
ivSearchRoom.setEnabled(false);
|
||||
|
||||
} else {
|
||||
ivSearchRoom.setVisibility(View.VISIBLE);
|
||||
ivSearchRoom.setEnabled(true);
|
||||
}
|
||||
|
||||
List<String> mTabInfoList = new ArrayList<>();
|
||||
List<Fragment> fragmentList = new ArrayList<>();
|
||||
|
||||
|
||||
mTabInfoList.add(getResources().getString(R.string.main_tab_recommend));
|
||||
fragmentList.add(RecommendFragment.newInstance(this));
|
||||
for (TagListInfo tagListInfo : tagListInfoList) {
|
||||
mTabInfoList.add(tagListInfo.getTitleName());
|
||||
fragmentList.add(RoomTabFragment.newInstance(tagListInfo.getTitleId(), this));
|
||||
}
|
||||
mainViewpager.setAdapter(new FragmentViewPagerAdapter(getChildFragmentManager(), fragmentList));
|
||||
initTabIndicator(mTabInfoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getFollowRoomsSuccess(List<HomeConcernsInfo> infos) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getFollowRoomFail() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exitRoom(RoomInfo roomInfo) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void titleListSuccess(List<TagListInfo> tagListInfoList) {
|
||||
showByMarketCheckingStatus(tagListInfoList);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void titleListFail(String msg) {
|
||||
showByMarketCheckingStatus(new ArrayList<>());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemSelect(int position) {
|
||||
mainViewpager.setCurrentItem(position);
|
||||
}
|
||||
|
||||
public void goToKTVTab() {
|
||||
mainViewpager.setCurrentItem(3, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void isBannerTop(boolean isBannerTop) {
|
||||
if (mIsBannerTop != isBannerTop) {
|
||||
|
||||
// if (isBannerTop) {
|
||||
//
|
||||
// if (llHomeTitle != null)
|
||||
// llHomeTitle.setBackgroundResource(R.drawable.game_img_bg);
|
||||
//
|
||||
// } else {
|
||||
//
|
||||
// if (llHomeTitle != null)
|
||||
// llHomeTitle.setBackgroundResource(R.drawable.game_img_bg2);
|
||||
// }
|
||||
// llHomeTitle.setBackgroundResource(R.drawable.game_img_bg2);
|
||||
|
||||
mIsBannerTop = isBannerTop;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理引导
|
||||
*/
|
||||
public void handleGuide() {
|
||||
if (miHomeIndicator != null) {
|
||||
showGuide();
|
||||
} else {
|
||||
showGuide = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void showGuide() {
|
||||
// if (TuTuGuideHelper.isNeedHiGuide(TuTuGuideHelper.KEY_GUIDE_MAIN_TAB)) {
|
||||
// miHomeIndicator.post(() -> {
|
||||
// if (getActivity() != null && getActivity() instanceof MainActivity) {
|
||||
// if (!((MainActivity) getActivity()).isShowMainTab()) {
|
||||
// return;
|
||||
// }
|
||||
// TuTuGuideHelper helper = new TuTuGuideHelper(mContext);
|
||||
// helper.createHiGuide(() -> helper.createMainTabOverLayer(miHomeIndicator));
|
||||
// TuTuGuideHelper.setNoNeedHiGuide(TuTuGuideHelper.KEY_GUIDE_MAIN_TAB);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
showGuide = false;
|
||||
// if (TuTuGuideHelper.isNeedHiGuide(TuTuGuideHelper.KEY_GUIDE_MAIN_TAB)) {
|
||||
// miHomeIndicator.post(() -> {
|
||||
// if (getActivity() != null && getActivity() instanceof MainActivity) {
|
||||
// if (!((MainActivity) getActivity()).isShowMainTab()) {
|
||||
// return;
|
||||
// }
|
||||
// TuTuGuideHelper helper = new TuTuGuideHelper(mContext);
|
||||
// helper.createHiGuide(() -> helper.createMainTabOverLayer(miHomeIndicator));
|
||||
// TuTuGuideHelper.setNoNeedHiGuide(TuTuGuideHelper.KEY_GUIDE_MAIN_TAB);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetFirstPageBannerFailed(String message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void roomWorldModeCloseSuccess() {
|
||||
OpenRoomHelper.openRoom(getBaseActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void roomWorldModeCloseFail(String error) {
|
||||
toast(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetHomeBannerSuccess(List<BannerInfo> bannerInfos) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetHomeTagSuccess(List<HomeTagInfo> tagInfos) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getRoomShortcut(String data) {
|
||||
|
||||
}
|
||||
}
|
@@ -1,140 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.graphics.Color;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.home.adapter.KTVTypeRoomAdapter;
|
||||
import com.yizhuan.erban.home.presenter.NewestKTVRoomFragmentPresenter;
|
||||
import com.yizhuan.erban.home.view.INewestKTVRoomFragmentView;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.xchat_android_core.home.bean.KTVRoom;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Action;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/31
|
||||
*/
|
||||
@CreatePresenter(NewestKTVRoomFragmentPresenter.class)
|
||||
public class NewestKTVRoomFragment extends BaseMvpFragment<INewestKTVRoomFragmentView, NewestKTVRoomFragmentPresenter>
|
||||
implements INewestKTVRoomFragmentView, SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener {
|
||||
|
||||
private SwipeRefreshLayout srlRefreshContainer;
|
||||
private RecyclerView rvList;
|
||||
|
||||
private KTVTypeRoomAdapter adapter;
|
||||
|
||||
public static Fragment newInstance() {
|
||||
return new NewestKTVRoomFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_newest_ktv;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
srlRefreshContainer = (SwipeRefreshLayout) getView().findViewById(R.id.srl_refresh_container);
|
||||
rvList = (RecyclerView) getView().findViewById(R.id.rv_list);
|
||||
rvList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
|
||||
rvList.addItemDecoration(new ColorDecoration(Color.TRANSPARENT, 0, Utils.dip2px(getContext(), 10), false));
|
||||
adapter = new KTVTypeRoomAdapter(getContext(), null);
|
||||
adapter.setEnableLoadMore(true);
|
||||
adapter.setOnLoadMoreListener(this, rvList);
|
||||
rvList.setAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
srlRefreshContainer.setOnRefreshListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
onRefresh();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
getMvpPresenter().refreshData()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.doAfterTerminate(new Action() {
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
srlRefreshContainer.setRefreshing(false);
|
||||
}
|
||||
})
|
||||
.subscribe(new SingleObserver<List<KTVRoom>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<KTVRoom> roomList) {
|
||||
if (ListUtils.isListEmpty(roomList)) {
|
||||
showNoData();
|
||||
return;
|
||||
}
|
||||
hideStatus();
|
||||
adapter.setNewData(roomList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
showNetworkErr();
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
getMvpPresenter().loadMoreData()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new SingleObserver<List<KTVRoom>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<KTVRoom> homeRoomList) {
|
||||
if (!ListUtils.isListEmpty(homeRoomList)) {
|
||||
adapter.addData(homeRoomList);
|
||||
adapter.loadMoreComplete();
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,229 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.net.http.SslError;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.webkit.SslErrorHandler;
|
||||
import android.webkit.WebChromeClient;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.netease.nim.uikit.common.util.string.StringUtil;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseBindingFragment;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.databinding.FragmentRankingBinding;
|
||||
import com.yizhuan.erban.friend.view.SelectFriendActivity;
|
||||
import com.yizhuan.erban.ui.webview.JSInterface;
|
||||
import com.yizhuan.erban.ui.widget.ShareDialog;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_core.share.ShareModel;
|
||||
import com.yizhuan.xchat_android_core.web.bean.WebJsBeanInfo;
|
||||
import com.yizhuan.xchat_android_core.web.event.WebViewRefreshEvent;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
import cn.sharesdk.framework.Platform;
|
||||
|
||||
/**
|
||||
* 排行榜
|
||||
* 暂时继续使用 H5,后面再考虑换成原生的
|
||||
* Created by MadisonRong on 20/04/2018.
|
||||
*/
|
||||
@ActLayoutRes(R.layout.fragment_ranking)
|
||||
public class RankingFragment extends BaseBindingFragment<FragmentRankingBinding>
|
||||
implements ShareDialog.OnShareDialogItemClick {
|
||||
|
||||
public static final String TAG = "RankingFragment";
|
||||
private TitleBar mTitleBar;
|
||||
private WebView webView;
|
||||
private ProgressBar mProgressBar;
|
||||
private WebChromeClient wvcc;
|
||||
private TextView mTvRightText;
|
||||
|
||||
private WebJsBeanInfo mWebJsBeanInfo;
|
||||
private String url;
|
||||
private String targetUrl;
|
||||
|
||||
private static final String POSITION = "position";
|
||||
private int mPosition;
|
||||
|
||||
private int mProgress;
|
||||
|
||||
private Handler mHandler = new Handler();
|
||||
|
||||
private RankingFragment.ProgressRunnable mProgressRunnable = new RankingFragment.ProgressRunnable(this);
|
||||
|
||||
private static class ProgressRunnable implements Runnable {
|
||||
private WeakReference<RankingFragment> mWeakReference;
|
||||
|
||||
ProgressRunnable(RankingFragment activity) {
|
||||
mWeakReference = new WeakReference<>(activity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
RankingFragment activity = mWeakReference.get();
|
||||
if (activity == null) return;
|
||||
if (activity.mProgress < 96) {
|
||||
activity.mProgress += 3;
|
||||
activity.mProgressBar.setProgress(activity.mProgress);
|
||||
activity.mHandler.postDelayed(activity.mProgressRunnable, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitArguments(Bundle bundle) {
|
||||
url = UriProvider.JAVA_WEB_URL + "/yinyou/modules/erbanRank/index.html";
|
||||
mPosition = 1;
|
||||
}
|
||||
|
||||
@SuppressLint("SetJavaScriptEnabled")
|
||||
private void initData() {
|
||||
mHandler.post(mProgressRunnable);
|
||||
webView.getSettings().setJavaScriptEnabled(true);
|
||||
webView.getSettings().setUseWideViewPort(true);
|
||||
webView.getSettings().setTextZoom(100);
|
||||
JSInterface jsInterface = new JSInterface(webView, getActivity());
|
||||
jsInterface.setPosition(mPosition);
|
||||
webView.addJavascriptInterface(jsInterface, "androidJsObj");
|
||||
webView.setWebViewClient(new WebViewClient() {
|
||||
|
||||
@Override
|
||||
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
||||
Logger.e("shouldOverrideUrlLoading--------" + url);
|
||||
targetUrl = url;
|
||||
view.loadUrl(url);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
|
||||
// super.onReceivedSslError(view, handler, error); //一定要去掉
|
||||
// handler.cancel();// Android默认的处理方式
|
||||
handler.proceed();// 接受所有网站的证书
|
||||
// handleMessage(Message msg);// 进行其他处理
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageFinished(WebView view, String url) {
|
||||
Logger.e("onPageFinished--------" + url);
|
||||
mProgressBar.setProgress(100);
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
mTvRightText.setVisibility(View.GONE);
|
||||
try {
|
||||
webView.evaluateJavascript("showTitleRightNoticeFuck()", value -> {
|
||||
if (TextUtils.isEmpty(value) || "null".equals(value.toLowerCase())) return;
|
||||
mWebJsBeanInfo = JSON.parseObject(value, WebJsBeanInfo.class);
|
||||
if (mWebJsBeanInfo == null) return;
|
||||
WebJsBeanInfo.DataBean data = mWebJsBeanInfo.getData();
|
||||
if (data == null) return;
|
||||
switch (mWebJsBeanInfo.getType()) {
|
||||
case WebJsBeanInfo.TEXT:
|
||||
mTvRightText.setVisibility(View.VISIBLE);
|
||||
mTvRightText.setText(data.getTitle());
|
||||
mTvRightText.setOnClickListener(v -> webView.loadUrl(data.getLink()));
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
super.onPageFinished(view, url);
|
||||
}
|
||||
});
|
||||
//获取webviewtitle作为titlebar的title
|
||||
wvcc = new WebChromeClient() {
|
||||
@Override
|
||||
public void onReceivedTitle(WebView view, String title) {
|
||||
super.onReceivedTitle(view, title);
|
||||
mTitleBar.setTitle(title);
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
// 设置setWebChromeClient对象
|
||||
webView.setWebChromeClient(wvcc);
|
||||
if (mTitleBar != null) {
|
||||
mTitleBar.setImmersive(false);
|
||||
mTitleBar.setTitleColor(getResources().getColor(R.color.back_font));
|
||||
}
|
||||
// 设置Webview的user-agent
|
||||
webView.getSettings().setUserAgentString(webView.getSettings().getUserAgentString() + " erbanAppAndroid");
|
||||
}
|
||||
|
||||
public void ShowWebView(String url) {
|
||||
webView.loadUrl(url);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
// 强制每次点到这个 tab 的时候就刷新数据
|
||||
ShowWebView(url);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInAppSharingItemClick() {
|
||||
SelectFriendActivity.start(getContext());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharePlatformClick(Platform platform) {
|
||||
if (mWebJsBeanInfo != null && mWebJsBeanInfo.getData() != null) {
|
||||
ShareModel.get().shareH5(mWebJsBeanInfo.getData(), platform).subscribe();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRecieveNeedRefreshWebView(WebViewRefreshEvent event) {
|
||||
if (!StringUtil.isEmpty(url)) {
|
||||
ShowWebView(url);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
if (mHandler != null) {
|
||||
mHandler.removeCallbacks(mProgressRunnable);
|
||||
mProgressRunnable = null;
|
||||
mHandler = null;
|
||||
}
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
webView = mBinding.webview;
|
||||
mTitleBar = mBinding.title;
|
||||
mProgressBar = mBinding.progressBar;
|
||||
mTvRightText = mBinding.tvTitleRight;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
//
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
initData();
|
||||
}
|
||||
|
||||
}
|
@@ -1,289 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.netease.nim.uikit.common.util.sys.NetworkUtil;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.common.NetworkErrorFragment;
|
||||
import com.yizhuan.erban.common.NoDataFragment;
|
||||
import com.yizhuan.erban.home.adapter.HomeFragmentAdapter;
|
||||
import com.yizhuan.erban.home.presenter.RecommendFragmentPresenter;
|
||||
import com.yizhuan.erban.home.view.Home3PlusNDecoration;
|
||||
import com.yizhuan.erban.home.view.IMainFragmentTabBg;
|
||||
import com.yizhuan.erban.home.view.IRecommendFragmentView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeItem;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description 推荐页面
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
@CreatePresenter(RecommendFragmentPresenter.class)
|
||||
public class RecommendFragment extends BaseMvpFragment<IRecommendFragmentView, RecommendFragmentPresenter>
|
||||
implements IRecommendFragmentView, HomeFragmentAdapter.OnActionListener {
|
||||
|
||||
public static final String TAG = RecommendFragment.class.getSimpleName();
|
||||
|
||||
private SwipeRefreshLayout swipeRefreshLayout;
|
||||
private RecyclerView rvMainHome;
|
||||
private HomeFragmentAdapter mHomeHotAdapter;
|
||||
private MainFragment mainFragment;
|
||||
|
||||
private IMainFragmentTabBg iMainFragmentTabBg;
|
||||
|
||||
public static Fragment newInstance(IMainFragmentTabBg iMainFragmentTabBg) {
|
||||
RecommendFragment recommendFragment = new RecommendFragment();
|
||||
recommendFragment.setiMainFragmentTabBg(iMainFragmentTabBg);
|
||||
return recommendFragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_recommend;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
swipeRefreshLayout = (SwipeRefreshLayout) mView.findViewById(R.id.swipe_refresh);
|
||||
rvMainHome = (RecyclerView) mView.findViewById(R.id.rv_main_home);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
swipeRefreshLayout.setOnRefreshListener(onRefreshListener);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
LogUtil.e(TAG, "initiate~~~ ");
|
||||
mainFragment = (MainFragment) getParentFragment();
|
||||
mHomeHotAdapter = new HomeFragmentAdapter(mContext, new ArrayList<>());
|
||||
mHomeHotAdapter.setActionListener(this);
|
||||
mHomeHotAdapter.setEnableLoadMore(false);
|
||||
rvMainHome.setItemAnimator(null);
|
||||
rvMainHome.addItemDecoration(new Home3PlusNDecoration(mContext, mHomeHotAdapter));
|
||||
GridLayoutManager manager = new GridLayoutManager(getActivity(), 3);
|
||||
mHomeHotAdapter.setSpanSizeLookup(new BaseQuickAdapter.SpanSizeLookup() {
|
||||
@Override
|
||||
public int getSpanSize(GridLayoutManager gridLayoutManager, int position) {
|
||||
int itemType = mHomeHotAdapter.getData().get(position).getItemType();
|
||||
if (itemType == HomeItem.TYPE_SQUARE_PIC || itemType == HomeItem.TYPE_SQUARE_EMPTY) {
|
||||
return 1;
|
||||
}
|
||||
return gridLayoutManager.getSpanCount();
|
||||
}
|
||||
});
|
||||
rvMainHome.setLayoutManager(manager);
|
||||
//加载更多
|
||||
mHomeHotAdapter.setOnLoadMoreListener(() -> getMvpPresenter().loadMoreHomeData(), rvMainHome);
|
||||
rvMainHome.setAdapter(mHomeHotAdapter);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (ListUtils.isListEmpty(getMvpPresenter().getmHomeItemList())) {
|
||||
swipeRefreshLayout.setRefreshing(true);
|
||||
getMvpPresenter().loadHomeData();
|
||||
} else {
|
||||
if (ListUtils.isListEmpty(this.mHomeHotAdapter.getData())) {
|
||||
loadHomeDataSuccess(getMvpPresenter().getmHomeItemList());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private SwipeRefreshLayout.OnRefreshListener onRefreshListener = new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
if (NetworkUtil.isNetAvailable(mContext)) {
|
||||
getMvpPresenter().setPage(Constants.PAGE_START);
|
||||
getMvpPresenter().loadHomeData();
|
||||
} else {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onReloadData() {
|
||||
super.onReloadData();
|
||||
showLoading();
|
||||
getMvpPresenter().loadHomeData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadHomeDataSuccess(List<HomeItem> data) {
|
||||
hideStatus();
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
mHomeHotAdapter.setNewData(data);
|
||||
mHomeHotAdapter.disableLoadMoreIfNotFullPage(rvMainHome);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadHomeDataFail(String error) {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
showNetworkErr();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNoHomeData() {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
showNoData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addHomeDataSuccess(List<HomeItem> data) {
|
||||
mHomeHotAdapter.loadMoreComplete();
|
||||
mHomeHotAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNoMoreHomeData() {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
mHomeHotAdapter.loadMoreEnd(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addHomeDataFail(String error) {
|
||||
mHomeHotAdapter.loadMoreFail();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setEnableLoadMore(boolean b) {
|
||||
mHomeHotAdapter.setEnableLoadMore(b);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRefreshing(boolean b) {
|
||||
swipeRefreshLayout.setRefreshing(b);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyDataSetChanged(int type, int position, Object payload) {
|
||||
// if (IRecommendFragmentView.NOTIFY_DATA_SET_CHANGED == type) {
|
||||
// if (position < 0) {
|
||||
// mHomeHotAdapter.notifyDataSetChanged();
|
||||
// } else {
|
||||
// mHomeHotAdapter.notifyItemChanged(position, payload);
|
||||
// }
|
||||
// } else if (IRecommendFragmentView.NOTIFY_DATA_SET_REMOVE == type) {
|
||||
// if (position < 0) {
|
||||
// mHomeHotAdapter.notifyDataSetChanged();
|
||||
// } else {
|
||||
// mHomeHotAdapter.notifyItemRemoved(position);
|
||||
// }
|
||||
// }
|
||||
|
||||
mHomeHotAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void showByMarketCheckingStatus() {
|
||||
if (getMvpPresenter() != null) {
|
||||
swipeRefreshLayout.setRefreshing(true);
|
||||
getMvpPresenter().loadHomeData();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshMakeFriendListFail(String message) {
|
||||
toast(message);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onRefreshMakeFriendList() {
|
||||
getMvpPresenter().refreshMakeFriendList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMoreKTVRoom() {
|
||||
mainFragment.goToKTVTab();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGoTalkHall() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUserVisibleHint(boolean isVisibleToUser) {
|
||||
super.setUserVisibleHint(isVisibleToUser);
|
||||
|
||||
if (getUserVisibleHint())
|
||||
changeTabBg();
|
||||
}
|
||||
|
||||
private void changeTabBg() {
|
||||
if (iMainFragmentTabBg != null && getUserVisibleHint())
|
||||
iMainFragmentTabBg.isBannerTop(true);
|
||||
}
|
||||
|
||||
public void setiMainFragmentTabBg(IMainFragmentTabBg iMainFragmentTabBg) {
|
||||
this.iMainFragmentTabBg = iMainFragmentTabBg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
iMainFragmentTabBg = null;
|
||||
}
|
||||
@Override
|
||||
public void showNoData(View view, int drawable, CharSequence charSequence) {
|
||||
if (!checkActivityValid())
|
||||
return;
|
||||
|
||||
if (view == null) {
|
||||
MLog.error(this, "xuwakao, showNoData view is NULL");
|
||||
return;
|
||||
}
|
||||
View status = view.findViewById(R.id.status_layout);
|
||||
if (status == null || status.getId() <= 0) {
|
||||
MLog.error(this, "xuwakao, had not set layout id ");
|
||||
return;
|
||||
}
|
||||
NoDataFragment fragment = NoDataFragment.newInstance(R.layout.layout_home_empty, drawable, charSequence);
|
||||
fragment.setListener(getLoadListener());
|
||||
getChildFragmentManager().beginTransaction().replace(status.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showNetworkErr() {
|
||||
if (!checkActivityValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (getView() == null) {
|
||||
MLog.error(this, "xuwakao, showNetworkErr view is NULL");
|
||||
return;
|
||||
}
|
||||
View view = getView().findViewById(R.id.status_layout);
|
||||
if (view == null || view.getId() <= 0) {
|
||||
MLog.error(this, "xuwakao, had not set layout id ");
|
||||
return;
|
||||
}
|
||||
NetworkErrorFragment fragment = NetworkErrorFragment.newInstance(R.layout.layout_home_network_erro);
|
||||
fragment.setListener(getLoadListener());
|
||||
getChildFragmentManager().beginTransaction().replace(view.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
|
||||
}
|
||||
}
|
@@ -1,411 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.UIHelper;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.base.BaseFragment;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.home.adapter.HomeFragmentAdapter;
|
||||
import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity;
|
||||
import com.yizhuan.erban.ui.widget.higuide.TuTuGuideHelper;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeItem;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.user.bean.RecommendationUserInfo;
|
||||
import com.yizhuan.xchat_android_core.user.event.LoadLoginUserInfoEvent;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.BiConsumer;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* 推荐 合拍女神
|
||||
*/
|
||||
public class RecommendationFragment extends BaseFragment implements View.OnClickListener {
|
||||
|
||||
private static final String PARAM_TYPE = "type";
|
||||
private static final int PAGE_SIZE = 20;
|
||||
|
||||
private String type;
|
||||
private RecyclerView recyclerView;
|
||||
|
||||
private SmartRefreshLayout smartRefreshLayout;
|
||||
|
||||
private int pageIndex = 1;
|
||||
|
||||
private HomeItem<ArrayList<BannerInfo>> bannerHomeItem;
|
||||
private List<HomeItem> totalHomeItemList = new ArrayList<>();
|
||||
private boolean isContainsBanner;
|
||||
private HomeFragmentAdapter mHomeFragmentAdapter;
|
||||
private final Object mLock = new Object();
|
||||
|
||||
private Disposable mDisposable;
|
||||
|
||||
public RecommendationFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
public static RecommendationFragment newInstance(String type) {
|
||||
RecommendationFragment fragment = new RecommendationFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putString(PARAM_TYPE, type);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getArguments() != null) {
|
||||
type = getArguments().getString(PARAM_TYPE);
|
||||
}
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
private long mLastOpen;
|
||||
private String mTabName;
|
||||
public void setTypeAndName(String type, String name) {
|
||||
this.type = type;
|
||||
mTabName = name;
|
||||
}
|
||||
|
||||
public void setTypeAndRefresh(String type, String name) {
|
||||
setTypeAndName(type, name);
|
||||
|
||||
if (smartRefreshLayout != null) {
|
||||
if (smartRefreshLayout.isRefreshing()) {
|
||||
|
||||
smartRefreshLayout.finishRefresh();
|
||||
if (mDisposable != null && !mDisposable.isDisposed()) {
|
||||
mDisposable.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mHomeFragmentAdapter != null) {
|
||||
mHomeFragmentAdapter.loadMoreComplete();
|
||||
}
|
||||
refreshData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_recommendation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
super.onFindViews();
|
||||
recyclerView = mView.findViewById(R.id.recycler_view);
|
||||
smartRefreshLayout = mView.findViewById(R.id.smart_refresh_layout);
|
||||
initRefreshView();
|
||||
initRecyclerView();
|
||||
}
|
||||
|
||||
private void initRefreshView() {
|
||||
smartRefreshLayout.setEnableLoadmore(false);
|
||||
smartRefreshLayout.setEnableRefresh(true);
|
||||
smartRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh(RefreshLayout refreshlayout) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HOME_DROP_REFRESH, "首页-下拉刷新");
|
||||
refreshNoLoading();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void refreshNoLoading() {
|
||||
pageIndex = 1;
|
||||
loadData(true);
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
recyclerView.addItemDecoration(new ColorDecoration(getResources().getColor(R.color.color_FAFAFA)
|
||||
, 0, ScreenUtil.dip2px(8), true));
|
||||
recyclerView.setItemAnimator(null);
|
||||
mHomeFragmentAdapter = new HomeFragmentAdapter(getContext(), totalHomeItemList);
|
||||
|
||||
mHomeFragmentAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
loadData(false);
|
||||
}
|
||||
}, recyclerView);
|
||||
mHomeFragmentAdapter.setEnableLoadMore(false);
|
||||
recyclerView.setAdapter(mHomeFragmentAdapter);
|
||||
|
||||
mHomeFragmentAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
@Override
|
||||
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
try {
|
||||
List<HomeItem> items = adapter.getData();
|
||||
HomeItem item;
|
||||
if (items.size() > position) {
|
||||
item = items.get(position);
|
||||
Object obj = item.getData();
|
||||
if (!(obj instanceof RecommendationUserInfo)) {
|
||||
return;
|
||||
}
|
||||
RecommendationUserInfo info = (RecommendationUserInfo) obj;
|
||||
|
||||
if (info.getStatus() == RecommendationUserInfo.STATUS_RECOMMEND_ROOM) {
|
||||
// 推荐房点击任何区域都进房
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HOME_USER_LIST_STEP_INTO_ROOM, "首页-用户列表-踩进房间");
|
||||
openRoom(info.getUid(), info.isRecommendRoom());
|
||||
} else {
|
||||
switch (view.getId()) {
|
||||
case R.id.fl_avatar:
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HOME_PAGE_PERSONAL_PAGE, "进入个人客态页");
|
||||
UIHelper.showUserInfoAct(mContext, info.getUid());
|
||||
break;
|
||||
|
||||
case R.id.ll_sub_content:
|
||||
NimP2PMessageActivity.startWithChatterBox(mContext, String.valueOf(info.getUid()), null);
|
||||
break;
|
||||
|
||||
case R.id.rl_opt:
|
||||
|
||||
switch (info.getStatus()) {
|
||||
case RecommendationUserInfo.STATUS_KTV:
|
||||
case RecommendationUserInfo.STATUS_GAME:
|
||||
case RecommendationUserInfo.STATUS_ROOM:
|
||||
case RecommendationUserInfo.STATUS_RECOMMEND_ROOM:
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HOME_USER_LIST_STEP_INTO_ROOM, "首页-用户列表-踩进房间");
|
||||
openRoom(info.getUid(), info.isRecommendRoom());
|
||||
break;
|
||||
|
||||
case RecommendationUserInfo.STATUS_NORMAL:
|
||||
default:
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HOME_PAGE_HOOK_UP, "撩一下");
|
||||
NimP2PMessageActivity.startWithAccost(mContext, String.valueOf(info.getUid()));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressWarnings("CheckResult")
|
||||
private void openRoom(long uid, boolean isRecommendRoom) {
|
||||
if (System.currentTimeMillis() - mLastOpen < 1000) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mContext instanceof BaseMvpActivity) {
|
||||
if (!TextUtils.isEmpty(mTabName)) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_MATCH_MALE_ENTER_ROOM, mTabName + "-进入房间");
|
||||
}
|
||||
mLastOpen = System.currentTimeMillis();
|
||||
BaseMvpActivity activity = (BaseMvpActivity) mContext;
|
||||
activity.getDialogManager().showProgressDialog(mContext, "请稍后...");
|
||||
|
||||
if (isRecommendRoom) {
|
||||
AvRoomModel.get().requestRoomInfoByUser(String.valueOf(uid))
|
||||
.compose(activity.bindToLifecycle())
|
||||
.subscribe(roomInfo -> {
|
||||
if (roomInfo != null && roomInfo.getUid() > 0) {
|
||||
AVRoomActivity.start(mContext, roomInfo.getUid(), roomInfo.getType());
|
||||
} else {
|
||||
SingleToastUtil.showToast("对方不在房间内");
|
||||
}
|
||||
activity.getDialogManager().dismissDialog();
|
||||
|
||||
});
|
||||
|
||||
} else {
|
||||
AvRoomModel.get()
|
||||
.getUserRoom(uid)
|
||||
.compose(RxHelper.singleMainResult())
|
||||
.compose(RxHelper.handleSchAndExce())
|
||||
.compose(activity.bindToLifecycle())
|
||||
.subscribe(new BiConsumer<RoomInfo, Throwable>() {
|
||||
@Override
|
||||
public void accept(RoomInfo roomInfo, Throwable throwable) throws Exception {
|
||||
if (throwable == null) {
|
||||
if (roomInfo != null && roomInfo.getUid() > 0) {
|
||||
AVRoomActivity.start(mContext, roomInfo.getUid(), roomInfo.getType());
|
||||
} else {
|
||||
SingleToastUtil.showToast("对方不在房间内");
|
||||
}
|
||||
} else {
|
||||
SingleToastUtil.showToast("可能暂时不在房间哟");
|
||||
}
|
||||
activity.getDialogManager().dismissDialog();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
SingleToastUtil.showToast("出现异常");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
refreshData();
|
||||
}
|
||||
|
||||
private void refreshData() {
|
||||
if (smartRefreshLayout != null) {
|
||||
smartRefreshLayout.autoRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadData(boolean isRefresh) {
|
||||
long uid = AuthModel.get().getCurrentUid();
|
||||
mDisposable = HomeModel.get()
|
||||
.getGodList(uid, pageIndex, PAGE_SIZE, type)
|
||||
.map(new Function<List<RecommendationUserInfo>, List<HomeItem<RecommendationUserInfo>>>() {
|
||||
@Override
|
||||
public List<HomeItem<RecommendationUserInfo>> apply(List<RecommendationUserInfo> recommendationUserInfos) throws Exception {
|
||||
if (ListUtils.isListEmpty(recommendationUserInfos)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<HomeItem<RecommendationUserInfo>> homeItemList = new ArrayList<>();
|
||||
for (RecommendationUserInfo recommendationUserInfo : recommendationUserInfos) {
|
||||
if (recommendationUserInfo == null) {
|
||||
continue;
|
||||
}
|
||||
//推荐房间修改状态处理
|
||||
if (recommendationUserInfo.isRecommendRoom()) {
|
||||
recommendationUserInfo.setStatus(RecommendationUserInfo.STATUS_RECOMMEND_ROOM);
|
||||
}
|
||||
homeItemList.add(new HomeItem<RecommendationUserInfo>(HomeItem.TYPE_USER_LINEAR, recommendationUserInfo));
|
||||
}
|
||||
return homeItemList;
|
||||
}
|
||||
})
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
.subscribe(new BiConsumer<List<HomeItem<RecommendationUserInfo>>, Throwable>() {
|
||||
@Override
|
||||
public void accept(List<HomeItem<RecommendationUserInfo>> recommendationUserInfos, Throwable throwable) throws Exception {
|
||||
if (throwable == null) {
|
||||
if (!ListUtils.isListEmpty(recommendationUserInfos)) {
|
||||
pageIndex++;
|
||||
if (isRefresh) {
|
||||
mHomeFragmentAdapter.setEnableLoadMore(true);
|
||||
}
|
||||
} else {
|
||||
loadEnd();
|
||||
}
|
||||
|
||||
synchronized (mLock) {
|
||||
if (isRefresh) {
|
||||
totalHomeItemList.clear();
|
||||
totalHomeItemList.addAll(recommendationUserInfos);
|
||||
isContainsBanner = false;
|
||||
recombinationData();
|
||||
// showGuide();
|
||||
} else {
|
||||
totalHomeItemList.addAll(recommendationUserInfos);
|
||||
mHomeFragmentAdapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
if (isRefresh) {
|
||||
smartRefreshLayout.finishRefresh();
|
||||
} else {
|
||||
mHomeFragmentAdapter.loadMoreComplete();
|
||||
}
|
||||
} else {
|
||||
if (isRefresh) {
|
||||
smartRefreshLayout.finishRefresh();
|
||||
} else {
|
||||
loadEnd();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void loadEnd() {
|
||||
mHomeFragmentAdapter.loadMoreComplete();
|
||||
mHomeFragmentAdapter.loadMoreEnd();
|
||||
mHomeFragmentAdapter.setEnableLoadMore(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户信息更新
|
||||
*/
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void loadLoginUserInfoEvent(LoadLoginUserInfoEvent event) {
|
||||
if (smartRefreshLayout != null && !smartRefreshLayout.isRefreshing()) {
|
||||
refreshData();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUserVisibleHint(boolean isVisibleToUser) {
|
||||
super.setUserVisibleHint(isVisibleToUser);
|
||||
}
|
||||
|
||||
private void recombinationData() {
|
||||
synchronized (mLock) {
|
||||
List<HomeItem> homeItems = totalHomeItemList;
|
||||
if (bannerHomeItem != null && !isContainsBanner) {
|
||||
|
||||
totalHomeItemList.add(homeItems.size() > 3 ? 3 : homeItems.size(), bannerHomeItem);
|
||||
isContainsBanner = true;
|
||||
}
|
||||
mHomeFragmentAdapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@@ -1,73 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.home.adapter.RoomCategoryIndicatorAdapter;
|
||||
import com.yizhuan.erban.home.adapter.RoomCategoryViewPagerAdapter;
|
||||
import com.yizhuan.erban.home.presenter.RoomCategoryFragmentPresenter;
|
||||
import com.yizhuan.erban.home.view.IRoomCategoryFragmentView;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
|
||||
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.bean.TabInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
@CreatePresenter(RoomCategoryFragmentPresenter.class)
|
||||
public class RoomCategoryFragment extends BaseMvpFragment<IRoomCategoryFragmentView, RoomCategoryFragmentPresenter>
|
||||
implements IRoomCategoryFragmentView, RoomCategoryIndicatorAdapter.OnItemSelectListener {
|
||||
|
||||
private MagicIndicator mainIndicator;
|
||||
private ViewPager vpRoomCategoryViewpager;
|
||||
|
||||
public static Fragment newInstance() {
|
||||
return new RoomCategoryFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_room_category;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
mainIndicator = (MagicIndicator) mView.findViewById(R.id.main_indicator);
|
||||
vpRoomCategoryViewpager = (ViewPager) mView.findViewById(R.id.vp_room_category_viewpager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
List<TabInfo> mTabInfoList = getMvpPresenter().getTabInfoList();
|
||||
if (ListUtils.isListEmpty(mTabInfoList)) {
|
||||
getMvpPresenter().loadTabInfoList();
|
||||
return;
|
||||
}
|
||||
CommonNavigator commonNavigator = new CommonNavigator(getContext());
|
||||
RoomCategoryIndicatorAdapter magicIndicatorAdapter = new RoomCategoryIndicatorAdapter(getContext(), mTabInfoList);
|
||||
magicIndicatorAdapter.setOnItemSelectListener(this);
|
||||
commonNavigator.setAdapter(magicIndicatorAdapter);
|
||||
mainIndicator.setNavigator(commonNavigator);
|
||||
vpRoomCategoryViewpager.setAdapter(new RoomCategoryViewPagerAdapter(getChildFragmentManager(), mTabInfoList));
|
||||
ViewPagerHelper.bind(mainIndicator, vpRoomCategoryViewpager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemSelect(int position) {
|
||||
vpRoomCategoryViewpager.setCurrentItem(position);
|
||||
}
|
||||
}
|
@@ -1,163 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.constants.BundleKeys;
|
||||
import com.yizhuan.erban.home.adapter.HomeRoomAdapter;
|
||||
import com.yizhuan.erban.home.presenter.RoomListPresenter;
|
||||
import com.yizhuan.erban.home.view.IRoomListFragmentView;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomItem;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TabInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Action;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/11/2
|
||||
*/
|
||||
@CreatePresenter(RoomListPresenter.class)
|
||||
public class RoomListFragment extends BaseMvpFragment<IRoomListFragmentView, RoomListPresenter>
|
||||
implements IRoomListFragmentView, SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener {
|
||||
|
||||
private SwipeRefreshLayout swipeRefresh;
|
||||
private RecyclerView recyclerView;
|
||||
|
||||
private HomeRoomAdapter adapter;
|
||||
|
||||
public static Fragment newInstance(TabInfo tabInfo) {
|
||||
Fragment fragment = new RoomListFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putSerializable(BundleKeys.KEY_EXTRA_1, tabInfo);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_room_list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
swipeRefresh = getView().findViewById(R.id.swipe_refresh);
|
||||
recyclerView = getView().findViewById(R.id.recycler_view);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
swipeRefresh.setOnRefreshListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
Bundle bundle = getArguments();
|
||||
if (bundle != null) {
|
||||
TabInfo tabInfo = (TabInfo) bundle.getSerializable(BundleKeys.KEY_EXTRA_1);
|
||||
getMvpPresenter().setTabInfo(tabInfo);
|
||||
}
|
||||
|
||||
adapter = new HomeRoomAdapter(getContext(), null);
|
||||
adapter.setEnableLoadMore(true);
|
||||
adapter.setOnLoadMoreListener(this, recyclerView);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
|
||||
recyclerView.setAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (ListUtils.isListEmpty(adapter.getData())) {
|
||||
refreshData();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
refreshData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
loadMoreData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReloadData() {
|
||||
super.onReloadData();
|
||||
refreshData();
|
||||
}
|
||||
|
||||
private void loadMoreData() {
|
||||
getMvpPresenter().loadMoreData()
|
||||
.subscribe(new SingleObserver<List<HomeRoomItem>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<HomeRoomItem> homeRoomItems) {
|
||||
if (!ListUtils.isListEmpty(homeRoomItems)) {
|
||||
adapter.addData(homeRoomItems);
|
||||
adapter.loadMoreComplete();
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void refreshData() {
|
||||
getMvpPresenter().refreshData()
|
||||
.doAfterTerminate(new Action() {
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
}
|
||||
})
|
||||
.subscribe(new SingleObserver<List<HomeRoomItem>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<HomeRoomItem> homeRoomItems) {
|
||||
if (ListUtils.isListEmpty(homeRoomItems)) {
|
||||
showNoData();
|
||||
return;
|
||||
}
|
||||
hideStatus();
|
||||
adapter.setNewData(homeRoomItems);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
showNetworkErr();
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@@ -1,239 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.common.NetworkErrorFragment;
|
||||
import com.yizhuan.erban.common.NoDataFragment;
|
||||
import com.yizhuan.erban.constants.BundleKeys;
|
||||
import com.yizhuan.erban.home.adapter.RoomTabAdapter;
|
||||
import com.yizhuan.erban.home.presenter.RoomTabPresenter;
|
||||
import com.yizhuan.erban.home.view.IMainFragmentTabBg;
|
||||
import com.yizhuan.erban.home.view.IRoomTabView;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomItem;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Action;
|
||||
|
||||
@CreatePresenter(RoomTabPresenter.class)
|
||||
public class RoomTabFragment extends BaseMvpFragment<IRoomTabView, RoomTabPresenter>
|
||||
implements IRoomTabView, SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener {
|
||||
|
||||
private SwipeRefreshLayout swipeRefresh;
|
||||
private RecyclerView recyclerView;
|
||||
|
||||
private RoomTabAdapter adapter;
|
||||
|
||||
private IMainFragmentTabBg iMainFragmentTabBg;
|
||||
|
||||
public static Fragment newInstance(long titleId, IMainFragmentTabBg iMainFragmentTabBg) {
|
||||
RoomTabFragment fragment = new RoomTabFragment();
|
||||
fragment.setiMainFragmentTabBg(iMainFragmentTabBg);
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putSerializable(BundleKeys.KEY_EXTRA_1, titleId);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_room_tab;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
swipeRefresh = getView().findViewById(R.id.swipe_refresh);
|
||||
recyclerView = getView().findViewById(R.id.recycler_view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
swipeRefresh.setOnRefreshListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
Bundle bundle = getArguments();
|
||||
if (bundle != null) {
|
||||
long mTitleId = bundle.getLong(BundleKeys.KEY_EXTRA_1, -1);
|
||||
getMvpPresenter().setmTitleId(mTitleId);
|
||||
}
|
||||
|
||||
adapter = new RoomTabAdapter(getContext(), null);
|
||||
adapter.setEnableLoadMore(true);
|
||||
adapter.setOnLoadMoreListener(this, recyclerView);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
|
||||
recyclerView.setAdapter(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUserVisibleHint(boolean isVisibleToUser) {
|
||||
super.setUserVisibleHint(isVisibleToUser);
|
||||
|
||||
if (getUserVisibleHint())
|
||||
changeTabBg();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (ListUtils.isListEmpty(adapter.getData())) {
|
||||
refreshData();
|
||||
} else
|
||||
changeTabBg();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
refreshData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
loadMoreData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReloadData() {
|
||||
super.onReloadData();
|
||||
refreshData();
|
||||
}
|
||||
|
||||
private void loadMoreData() {
|
||||
getMvpPresenter().loadMoreData()
|
||||
.subscribe(new SingleObserver<List<HomeRoomItem>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<HomeRoomItem> homeRoomItems) {
|
||||
if (!ListUtils.isListEmpty(homeRoomItems)) {
|
||||
adapter.addData(homeRoomItems);
|
||||
adapter.loadMoreComplete();
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showNetworkErr() {
|
||||
if (!checkActivityValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (getView() == null) {
|
||||
MLog.error(this, "xuwakao, showNetworkErr view is NULL");
|
||||
return;
|
||||
}
|
||||
View view = getView().findViewById(R.id.status_layout);
|
||||
if (view == null || view.getId() <= 0) {
|
||||
MLog.error(this, "xuwakao, had not set layout id ");
|
||||
return;
|
||||
}
|
||||
NetworkErrorFragment fragment = NetworkErrorFragment.newInstance(R.layout.layout_home_network_erro);
|
||||
fragment.setListener(getLoadListener());
|
||||
getChildFragmentManager().beginTransaction().replace(view.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
public void setiMainFragmentTabBg(IMainFragmentTabBg iMainFragmentTabBg) {
|
||||
this.iMainFragmentTabBg = iMainFragmentTabBg;
|
||||
}
|
||||
|
||||
private void changeTabBg() {
|
||||
|
||||
boolean isBannerTop = false;
|
||||
|
||||
if (adapter == null)
|
||||
return;
|
||||
|
||||
List<HomeRoomItem> list = adapter.getData();
|
||||
if (!ListUtils.isListEmpty(list)) {
|
||||
HomeRoomItem homeRoomItem = list.get(0);
|
||||
isBannerTop = homeRoomItem.getItemType() == HomeRoomItem.TYPE_BANNER;
|
||||
}
|
||||
|
||||
if (iMainFragmentTabBg != null && getUserVisibleHint()) {
|
||||
iMainFragmentTabBg.isBannerTop(isBannerTop);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showNoData(View view, int drawable, CharSequence charSequence) {
|
||||
if (!checkActivityValid())
|
||||
return;
|
||||
|
||||
if (view == null) {
|
||||
MLog.error(this, "xuwakao, showNoData view is NULL");
|
||||
return;
|
||||
}
|
||||
View status = view.findViewById(R.id.status_layout);
|
||||
if (status == null || status.getId() <= 0) {
|
||||
MLog.error(this, "xuwakao, had not set layout id ");
|
||||
return;
|
||||
}
|
||||
NoDataFragment fragment = NoDataFragment.newInstance(R.layout.layout_home_empty, drawable, charSequence);
|
||||
fragment.setListener(getLoadListener());
|
||||
getChildFragmentManager().beginTransaction().replace(status.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
private void refreshData() {
|
||||
getMvpPresenter().refreshData()
|
||||
.doAfterTerminate(new Action() {
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
}
|
||||
})
|
||||
.subscribe(new SingleObserver<List<HomeRoomItem>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<HomeRoomItem> homeRoomItems) {
|
||||
if (ListUtils.isListEmpty(homeRoomItems)) {
|
||||
showNoData();
|
||||
return;
|
||||
}
|
||||
hideStatus();
|
||||
adapter.setNewData(homeRoomItems);
|
||||
changeTabBg();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
showNetworkErr();
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
iMainFragmentTabBg = null;
|
||||
}
|
||||
}
|
@@ -1,33 +0,0 @@
|
||||
package com.yizhuan.erban.home.helper;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.yizhuan.erban.decoration.view.DecorationStoreActivity;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_library.rxbus.RxBusHelper;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description 跳转本地页面配置
|
||||
* @Date 2018/4/25
|
||||
*/
|
||||
|
||||
public class JumpHelper {
|
||||
public final static String TYPE_RANK_BOARD = "1";//1为排行榜
|
||||
public final static String JUMP_RANK_BOARD_STRING = "JUMP_RANK_BOARD_STRING";
|
||||
public final static String TYPE_SHOP = "2";//跳转商城
|
||||
|
||||
public static void jumpByType(Context context, String type){
|
||||
if (TYPE_RANK_BOARD.equals(type)){
|
||||
RxBusHelper.post(JUMP_RANK_BOARD_STRING);
|
||||
}else if (TYPE_SHOP.equals(type)){
|
||||
long uid = AuthModel.get().getCurrentUid();
|
||||
if (uid > 0) {
|
||||
DecorationStoreActivity.start(context, uid);
|
||||
}
|
||||
}else{
|
||||
Logger.e("未知app原生页面 跳转类型...");
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,150 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.view.IFamilyFragmentView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.CustomServiceInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyCustomServiceInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FindBannerInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RankingFamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RespFamilyRankList;
|
||||
import com.yizhuan.xchat_android_core.family.event.FamilyUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.rxbus.RxBusHelper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
public class FamilyFragmentPresenter extends BaseMvpPresenter<IFamilyFragmentView> {
|
||||
private CompositeDisposable compositeDisposable;
|
||||
private FamilyInfo myFamily = null;
|
||||
|
||||
public FamilyFragmentPresenter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePresenter(@Nullable Bundle saveState) {
|
||||
super.onCreatePresenter(saveState);
|
||||
compositeDisposable = new CompositeDisposable();
|
||||
addRxEvent();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResumePresenter() {
|
||||
super.onResumePresenter();
|
||||
Logger.e("onResumePresenter ~~~");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyPresenter() {
|
||||
super.onDestroyPresenter();
|
||||
if (compositeDisposable != null) {
|
||||
compositeDisposable.dispose();
|
||||
compositeDisposable = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void addRxEvent() {
|
||||
/**
|
||||
* 家族更新事件
|
||||
*/
|
||||
RxBusHelper.doOnMainThread(FamilyUpdateEvent.class, compositeDisposable, new Consumer<FamilyUpdateEvent>() {
|
||||
@Override
|
||||
public void accept(FamilyUpdateEvent familyUpdateEvent) throws Exception {
|
||||
checkMyFamilyInfo();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public FamilyInfo getMyFamily() {
|
||||
return myFamily;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查我的家族信息
|
||||
*/
|
||||
public void checkMyFamilyInfo() {
|
||||
myFamily = FamilyModel.Instance().getMyFamily();
|
||||
getMvpView().showMyFamilyInfo(myFamily);
|
||||
}
|
||||
|
||||
public Single<List<RankingFamilyInfo>> loadWeeklyStarList() {
|
||||
return FamilyModel.Instance().loadFamilyRankingList(
|
||||
RespFamilyRankList.TYPE_LAST_WEEK,
|
||||
String.valueOf(Constants.PAGE_START),
|
||||
String.valueOf(6)
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<RespFamilyRankList, SingleSource<? extends List<RankingFamilyInfo>>>() {
|
||||
@Override
|
||||
public SingleSource<? extends List<RankingFamilyInfo>> apply(RespFamilyRankList response) throws Exception {
|
||||
return Single.just(response.getFamilys());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 联系客服
|
||||
*/
|
||||
public Single<String> contactCustomerService() {
|
||||
//去聊
|
||||
FamilyCustomServiceInfo serviceInfo = FamilyModel.Instance().getCustomServiceInfo();
|
||||
if (null == serviceInfo) {
|
||||
return Single.error(new Throwable("没找到客服"));
|
||||
}
|
||||
String account = "";
|
||||
for (int i = 0; i < serviceInfo.getServices().size(); i++) {
|
||||
if (serviceInfo.getServices().get(i).getType() == CustomServiceInfo.TYPE_ONLINE) {
|
||||
account = serviceInfo.getServices().get(i).getUid();
|
||||
}
|
||||
}
|
||||
if (TextUtils.isEmpty(account)) {
|
||||
return Single.error(new Throwable("没找到对应的联系方式"));
|
||||
}
|
||||
|
||||
return Single.just(account);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取家族广场banner数据
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Single<List<FindBannerInfo>> loadBannerDate() {
|
||||
return FamilyModel.Instance().loadFamilyBanner()
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示客服信息
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Single<FamilyCustomServiceInfo> showCustomerServiceInfo() {
|
||||
return FamilyModel.Instance().loadFamilyCustomServiceInfo()
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,135 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.view.IFindFragmentView;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.home.bean.FindInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TopMessage;
|
||||
import com.yizhuan.xchat_android_core.home.bean.VMTopMessage;
|
||||
import com.yizhuan.xchat_android_core.home.bean.VMTopMessageInfo;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/22
|
||||
*/
|
||||
|
||||
public class FindFragmentPresenter extends BaseMvpPresenter<IFindFragmentView> {
|
||||
|
||||
private FindInfo findInfo;
|
||||
|
||||
public FindInfo getFindInfo() {
|
||||
return findInfo;
|
||||
}
|
||||
|
||||
public FindFragmentPresenter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePresenter(@Nullable Bundle saveState) {
|
||||
super.onCreatePresenter(saveState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyPresenter() {
|
||||
super.onDestroyPresenter();
|
||||
}
|
||||
|
||||
public void loadData() {
|
||||
long uid = AuthModel.get().getCurrentUid();
|
||||
if (uid <= 0) {
|
||||
onLoadFindPageDataFail("没找到uid");
|
||||
return;
|
||||
}
|
||||
HomeModel.get().loadFindPageV2(String.valueOf(uid))
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new SingleObserver<FindInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(FindInfo findInfo) {
|
||||
onLoadFindPageData(findInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
onLoadFindPageDataFail(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void onLoadFindPageData(FindInfo findInfo) {
|
||||
this.findInfo = findInfo;
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().onLoadData(findInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void onLoadFindPageDataFail(String error) {
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().onLoadDataFail(error);
|
||||
}
|
||||
}
|
||||
|
||||
// @SuppressLint("CheckResult")
|
||||
// public void loadNewerList() {
|
||||
// HomeModel.get().loadNewUserList("1", "3")
|
||||
// .compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
// .subscribe((userInfoList, throwable) -> {
|
||||
// if (throwable == null) {
|
||||
// getMvpView().onLoadNewUserList(userInfoList);
|
||||
// } else {
|
||||
// getMvpView().onLoadDataFail(throwable.getMessage());
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
/**
|
||||
* 把服务器返回的model 数据转换成 需要显示的 ViewModel
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public VMTopMessageInfo transformHomeData2TopMessageInfos(List<TopMessage> topMessages) {
|
||||
if (ListUtils.isListEmpty(topMessages)) {
|
||||
return null;
|
||||
}
|
||||
VMTopMessageInfo topMessageInfo = new VMTopMessageInfo();
|
||||
topMessageInfo.setTitle("音游头条");
|
||||
List<VMTopMessage> vmTopMessageList = new ArrayList<>();
|
||||
//组装成2个2个一组
|
||||
final int groupSize = 2;
|
||||
VMTopMessage vmTopMessage = null;
|
||||
final int maxSize = topMessages.size() <= 6 ? topMessages.size() : 6;
|
||||
for (int i = 0; i < maxSize; i++) {
|
||||
if ((i % groupSize) == 0) {
|
||||
vmTopMessage = new VMTopMessage();
|
||||
vmTopMessage.setTopMessageList(new ArrayList<>());
|
||||
vmTopMessageList.add(vmTopMessage);
|
||||
}
|
||||
if (vmTopMessage != null) {
|
||||
vmTopMessage.getTopMessageList().add(topMessages.get(i));
|
||||
}
|
||||
}
|
||||
topMessageInfo.setVmTopMessageList(vmTopMessageList);
|
||||
return topMessageInfo;
|
||||
}
|
||||
|
||||
}
|
@@ -1,7 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.view.IFindTabFragmentView;
|
||||
|
||||
public class FindTabFragmentPresenter extends BaseMvpPresenter<IFindTabFragmentView> {
|
||||
}
|
@@ -1,41 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.helper.LoadPageDataHelper;
|
||||
import com.yizhuan.erban.home.view.IHottestKTVRoomFragmentView;
|
||||
import com.yizhuan.xchat_android_core.home.bean.KTVRoom;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/31
|
||||
*/
|
||||
public class HottestKTVRoomFragmentPresenter extends BaseMvpPresenter<IHottestKTVRoomFragmentView>
|
||||
implements LoadPageDataHelper.LoadData<List<KTVRoom>> {
|
||||
|
||||
LoadPageDataHelper<List<KTVRoom>> loadPageDataHelper;
|
||||
|
||||
public HottestKTVRoomFragmentPresenter() {
|
||||
loadPageDataHelper = new LoadPageDataHelper<>(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Single<List<KTVRoom>> loadData(int curPage) {
|
||||
return HomeModel.get().loadKTVList(String.valueOf(curPage), String.valueOf(10), String.valueOf(2))
|
||||
.compose(bindToLifecycle());
|
||||
}
|
||||
|
||||
public Single<List<KTVRoom>> refreshData() {
|
||||
return loadPageDataHelper.refreshData();
|
||||
}
|
||||
|
||||
public Single<List<KTVRoom>> loadMoreData() {
|
||||
return loadPageDataHelper.loadMoreData();
|
||||
}
|
||||
}
|
@@ -1,12 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.view.IKTVFragmentView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
public class KTVFragmentPresenter extends BaseMvpPresenter<IKTVFragmentView> {
|
||||
}
|
@@ -2,30 +2,19 @@ package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.view.IMainFragmentView;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TagListInfo;
|
||||
import com.yizhuan.xchat_android_core.home.model.GameHomeModel;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
import com.yizhuan.xchat_android_core.market_verify.event.MarketVerifyUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.miniworld.model.MiniWorldModel;
|
||||
import com.yizhuan.xchat_android_core.patriarch.exception.PmRoomLimitException;
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
|
||||
import com.yizhuan.xchat_android_core.user.AttentionModel;
|
||||
import com.yizhuan.xchat_android_core.user.bean.AttentionInfo;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@@ -33,10 +22,8 @@ import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
@@ -50,8 +37,6 @@ import io.reactivex.disposables.Disposable;
|
||||
public class MainFragmentPresenter extends BaseMvpPresenter<IMainFragmentView> {
|
||||
|
||||
|
||||
private final static String TAG = MainFragmentPresenter.class.getSimpleName();
|
||||
|
||||
public static final int OPEN_ROOM_SUCCESS = 1;
|
||||
public static final int OPEN_ROOM_FAIL_TYPE_IN_ROOM = 2;
|
||||
public static final int OPEN_ROOM_FAIL = 3;
|
||||
@@ -60,15 +45,9 @@ public class MainFragmentPresenter extends BaseMvpPresenter<IMainFragmentView> {
|
||||
* 青少年限制时长的报错
|
||||
*/
|
||||
public static final int OPEN_ROOM_FAIL_PM_LIMIT_TIME = 5;
|
||||
|
||||
private int roomType = RoomInfo.ROOMTYPE_HOME_PARTY;
|
||||
|
||||
private CompositeDisposable mCompositeDisposable;
|
||||
|
||||
private final static String TAG = MainFragmentPresenter.class.getSimpleName();
|
||||
private final AvRoomModel avRoomModel;
|
||||
|
||||
private Disposable mDisposable;
|
||||
|
||||
private CompositeDisposable mCompositeDisposable;
|
||||
|
||||
public MainFragmentPresenter() {
|
||||
avRoomModel = AvRoomModel.get();
|
||||
@@ -110,118 +89,6 @@ public class MainFragmentPresenter extends BaseMvpPresenter<IMainFragmentView> {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 开启房间
|
||||
*/
|
||||
public void requestOpenRoom(int type) {
|
||||
roomType = type;
|
||||
AvRoomModel.get().requestRoomInfoV2(String.valueOf(AuthModel.get().getCurrentUid()), 0)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe(new DontWarnObserver<RoomInfo>() {
|
||||
@Override
|
||||
public void acceptThrowable(RoomInfo roomInfo, Throwable throwable) {
|
||||
super.acceptThrowable(roomInfo, throwable);
|
||||
if (roomInfo != null) {
|
||||
onGetRoomInfo(roomInfo);
|
||||
} else {
|
||||
if (throwable instanceof PmRoomLimitException) {
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().requestOpenRoomResult(OPEN_ROOM_FAIL_PM_LIMIT_TIME,
|
||||
throwable.getMessage());
|
||||
}
|
||||
} else if (!TextUtils.isEmpty(throwable.getMessage())) {
|
||||
if (getMvpView() != null) {
|
||||
getMvpView().requestOpenRoomResult(OPEN_ROOM_FAIL,
|
||||
throwable.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求退出房间
|
||||
*/
|
||||
public void requestExitRoom(int type) {
|
||||
if (roomType != type) {
|
||||
requestCloseRoom(type);
|
||||
return;
|
||||
}
|
||||
roomType = type;
|
||||
avRoomModel.exitRoom(new CallBack<RoomInfo>() {
|
||||
@Override
|
||||
public void onSuccess(RoomInfo data) {
|
||||
openRoom();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String error) {
|
||||
getMvpView().requestOpenRoomResult(OPEN_ROOM_FAIL, error);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求关闭房间
|
||||
*/
|
||||
private void requestCloseRoom(int type) {
|
||||
roomType = type;
|
||||
AvRoomModel.get()
|
||||
.quitRoomForOurService(new CallBack<String>() {
|
||||
@Override
|
||||
public void onSuccess(String data) {
|
||||
onCloseRoomInfo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String error) {
|
||||
onCloseRoomInfoFail(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void openRoom() {
|
||||
AvRoomModel.get().openRoom(
|
||||
AuthModel.get().getCurrentUid(), roomType, null, null, null, null)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((roomResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onOpenRoomFail(throwable.getMessage());
|
||||
} else if (roomResult != null && roomResult.isSuccess()) {
|
||||
onOpenRoom(roomResult.getData());
|
||||
} else if (roomResult != null && !roomResult.isSuccess()) {
|
||||
if (roomResult.getCode() == 1500) {
|
||||
onAlreadyOpenedRoom(roomResult.getData());
|
||||
} else {
|
||||
onOpenRoomFail(roomResult.getError());
|
||||
}
|
||||
} else {
|
||||
onOpenRoomFail("未知错误");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void onGetRoomInfo(RoomInfo roomInfo) {
|
||||
if (roomInfo != null) {
|
||||
if (roomInfo.isValid()) {
|
||||
if (roomInfo.getType() != roomType) {
|
||||
requestCloseRoom(roomType);
|
||||
} else {
|
||||
getMvpView().requestOpenRoomResult(OPEN_ROOM_SUCCESS, roomInfo);
|
||||
}
|
||||
} else {
|
||||
openRoom();
|
||||
}
|
||||
|
||||
} else {
|
||||
openRoom();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMainFragmentView getMvpView() {
|
||||
if (super.getMvpView() == null) {
|
||||
@@ -231,80 +98,11 @@ public class MainFragmentPresenter extends BaseMvpPresenter<IMainFragmentView> {
|
||||
}
|
||||
}
|
||||
|
||||
private void onCloseRoomInfoFail(String error) {
|
||||
getMvpView().requestOpenRoomResult(OPEN_ROOM_FAIL, error);
|
||||
}
|
||||
|
||||
private void onCloseRoomInfo() {
|
||||
openRoom();
|
||||
}
|
||||
|
||||
private void onOpenRoom(RoomInfo roomInfo) {
|
||||
getMvpView().requestOpenRoomResult(OPEN_ROOM_SUCCESS, roomInfo);
|
||||
}
|
||||
|
||||
private void onOpenRoomFail(String error) {
|
||||
getMvpView().requestOpenRoomResult(OPEN_ROOM_FAIL, error);
|
||||
}
|
||||
|
||||
private void onAlreadyOpenedRoom(RoomInfo roomInfo) {
|
||||
getMvpView().requestOpenRoomResult(OPEN_ROOM_FAIL_ALREADY_OPENED_ROOM, roomInfo);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onMarketVerifyUpdateEvent(MarketVerifyUpdateEvent event) {
|
||||
getMvpView().showByMarketCheckingStatus(new ArrayList<>());
|
||||
}
|
||||
|
||||
public void tagList() {
|
||||
HomeModel.get().tagList(AuthModel.get().getCurrentUid())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new SingleObserver<List<TagListInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<TagListInfo> tagListInfoList) {
|
||||
IMainFragmentView iMainFragmentView = getMvpView();
|
||||
if (iMainFragmentView != null)
|
||||
iMainFragmentView.titleListSuccess(tagListInfoList);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
IMainFragmentView iMainFragmentView = getMvpView();
|
||||
if (iMainFragmentView != null)
|
||||
iMainFragmentView.titleListFail(e.getMessage());
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public Single<List<AttentionInfo>> getAttentionList() {
|
||||
return AttentionModel.get().getAttentionList(
|
||||
AuthModel.get().getCurrentUid(),
|
||||
1,
|
||||
100)
|
||||
.flatMap(attentionInfos -> {
|
||||
if (attentionInfos != null) {
|
||||
Iterator<AttentionInfo> iterator = attentionInfos.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
if (iterator.next().getUserInRoom() == null) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
if (attentionInfos.size() > 20) {
|
||||
attentionInfos = attentionInfos.subList(0, 20);
|
||||
attentionInfos.add(new AttentionInfo());
|
||||
}
|
||||
}
|
||||
return Single.just(attentionInfos);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取首页banner
|
||||
*/
|
||||
@@ -361,25 +159,6 @@ public class MainFragmentPresenter extends BaseMvpPresenter<IMainFragmentView> {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void roomWorldModeClose(long roomUid) {
|
||||
MiniWorldModel.getInstance().roomWorldModeClose(roomUid).subscribe(new BeanObserver<String>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.roomWorldModeCloseFail(error);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.roomWorldModeCloseSuccess();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void getHomeConcerns() {
|
||||
GameHomeModel.get().getHomeConcerns().compose(RxHelper.handleException())
|
||||
|
@@ -1,41 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.helper.LoadPageDataHelper;
|
||||
import com.yizhuan.erban.home.view.INewestKTVRoomFragmentView;
|
||||
import com.yizhuan.xchat_android_core.home.bean.KTVRoom;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/31
|
||||
*/
|
||||
public class NewestKTVRoomFragmentPresenter extends BaseMvpPresenter<INewestKTVRoomFragmentView>
|
||||
implements LoadPageDataHelper.LoadData<List<KTVRoom>> {
|
||||
|
||||
LoadPageDataHelper<List<KTVRoom>> loadPageDataHelper;
|
||||
|
||||
public NewestKTVRoomFragmentPresenter() {
|
||||
loadPageDataHelper = new LoadPageDataHelper<>(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Single<List<KTVRoom>> loadData(int curPage) {
|
||||
return HomeModel.get().loadKTVList(String.valueOf(curPage), String.valueOf(10), String.valueOf(1))
|
||||
.compose(bindToLifecycle());
|
||||
}
|
||||
|
||||
public Single<List<KTVRoom>> refreshData() {
|
||||
return loadPageDataHelper.refreshData();
|
||||
}
|
||||
|
||||
public Single<List<KTVRoom>> loadMoreData() {
|
||||
return loadPageDataHelper.loadMoreData();
|
||||
}
|
||||
}
|
@@ -1,750 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.netease.nim.uikit.common.util.log.LogUtil;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.view.IRecommendFragmentView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
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.HomeImpDataType;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeItem;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
import com.yizhuan.xchat_android_core.home.bean.MakeFriendsInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TopMessage;
|
||||
import com.yizhuan.xchat_android_core.home.bean.VMTopMessage;
|
||||
import com.yizhuan.xchat_android_core.home.bean.VMTopMessageInfo;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
import com.yizhuan.xchat_android_core.market_verify.event.MarketVerifyUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.monsterhunting.bean.MonsterProtocol;
|
||||
import com.yizhuan.xchat_android_core.monsterhunting.rxevent.MonsterUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.rxbus.RxBusHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Consumer;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
public class RecommendFragmentPresenter extends BaseMvpPresenter<IRecommendFragmentView> {
|
||||
|
||||
private final static String TAG = RecommendFragmentPresenter.class.getSimpleName();
|
||||
|
||||
private List<HomeItem> mHomeItemList;
|
||||
/**
|
||||
* 用于保存热门推荐的房间
|
||||
*/
|
||||
private List<HomeItem> hotList = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* 热门标签
|
||||
*/
|
||||
private HomeItem<String> hotTitleItem = new HomeItem<>(HomeItem.TYPE_BLOCK_TITLE);
|
||||
|
||||
private List<HomeInfo> homeInfos;
|
||||
private int mPage = Constants.PAGE_START;
|
||||
private CompositeDisposable mCompositeDisposable;
|
||||
|
||||
public RecommendFragmentPresenter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
LogUtil.d(TAG, "onSaveInstanceState~~");
|
||||
if (!ListUtils.isListEmpty(mHomeItemList)) {
|
||||
outState.putParcelableArrayList(Constants.KEY_HOME_LIST, (ArrayList<? extends Parcelable>) mHomeItemList);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePresenter(@Nullable Bundle saveState) {
|
||||
super.onCreatePresenter(saveState);
|
||||
LogUtil.d(TAG, "onCreatePresenter~~");
|
||||
if (saveState != null) {
|
||||
mHomeItemList = saveState.getParcelableArrayList(Constants.KEY_HOME_LIST);
|
||||
}
|
||||
if (mCompositeDisposable == null) {
|
||||
mCompositeDisposable = new CompositeDisposable();
|
||||
}
|
||||
addRxBusEvent();
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加RXBus 事件
|
||||
*/
|
||||
private void addRxBusEvent() {
|
||||
RxBusHelper.doOnMainThread(MonsterUpdateEvent.class, mCompositeDisposable, new Consumer<MonsterUpdateEvent>() {
|
||||
@Override
|
||||
public void accept(MonsterUpdateEvent monsterUpdateEvent) throws Exception {
|
||||
syncMonsterData(monsterUpdateEvent.getMonsterList());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyPresenter() {
|
||||
super.onDestroyPresenter();
|
||||
if (mCompositeDisposable != null) {
|
||||
mCompositeDisposable.dispose();
|
||||
mCompositeDisposable = null;
|
||||
}
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取首页数据
|
||||
*/
|
||||
public void loadHomeData() {
|
||||
String ticket = AuthModel.get().getTicket();
|
||||
if (TextUtils.isEmpty(ticket)) {
|
||||
return;
|
||||
}
|
||||
HomeModel.get().loadHomeListV4(
|
||||
String.valueOf(AuthModel.get().getCurrentUid())
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<ServiceResult<List<HomeInfo>>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(ServiceResult<List<HomeInfo>> listServiceResult) {
|
||||
if (listServiceResult.isSuccess()) {
|
||||
onGetHomeDataSuccess(listServiceResult.getData());
|
||||
} else {
|
||||
onGetHomeDataFail(listServiceResult.getError());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
onGetHomeDataFail(e.getMessage());
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取首页分页数据
|
||||
*/
|
||||
public void loadMoreHomeData() {
|
||||
String ticket = AuthModel.get().getTicket();
|
||||
if (TextUtils.isEmpty(ticket)) {
|
||||
return;
|
||||
}
|
||||
HomeModel.get().loadMoreHomeData(mPage, 15)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe(new BeanObserver<List<HomeRoom>>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
getMvpView().addHomeDataFail(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<HomeRoom> list) {
|
||||
if (list.size() == 0) {
|
||||
getMvpView().onNoMoreHomeData();
|
||||
return;
|
||||
}
|
||||
|
||||
//兼容后台首页热门数据不够3个,但是翻页加载第二页却有数据
|
||||
//据说是后台缓存导致
|
||||
if (mHomeItemList == null) {
|
||||
return;
|
||||
}
|
||||
//将热门项移除先
|
||||
List<HomeItem> notHotList = new ArrayList<>();
|
||||
for (HomeItem index : mHomeItemList) {
|
||||
if (!index.isHotItem()) {
|
||||
notHotList.add(index);
|
||||
}
|
||||
}
|
||||
mHomeItemList.clear();
|
||||
mHomeItemList.addAll(notHotList);
|
||||
|
||||
//先移除热门项的虚位以待
|
||||
List<HomeItem> notRemoveList = new ArrayList<>();
|
||||
for(HomeItem item : hotList) {
|
||||
if (item.getItemType() != HomeItem.TYPE_SQUARE_EMPTY) {
|
||||
notRemoveList.add(item);
|
||||
}
|
||||
}
|
||||
hotList.clear();
|
||||
hotList.addAll(notRemoveList);
|
||||
|
||||
//把加载到的数据添加hotlist
|
||||
for(HomeRoom item : list) {
|
||||
HomeItem<HomeRoom> homeItem;
|
||||
if (hotList.size() < 3) {
|
||||
homeItem = new HomeItem<>(
|
||||
HomeItem.TYPE_SQUARE_PIC, item, true);
|
||||
} else {
|
||||
homeItem = new HomeItem<>(
|
||||
HomeItem.TYPE_LINEAR_LITTLE_PIC, item, true);
|
||||
}
|
||||
hotList.add(homeItem);
|
||||
}
|
||||
//计算要添加的虚位以待
|
||||
if (hotList.size() >= 1 && hotList.size() < 3) {
|
||||
int emptyNum = 3 - hotList.size();
|
||||
for (int i = 0; i < emptyNum; i++) {
|
||||
HomeItem<HomeRoom> emptyItem = new HomeItem<>(
|
||||
HomeItem.TYPE_SQUARE_EMPTY, new HomeRoom(), true);
|
||||
hotList.add(emptyItem);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < hotList.size(); i++) {
|
||||
if (i < 3) {
|
||||
hotList.get(i).setDividerDesc(i);
|
||||
} else if (i == hotList.size() - 1) {
|
||||
hotList.get(i).setDividerDesc(-2);
|
||||
} else {
|
||||
hotList.get(i).setDividerDesc(-1);
|
||||
}
|
||||
}
|
||||
|
||||
if (!mHomeItemList.contains(hotTitleItem)) {
|
||||
mHomeItemList.add(hotTitleItem);
|
||||
}
|
||||
mHomeItemList.addAll(hotList);
|
||||
getMvpView().addHomeDataSuccess(hotList);
|
||||
mPage++;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 首页数据成功
|
||||
*
|
||||
* @param homeInfoList
|
||||
*/
|
||||
private void onGetHomeDataSuccess(List<HomeInfo> homeInfoList) {
|
||||
if (!ListUtils.isListEmpty(homeInfoList)) {
|
||||
if (!ListUtils.isListEmpty(mHomeItemList)) {
|
||||
mHomeItemList.clear();
|
||||
}
|
||||
if (mHomeItemList == null) {
|
||||
mHomeItemList = new ArrayList<>();
|
||||
}
|
||||
hotList.clear();
|
||||
transformHomeData(homeInfoList);
|
||||
getMvpView().loadHomeDataSuccess(mHomeItemList);
|
||||
//3.1.2之后推荐页不显示怪兽
|
||||
//MonsterHuntingModel.get().getMonsterList("", AuthModel.get().getTicket());
|
||||
} else {
|
||||
getMvpView().onNoHomeData();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新交友的房间列表
|
||||
*/
|
||||
public void refreshMakeFriendList() {
|
||||
HomeModel.get().loadMakeFriendList()
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<List<HomeRoom>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<HomeRoom> roomList) {
|
||||
setToHomeItemList(roomList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
getMvpView().onRefreshMakeFriendListFail(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void setToHomeItemList(List<HomeRoom> roomList) {
|
||||
HomeItem<MakeFriendsInfo> makeFriendsInfoHomeItem = findHomeItemByType(HomeItem.TYPE_MAKE_FRIENDS);
|
||||
if (makeFriendsInfoHomeItem == null) {
|
||||
return;
|
||||
}
|
||||
MakeFriendsInfo makeFriendsInfo = (MakeFriendsInfo) makeFriendsInfoHomeItem.getData();
|
||||
if (makeFriendsInfo == null) {
|
||||
return;
|
||||
}
|
||||
makeFriendsInfo.setVmIsLoading(false);
|
||||
makeFriendsInfo.setRoomList(roomList);
|
||||
int position = mHomeItemList.indexOf(makeFriendsInfoHomeItem);
|
||||
|
||||
getMvpView().notifyDataSetChanged(IRecommendFragmentView.NOTIFY_DATA_SET_CHANGED, position, null);
|
||||
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private <T extends Serializable> HomeItem<T> findHomeItemByType(int type) {
|
||||
for (HomeItem homeItem : this.mHomeItemList) {
|
||||
if (homeItem.getItemType() == type) {
|
||||
return homeItem;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void removeEmptyHomeItem() {
|
||||
Iterator<HomeItem> iterator = this.mHomeItemList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
HomeItem homeItem = iterator.next();
|
||||
if (null == homeItem.getData()
|
||||
&& homeItem.getItemType() != HomeItem.TYPE_DIV_1
|
||||
&& homeItem.getItemType() != HomeItem.TYPE_DIV_2) {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换成我们的viewModel
|
||||
*
|
||||
* @param homeInfoList
|
||||
*/
|
||||
private void transformHomeData(List<HomeInfo> homeInfoList) {
|
||||
|
||||
if (null == this.mHomeItemList) {
|
||||
return;
|
||||
}
|
||||
if (null == homeInfoList) {
|
||||
return;
|
||||
}
|
||||
//banner
|
||||
mHomeItemList.add(new HomeItem<ArrayList<BannerInfo>>(HomeItem.TYPE_BANNER));
|
||||
//因为可配置模块不止1个,并且位置一定要在墙裂推荐和热门推荐之间
|
||||
//所以可配置模块独立获取
|
||||
List<HomeItem> configList = new ArrayList<>();
|
||||
//热门推荐
|
||||
hotList.clear();
|
||||
this.homeInfos = homeInfoList;
|
||||
for (HomeInfo homeInfo : homeInfoList) {
|
||||
if (null == homeInfo) continue;
|
||||
if (homeInfo.getType() == HomeItem.TYPE_BANNER) {
|
||||
//top Banner
|
||||
HomeItem<ArrayList<BannerInfo>> topBannerInfoHomeItem = findHomeItemByType(HomeItem.TYPE_BANNER);
|
||||
ArrayList<BannerInfo> topBannerInfoList = new Gson().fromJson(homeInfo.getData(),
|
||||
new TypeToken<List<BannerInfo>>() {
|
||||
}.getType());
|
||||
if (!ListUtils.isListEmpty(topBannerInfoList)) {
|
||||
topBannerInfoHomeItem.setData(topBannerInfoList);
|
||||
}
|
||||
|
||||
} else if (homeInfo.getType() == HomeItem.TYPE_TOP_MESSAGE) {
|
||||
//音游头条数据
|
||||
//3.1.2开始不处理
|
||||
} else if (homeInfo.getType() == HomeItem.TYPE_RECOMMEND ||
|
||||
homeInfo.getType() == HomeItem.TYPE_CONFIG) {
|
||||
//此版本推荐和可配置模块,数据和ui都一样,所以一起处理
|
||||
HomeItem<String> titleItem = new HomeItem<>(HomeItem.TYPE_BLOCK_TITLE,
|
||||
homeInfo.getTitle());
|
||||
List<HomeItem> tmpList = handleSubListToMainList(homeInfo, -1, false);
|
||||
|
||||
if (!ListUtils.isListEmpty(tmpList)) {
|
||||
|
||||
// 推荐位第三个位置展示半小时榜图标
|
||||
if (homeInfo.getType() == HomeItem.TYPE_RECOMMEND && tmpList.size() >= 3) {
|
||||
tmpList.get(2).setShowRankHalfIcon(true);
|
||||
}
|
||||
|
||||
configList.add(titleItem);
|
||||
configList.addAll(tmpList);
|
||||
}
|
||||
} else if (homeInfo.getType() == HomeItem.TYPE_KTV) {
|
||||
//KTV 房间列表
|
||||
//3.1.2开始不处理
|
||||
} else if (homeInfo.getType() == HomeItem.TYPE_HALL) {
|
||||
//交友的大厅
|
||||
|
||||
} else if (homeInfo.getType() == HomeItem.TYPE_MAKE_FRIENDS) {
|
||||
//佛系交友大厅
|
||||
//3.1.2开始不处理
|
||||
} else if (homeInfo.getType() == HomeImpDataType.HOT) {
|
||||
hotTitleItem.setData(homeInfo.getTitle());
|
||||
hotList.addAll(handleSubListToMainList(homeInfo, 3, true));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
|
||||
//移除没内容的块
|
||||
removeEmptyHomeItem();
|
||||
|
||||
//添加可配置模块
|
||||
mHomeItemList.addAll(configList);
|
||||
|
||||
//添加热门
|
||||
//为了兼容后台,热门第一页没数据,第二页居然有数据的骚操作
|
||||
//客户端进行兼容
|
||||
if (hotList.size() > 0) {
|
||||
//添加标题
|
||||
if (TextUtils.isEmpty(hotTitleItem.getData())) {
|
||||
hotTitleItem.setData("热门推荐");
|
||||
}
|
||||
mHomeItemList.add(hotTitleItem);
|
||||
mHomeItemList.addAll(hotList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 由于接口的数据是分模块返回的,
|
||||
* 所以将模块的数据处理后,合成一条list
|
||||
*/
|
||||
private List<HomeItem> handleSubListToMainList(HomeInfo homeInfo, int customSquareNum, boolean isHot) {
|
||||
List<HomeItem> resultList = new ArrayList<>();
|
||||
if (null != homeInfo.getData() && homeInfo.getData().isJsonArray()
|
||||
&& homeInfo.getData().getAsJsonArray().size() > 0) {
|
||||
//判断不为空
|
||||
List<HomeRoom> homeRoomList = new Gson().fromJson(homeInfo.getData(),
|
||||
new TypeToken<List<HomeRoom>>() {
|
||||
}.getType());
|
||||
if (homeRoomList == null) {
|
||||
homeRoomList = new ArrayList<>();
|
||||
|
||||
}
|
||||
int maxNum;
|
||||
//表示方格子的个数,如果不足3的倍数,则补足3的倍数
|
||||
//处理热门数据,前三个为格子,其他为普通布局,如果不足三个,则补虚位以待
|
||||
if (customSquareNum >= 0) {
|
||||
maxNum = customSquareNum;
|
||||
} else {
|
||||
maxNum = homeInfo.getMaxNum();
|
||||
}
|
||||
List<HomeItem> squareList = new ArrayList<>();
|
||||
List<HomeItem> linearList = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < homeRoomList.size(); i++) {
|
||||
HomeItem<HomeRoom> item;
|
||||
HomeRoom room = homeRoomList.get(i);
|
||||
if (i < maxNum) {
|
||||
item = new HomeItem<>(HomeItem.TYPE_SQUARE_PIC, room, isHot);
|
||||
squareList.add(item);
|
||||
} else {
|
||||
item = new HomeItem<>(HomeItem.TYPE_LINEAR_LITTLE_PIC, room, isHot);
|
||||
linearList.add(item);
|
||||
}
|
||||
}
|
||||
//添加虚位以待
|
||||
int needEmptySize;
|
||||
if (squareList.size() == 0) {
|
||||
//如果方形推荐位为空,添加3个虚位以待
|
||||
//如果方块列表为空,maxnum = 0,不配置虚位以待
|
||||
needEmptySize = 0;
|
||||
} else if (squareList.size() % 3 == 0) {
|
||||
//如果刚好是3的倍数,则不需要添加
|
||||
needEmptySize = 0;
|
||||
} else {
|
||||
//其余情况补足
|
||||
needEmptySize = 3 - squareList.size() % 3;
|
||||
}
|
||||
//添加虚位以待
|
||||
if (needEmptySize > 0) {
|
||||
for (int i = 0; i < needEmptySize; i++) {
|
||||
HomeItem item = new HomeItem<>(HomeItem.TYPE_SQUARE_EMPTY, new HomeRoom(), isHot);
|
||||
squareList.add(item);
|
||||
}
|
||||
}
|
||||
//加个防错机制,保证方形是3的倍数
|
||||
while (squareList.size() % 3 != 0) {
|
||||
if (squareList.size() > 0) {
|
||||
squareList.remove(squareList.size() - 1);
|
||||
}
|
||||
}
|
||||
//添加分割线
|
||||
for (int i = 0; i < squareList.size(); i++) {
|
||||
squareList.get(i).setDividerDesc(i % 3);
|
||||
}
|
||||
//分割线
|
||||
for (int i = 0; i < linearList.size(); i++) {
|
||||
if (i == linearList.size() - 1) {
|
||||
linearList.get(i).setDividerDesc(-2);
|
||||
} else {
|
||||
linearList.get(i).setDividerDesc(-1);
|
||||
}
|
||||
}
|
||||
resultList.addAll(squareList);
|
||||
resultList.addAll(linearList);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 整理推荐数据
|
||||
*
|
||||
* @param homeRoomList
|
||||
*/
|
||||
private void handleErbanRoomList(List<HomeRoom> homeRoomList) {
|
||||
if (ListUtils.isListEmpty(homeRoomList)) {
|
||||
return;
|
||||
}
|
||||
//做下简单的数据处理,对前3项特别处理
|
||||
for (int i = 0; i < homeRoomList.size(); i++) {
|
||||
if (i < 3) {
|
||||
homeRoomList.get(i).setItemStarType(HomeRoom.TYPE_GIRD);
|
||||
} else {
|
||||
homeRoomList.get(i).setItemStarType(HomeRoom.TYPE_LINEAR);
|
||||
}
|
||||
}
|
||||
//不足三项的情况下,添加虚位以待的格子
|
||||
if (homeRoomList.size() > 0 && homeRoomList.size() < 3) {
|
||||
List<HomeRoom> emptyList = new ArrayList<>();
|
||||
for (int i = 0; i < (3 - homeRoomList.size()); i++) {
|
||||
HomeRoom homeRoom = new HomeRoom();
|
||||
homeRoom.setItemStarType(HomeRoom.TYPE_GIRD_EMPTY);
|
||||
emptyList.add(homeRoom);
|
||||
}
|
||||
homeRoomList.addAll(emptyList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 把服务器返回的model 数据转换成 需要显示的 ViewModel
|
||||
*
|
||||
* @param homeInfo
|
||||
* @return
|
||||
*/
|
||||
private VMTopMessageInfo transformHomeData2TopMessageInfos(HomeInfo homeInfo) {
|
||||
List<TopMessage> topMessages = new Gson().fromJson(homeInfo.getData(), new TypeToken<List<TopMessage>>() {
|
||||
}.getType());
|
||||
VMTopMessageInfo topMessageInfo = new VMTopMessageInfo();
|
||||
topMessageInfo.setTitle(homeInfo.getTitle());
|
||||
List<VMTopMessage> vmTopMessageList = new ArrayList<>();
|
||||
//组装成2个2个一组
|
||||
final int groupSize = 2;
|
||||
VMTopMessage vmTopMessage = null;
|
||||
final int maxSize = topMessages.size() <= 6 ? topMessages.size() : 6;
|
||||
for (int i = 0; i < maxSize; i++) {
|
||||
if ((i % groupSize) == 0) {
|
||||
vmTopMessage = new VMTopMessage();
|
||||
vmTopMessage.setTopMessageList(new ArrayList<>());
|
||||
vmTopMessageList.add(vmTopMessage);
|
||||
}
|
||||
if (vmTopMessage != null) {
|
||||
vmTopMessage.getTopMessageList().add(topMessages.get(i));
|
||||
}
|
||||
}
|
||||
topMessageInfo.setVmTopMessageList(vmTopMessageList);
|
||||
return topMessageInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取首页数据失败
|
||||
*
|
||||
* @param error
|
||||
*/
|
||||
private void onGetHomeDataFail(String error) {
|
||||
getMvpView().loadHomeDataFail(error);
|
||||
}
|
||||
|
||||
|
||||
public int getPage() {
|
||||
return this.mPage;
|
||||
}
|
||||
|
||||
public void setPage(int page) {
|
||||
this.mPage = page;
|
||||
}
|
||||
|
||||
public List<HomeItem> getmHomeItemList() {
|
||||
return mHomeItemList;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IRecommendFragmentView getMvpView() {
|
||||
if (super.getMvpView() == null) {
|
||||
return new IRecommendFragmentView.FakeIMainFragmentView();
|
||||
} else {
|
||||
return super.getMvpView();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 同步怪兽数据
|
||||
*
|
||||
* @param monsterList
|
||||
*/
|
||||
private void syncMonsterData(List<MonsterProtocol.DataBean> monsterList) {
|
||||
//查找更新怪兽,没有的话添加怪兽
|
||||
for (int i = 0; i < monsterList.size(); i++) {
|
||||
MonsterProtocol.DataBean monsterSource = monsterList.get(i);
|
||||
boolean isFindMonster = false;
|
||||
for (int j = 0; j < mHomeItemList.size(); j++) {
|
||||
HomeItem homeItem = mHomeItemList.get(j);
|
||||
if (homeItem.getItemType() == HomeItem.TYPE_MONSTER) {
|
||||
MonsterProtocol.DataBean monsterTarget = (MonsterProtocol.DataBean) homeItem.getData();
|
||||
if (monsterTarget.getMonsterId() == monsterSource.getMonsterId()) {
|
||||
isFindMonster = true;
|
||||
homeItem.setData(monsterSource);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isFindMonster) {
|
||||
HomeItem<MonsterProtocol.DataBean> homeItem = new HomeItem<>(HomeItem.TYPE_MONSTER);
|
||||
homeItem.setData(monsterSource);
|
||||
mHomeItemList.add(1, homeItem);
|
||||
}
|
||||
}
|
||||
|
||||
//当前列表存在怪兽列表不存在的怪兽,移除该怪兽
|
||||
Iterator<HomeItem> itemIterator = mHomeItemList.iterator();
|
||||
while (itemIterator.hasNext()) {
|
||||
HomeItem homeItem = itemIterator.next();
|
||||
if (homeItem.getItemType() == HomeItem.TYPE_MONSTER) {
|
||||
MonsterProtocol.DataBean monsterSource = (MonsterProtocol.DataBean) homeItem.getData();
|
||||
boolean isNeedRemove = true;
|
||||
for (int i = 0; i < monsterList.size(); i++) {
|
||||
MonsterProtocol.DataBean monsterTarget = monsterList.get(i);
|
||||
if (monsterTarget.getMonsterId() == monsterSource.getMonsterId()) {
|
||||
isNeedRemove = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
int position = mHomeItemList.indexOf(homeItem);
|
||||
if (isNeedRemove) {
|
||||
itemIterator.remove();
|
||||
getMvpView().notifyDataSetChanged(IRecommendFragmentView.NOTIFY_DATA_SET_CHANGED, IRecommendFragmentView.NOTIFY_DATA_SET_REMOVE, position);
|
||||
} else {
|
||||
getMvpView().notifyDataSetChanged(IRecommendFragmentView.NOTIFY_DATA_SET_CHANGED, IRecommendFragmentView.NOTIFY_DATA_SET_CHANGED, position);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 列表中存在这个怪兽
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
private boolean findMonster(MonsterProtocol.DataBean data) {
|
||||
for (HomeItem homeItem : mHomeItemList) {
|
||||
if (HomeItem.TYPE_MONSTER == homeItem.getItemType()) {
|
||||
MonsterProtocol.DataBean monsterInfos = (MonsterProtocol.DataBean) homeItem.getData();
|
||||
if (monsterInfos.getMonsterId() == data.getMonsterId()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新头条消息,全部全服广播到来时候刷新
|
||||
*/
|
||||
public void refreshTopMessageList() {
|
||||
HomeModel.get().loadHomeListV4(
|
||||
String.valueOf(AuthModel.get().getCurrentUid())
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<ServiceResult<List<HomeInfo>>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(ServiceResult<List<HomeInfo>> listServiceResult) {
|
||||
if (listServiceResult.isSuccess()) {
|
||||
updateTopMessages(listServiceResult.getData());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新头条信息
|
||||
*
|
||||
* @param data
|
||||
*/
|
||||
private void updateTopMessages(List<HomeInfo> data) {
|
||||
//新获取到首页排序与旧的不一致,直接刷新首页
|
||||
if (homeInfos == null || homeInfos.size() != data.size()) {
|
||||
loadHomeData();
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < homeInfos.size(); i++) {
|
||||
if (homeInfos.get(i).getType() != data.get(i).getType()) {
|
||||
loadHomeData();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//新获取到首页排序与旧的一致,更新头条数据
|
||||
VMTopMessageInfo vmTopMessageInfo = null;
|
||||
for (HomeInfo datum : data) {
|
||||
if (datum.getType() == HomeItem.TYPE_TOP_MESSAGE) {
|
||||
vmTopMessageInfo = transformHomeData2TopMessageInfos(datum);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (null != vmTopMessageInfo) {
|
||||
for (int i = 0; i < mHomeItemList.size(); i++) {
|
||||
HomeItem homeItem = mHomeItemList.get(i);
|
||||
if (homeItem.getItemType() == HomeItem.TYPE_TOP_MESSAGE) {
|
||||
homeItem.setData(vmTopMessageInfo);
|
||||
getMvpView().notifyDataSetChanged(IRecommendFragmentView.NOTIFY_DATA_SET_CHANGED, IRecommendFragmentView.NOTIFY_DATA_SET_CHANGED, i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onMarketVerifyUpdateEvent(MarketVerifyUpdateEvent event) {
|
||||
getMvpView().showByMarketCheckingStatus();
|
||||
}
|
||||
|
||||
}
|
@@ -1,78 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.view.IRoomCategoryFragmentView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TabInfo;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
public class RoomCategoryFragmentPresenter extends BaseMvpPresenter<IRoomCategoryFragmentView> {
|
||||
private static final String TAG = RoomCategoryFragmentPresenter.class.getSimpleName();
|
||||
|
||||
private List<TabInfo> mTabInfoList;
|
||||
|
||||
@Override
|
||||
public void onCreatePresenter(@Nullable Bundle saveState) {
|
||||
super.onCreatePresenter(saveState);
|
||||
if (saveState != null) {
|
||||
mTabInfoList = saveState.getParcelableArrayList(Constants.KEY_MAIN_TAB_LIST);
|
||||
}else{
|
||||
mTabInfoList = HomeModel.get().getmTabInfoList();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
if (!ListUtils.isListEmpty(mTabInfoList)) {
|
||||
outState.putParcelableArrayList(Constants.KEY_MAIN_TAB_LIST, (ArrayList<? extends Parcelable>) mTabInfoList);
|
||||
}
|
||||
}
|
||||
|
||||
public List<TabInfo> getTabInfoList() {
|
||||
return this.mTabInfoList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 从服务器获取房间分类列表
|
||||
*/
|
||||
public void loadTabInfoList() {
|
||||
HomeModel.get().getMainTabData()
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<List<TabInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<TabInfo> tabInfos) {
|
||||
mTabInfoList = tabInfos;
|
||||
getMvpView().initiate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
//获取不到
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,87 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.helper.LoadPageDataHelper;
|
||||
import com.yizhuan.erban.home.view.IRoomListFragmentView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.ClassifiedRoomInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomItem;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TabInfo;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/11/2
|
||||
*/
|
||||
public class RoomListPresenter extends BaseMvpPresenter<IRoomListFragmentView>
|
||||
implements LoadPageDataHelper.LoadData<List<HomeRoomItem>> {
|
||||
|
||||
private LoadPageDataHelper<List<HomeRoomItem>> loadPageDataHelper;
|
||||
|
||||
private TabInfo tabInfo;
|
||||
|
||||
public RoomListPresenter() {
|
||||
loadPageDataHelper = new LoadPageDataHelper<>(this);
|
||||
}
|
||||
|
||||
public void setTabInfo(TabInfo tabInfo) {
|
||||
this.tabInfo = tabInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<List<HomeRoomItem>> loadData(int curPage) {
|
||||
if (tabInfo == null) {
|
||||
return Single.error(new Throwable("没找到房间类型"));
|
||||
}
|
||||
return HomeModel.get().getMainDataByTab(tabInfo.getId(), curPage, Constants.PAGE_SIZE)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<ClassifiedRoomInfo, SingleSource<? extends List<HomeRoomItem>>>() {
|
||||
@Override
|
||||
public SingleSource<? extends List<HomeRoomItem>> apply(ClassifiedRoomInfo classifiedRoomInfo) throws Exception {
|
||||
List<HomeRoomItem> list = new ArrayList<>();
|
||||
List<HomeRoom> homeRooms = classifiedRoomInfo.getRooms();
|
||||
|
||||
if (!ListUtils.isListEmpty(homeRooms)) {
|
||||
for (HomeRoom homeRoom : homeRooms) {
|
||||
list.add(new HomeRoomItem<>(HomeRoomItem.TYPE_HOME_ROOM, homeRoom));
|
||||
}
|
||||
}
|
||||
if (!ListUtils.isListEmpty(classifiedRoomInfo.getBanners()) && curPage == Constants.PAGE_START) {
|
||||
if (list.size() <= 4) {
|
||||
list.add(new HomeRoomItem<>(HomeRoomItem.TYPE_BANNER, classifiedRoomInfo.getBanners()));
|
||||
} else {
|
||||
list.add(4, new HomeRoomItem<>(HomeRoomItem.TYPE_BANNER, classifiedRoomInfo.getBanners()));
|
||||
}
|
||||
}
|
||||
|
||||
if (ListUtils.isListEmpty(list)) {
|
||||
return Single.just(new ArrayList<>());
|
||||
} else {
|
||||
return Single.just(list);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public Single<List<HomeRoomItem>> refreshData() {
|
||||
return loadPageDataHelper.refreshData();
|
||||
}
|
||||
|
||||
public Single<List<HomeRoomItem>> loadMoreData() {
|
||||
return loadPageDataHelper.loadMoreData();
|
||||
}
|
||||
}
|
@@ -1,106 +0,0 @@
|
||||
package com.yizhuan.erban.home.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.helper.LoadPageDataHelper;
|
||||
import com.yizhuan.erban.home.view.IRoomTabView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomItem;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TitleIndexInfo;
|
||||
import com.yizhuan.xchat_android_core.home.model.HomeModel;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
public class RoomTabPresenter extends BaseMvpPresenter<IRoomTabView> implements LoadPageDataHelper.LoadData<List<HomeRoomItem>> {
|
||||
|
||||
private LoadPageDataHelper<List<HomeRoomItem>> loadPageDataHelper;
|
||||
|
||||
private long mTitleId = -1;
|
||||
|
||||
public RoomTabPresenter() {
|
||||
loadPageDataHelper = new LoadPageDataHelper<>(this);
|
||||
}
|
||||
|
||||
public void setmTitleId(long titleId) {
|
||||
this.mTitleId = titleId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<List<HomeRoomItem>> loadData(int curPage) {
|
||||
if (mTitleId < 0) {
|
||||
return Single.error(new Throwable("没找到房间类型"));
|
||||
}
|
||||
|
||||
return HomeModel.get().titleIndex(mTitleId, curPage, Constants.PAGE_SIZE)
|
||||
.compose(bindToLifecycle())
|
||||
.flatMap(new Function<TitleIndexInfo, SingleSource<? extends List<HomeRoomItem>>>() {
|
||||
@Override
|
||||
public SingleSource<? extends List<HomeRoomItem>> apply(TitleIndexInfo classifiedRoomInfo) throws Exception {
|
||||
List<HomeRoomItem> list = new ArrayList<>();
|
||||
List<HomeRoom> homeRooms = classifiedRoomInfo.getRooms();
|
||||
|
||||
if (!ListUtils.isListEmpty(homeRooms)) {
|
||||
|
||||
if (curPage == Constants.PAGE_START) {
|
||||
|
||||
// 空白占位
|
||||
list.add(new HomeRoomItem<>(HomeRoomItem.TYPE_TOP_EMPTY, null));
|
||||
|
||||
int topThree = 0;
|
||||
ArrayList<HomeRoom> roomList = new ArrayList<>();
|
||||
while (homeRooms.size() > 0 && topThree < 3) {
|
||||
HomeRoom homeRoom = homeRooms.remove(0);
|
||||
homeRoom.setItemStarType(HomeRoom.TYPE_GIRD);
|
||||
roomList.add(homeRoom);
|
||||
topThree++;
|
||||
}
|
||||
|
||||
while (roomList.size() < 3) {
|
||||
HomeRoom homeRoom = new HomeRoom();
|
||||
homeRoom.setItemStarType(HomeRoom.TYPE_GIRD_EMPTY);
|
||||
roomList.add(homeRoom);
|
||||
}
|
||||
|
||||
list.add(new HomeRoomItem<>(HomeRoomItem.TYPE_TOP_THREE, roomList));
|
||||
|
||||
}
|
||||
|
||||
for (HomeRoom homeRoom : homeRooms) {
|
||||
list.add(new HomeRoomItem<>(HomeRoomItem.TYPE_HOME_ROOM, homeRoom));
|
||||
}
|
||||
}
|
||||
|
||||
if (!ListUtils.isListEmpty(classifiedRoomInfo.getBanner()) && curPage == Constants.PAGE_START) {
|
||||
HomeRoomItem bannerItems = new HomeRoomItem<>(HomeRoomItem.TYPE_BANNER, classifiedRoomInfo.getBanner());
|
||||
if (list.size() <= 5) {
|
||||
if (list.size() == 0)
|
||||
bannerItems.setBannerInTop(true);
|
||||
list.add(bannerItems);
|
||||
} else {
|
||||
list.add(5, bannerItems);
|
||||
}
|
||||
}
|
||||
|
||||
if (ListUtils.isListEmpty(list)) {
|
||||
return Single.just(new ArrayList<>());
|
||||
} else {
|
||||
return Single.just(list);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public Single<List<HomeRoomItem>> refreshData() {
|
||||
return loadPageDataHelper.refreshData();
|
||||
}
|
||||
|
||||
public Single<List<HomeRoomItem>> loadMoreData() {
|
||||
return loadPageDataHelper.loadMoreData();
|
||||
}
|
||||
}
|
@@ -1,98 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.home.adapter.HomeFragmentAdapter;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
|
||||
/**
|
||||
* 首页3+n的边框划线
|
||||
* Created by lvzebiao on 2019/2/20.
|
||||
*/
|
||||
|
||||
public class Home3PlusNDecoration extends RecyclerView.ItemDecoration {
|
||||
|
||||
private int gridDividerPx;
|
||||
|
||||
private HomeFragmentAdapter adapter;
|
||||
|
||||
private Drawable lineDrawable;
|
||||
|
||||
private int lineLeftPaddingPx;
|
||||
|
||||
private int lineHeightPx = 1;
|
||||
|
||||
public Home3PlusNDecoration(Context context, HomeFragmentAdapter adapter) {
|
||||
gridDividerPx = UIUtil.dip2px(context, 15);
|
||||
lineLeftPaddingPx = UIUtil.dip2px(context, 86);
|
||||
this.adapter = adapter;
|
||||
lineDrawable = new ColorDrawable(context.getResources().getColor(R.color.line_color));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
|
||||
super.getItemOffsets(outRect, view, parent, state);
|
||||
if (!(parent.getLayoutManager() instanceof GridLayoutManager)) {
|
||||
return;
|
||||
}
|
||||
GridLayoutManager manager = (GridLayoutManager) parent.getLayoutManager();
|
||||
int position = parent.getChildAdapterPosition(view);
|
||||
if (position >= adapter.getData().size()) {
|
||||
outRect.set(0, 0, 0, 0);
|
||||
return;
|
||||
}
|
||||
int dividerDesc = adapter.getData().get(position).getDividerDesc();
|
||||
int left, right;
|
||||
if (dividerDesc == -3) {
|
||||
left = 0;
|
||||
right = 0;
|
||||
} else if (dividerDesc >= 0) {
|
||||
left = gridDividerPx - gridDividerPx * dividerDesc / manager.getSpanCount();
|
||||
right = gridDividerPx * (dividerDesc + 1) / manager.getSpanCount();
|
||||
} else {
|
||||
left = gridDividerPx;
|
||||
right = gridDividerPx;
|
||||
}
|
||||
int bottom = 0;
|
||||
//首页去除画线
|
||||
// if (dividerDesc == -3) {
|
||||
// bottom = 0;
|
||||
// } else if (dividerDesc == -1) {
|
||||
// bottom = lineHeightPx;
|
||||
// } else {
|
||||
// bottom = 0;
|
||||
// }
|
||||
outRect.set(left, 0, right, bottom);
|
||||
}
|
||||
//首页去除画线
|
||||
// @Override
|
||||
// public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
|
||||
// super.onDraw(c, parent, state);
|
||||
// int left = lineLeftPaddingPx;
|
||||
// int right = parent.getWidth() - gridDividerPx;
|
||||
// for (int i = 0; i < parent.getChildCount(); i++) {
|
||||
// View childView = parent.getChildAt(i);
|
||||
// RecyclerView.LayoutParams childViewParams = (RecyclerView.LayoutParams) childView.getLayoutParams();
|
||||
// int position = childViewParams.getViewAdapterPosition();
|
||||
// if (position < adapter.getData().size()) {
|
||||
// int dividerDesc = adapter.getData().get(position).getDividerDesc();
|
||||
// if (dividerDesc == -1) {
|
||||
// //int traX = (int)(ViewCompat.getTranslationX(childView)); 偏移值,暂时没用到
|
||||
// //int traY = (int)(ViewCompat.getTranslationY(childView));
|
||||
// final int top = childView.getTop() + childView.getHeight();
|
||||
// final int bottom = top + lineHeightPx;
|
||||
// //drawable.setBounds(left + traX, top + traY, right + traX, bottom + traY);
|
||||
// lineDrawable.setBounds(left, top, right, bottom);
|
||||
// lineDrawable.draw(c);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
@@ -1,69 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.home.adapter.ErbanRecommendAdapter;
|
||||
import com.yizhuan.erban.home.adapter.RecommendThreeNModelDecoration;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
import com.yizhuan.xchat_android_core.home.bean.RecommendInfo;
|
||||
import com.yizhuan.xchat_android_library.widget.ShapeConstrainLayout;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 可配置模块,3N+M布局封装
|
||||
* Created by lvzebiao on 2019/2/19.
|
||||
*/
|
||||
|
||||
public class HomeConfigModule extends ShapeConstrainLayout {
|
||||
|
||||
private TextView tvTitle;
|
||||
|
||||
private RecyclerView recyclerView;
|
||||
|
||||
public HomeConfigModule(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public HomeConfigModule(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
inflate(context, R.layout.home_module_title_recycler_view, this);
|
||||
tvTitle = findViewById(R.id.tv_title);
|
||||
recyclerView = findViewById(R.id.rv_list);
|
||||
}
|
||||
|
||||
public void setData(RecommendInfo info) {
|
||||
if (info == null) {
|
||||
return;
|
||||
}
|
||||
tvTitle.setText(info.getTitle());
|
||||
List<HomeRoom> roomList = info.getRoomList();
|
||||
recyclerView.setItemAnimator(null);
|
||||
recyclerView.setFocusable(false);
|
||||
Context context = getContext();
|
||||
GridLayoutManager manager = new GridLayoutManager(context, 3);
|
||||
recyclerView.setLayoutManager(manager);
|
||||
if (recyclerView.getItemDecorationCount() == 0) {
|
||||
int px = UIUtil.dip2px(context, 15);
|
||||
recyclerView.addItemDecoration(new RecommendThreeNModelDecoration(px));
|
||||
}
|
||||
ErbanRecommendAdapter erbanRecommendAdapter = new ErbanRecommendAdapter(context, roomList);
|
||||
recyclerView.setAdapter(erbanRecommendAdapter);
|
||||
erbanRecommendAdapter.setSpanSizeLookup(new BaseQuickAdapter.SpanSizeLookup() {
|
||||
@Override
|
||||
public int getSpanSize(GridLayoutManager gridLayoutManager, int position) {
|
||||
if (position < 3) {
|
||||
return 1;
|
||||
}
|
||||
return manager.getSpanCount();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyCustomServiceInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
public interface IFamilyFragmentView extends IMvpBaseView {
|
||||
void showMyFamilyInfo(FamilyInfo familyInfo);
|
||||
|
||||
void onCustomServiceInfo(FamilyCustomServiceInfo customServiceInfo);
|
||||
|
||||
void onCustomServiceFail(String reason);
|
||||
}
|
@@ -1,20 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_core.home.bean.FindInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/22
|
||||
*/
|
||||
|
||||
public interface IFindFragmentView extends IMvpBaseView {
|
||||
|
||||
public void onLoadData(FindInfo findInfo);
|
||||
|
||||
void onLoadDataFail(String error);
|
||||
|
||||
// void onLoadNewUserList(List<UserInfo> userInfoList);
|
||||
|
||||
}
|
@@ -1,6 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
public interface IFindTabFragmentView extends IMvpBaseView {
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/31
|
||||
*/
|
||||
public interface IHottestKTVRoomFragmentView extends IMvpBaseView {
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
public interface IKTVFragmentView extends IMvpBaseView {
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
public interface IMainFragmentTabBg {
|
||||
void isBannerTop(boolean isBannerTop);
|
||||
}
|
@@ -20,6 +20,7 @@ public interface IMainFragmentView extends IMvpBaseView {
|
||||
|
||||
/**
|
||||
* 请求打开房间结果
|
||||
*
|
||||
* @param openRoomFailType
|
||||
* @param arg
|
||||
*/
|
||||
@@ -36,6 +37,10 @@ public interface IMainFragmentView extends IMvpBaseView {
|
||||
*/
|
||||
void exitRoom(RoomInfo roomInfo);
|
||||
|
||||
void onGetHomeBannerSuccess(List<BannerInfo> bannerInfos);
|
||||
|
||||
void onGetHomeTagSuccess(List<HomeTagInfo> tagInfos);
|
||||
|
||||
/**
|
||||
* 假实现,用于在View销毁后 调用View方法导致空指针问题,的一种解决方案
|
||||
*/
|
||||
@@ -66,33 +71,6 @@ public interface IMainFragmentView extends IMvpBaseView {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void titleListSuccess(List<TagListInfo> tagListInfoList) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void titleListFail(String msg) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onGetFirstPageBannerFailed(String message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void roomWorldModeCloseSuccess() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void roomWorldModeCloseFail(String error) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetHomeBannerSuccess(List<BannerInfo> bannerInfos) {
|
||||
|
||||
@@ -103,29 +81,7 @@ public interface IMainFragmentView extends IMvpBaseView {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getRoomShortcut(String data) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void titleListSuccess(List<TagListInfo> tagListInfoList);
|
||||
void titleListFail(String msg);
|
||||
|
||||
|
||||
/**
|
||||
* 获取首页banner失败
|
||||
* @param message
|
||||
*/
|
||||
void onGetFirstPageBannerFailed(String message);
|
||||
|
||||
void roomWorldModeCloseSuccess();
|
||||
void roomWorldModeCloseFail(String error);
|
||||
|
||||
void onGetHomeBannerSuccess(List<BannerInfo> bannerInfos);
|
||||
|
||||
void onGetHomeTagSuccess(List<HomeTagInfo> tagInfos);
|
||||
|
||||
void getRoomShortcut(String data);
|
||||
|
||||
}
|
||||
|
@@ -1,11 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/31
|
||||
*/
|
||||
public interface INewestKTVRoomFragmentView extends IMvpBaseView {
|
||||
}
|
@@ -1,124 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeItem;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
public interface IRecommendFragmentView extends IMvpBaseView {
|
||||
public static int NOTIFY_DATA_SET_CHANGED = 1;
|
||||
public static int NOTIFY_DATA_SET_REMOVE = 2;
|
||||
|
||||
/**
|
||||
* 设置首页数据
|
||||
*
|
||||
* @param data 首页数据
|
||||
*/
|
||||
void loadHomeDataSuccess(List<HomeItem> data);
|
||||
|
||||
/**
|
||||
* 没有首页数据
|
||||
*/
|
||||
void onNoHomeData();
|
||||
|
||||
/**
|
||||
* 获取首页数据失败
|
||||
*
|
||||
* @param error
|
||||
*/
|
||||
void loadHomeDataFail(String error);
|
||||
|
||||
/**
|
||||
* 加载第二页数据
|
||||
*
|
||||
* @param data 首页数据
|
||||
*/
|
||||
void addHomeDataSuccess(List<HomeItem> data);
|
||||
|
||||
/**
|
||||
* 没有更多房间数据了
|
||||
*/
|
||||
void onNoMoreHomeData();
|
||||
|
||||
/**
|
||||
* 加载第二页数据失败
|
||||
*
|
||||
* @param error
|
||||
*/
|
||||
void addHomeDataFail(String error);
|
||||
|
||||
|
||||
void setEnableLoadMore(boolean b);
|
||||
|
||||
void setRefreshing(boolean b);
|
||||
|
||||
void notifyDataSetChanged(int type, int position, Object payloads);
|
||||
|
||||
void showByMarketCheckingStatus();
|
||||
|
||||
void onRefreshMakeFriendListFail(String message);
|
||||
|
||||
|
||||
public class FakeIMainFragmentView implements IRecommendFragmentView {
|
||||
@Override
|
||||
public void loadHomeDataSuccess(List<HomeItem> data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNoHomeData() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadHomeDataFail(String error) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addHomeDataSuccess(List<HomeItem> data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNoMoreHomeData() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addHomeDataFail(String error) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnableLoadMore(boolean b) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRefreshing(boolean b) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyDataSetChanged(int type, int position, Object payloads) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void showByMarketCheckingStatus() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshMakeFriendListFail(String message) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,12 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/10/29
|
||||
*/
|
||||
public interface IRoomCategoryFragmentView extends IMvpBaseView {
|
||||
public void initiate();
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/11/2
|
||||
*/
|
||||
public interface IRoomListFragmentView extends IMvpBaseView {
|
||||
}
|
@@ -1,6 +0,0 @@
|
||||
package com.yizhuan.erban.home.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
public interface IRoomTabView extends IMvpBaseView {
|
||||
}
|
@@ -142,6 +142,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
rootView = inflater.inflate(R.layout.nim_msg_fragment, container, false);
|
||||
EventBus.getDefault().register(this);
|
||||
tvChatLimit = rootView.findViewById(R.id.tv_chat_limit);
|
||||
return rootView;
|
||||
}
|
||||
|
||||
|
@@ -1,194 +0,0 @@
|
||||
package com.yizhuan.erban.ui.widget.marqueeview;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.annotation.AnimRes;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.SparseArray;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.animation.Animation;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.home.bean.RankingInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 首页排行榜
|
||||
* Created by ${Seven} on 2017/11/2.
|
||||
*/
|
||||
public class HomeRankingView extends MarqueeView {
|
||||
|
||||
private SparseArray<List<RankingInfo.Ranking>> mListMap;
|
||||
private Context mContext;
|
||||
|
||||
public HomeRankingView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public HomeRankingView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public void setHomeNoticeInfoList(RankingInfo rankingInfo) {
|
||||
if (rankingInfo == null) return;
|
||||
initData(rankingInfo);
|
||||
}
|
||||
|
||||
private void initData(RankingInfo rankingInfo) {
|
||||
if (mListMap == null)
|
||||
mListMap = new SparseArray<>();
|
||||
mListMap.put(0, rankingInfo.starList);
|
||||
mListMap.put(1, rankingInfo.nobleList);
|
||||
mListMap.put(2, rankingInfo.roomList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据通知列表,启动翻页公告
|
||||
*
|
||||
* @param rankingInfo 字符串列表
|
||||
*/
|
||||
public void startWithLists(RankingInfo rankingInfo) {
|
||||
startWithLists(rankingInfo, inAnimResId, outAnimResId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据通知列表,启动翻页公告
|
||||
*
|
||||
* @param rankingInfo 通知列表
|
||||
* @param inAnimResId 进入动画的resID
|
||||
* @param outAnimResID 离开动画的resID
|
||||
*/
|
||||
public void startWithLists(RankingInfo rankingInfo, @AnimRes int inAnimResId, @AnimRes int outAnimResID) {
|
||||
setHomeNoticeInfoList(rankingInfo);
|
||||
start(inAnimResId, outAnimResID);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean start(int inAnimResId, int outAnimResID) {
|
||||
removeAllViews();
|
||||
clearAnimation();
|
||||
|
||||
position = 0;
|
||||
addView(createView(mListMap.get(position)));
|
||||
|
||||
if (mListMap.size() > 1) {
|
||||
setInAndOutAnimation(inAnimResId, outAnimResID);
|
||||
startFlipping();
|
||||
}
|
||||
|
||||
if (getInAnimation() != null) {
|
||||
getInAnimation().setAnimationListener(new Animation.AnimationListener() {
|
||||
@Override
|
||||
public void onAnimationStart(Animation animation) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationEnd(Animation animation) {
|
||||
position++;
|
||||
if (position >= mListMap.size()) {
|
||||
position = 0;
|
||||
}
|
||||
if (position < mListMap.size()) {
|
||||
View view = createView(mListMap.get(position));
|
||||
if (view.getParent() == null) {
|
||||
addView(view);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAnimationRepeat(Animation animation) {
|
||||
}
|
||||
});
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private View createView(final List<RankingInfo.Ranking> rankingList) {
|
||||
int index = (getDisplayedChild() + 1) % 3;
|
||||
View view = getChildAt(index);
|
||||
if (view == null) {
|
||||
view = LayoutInflater.from(getContext()).inflate(R.layout.layout_home_notice, null);
|
||||
// textView.setGravity(gravity);
|
||||
// textView.setTextColor(textColor);
|
||||
// textView.setTextSize(textSize);
|
||||
// textView.setSingleLine(singleLine);
|
||||
}
|
||||
|
||||
// textView.setText(text);
|
||||
TextView noticeTitle = (TextView) view.findViewById(R.id.tv_notice_title);
|
||||
ImageView noticeCover1 = (ImageView) view.findViewById(R.id.iv_cover_1);
|
||||
ImageView noticeCover2 = (ImageView) view.findViewById(R.id.iv_cover_2);
|
||||
ImageView noticeCover3 = (ImageView) view.findViewById(R.id.iv_cover_3);
|
||||
ImageView arrowRight = (ImageView) view.findViewById(R.id.iv_arrow_right);
|
||||
|
||||
if (position == 0) {
|
||||
noticeTitle.setText(R.string.star_list_title);
|
||||
bindAvater(rankingList, noticeCover1, noticeCover2, noticeCover3);
|
||||
} else if (position == 1) {
|
||||
noticeTitle.setText(R.string.noble_list_title);
|
||||
bindAvater(rankingList, noticeCover1, noticeCover2, noticeCover3);
|
||||
} else if (position == 2) {
|
||||
noticeTitle.setText(R.string.room_list_title);
|
||||
bindAvater(rankingList, noticeCover1, noticeCover2, noticeCover3);
|
||||
}
|
||||
|
||||
setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (noticeClickListener != null) {
|
||||
noticeClickListener.onNoticeClick(getPosition(), rankingList);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
view.setTag(this.position);
|
||||
return view;
|
||||
}
|
||||
|
||||
private void bindAvater(List<RankingInfo.Ranking> rankingList, ImageView noticeCover1, ImageView noticeCover2, ImageView noticeCover3) {
|
||||
if (rankingList != null) {
|
||||
int size = rankingList.size();
|
||||
if (size > 0) {
|
||||
bindAvater(noticeCover3, rankingList.get(0));
|
||||
}
|
||||
if (size > 1) {
|
||||
bindAvater(noticeCover2, rankingList.get(1));
|
||||
}
|
||||
if (size > 2) {
|
||||
bindAvater(noticeCover1, rankingList.get(2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void bindAvater(ImageView imageView, RankingInfo.Ranking ranking) {
|
||||
if (ranking != null) {
|
||||
GlideApp.with(mContext)
|
||||
.load(ranking.getAvatar())
|
||||
// .transform(new GlideCircleTransform(mContext))
|
||||
.transform(new CircleCrop())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.error(R.drawable.default_avatar)
|
||||
.into(imageView);
|
||||
} else {
|
||||
imageView.setImageResource(R.drawable.default_avatar);
|
||||
}
|
||||
}
|
||||
|
||||
private NoticeClickListener noticeClickListener;
|
||||
|
||||
public void setNoticeClickListener(NoticeClickListener noticeClickListener) {
|
||||
this.noticeClickListener = noticeClickListener;
|
||||
}
|
||||
|
||||
public interface NoticeClickListener {
|
||||
void onNoticeClick(int position, List<RankingInfo.Ranking> rankingList);
|
||||
}
|
||||
}
|
@@ -1,98 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="click"
|
||||
type="android.view.View.OnClickListener" />
|
||||
</data>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="311dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="20dp"
|
||||
android:background="@drawable/shape_white_solid_round">
|
||||
|
||||
<!--<LinearLayout-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:layout_marginTop="29dp"-->
|
||||
<!--android:gravity="center_vertical">-->
|
||||
|
||||
<!--<TextView-->
|
||||
<!--android:layout_width="0dp"-->
|
||||
<!--android:layout_weight="1"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:text="房间说明"-->
|
||||
<!--android:textColor="#ffff894f"-->
|
||||
<!--android:textSize="18sp" />-->
|
||||
|
||||
<!--<ImageView-->
|
||||
<!--android:id="@+id/iv_close"-->
|
||||
<!--android:layout_width="wrap_content"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:src="@drawable/ic_dialog_close"-->
|
||||
<!--android:layout_marginRight="10dp" />-->
|
||||
<!--</LinearLayout>-->
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="9dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="房间说明"
|
||||
android:textColor="#ffff894f"
|
||||
android:textSize="18sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_dialog_close"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_marginRight="9dp" />
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="什么是陪伴房?"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="15dp"
|
||||
android:text="陪伴房给你更私密的空间,在房间中,你们可以一起听自己喜欢的音乐、陪连麦、玩游戏、用声音感觉你在身边。相互感觉彼此!"
|
||||
android:textColor="#ff333333"
|
||||
android:layout_marginRight="25dp"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="什么是普通房?"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="在普通房可以和七八个朋友一起谈天说地、K歌欢唱,找声音好听的小哥哥小姐姐一起,共同开启声音盛宴!"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginRight="25dp"
|
||||
android:layout_marginBottom="35dp" />
|
||||
</LinearLayout>
|
||||
</layout>
|
@@ -1,136 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true"
|
||||
android:overScrollMode="never"
|
||||
android:scrollbars="none">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="#FAFAFA"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView
|
||||
android:id="@+id/roll_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="120dp"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:background="#FAFAFA"
|
||||
android:visibility="gone"
|
||||
app:rollviewpager_hint_gravity="left"
|
||||
app:rollviewpager_hint_paddingBottom="8dp"
|
||||
app:rollviewpager_hint_paddingLeft="@dimen/dp_10"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_entrance"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="13dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_marginBottom="3dp"
|
||||
android:clipToPadding="false" />
|
||||
|
||||
<include
|
||||
android:id="@+id/list_item_home_erban_top_message"
|
||||
layout="@layout/list_item_home_erban_top_message" />
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/ll_newer_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginRight="20dp"
|
||||
app:cardBackgroundColor="#ffffff"
|
||||
app:cardCornerRadius="10dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_mentoring_relationship"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="50dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="15dp"
|
||||
android:paddingRight="15dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableEnd="@drawable/icon_find_mentor"
|
||||
android:drawablePadding="@dimen/dp_10"
|
||||
android:text="@string/me_mentoring_relationship_title"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_15"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="10dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableEnd="@mipmap/common_ic_more_arrow"
|
||||
android:drawablePadding="6dp"
|
||||
android:text="@string/me_mentoring_relationship_hint"
|
||||
android:textColor="@color/color_FF7162"
|
||||
android:textSize="@dimen/dp_12"
|
||||
tools:ignore="SpUsage" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@color/white"
|
||||
app:cardCornerRadius="10dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<com.yizhuan.erban.ui.widget.InterceptTouchLayout
|
||||
android:id="@+id/ll_public_chat_hall_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:visibility="visible">
|
||||
|
||||
<include
|
||||
android:id="@+id/list_item_home_hall"
|
||||
layout="@layout/list_item_home_hall" />
|
||||
|
||||
</com.yizhuan.erban.ui.widget.InterceptTouchLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
||||
</LinearLayout>
|
@@ -1,18 +0,0 @@
|
||||
<com.scwang.smartrefresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/smart_refresh_layout"
|
||||
tools:context="com.yizhuan.erban.home.fragment.HomeOtherTabFragment">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:paddingStart="12.5dp"
|
||||
android:paddingEnd="12.5dp"
|
||||
android:paddingTop="2dp"
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
||||
/>
|
||||
|
||||
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
|
@@ -1,8 +1,7 @@
|
||||
<com.yizhuan.erban.common.widget.StatusLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="com.yizhuan.erban.home.fragment.HomeOtherTabFragment">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
|
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.yizhuan.erban.common.widget.StatusLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/srl_refresh_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:paddingBottom="12dp"
|
||||
android:paddingLeft="15dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingTop="12dp" />
|
||||
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
</com.yizhuan.erban.common.widget.StatusLayout>
|
@@ -1,23 +1,20 @@
|
||||
<com.yizhuan.erban.common.widget.StatusLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="com.yizhuan.erban.home.fragment.HomeOtherTabFragment">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:paddingStart="12.5dp"
|
||||
android:paddingEnd="12.5dp"
|
||||
android:paddingTop="2dp"
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
/>
|
||||
android:paddingStart="12.5dp"
|
||||
android:paddingTop="2dp"
|
||||
android:paddingEnd="12.5dp" />
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
||||
|
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.yizhuan.erban.common.widget.StatusLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/color_F5F5F5"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/srl_refresh_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:paddingBottom="12dp"
|
||||
android:paddingLeft="15dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingTop="12dp" />
|
||||
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
||||
</com.yizhuan.erban.common.widget.StatusLayout>
|
@@ -1,31 +0,0 @@
|
||||
<com.scwang.smartrefresh.layout.SmartRefreshLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/smart_refresh_layout"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="com.yizhuan.erban.home.fragment.RecommendationFragment">
|
||||
|
||||
<!--<android.support.v4.widget.NestedScrollView-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="wrap_content">-->
|
||||
|
||||
<!--<LinearLayout-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:orientation="vertical">-->
|
||||
|
||||
|
||||
<!---->
|
||||
|
||||
<!---->
|
||||
|
||||
<!--</LinearLayout>-->
|
||||
<!--</android.support.v4.widget.NestedScrollView>-->
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
|
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/white">
|
||||
|
||||
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
|
||||
android:id="@+id/main_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
android:id="@+id/vp_room_category_viewpager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</LinearLayout>
|
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="15dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text=""
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="18dp"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginTop="10dp" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
@@ -1,74 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:background="@color/white">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.yizhuan.erban.ui.widget.rollviewpager.RollPagerView
|
||||
android:id="@+id/roll_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="120dp"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
app:rollviewpager_hint_gravity="left"
|
||||
app:rollviewpager_hint_paddingLeft="@dimen/dp_10"
|
||||
app:rollviewpager_hint_paddingBottom="8dp"
|
||||
android:visibility="gone"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_panel_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginRight="@dimen/dp_15"
|
||||
android:orientation="horizontal"
|
||||
tools:visibility="visible"
|
||||
android:visibility="gone">
|
||||
|
||||
<com.yizhuan.erban.ui.widget.RectLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
app:hw_ratio="0.39">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/siv_icon1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="centerCrop" />
|
||||
</com.yizhuan.erban.ui.widget.RectLayout>
|
||||
|
||||
|
||||
<View
|
||||
android:layout_width="@dimen/dp_10"
|
||||
android:layout_height="@dimen/dp_10" />
|
||||
|
||||
<com.yizhuan.erban.ui.widget.RectLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
app:hw_ratio="0.39">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/siv_icon2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="centerCrop" />
|
||||
</com.yizhuan.erban.ui.widget.RectLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_5" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_5"
|
||||
android:background="@color/color_F5F5F5" />
|
||||
|
||||
</LinearLayout>
|
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<View
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:background="@color/color_ececec"/>
|
||||
|
||||
</LinearLayout>
|
@@ -1,41 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginRight="@dimen/dp_15"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_5"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_18"
|
||||
android:textStyle="bold"
|
||||
tools:text="和而我一起嗨" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginRight="@dimen/dp_15"
|
||||
android:overScrollMode="never" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_15" />
|
||||
|
||||
</LinearLayout>
|
@@ -1,41 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.cardview.widget.CardView 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:id="@+id/ll_top_msg_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_60"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:background="@color/white"
|
||||
app:cardCornerRadius="10dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="45dp"
|
||||
android:layout_height="41dp"
|
||||
android:src="@drawable/icon_headline"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<com.yizhuan.erban.ui.widget.marqueeview.BetterMarqueeView xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/bmv_marquee_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/bg_home_notice"
|
||||
app:mvAnimDuration="1000"
|
||||
app:mvDirection="bottom_to_top"
|
||||
app:mvGravity="left"
|
||||
app:mvInterval="3000" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
@@ -1,81 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginRight="@dimen/dp_15">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_5"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_18"
|
||||
tools:text="和而我一起嗨"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<View
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_width="1dp"
|
||||
android:layout_height="10dp"
|
||||
android:background="@color/color_999999" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_sub_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_5"
|
||||
android:textColor="@color/color_999999"
|
||||
android:textSize="@dimen/dp_13"
|
||||
tools:text="k歌是一种生活方式" />
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="1dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_more"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="@dimen/dp_13"
|
||||
android:text="@string/home_more"
|
||||
android:textColor="@color/color_999999"
|
||||
android:drawablePadding="5dp"
|
||||
android:drawableRight="@mipmap/ic_home_block_more" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<com.yizhuan.erban.ui.widget.ContentWrapViewPager
|
||||
android:id="@+id/vp_rooms"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginRight="@dimen/dp_15"
|
||||
android:overScrollMode="never">
|
||||
|
||||
</com.yizhuan.erban.ui.widget.ContentWrapViewPager>
|
||||
|
||||
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
|
||||
android:layout_marginTop="5dp"
|
||||
android:id="@+id/mi_indicator"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_15" />
|
||||
|
||||
</LinearLayout>
|
@@ -1,75 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginRight="@dimen/dp_15"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_5"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="@dimen/dp_18"
|
||||
android:textStyle="bold"
|
||||
tools:text="和而我一起嗨" />
|
||||
|
||||
<View
|
||||
android:layout_width="1dp"
|
||||
android:layout_height="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:background="@color/color_999999" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_sub_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_5"
|
||||
android:textColor="@color/color_999999"
|
||||
android:textSize="@dimen/dp_13"
|
||||
tools:text="k歌是一种生活方式" />
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="1dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_refresh"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/home_refresh"
|
||||
android:textColor="@color/color_999999"
|
||||
android:textSize="@dimen/dp_13"
|
||||
android:layout_marginRight="5dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_refresh_arrow"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@mipmap/ic_home_block_refresh" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_15"
|
||||
android:layout_marginRight="@dimen/dp_15"
|
||||
android:overScrollMode="never" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_15" />
|
||||
</LinearLayout>
|
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.yizhuan.erban.home.view.HomeConfigModule xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/home_config_module"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
</com.yizhuan.erban.home.view.HomeConfigModule>
|
@@ -18,8 +18,7 @@ import com.yizhuan.erban.base.BaseFragment;
|
||||
import com.yizhuan.erban.common.widget.DragLayout;
|
||||
import com.yizhuan.erban.community.publish.view.PublishActivity;
|
||||
import com.yizhuan.erban.home.adapter.TopMagicIndicatorAdapter;
|
||||
import com.yizhuan.erban.home.fragment.CommunityNoticeAct;
|
||||
import com.yizhuan.erban.home.fragment.FindTabFragment;
|
||||
import com.yizhuan.erban.home.activity.CommunityNoticeAct;
|
||||
import com.yizhuan.erban.ui.widget.OnPageSelectedListener;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
|
||||
|
@@ -1,7 +0,0 @@
|
||||
package com.yizhuan.xchat_android_core.constant;
|
||||
|
||||
public class SharePreferenceKey {
|
||||
/**是否显示首页的遮罩*/
|
||||
public static final String KEY_SHOW_HOME_COVER = "SHOW_HOME_COVER";
|
||||
|
||||
}
|
@@ -1,53 +0,0 @@
|
||||
package com.yizhuan.xchat_android_core.home;
|
||||
|
||||
import com.yizhuan.xchat_android_core.home.bean.TabInfo;
|
||||
import com.yizhuan.xchat_android_library.coremanager.IBaseCore;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 主页接口逻辑处理
|
||||
* Created by zhouxiangfeng on 2017/5/17.
|
||||
*/
|
||||
public interface IHomeCore extends IBaseCore {
|
||||
//全局数据--------------------------
|
||||
|
||||
List<TabInfo> getMainTabInfos();
|
||||
|
||||
void setMainTabInfos(List<TabInfo> tabInfoList);
|
||||
|
||||
//接口数据------------------------------
|
||||
|
||||
void getHomeData(int page, int pageSize);
|
||||
|
||||
void getLightChatData(int tabType);
|
||||
|
||||
void getHotData(int tabType);
|
||||
|
||||
void getHomePartyData(int tabType);
|
||||
|
||||
void commitFeedback(long uid, String feedbackDesc, String contact);
|
||||
|
||||
void getHomeBanner();
|
||||
|
||||
/** 获取首页排行数据 */
|
||||
void getRankingData();
|
||||
|
||||
/** 获取首页tab数据 */
|
||||
void getMainTabData();
|
||||
|
||||
/**
|
||||
* 获取tab下的数据
|
||||
*
|
||||
* @param tagId tab的id
|
||||
* @param pageNum 当前页数
|
||||
* @param pageSize 页的总数
|
||||
*/
|
||||
void getMainDataByTab(int tagId, int pageNum, int pageSize);
|
||||
|
||||
/**
|
||||
* 获取发现页数据
|
||||
* @param udi
|
||||
*/
|
||||
void loadFindPage(String udi);
|
||||
}
|
@@ -1,75 +0,0 @@
|
||||
package com.yizhuan.xchat_android_core.home;
|
||||
|
||||
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.FindInfo;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoom;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomList;
|
||||
import com.yizhuan.xchat_android_library.coremanager.ICoreClient;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author zhouxiangfeng
|
||||
* @date 2017/5/17
|
||||
*/
|
||||
|
||||
public interface IHomeCoreClient extends ICoreClient {
|
||||
|
||||
String METHOD_ON_GET_HOME_DATA = "onGetHomeData";
|
||||
String METHOD_GET_HOME_LIST_ERROR = "onGetHomeListFail";
|
||||
|
||||
String METHOD_ON_GET_DATA_BY_TAB = "onGetHomeDataByTab";
|
||||
String METHOD_ON_GET_DATA_BY_TAB_ERROR = "onGetHomeDataByTabFail";
|
||||
|
||||
public static final String METHOD_ON_GET_HOT_DATA = "onGetHotData";
|
||||
public static final String METHOD_ON_GET_HOT_DATA_FAIL = "onGetHotDataFail";
|
||||
|
||||
public static final String METHOD_ON_GET_LIGHT_CHAT_DATA = "onGetLightChatData";
|
||||
public static final String METHOD_ON_GET_LIGHT_CHAT_DATA_FAIL = "onGetLightChatDataFail";
|
||||
|
||||
public static final String METHOD_ON_GET_HOME_PARTY_DATA = "onGetHomePartyData";
|
||||
public static final String METHOD_ON_GET_HOME_PARTY_DATA_FAIL = "onGetHomePartyDataFail";
|
||||
|
||||
public static final String METHOD_ON_COMMIT_BACK = "onCommitFeedback";
|
||||
public static final String METHOD_ON_COMMIT_BACK_FAIL = "onCommitFeedbackFail";
|
||||
|
||||
public static final String METHOD_ON_GET_BANNER_LIST = "onGetBannerList";
|
||||
public static final String METHOD_ON_GET_BANNER_LIST_FAIL = "onGetBannerListFail";
|
||||
|
||||
String METHOD_ON_GET_HOME_RANKING_LIST = "onGetHomeRankingList";
|
||||
String METHOD_ON_GET_HOME_RANKING_LIST_ERROR = "onGetHomeRankingListFail";
|
||||
|
||||
String METHOD_ON_GET_HOME_TAB_LIST = "onGetHomeTabList";
|
||||
String METHOD_ON_GET_HOME_TAB_LIST_ERROR = "onGetHomeTabListFail";
|
||||
|
||||
public void onGetHomeData(List<HomeRoom> homeDataList);
|
||||
|
||||
public void onGetHomeListFail(String error);
|
||||
|
||||
public void onGetHotData(HomeRoomList homeRoomList);
|
||||
|
||||
public void onGetHotDataFail(String error);
|
||||
|
||||
public void onGetLightChatData(HomeRoomList homeRoomList);
|
||||
|
||||
public void onGetLightChatDataFail(String error);
|
||||
|
||||
public void onGetHomePartyData(HomeRoomList homeRoomList);
|
||||
|
||||
public void onGetHomePartyDataFail(String error);
|
||||
|
||||
void onGetBannerList(List<BannerInfo> bannerInfoList);
|
||||
|
||||
void onGetBannerListFail();
|
||||
|
||||
void onCommitFeedback();
|
||||
|
||||
void onCommitFeedbackFail(String error);
|
||||
|
||||
String METHOD_ON_LOAD_FIND_PAGE_DATA = "onLoadFindPageData";
|
||||
void onLoadFindPageData(FindInfo findInfo);
|
||||
|
||||
String METHOD_ON_LOAD_FIND_PAGE_DATA_FAIL = "onLoadFindPageDataFail";
|
||||
void onLoadFindPageDataFail(String error);
|
||||
}
|
@@ -7,7 +7,10 @@ import java.util.List;
|
||||
|
||||
public interface IHomeTabMapView extends IMvpBaseView {
|
||||
void homeTabMapSuccess(List<HomeTabMapInfo> list);
|
||||
|
||||
void homeTabMapFails(String error);
|
||||
|
||||
void homeTabMapLoadMoreSuccess(List<HomeTabMapInfo> list);
|
||||
|
||||
void homeTabMapLoadMoreFails(String error);
|
||||
}
|
||||
|
@@ -1,57 +0,0 @@
|
||||
package com.yizhuan.xchat_android_core.home.bean;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/4/17
|
||||
*/
|
||||
@Data
|
||||
public class CategoryInfo implements Parcelable,Serializable {
|
||||
|
||||
private String icon;
|
||||
private String title;
|
||||
private List<TabInfo> tabInfos;
|
||||
|
||||
public CategoryInfo() {
|
||||
}
|
||||
|
||||
|
||||
protected CategoryInfo(Parcel in) {
|
||||
icon = in.readString();
|
||||
title = in.readString();
|
||||
tabInfos = in.createTypedArrayList(TabInfo.CREATOR);
|
||||
}
|
||||
|
||||
public static final Creator<CategoryInfo> CREATOR = new Creator<CategoryInfo>() {
|
||||
@Override
|
||||
public CategoryInfo createFromParcel(Parcel in) {
|
||||
return new CategoryInfo(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CategoryInfo[] newArray(int size) {
|
||||
return new CategoryInfo[size];
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
|
||||
dest.writeString(icon);
|
||||
dest.writeString(title);
|
||||
dest.writeTypedList(tabInfos);
|
||||
}
|
||||
}
|
@@ -1,17 +0,0 @@
|
||||
package com.yizhuan.xchat_android_core.home.bean;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/11/15
|
||||
*/
|
||||
@Data
|
||||
public class ClassifiedRoomInfo {
|
||||
private List<HomeRoom> rooms;
|
||||
private ArrayList<BannerInfo> banners;
|
||||
}
|
@@ -1,68 +0,0 @@
|
||||
package com.yizhuan.xchat_android_core.home.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/24
|
||||
*/
|
||||
@Data
|
||||
public class FindEntranceInfo {
|
||||
public final static int TYPE_H5 = 1;
|
||||
public final static int TYPE_ROOM = 2;
|
||||
public final static int TYPE_GAME = 3;
|
||||
public final static int TYPE_DECORATION = 4;
|
||||
/**
|
||||
* 如果type=5,表示转到{@link com.yizhuan.xchat_android_core.im.custom.bean.RouterType} 处理
|
||||
*/
|
||||
public final static int TYPE_TO_ROUTERTYPE = 5;
|
||||
|
||||
/**
|
||||
* 签到入口
|
||||
*/
|
||||
public final static int ACTIVITYTYPE_SIGN_IN = 1;
|
||||
|
||||
/**
|
||||
* 任务入口
|
||||
*/
|
||||
public final static int ACTIVITYTYPE_TASK = 2;
|
||||
|
||||
private int id;
|
||||
private String pic;
|
||||
private int type;//'跳转类型1是链接 2是房间 3是游戏 4是装扮商城',
|
||||
private String param;
|
||||
|
||||
//start**********以下3.2.4之后接入
|
||||
/**
|
||||
* {@link com.yizhuan.xchat_android_core.im.custom.bean.RouterType}
|
||||
*/
|
||||
private int routerType;//3.2.4之后接入,优先获取旧版的type,得不到结果再处理routerType
|
||||
|
||||
private String routerValue;
|
||||
/**
|
||||
* 今日未完成的任务数量,任务和签到的时候用到
|
||||
*/
|
||||
private int missionNum;
|
||||
|
||||
/**
|
||||
* 活动类型,1:签到,2:任务
|
||||
*/
|
||||
private int activityType;
|
||||
|
||||
/**
|
||||
* 今日是否已经签到
|
||||
*/
|
||||
private boolean signStatus;
|
||||
|
||||
/**
|
||||
* 小图
|
||||
*/
|
||||
private String minPic;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
//end********
|
||||
}
|
@@ -1,24 +0,0 @@
|
||||
package com.yizhuan.xchat_android_core.home.bean;
|
||||
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/31
|
||||
*/
|
||||
@Data
|
||||
public class FindInfo {
|
||||
private List<FindEntranceInfo> banners;
|
||||
private FamilyInfo family;
|
||||
/**
|
||||
* 发现也banner
|
||||
*/
|
||||
private List<BannerInfo> bannerVos;
|
||||
|
||||
private List<TopMessage> topLineVos;
|
||||
}
|
@@ -1,554 +0,0 @@
|
||||
package com.yizhuan.xchat_android_core.home.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class GameHomeInfo {
|
||||
|
||||
private List<RoomVosBean> roomVos;
|
||||
|
||||
public List<RoomVosBean> getRoomVos() {
|
||||
return roomVos;
|
||||
}
|
||||
|
||||
public void setRoomVos(List<RoomVosBean> roomVos) {
|
||||
this.roomVos = roomVos;
|
||||
}
|
||||
|
||||
public static class RoomVosBean {
|
||||
/**
|
||||
* data : [{"uid":902385,"officeUser":1,"roomId":59451609,"title":"神啊救救我啊的房间","type":3,"meetingName":"5521f0cd18c142cdacb64b4914d164af","valid":true,"operatorStatus":1,"avatar":"https://image.zhongjialx.com/picture_1552544625116.jpg?imageslim","roomDesc":"","backPic":"","openTime":"Mar 20, 2019 5:21:48 PM","onlineNum":0,"abChannelType":1,"gender":2,"nick":"神啊救救我啊","erbanNo":9090518,"roomPwd":"","roomTag":"聊天","calcSumDataIndex":0,"tagId":8,"tagPict":"https://image.zhongjialx.com/new_tag_%E8%81%8A%E5%A4%A9@3x.png","recomSeq":0,"badge":"https://image.zhongjialx.com/Fs-YL5F0qpA2bZbmRcwQInh12NXg?imageslim","isPermitRoom":1,"isRecom":0,"count":0,"hasAnimationEffect":true,"audioQuality":1,"isCloseScreen":false,"hasDragonGame":false,"hasKTVPriv":true,"isOpenKTV":false,"isOpenGame":false,"roomModeType":3,"limitType":"lock","roomGame":{"roomId":59451609,"uid":902385,"startUid":0,"gameId":"","gameName":"","status":2,"createTime":"Mar 19, 2019 10:59:43 AM","updateTime":"Mar 20, 2019 11:01:57 AM"},"isPureMode":false,"isExceptionClose":false}]
|
||||
* title : 102
|
||||
* type : 3
|
||||
* moduleId : 42
|
||||
* seqNo : 1
|
||||
*/
|
||||
|
||||
private String title;
|
||||
private int type;
|
||||
private int moduleId;
|
||||
private int seqNo;
|
||||
private List<DataBean> data;
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public int getModuleId() {
|
||||
return moduleId;
|
||||
}
|
||||
|
||||
public void setModuleId(int moduleId) {
|
||||
this.moduleId = moduleId;
|
||||
}
|
||||
|
||||
public int getSeqNo() {
|
||||
return seqNo;
|
||||
}
|
||||
|
||||
public void setSeqNo(int seqNo) {
|
||||
this.seqNo = seqNo;
|
||||
}
|
||||
|
||||
public List<DataBean> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(List<DataBean> data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public static class DataBean {
|
||||
/**
|
||||
* uid : 902385
|
||||
* officeUser : 1
|
||||
* roomId : 59451609
|
||||
* title : 神啊救救我啊的房间
|
||||
* type : 3
|
||||
* meetingName : 5521f0cd18c142cdacb64b4914d164af
|
||||
* valid : true
|
||||
* operatorStatus : 1
|
||||
* avatar : https://image.zhongjialx.com/picture_1552544625116.jpg?imageslim
|
||||
* roomDesc :
|
||||
* backPic :
|
||||
* openTime : Mar 20, 2019 5:21:48 PM
|
||||
* onlineNum : 0
|
||||
* abChannelType : 1
|
||||
* gender : 2
|
||||
* nick : 神啊救救我啊
|
||||
* erbanNo : 9090518
|
||||
* roomPwd :
|
||||
* roomTag : 聊天
|
||||
* calcSumDataIndex : 0
|
||||
* tagId : 8
|
||||
* tagPict : https://image.zhongjialx.com/new_tag_%E8%81%8A%E5%A4%A9@3x.png
|
||||
* recomSeq : 0
|
||||
* badge : https://image.zhongjialx.com/Fs-YL5F0qpA2bZbmRcwQInh12NXg?imageslim
|
||||
* isPermitRoom : 1
|
||||
* isRecom : 0
|
||||
* count : 0
|
||||
* hasAnimationEffect : true
|
||||
* audioQuality : 1
|
||||
* isCloseScreen : false
|
||||
* hasDragonGame : false
|
||||
* hasKTVPriv : true
|
||||
* isOpenKTV : false
|
||||
* isOpenGame : false
|
||||
* roomModeType : 3
|
||||
* limitType : lock
|
||||
* roomGame : {"roomId":59451609,"uid":902385,"startUid":0,"gameId":"","gameName":"","status":2,"createTime":"Mar 19, 2019 10:59:43 AM","updateTime":"Mar 20, 2019 11:01:57 AM"}
|
||||
* isPureMode : false
|
||||
* isExceptionClose : false
|
||||
*/
|
||||
|
||||
private int uid;
|
||||
private int officeUser;
|
||||
private int roomId;
|
||||
private String title;
|
||||
private int type;
|
||||
private String meetingName;
|
||||
private boolean valid;
|
||||
private int operatorStatus;
|
||||
private String avatar;
|
||||
private String roomDesc;
|
||||
private String backPic;
|
||||
private String openTime;
|
||||
private int onlineNum;
|
||||
private int abChannelType;
|
||||
private int gender;
|
||||
private String nick;
|
||||
private int erbanNo;
|
||||
private String roomPwd;
|
||||
private String roomTag;
|
||||
private int calcSumDataIndex;
|
||||
private int tagId;
|
||||
private String tagPict;
|
||||
private int recomSeq;
|
||||
private String badge;
|
||||
private int isPermitRoom;
|
||||
private int isRecom;
|
||||
private int count;
|
||||
private boolean hasAnimationEffect;
|
||||
private int audioQuality;
|
||||
private boolean isCloseScreen;
|
||||
private boolean hasDragonGame;
|
||||
private boolean hasKTVPriv;
|
||||
private boolean isOpenKTV;
|
||||
private boolean isOpenGame;
|
||||
private int roomModeType;
|
||||
private String limitType;
|
||||
private RoomGameBean roomGame;
|
||||
private boolean isPureMode;
|
||||
private boolean isExceptionClose;
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
}
|
||||
|
||||
public void setUid(int uid) {
|
||||
this.uid = uid;
|
||||
}
|
||||
|
||||
public int getOfficeUser() {
|
||||
return officeUser;
|
||||
}
|
||||
|
||||
public void setOfficeUser(int officeUser) {
|
||||
this.officeUser = officeUser;
|
||||
}
|
||||
|
||||
public int getRoomId() {
|
||||
return roomId;
|
||||
}
|
||||
|
||||
public void setRoomId(int roomId) {
|
||||
this.roomId = roomId;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getMeetingName() {
|
||||
return meetingName;
|
||||
}
|
||||
|
||||
public void setMeetingName(String meetingName) {
|
||||
this.meetingName = meetingName;
|
||||
}
|
||||
|
||||
public boolean isValid() {
|
||||
return valid;
|
||||
}
|
||||
|
||||
public void setValid(boolean valid) {
|
||||
this.valid = valid;
|
||||
}
|
||||
|
||||
public int getOperatorStatus() {
|
||||
return operatorStatus;
|
||||
}
|
||||
|
||||
public void setOperatorStatus(int operatorStatus) {
|
||||
this.operatorStatus = operatorStatus;
|
||||
}
|
||||
|
||||
public String getAvatar() {
|
||||
return avatar;
|
||||
}
|
||||
|
||||
public void setAvatar(String avatar) {
|
||||
this.avatar = avatar;
|
||||
}
|
||||
|
||||
public String getRoomDesc() {
|
||||
return roomDesc;
|
||||
}
|
||||
|
||||
public void setRoomDesc(String roomDesc) {
|
||||
this.roomDesc = roomDesc;
|
||||
}
|
||||
|
||||
public String getBackPic() {
|
||||
return backPic;
|
||||
}
|
||||
|
||||
public void setBackPic(String backPic) {
|
||||
this.backPic = backPic;
|
||||
}
|
||||
|
||||
public String getOpenTime() {
|
||||
return openTime;
|
||||
}
|
||||
|
||||
public void setOpenTime(String openTime) {
|
||||
this.openTime = openTime;
|
||||
}
|
||||
|
||||
public int getOnlineNum() {
|
||||
return onlineNum;
|
||||
}
|
||||
|
||||
public void setOnlineNum(int onlineNum) {
|
||||
this.onlineNum = onlineNum;
|
||||
}
|
||||
|
||||
public int getAbChannelType() {
|
||||
return abChannelType;
|
||||
}
|
||||
|
||||
public void setAbChannelType(int abChannelType) {
|
||||
this.abChannelType = abChannelType;
|
||||
}
|
||||
|
||||
public int getGender() {
|
||||
return gender;
|
||||
}
|
||||
|
||||
public void setGender(int gender) {
|
||||
this.gender = gender;
|
||||
}
|
||||
|
||||
public String getNick() {
|
||||
return nick;
|
||||
}
|
||||
|
||||
public void setNick(String nick) {
|
||||
this.nick = nick;
|
||||
}
|
||||
|
||||
public int getErbanNo() {
|
||||
return erbanNo;
|
||||
}
|
||||
|
||||
public void setErbanNo(int erbanNo) {
|
||||
this.erbanNo = erbanNo;
|
||||
}
|
||||
|
||||
public String getRoomPwd() {
|
||||
return roomPwd;
|
||||
}
|
||||
|
||||
public void setRoomPwd(String roomPwd) {
|
||||
this.roomPwd = roomPwd;
|
||||
}
|
||||
|
||||
public String getRoomTag() {
|
||||
return roomTag;
|
||||
}
|
||||
|
||||
public void setRoomTag(String roomTag) {
|
||||
this.roomTag = roomTag;
|
||||
}
|
||||
|
||||
public int getCalcSumDataIndex() {
|
||||
return calcSumDataIndex;
|
||||
}
|
||||
|
||||
public void setCalcSumDataIndex(int calcSumDataIndex) {
|
||||
this.calcSumDataIndex = calcSumDataIndex;
|
||||
}
|
||||
|
||||
public int getTagId() {
|
||||
return tagId;
|
||||
}
|
||||
|
||||
public void setTagId(int tagId) {
|
||||
this.tagId = tagId;
|
||||
}
|
||||
|
||||
public String getTagPict() {
|
||||
return tagPict;
|
||||
}
|
||||
|
||||
public void setTagPict(String tagPict) {
|
||||
this.tagPict = tagPict;
|
||||
}
|
||||
|
||||
public int getRecomSeq() {
|
||||
return recomSeq;
|
||||
}
|
||||
|
||||
public void setRecomSeq(int recomSeq) {
|
||||
this.recomSeq = recomSeq;
|
||||
}
|
||||
|
||||
public String getBadge() {
|
||||
return badge;
|
||||
}
|
||||
|
||||
public void setBadge(String badge) {
|
||||
this.badge = badge;
|
||||
}
|
||||
|
||||
public int getIsPermitRoom() {
|
||||
return isPermitRoom;
|
||||
}
|
||||
|
||||
public void setIsPermitRoom(int isPermitRoom) {
|
||||
this.isPermitRoom = isPermitRoom;
|
||||
}
|
||||
|
||||
public int getIsRecom() {
|
||||
return isRecom;
|
||||
}
|
||||
|
||||
public void setIsRecom(int isRecom) {
|
||||
this.isRecom = isRecom;
|
||||
}
|
||||
|
||||
public int getCount() {
|
||||
return count;
|
||||
}
|
||||
|
||||
public void setCount(int count) {
|
||||
this.count = count;
|
||||
}
|
||||
|
||||
public boolean isHasAnimationEffect() {
|
||||
return hasAnimationEffect;
|
||||
}
|
||||
|
||||
public void setHasAnimationEffect(boolean hasAnimationEffect) {
|
||||
this.hasAnimationEffect = hasAnimationEffect;
|
||||
}
|
||||
|
||||
public int getAudioQuality() {
|
||||
return audioQuality;
|
||||
}
|
||||
|
||||
public void setAudioQuality(int audioQuality) {
|
||||
this.audioQuality = audioQuality;
|
||||
}
|
||||
|
||||
public boolean isIsCloseScreen() {
|
||||
return isCloseScreen;
|
||||
}
|
||||
|
||||
public void setIsCloseScreen(boolean isCloseScreen) {
|
||||
this.isCloseScreen = isCloseScreen;
|
||||
}
|
||||
|
||||
public boolean isHasDragonGame() {
|
||||
return hasDragonGame;
|
||||
}
|
||||
|
||||
public void setHasDragonGame(boolean hasDragonGame) {
|
||||
this.hasDragonGame = hasDragonGame;
|
||||
}
|
||||
|
||||
public boolean isHasKTVPriv() {
|
||||
return hasKTVPriv;
|
||||
}
|
||||
|
||||
public void setHasKTVPriv(boolean hasKTVPriv) {
|
||||
this.hasKTVPriv = hasKTVPriv;
|
||||
}
|
||||
|
||||
public boolean isIsOpenKTV() {
|
||||
return isOpenKTV;
|
||||
}
|
||||
|
||||
public void setIsOpenKTV(boolean isOpenKTV) {
|
||||
this.isOpenKTV = isOpenKTV;
|
||||
}
|
||||
|
||||
public boolean isIsOpenGame() {
|
||||
return isOpenGame;
|
||||
}
|
||||
|
||||
public void setIsOpenGame(boolean isOpenGame) {
|
||||
this.isOpenGame = isOpenGame;
|
||||
}
|
||||
|
||||
public int getRoomModeType() {
|
||||
return roomModeType;
|
||||
}
|
||||
|
||||
public void setRoomModeType(int roomModeType) {
|
||||
this.roomModeType = roomModeType;
|
||||
}
|
||||
|
||||
public String getLimitType() {
|
||||
return limitType;
|
||||
}
|
||||
|
||||
public void setLimitType(String limitType) {
|
||||
this.limitType = limitType;
|
||||
}
|
||||
|
||||
public RoomGameBean getRoomGame() {
|
||||
return roomGame;
|
||||
}
|
||||
|
||||
public void setRoomGame(RoomGameBean roomGame) {
|
||||
this.roomGame = roomGame;
|
||||
}
|
||||
|
||||
public boolean isIsPureMode() {
|
||||
return isPureMode;
|
||||
}
|
||||
|
||||
public void setIsPureMode(boolean isPureMode) {
|
||||
this.isPureMode = isPureMode;
|
||||
}
|
||||
|
||||
public boolean isIsExceptionClose() {
|
||||
return isExceptionClose;
|
||||
}
|
||||
|
||||
public void setIsExceptionClose(boolean isExceptionClose) {
|
||||
this.isExceptionClose = isExceptionClose;
|
||||
}
|
||||
|
||||
public static class RoomGameBean {
|
||||
/**
|
||||
* roomId : 59451609
|
||||
* uid : 902385
|
||||
* startUid : 0
|
||||
* gameId :
|
||||
* gameName :
|
||||
* status : 2
|
||||
* createTime : Mar 19, 2019 10:59:43 AM
|
||||
* updateTime : Mar 20, 2019 11:01:57 AM
|
||||
*/
|
||||
|
||||
private int roomId;
|
||||
private int uid;
|
||||
private int startUid;
|
||||
private String gameId;
|
||||
private String gameName;
|
||||
private int status;
|
||||
private String createTime;
|
||||
private String updateTime;
|
||||
|
||||
public int getRoomId() {
|
||||
return roomId;
|
||||
}
|
||||
|
||||
public void setRoomId(int roomId) {
|
||||
this.roomId = roomId;
|
||||
}
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
}
|
||||
|
||||
public void setUid(int uid) {
|
||||
this.uid = uid;
|
||||
}
|
||||
|
||||
public int getStartUid() {
|
||||
return startUid;
|
||||
}
|
||||
|
||||
public void setStartUid(int startUid) {
|
||||
this.startUid = startUid;
|
||||
}
|
||||
|
||||
public String getGameId() {
|
||||
return gameId;
|
||||
}
|
||||
|
||||
public void setGameId(String gameId) {
|
||||
this.gameId = gameId;
|
||||
}
|
||||
|
||||
public String getGameName() {
|
||||
return gameName;
|
||||
}
|
||||
|
||||
public void setGameName(String gameName) {
|
||||
this.gameName = gameName;
|
||||
}
|
||||
|
||||
public int getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(int status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(String createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
public String getUpdateTime() {
|
||||
return updateTime;
|
||||
}
|
||||
|
||||
public void setUpdateTime(String updateTime) {
|
||||
this.updateTime = updateTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,12 +0,0 @@
|
||||
package com.yizhuan.xchat_android_core.home.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Setter
|
||||
@Getter
|
||||
public class HomeDynamicResult {
|
||||
List<HomeDynamicInfo> data;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user