This commit is contained in:
18401019693 2022-08-12 13:26:21 +08:00
parent 8fb0f7a4e6
commit 0c4448f1f2
10 changed files with 306 additions and 310 deletions

View File

@ -0,0 +1,51 @@
package com.yunbao.common.views.weight;
import android.view.View;
import com.jakewharton.rxbinding3.view.RxView;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import kotlin.Unit;
/**
* View防抖
*/
public class ViewClicksAntiShake {
//防抖回调
public interface ViewClicksCallBack {
void onViewClicks();
}
/**
* 防抖
*/
public static void clicksAntiShake(View view, ViewClicksCallBack callBack) {
RxView.clicks(view)
.throttleFirst(2, TimeUnit.SECONDS)
.subscribe(new Observer<Unit>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Unit unit) {
if (callBack != null)
callBack.onViewClicks();
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
}

View File

@ -33,6 +33,7 @@ import com.android.billingclient.api.Purchase;
import com.android.billingclient.api.SkuDetails; import com.android.billingclient.api.SkuDetails;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.jakewharton.rxbinding3.view.RxView;
import com.tencent.imsdk.v2.V2TIMCallback; import com.tencent.imsdk.v2.V2TIMCallback;
import com.tencent.imsdk.v2.V2TIMManager; import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMSDKConfig; import com.tencent.imsdk.v2.V2TIMSDKConfig;
@ -113,10 +114,14 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
import cn.rongcloud.rtc.api.RCRTCConfig; import cn.rongcloud.rtc.api.RCRTCConfig;
import cn.rongcloud.rtc.api.RCRTCEngine; import cn.rongcloud.rtc.api.RCRTCEngine;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.rong.imlib.RongIMClient; import io.rong.imlib.RongIMClient;
import kotlin.Unit;
import static com.yunbao.common.CommonAppContext.isReady; import static com.yunbao.common.CommonAppContext.isReady;
@ -162,7 +167,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
private int messageNumber = 0, numberMe = 1; private int messageNumber = 0, numberMe = 1;
private ImageView waitingTip; private ImageView waitingTip;
private FloatBannerView floatBanner; private FloatBannerView floatBanner;
private boolean isClickfloatBanner = false;
private boolean isfloatBannernet = true; private boolean isfloatBannernet = true;
@ -366,44 +370,54 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
mViewPager.setCurrentItem(0); mViewPager.setCurrentItem(0);
mTabButtonGroup.setCurPosition(0); mTabButtonGroup.setCurPosition(0);
isInstructor(); isInstructor();
findViewById(R.id.banner_click).setOnClickListener(new View.OnClickListener() { RxView.clicks(findViewById(R.id.banner_click))
@Override .throttleFirst(2, TimeUnit.SECONDS)
public void onClick(View v) { .subscribe(new Observer<Unit>() {
if (!isClickfloatBanner) { @Override
isClickfloatBanner = true; public void onSubscribe(Disposable d) {
String Uid = floatBanner.getUid();
LiveHttpUtil.getLiveInfo(Uid + "", new HttpCallback() { }
@Override
public void onSuccess(int code, String msg, String[] info) { @Override
if (code == 0 && info.length > 0) { public void onNext(Unit unit) {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class); String Uid = floatBanner.getUid();
LiveHttpUtil.getLiveInfo(Uid + "", new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
LiveRoomCheckLivePresenter mCheckLivePresenter = new LiveRoomCheckLivePresenter(mContext, new LiveRoomCheckLivePresenter.ActionListener() { LiveRoomCheckLivePresenter mCheckLivePresenter = new LiveRoomCheckLivePresenter(mContext, new LiveRoomCheckLivePresenter.ActionListener() {
@Override @Override
public void onLiveRoomChanged(LiveBean liveBean, int liveType, int liveTypeVal, int liveSdk) { public void onLiveRoomChanged(LiveBean liveBean, int liveType, int liveTypeVal, int liveSdk) {
if (liveBean == null) { if (liveBean == null) {
return; return;
}
LiveAudienceActivity.forward(mContext, liveBean, liveType, liveTypeVal, "", 0, liveSdk);
} }
LiveAudienceActivity.forward(mContext, liveBean, liveType, liveTypeVal, "", 0, liveSdk); });
} mCheckLivePresenter.checkLive(liveBean);
}); } else {
RouteUtil.forwardUserHome(mContext, Uid, 0);
mCheckLivePresenter.checkLive(liveBean); }
isClickfloatBanner = false;
} else {
RouteUtil.forwardUserHome(mContext, Uid, 0);
isClickfloatBanner = false;
} }
} });
}); }
} @Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
});
//选中监听 //选中监听
mTabButtonGroup.addTabButtonGroupChangeListener((view, index) -> { mTabButtonGroup.addTabButtonGroupChangeListener((view, index) -> {
if (index == 0) { if (index == 0) {
@ -414,7 +428,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
floatBanner.setVisibility(View.GONE); floatBanner.setVisibility(View.GONE);
findViewById(R.id.banner_click).setVisibility(View.GONE); findViewById(R.id.banner_click).setVisibility(View.GONE);
isfloatBannernet = false; isfloatBannernet = false;
isClickfloatBanner = false;
} }
}); });
} }

View File

@ -23,21 +23,14 @@ import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView; import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser; import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity; import com.opensource.svgaplayer.SVGAVideoEntity;
import com.squareup.picasso.Picasso;
import com.xj.marqueeview.MarqueeView;
import com.yunbao.common.Constants; import com.yunbao.common.Constants;
import com.yunbao.common.adapter.RefreshAdapter; import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.WeekListBean; import com.yunbao.common.bean.WeekListBean;
import com.yunbao.common.custom.RatioRoundImageView;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.formatBigNum;
import com.yunbao.live.bean.LiveBean; import com.yunbao.live.bean.LiveBean;
import com.yunbao.main.R; import com.yunbao.main.R;
import com.yunbao.main.bean.HomeTopBean;
import com.yunbao.main.utils.MainIconUtil;
import com.yunbao.main.views.MainHomeLiveItemViewHolder; import com.yunbao.main.views.MainHomeLiveItemViewHolder;
import com.yunbao.main.views.MainHomeLiveViewHolder;
import com.yunbao.main.views.MainHomeLiveWeekItemViewHolder; import com.yunbao.main.views.MainHomeLiveWeekItemViewHolder;
import java.util.List; import java.util.List;
@ -54,7 +47,6 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
private static final int LEFT = 1; private static final int LEFT = 1;
private static final int RIGHT = 2; private static final int RIGHT = 2;
private final int WEEKLAYOUT = 5005; private final int WEEKLAYOUT = 5005;
private View.OnClickListener mOnClickListener;
private View mHeadView; private View mHeadView;
private Context context; private Context context;
private int Height; private int Height;
@ -66,26 +58,6 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
this.Height = h; this.Height = h;
mHeadView = mInflater.inflate(R.layout.item_main_home_live_head, null, false); mHeadView = mInflater.inflate(R.layout.item_main_home_live_head, null, false);
mHeadView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DpUtil.dp2px(140))); mHeadView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DpUtil.dp2px(140)));
mOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!canClick()) {
return;
}
Object tag = v.getTag();
if (tag != null) {
int position = (int) tag;
if (mOnItemClickListener != null) {
if (mList.get(position).getIs_week() != null && mList.get(position).getIs_week().equals("1")) {
if (mList.get(position).getmWeekList() != null && mList.get(position).getmWeekList().size() > 0) {
mList.get(position).setUid(mList.get(position).getmWeekList().get(weekListIndex).getAnchor_id());
}
}
mOnItemClickListener.onItemClick(mList.get(position), position);
}
}
}
};
} }
public View getHeadView() { public View getHeadView() {
@ -174,138 +146,6 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
} }
} }
HomeTopBean HomeTopData;
// class Vh extends RecyclerView.ViewHolder {
// LinearLayout live_info_view, lt_week_list;
// ImageView mCover, img_week_head;
// TextView mName, name2;
// TextView mTitle;
// TextView mNum;
// ImageView mType;
// ImageView live_type;
//
// ImageView mLiveIco;
// TextView mLiveState;
// MarqueeView mRvRankingList;
// ImageView PkAvatar;
// ImageView Pkico;
// ImageView dr_pk_ico;
// View views;
// RatioRoundImageView bgs;
// SVGAImageView week_svga;
//
// public Vh(View itemView) {
// super(itemView);
// live_info_view = (LinearLayout) itemView.findViewById(R.id.live_info_view);
// lt_week_list = (LinearLayout) itemView.findViewById(R.id.lt_week_list);
// mCover = (ImageView) itemView.findViewById(R.id.cover);
// mName = (TextView) itemView.findViewById(R.id.name);
// mTitle = (TextView) itemView.findViewById(R.id.title);
// mNum = (TextView) itemView.findViewById(R.id.num);
// mType = (ImageView) itemView.findViewById(R.id.type);
// mLiveIco = (ImageView) itemView.findViewById(R.id.tv_live_ico);
// PkAvatar = (ImageView) itemView.findViewById(R.id.pk_avatar);
// Pkico = (ImageView) itemView.findViewById(R.id.pk_ico);
// dr_pk_ico = (ImageView) itemView.findViewById(R.id.dr_pk_ico);
// mLiveState = (TextView) itemView.findViewById(R.id.tv_live_state);
// mRvRankingList = (MarqueeView) itemView.findViewById(R.id.rv_ranking_list);
// live_type = (ImageView) itemView.findViewById(R.id.live_type);
// views = itemView.findViewById(R.id.views);
// bgs = itemView.findViewById(R.id.bgs);
// itemView.setOnClickListener(mOnClickListener);
//
// week_svga = (SVGAImageView) itemView.findViewById(R.id.week_svga);
// img_week_head = (ImageView) itemView.findViewById(R.id.img_week_head);
// name2 = (TextView) itemView.findViewById(R.id.name2);
// }
//
// void setData(LiveBean bean, int position) {
// Log.e("MainHomeLiveAdapter", position + " ***************" + "LiveBean:" + bean.getThumb());
//// Log.e("MainHomeLiveAdapter", position + " ***************" + "LiveBean:" + new Gson().toJson(bean));
// itemView.setTag(position);
// live_info_view.setVisibility(View.VISIBLE);
// live_type.setImageDrawable(null);
// if (bean.getContent_pic_size_two() != null && !bean.getContent_pic_size_two().equals("") && Height <= 1920) {
// Picasso.with(mContext)
// .load(bean.getContent_pic_size_two())
// .into(live_type);
// } else if (bean.getContent_pic_size_three() != null && !bean.getContent_pic_size_three().equals("") && Height > 1920) {
// Log.e("t1", position + "222啊" + Height + bean.getContent_pic_size_three());
// Picasso.with(mContext)
// .load(bean.getContent_pic_size_three())
// .into(live_type);
// }
// live_info_view.setVisibility(View.GONE);
// lt_week_list.setVisibility(View.GONE);
// if (bean.getIsTop() != null && bean.getIsTop().equals("1")) {
// if (MainHomeLiveViewHolder.pp != 1) {
// live_info_view.setVisibility(View.GONE);
// mRvRankingList.setVisibility(View.GONE);
// }
// } else {
// live_info_view.setVisibility(View.VISIBLE);
// mRvRankingList.setVisibility(View.GONE);
// bgs.setVisibility(View.GONE);
// if (bean.getIs_week() != null && bean.getIs_week().equals("1")) {
// bgs.setVisibility(View.GONE);
// getWeekIntIndex = Constants.getWeekIntIndex;
// getUserHotList(week_svga, live_info_view, lt_week_list, img_week_head, mTitle, name2, position, bean.getmWeekList());
// Log.e("MainHomeLiveAdapter", position + " ***************" + "周星榜");
// } else {
// ImgLoader.display(mContext, bean.getThumb(), mCover);
// bgs.setVisibility(View.VISIBLE);
// }
// Pkico.setVisibility(View.GONE);
// PkAvatar.setVisibility(View.GONE);
// dr_pk_ico.setVisibility(View.GONE);
// if (bean.getDrpk_status() != null && bean.getDrpk_status().equals("1")) {
// dr_pk_ico.setVisibility(View.VISIBLE);
// }
// if (bean.getPk_avatar_thumb() != null && !bean.getPk_avatar_thumb().equals("")) {
// ImgLoader.display(mContext, bean.getPk_avatar_thumb(), PkAvatar);
// Pkico.setVisibility(View.VISIBLE);
// PkAvatar.setVisibility(View.VISIBLE);
// }
// mName.setText(bean.getUserNiceName());
// if (TextUtils.isEmpty(bean.getTitle())) {
// if (mTitle.getVisibility() == View.VISIBLE) {
// mTitle.setVisibility(View.GONE);
// }
// } else {
// if (mTitle.getVisibility() != View.VISIBLE) {
// mTitle.setVisibility(View.VISIBLE);
// }
// mTitle.setText(bean.getTitle());
// }
// mNum.setText(formatBigNum.formatBigNum(bean.getHot_num()));
// views.setVisibility(View.GONE);
// if ("1".equals(bean.getIslive())) {
// views.setVisibility(View.VISIBLE);
// //直播中
// mType.setImageResource(MainIconUtil.getLiveTypeIcon(bean.getType()));
// mType.setVisibility(View.VISIBLE);
// mLiveIco.setImageResource(R.mipmap.icon_main_rest_work);
// mNum.setVisibility(View.VISIBLE);
// live_type.setVisibility(View.VISIBLE);
// mLiveState.setText(R.string.lives_state);
// } else {
// views.setVisibility(View.VISIBLE);
// //休息中
// mType.setImageResource(MainIconUtil.getLiveTypeIcon(Constants.LIVE_TYPE_RESTING));
// mType.setVisibility(View.GONE);
// mLiveIco.setImageResource(R.mipmap.icon_main_rest_spot);
// mLiveState.setText(R.string.rest_state);
// live_type.setVisibility(View.GONE);
// mNum.setVisibility(View.GONE);
// }
// if (bean.getIs_week() != null && bean.getIs_week().equals("1")) {
// views.setVisibility(View.GONE);
// }
// }
// }
// }
private int weekListIndex = 0; private int weekListIndex = 0;
public CountDownTimer countDownTimer; public CountDownTimer countDownTimer;
@ -372,7 +212,7 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
@Override @Override
public void onError() { public void onError() {
} }
},null); }, null);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -1,8 +1,6 @@
package com.yunbao.main.adapter; package com.yunbao.main.adapter;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@ -11,6 +9,10 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.jakewharton.rxbinding3.view.RxView;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import com.xj.marqueeview.MarqueeView; import com.xj.marqueeview.MarqueeView;
import com.yunbao.common.Constants; import com.yunbao.common.Constants;
@ -22,13 +24,18 @@ import com.yunbao.live.bean.LiveBean;
import com.yunbao.main.R; import com.yunbao.main.R;
import com.yunbao.main.utils.MainIconUtil; import com.yunbao.main.utils.MainIconUtil;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import kotlin.Unit;
/** /**
* 关注和推荐的适配器 * 关注和推荐的适配器
*/ */
public class MainHomeRemFollLiveAdapter extends RefreshAdapter<LiveBean> { public class MainHomeRemFollLiveAdapter extends RefreshAdapter<LiveBean> {
private View.OnClickListener mOnClickListener;
private Context context; private Context context;
private int Height; private int Height;
@ -38,27 +45,9 @@ public class MainHomeRemFollLiveAdapter extends RefreshAdapter<LiveBean> {
Log.e("t1", h + "屏1"); Log.e("t1", h + "屏1");
this.Height = h; this.Height = h;
mOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!canClick()) {
return;
}
Object tag = v.getTag();
if (tag != null) {
int position = (int) tag;
if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(mList.get(position), position);
}
}
}
};
} }
@NonNull @NonNull
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@ -109,7 +98,38 @@ public class MainHomeRemFollLiveAdapter extends RefreshAdapter<LiveBean> {
live_type = (ImageView) itemView.findViewById(R.id.live_type); live_type = (ImageView) itemView.findViewById(R.id.live_type);
views = itemView.findViewById(R.id.views); views = itemView.findViewById(R.id.views);
bgs = itemView.findViewById(R.id.bgs); bgs = itemView.findViewById(R.id.bgs);
itemView.setOnClickListener(mOnClickListener); RxView.clicks(itemView)
.throttleFirst(2, TimeUnit.SECONDS) // 才发送 2s内第1次点击按钮的事件
.subscribe(new Observer<Unit>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Unit unit) {
if (!canClick()) {
return;
}
Object tag = itemView.getTag();
if (tag != null) {
int position = (int) tag;
if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(mList.get(position), position);
}
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
} }
void setData(LiveBean bean, int position) { void setData(LiveBean bean, int position) {
@ -131,64 +151,63 @@ public class MainHomeRemFollLiveAdapter extends RefreshAdapter<LiveBean> {
} }
live_info_view.setVisibility(View.GONE); live_info_view.setVisibility(View.GONE);
live_info_view.setVisibility(View.VISIBLE); live_info_view.setVisibility(View.VISIBLE);
mRvRankingList.setVisibility(View.GONE); mRvRankingList.setVisibility(View.GONE);
bgs.setVisibility(View.GONE);
if (bean.getIs_week() != null && bean.getIs_week().equals("1")) {
ImgLoader.display(mContext, bean.getImg(), mCover);
bgs.setVisibility(View.GONE); bgs.setVisibility(View.GONE);
if (bean.getIs_week() != null && bean.getIs_week().equals("1")) { } else {
ImgLoader.display(mContext, bean.getImg(), mCover); ImgLoader.display(mContext, bean.getThumb(), mCover);
bgs.setVisibility(View.GONE); bgs.setVisibility(View.VISIBLE);
} else { }
ImgLoader.display(mContext, bean.getThumb(), mCover); Pkico.setVisibility(View.GONE);
bgs.setVisibility(View.VISIBLE); PkAvatar.setVisibility(View.GONE);
dr_pk_ico.setVisibility(View.GONE);
if (bean.getDrpk_status() != null && bean.getDrpk_status().equals("1")) {
dr_pk_ico.setVisibility(View.VISIBLE);
}
if (bean.getPk_avatar_thumb() != null && !bean.getPk_avatar_thumb().equals("")) {
ImgLoader.display(mContext, bean.getPk_avatar_thumb(), PkAvatar);
Pkico.setVisibility(View.VISIBLE);
PkAvatar.setVisibility(View.VISIBLE);
}
mName.setText(bean.getUserNiceName());
if (TextUtils.isEmpty(bean.getTitle())) {
if (mTitle.getVisibility() == View.VISIBLE) {
mTitle.setVisibility(View.GONE);
} }
Pkico.setVisibility(View.GONE); } else {
PkAvatar.setVisibility(View.GONE); if (mTitle.getVisibility() != View.VISIBLE) {
dr_pk_ico.setVisibility(View.GONE); mTitle.setVisibility(View.VISIBLE);
if (bean.getDrpk_status() != null && bean.getDrpk_status().equals("1")) {
dr_pk_ico.setVisibility(View.VISIBLE);
} }
if (bean.getPk_avatar_thumb() != null && !bean.getPk_avatar_thumb().equals("")) { mTitle.setText(bean.getTitle());
ImgLoader.display(mContext, bean.getPk_avatar_thumb(), PkAvatar); }
Pkico.setVisibility(View.VISIBLE); mNum.setText(formatBigNum.formatBigNum(bean.getHot_num()));
PkAvatar.setVisibility(View.VISIBLE); views.setVisibility(View.GONE);
} if ("1".equals(bean.getIslive())) {
mName.setText(bean.getUserNiceName()); views.setVisibility(View.VISIBLE);
if (TextUtils.isEmpty(bean.getTitle())) { //直播中
if (mTitle.getVisibility() == View.VISIBLE) { mType.setImageResource(MainIconUtil.getLiveTypeIcon(bean.getType()));
mTitle.setVisibility(View.GONE); mType.setVisibility(View.VISIBLE);
} mLiveIco.setImageResource(R.mipmap.icon_main_rest_work);
} else { mNum.setVisibility(View.VISIBLE);
if (mTitle.getVisibility() != View.VISIBLE) { live_type.setVisibility(View.VISIBLE);
mTitle.setVisibility(View.VISIBLE); mLiveState.setText(R.string.lives_state);
} } else {
mTitle.setText(bean.getTitle()); views.setVisibility(View.VISIBLE);
} //休息中
mNum.setText(formatBigNum.formatBigNum(bean.getHot_num())); mType.setImageResource(MainIconUtil.getLiveTypeIcon(Constants.LIVE_TYPE_RESTING));
mType.setVisibility(View.GONE);
mLiveIco.setImageResource(R.mipmap.icon_main_rest_spot);
mLiveState.setText(R.string.rest_state);
live_type.setVisibility(View.GONE);
mNum.setVisibility(View.GONE);
}
if (bean.getIs_week() != null && bean.getIs_week().equals("1")) {
views.setVisibility(View.GONE); views.setVisibility(View.GONE);
if ("1".equals(bean.getIslive())) { }
views.setVisibility(View.VISIBLE);
//直播中
mType.setImageResource(MainIconUtil.getLiveTypeIcon(bean.getType()));
mType.setVisibility(View.VISIBLE);
mLiveIco.setImageResource(R.mipmap.icon_main_rest_work);
mNum.setVisibility(View.VISIBLE);
live_type.setVisibility(View.VISIBLE);
mLiveState.setText(R.string.lives_state);
} else {
views.setVisibility(View.VISIBLE);
//休息中
mType.setImageResource(MainIconUtil.getLiveTypeIcon(Constants.LIVE_TYPE_RESTING));
mType.setVisibility(View.GONE);
mLiveIco.setImageResource(R.mipmap.icon_main_rest_spot);
mLiveState.setText(R.string.rest_state);
live_type.setVisibility(View.GONE);
mNum.setVisibility(View.GONE);
}
if (bean.getIs_week() != null && bean.getIs_week().equals("1")) {
views.setVisibility(View.GONE);
}
} }
} }

View File

@ -75,8 +75,10 @@ public class SearchResultsItemFragment extends BaseFragment {
searchList.addOnScrollListener(new OnRecyclerViewScrollListener() { searchList.addOnScrollListener(new OnRecyclerViewScrollListener() {
@Override @Override
public void onBottom() { public void onBottom() {
page = page + 1; if (type>1){
setSearchKey(searchKey, type); page = page + 1;
setSearchKey(searchKey, type);
}
} }
}); });
emptyLayout.setVisibility(View.GONE); emptyLayout.setVisibility(View.GONE);
@ -139,9 +141,7 @@ public class SearchResultsItemFragment extends BaseFragment {
@Override @Override
public void onSuccess(List<List<SearchModel>> data) { public void onSuccess(List<List<SearchModel>> data) {
if (getActivity().isFinishing()) return; if (getActivity().isFinishing()) return;
if (page > 1) {
itemAdapter.onLoadMoreData(data, searchKey);
} else {
if (data.get(0).size() == 0 && data.get(1).size() == 0) { if (data.get(0).size() == 0 && data.get(1).size() == 0) {
emptyLayout.setVisibility(View.VISIBLE); emptyLayout.setVisibility(View.VISIBLE);
@ -150,7 +150,7 @@ public class SearchResultsItemFragment extends BaseFragment {
itemAdapter.showData(data, type, searchKey); itemAdapter.showData(data, type, searchKey);
searchList.setVisibility(View.VISIBLE); searchList.setVisibility(View.VISIBLE);
} }
}
} }
@Override @Override

View File

@ -103,7 +103,7 @@ public class FloatBannerView extends FrameLayout {
if (next == 0) { if (next == 0) {
index = 0; index = 0;
} }
Uid = String.valueOf(list.get(next).getUid());
float targetX = bannerLayout2.getX() - bannerLayout3.getX(); float targetX = bannerLayout2.getX() - bannerLayout3.getX();
float targetY = bannerLayout2.getY() - bannerLayout3.getY(); float targetY = bannerLayout2.getY() - bannerLayout3.getY();
bannerLayout3.setVisibility(GONE); bannerLayout3.setVisibility(GONE);

View File

@ -8,6 +8,7 @@ import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.jakewharton.rxbinding3.view.RxView;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import com.yunbao.common.Constants; import com.yunbao.common.Constants;
import com.yunbao.common.custom.RatioRoundImageView; import com.yunbao.common.custom.RatioRoundImageView;
@ -17,6 +18,12 @@ import com.yunbao.live.bean.LiveBean;
import com.yunbao.main.R; import com.yunbao.main.R;
import com.yunbao.main.utils.MainIconUtil; import com.yunbao.main.utils.MainIconUtil;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import kotlin.Unit;
/** /**
* 直播页面布局 * 直播页面布局
*/ */
@ -110,14 +117,37 @@ public class MainHomeLiveItemViewHolder extends RecyclerView.ViewHolder {
liveType.setVisibility(View.GONE); liveType.setVisibility(View.GONE);
mNum.setVisibility(View.GONE); mNum.setVisibility(View.GONE);
} }
itemView.setOnClickListener(new View.OnClickListener() { RxView.clicks(itemView)
.throttleFirst(2, TimeUnit.SECONDS) // 才发送 2s内第1次点击按钮的事件
.subscribe(new Observer<Unit>() {
@Override @Override
public void onClick(View v) { public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Unit unit) {
if (listener != null) { if (listener != null) {
listener.onItemClick(bean, position); listener.onItemClick(bean, position);
} }
} }
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
}); });
// itemView.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// }
// });
} }
public interface OnItemClickListener { public interface OnItemClickListener {

View File

@ -11,6 +11,7 @@ import android.widget.ViewFlipper;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.jakewharton.rxbinding3.view.RxView;
import com.opensource.svgaplayer.SVGADrawable; import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView; import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser; import com.opensource.svgaplayer.SVGAParser;
@ -22,6 +23,11 @@ import com.yunbao.main.R;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import kotlin.Unit;
/** /**
* 直播星榜数据 * 直播星榜数据
@ -68,7 +74,7 @@ public class MainHomeLiveWeekItemViewHolder<T> extends RecyclerView.ViewHolder {
public void onError() { public void onError() {
Log.e("errqs", "errl"); Log.e("errqs", "errl");
} }
},null); }, null);
} }
@ -111,17 +117,33 @@ public class MainHomeLiveWeekItemViewHolder<T> extends RecyclerView.ViewHolder {
} }
bannerHandler.removeCallbacks(mFlipRunnable); bannerHandler.removeCallbacks(mFlipRunnable);
bannerHandler.postDelayed(mFlipRunnable, delayMillis); bannerHandler.postDelayed(mFlipRunnable, delayMillis);
RxView.clicks(itemView)
.throttleFirst(2, TimeUnit.SECONDS) // 才发送 2s内第1次点击按钮的事件
.subscribe(new Observer<Unit>() {
@Override
public void onSubscribe(Disposable d) {
itemView.setOnClickListener(new View.OnClickListener() { }
@Override
public void onClick(View v) { @Override
if (listener != null) { public void onNext(Unit unit) {
WeekListBean model = weekList.get(viewflipperBanner.getDisplayedChild()); if (listener != null) {
bean.setUid(model.getAnchor_id()); WeekListBean model = weekList.get(viewflipperBanner.getDisplayedChild());
listener.onItemClick(bean, position); bean.setUid(model.getAnchor_id());
} listener.onItemClick(bean, position);
} }
}); }
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -9,6 +9,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.jakewharton.rxbinding3.view.RxView;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import com.yunbao.common.Constants; import com.yunbao.common.Constants;
import com.yunbao.common.bean.AnchorRecommendItemModel; import com.yunbao.common.bean.AnchorRecommendItemModel;
@ -21,6 +22,12 @@ import com.yunbao.main.R;
import com.yunbao.main.event.JumpUserHomeEvent; import com.yunbao.main.event.JumpUserHomeEvent;
import com.yunbao.main.utils.MainIconUtil; import com.yunbao.main.utils.MainIconUtil;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import kotlin.Unit;
public class SearchRecommendBodyItemViewHolder extends RecyclerView.ViewHolder { public class SearchRecommendBodyItemViewHolder extends RecyclerView.ViewHolder {
private ImageView mCover, liveType, mLiveIco, mType, pkico, drPkIco, pkAvatar; private ImageView mCover, liveType, mLiveIco, mType, pkico, drPkIco, pkAvatar;
private RatioRoundImageView bgs; private RatioRoundImageView bgs;
@ -105,14 +112,32 @@ public class SearchRecommendBodyItemViewHolder extends RecyclerView.ViewHolder {
mLiveState.setText(R.string.rest_state); mLiveState.setText(R.string.rest_state);
liveType.setVisibility(View.GONE); liveType.setVisibility(View.GONE);
mNum.setVisibility(View.GONE); mNum.setVisibility(View.GONE);
} }//防抖
mCover.setOnClickListener(new View.OnClickListener() { RxView.clicks(mCover)
@Override .throttleFirst(2, TimeUnit.SECONDS)
public void onClick(View v) { .subscribe(new Observer<Unit>() {
SearchModel searchModel = new SearchModel(); @Override
searchModel.setId(Long.parseLong(model.getUid())); public void onSubscribe(Disposable d) {
Bus.get().post(new JumpUserHomeEvent(searchModel));
} }
});
@Override
public void onNext(Unit unit) {
SearchModel searchModel = new SearchModel();
searchModel.setId(Long.parseLong(model.getUid()));
Bus.get().post(new JumpUserHomeEvent(searchModel));
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
} }
} }

View File

@ -18,6 +18,7 @@ import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.SearchModel; import com.yunbao.common.bean.SearchModel;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.Bus;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.main.R; import com.yunbao.main.R;
import com.yunbao.main.event.JumpUserHomeEvent; import com.yunbao.main.event.JumpUserHomeEvent;
import com.yunbao.main.utils.WordsTypeUtil; import com.yunbao.main.utils.WordsTypeUtil;
@ -46,14 +47,18 @@ public class SearchResultsViewHolder extends RecyclerView.ViewHolder {
contribute = itemView.findViewById(R.id.contribute); contribute = itemView.findViewById(R.id.contribute);
nickLayout = itemView.findViewById(R.id.nick_layout); nickLayout = itemView.findViewById(R.id.nick_layout);
avatarLayout = itemView.findViewById(R.id.avatar_layout); avatarLayout = itemView.findViewById(R.id.avatar_layout);
nickLayout.setOnClickListener(jumpUserHome);
avatarLayout.setOnClickListener(jumpUserHome);
//关注主播或者用户 //关注主播或者用户
itemView.findViewById(R.id.focus_on).setOnClickListener(v -> { ViewClicksAntiShake.clicksAntiShake(itemView.findViewById(R.id.focus_on), () -> {
if (callback != null) { if (callback != null) {
callback.focusOn(model); callback.focusOn(model);
} }
}); });
ViewClicksAntiShake.clicksAntiShake(nickLayout, () -> {
Bus.get().post(new JumpUserHomeEvent(model));
});
ViewClicksAntiShake.clicksAntiShake(avatarLayout, () -> {
Bus.get().post(new JumpUserHomeEvent(model));
});
} }
public void showData(SearchModel model, int type, String searchKey) { public void showData(SearchModel model, int type, String searchKey) {
@ -87,15 +92,6 @@ public class SearchResultsViewHolder extends RecyclerView.ViewHolder {
focusOn.setVisibility(TextUtils.equals(model.getIsattention(), "1") ? View.GONE : View.VISIBLE); focusOn.setVisibility(TextUtils.equals(model.getIsattention(), "1") ? View.GONE : View.VISIBLE);
} }
/**
* 跳转点击用户主页
*/
View.OnClickListener jumpUserHome = new View.OnClickListener() {
@Override
public void onClick(View v) {
Bus.get().post(new JumpUserHomeEvent(model));
}
};
public interface SearchResultsCallback { public interface SearchResultsCallback {
void focusOn(SearchModel model); void focusOn(SearchModel model);