直播的UI先保存一下
6
live/src/main/res/drawable/bg_white_radius17.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/white"/>
|
||||
<corners android:radius="17dp" />
|
||||
</shape>
|
||||
|
BIN
live/src/main/res/mipmap-mdpi/ic_yola_cup.png
Normal file
After Width: | Height: | Size: 677 B |
BIN
live/src/main/res/mipmap-mdpi/ic_yola_fire.png
Normal file
After Width: | Height: | Size: 254 B |
BIN
live/src/main/res/mipmap-mdpi/ic_yola_search_small.png
Normal file
After Width: | Height: | Size: 573 B |
BIN
live/src/main/res/mipmap-mdpi/ic_yola_vido.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
live/src/main/res/mipmap-xxhdpi/ic_yola_cup.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
live/src/main/res/mipmap-xxhdpi/ic_yola_fire.png
Normal file
After Width: | Height: | Size: 750 B |
BIN
live/src/main/res/mipmap-xxhdpi/ic_yola_search_small.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
live/src/main/res/mipmap-xxhdpi/ic_yola_vido.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
live/src/main/res/mipmap-xxxhdpi/ic_yola_cup.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
live/src/main/res/mipmap-xxxhdpi/ic_yola_fire.png
Normal file
After Width: | Height: | Size: 788 B |
BIN
live/src/main/res/mipmap-xxxhdpi/ic_yola_search_small.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
live/src/main/res/mipmap-xxxhdpi/ic_yola_vido.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
@ -135,7 +135,8 @@ import com.yunbao.main.views.MainHomeComViewHolder;
|
||||
import com.yunbao.main.views.MainHomeCommunityViewHolder;
|
||||
import com.yunbao.main.views.MainHomeGameViewHolder;
|
||||
import com.yunbao.main.views.MainHomeLiveViewHolder;
|
||||
import com.yunbao.main.views.MainHomeViewHolder;
|
||||
|
||||
import com.yunbao.main.views.MainHomeViewHolder2;
|
||||
import com.yunbao.main.views.MainMeViewHolder;
|
||||
import com.yunbao.main.views.MainMessageViewHolder;
|
||||
import com.yunbao.video.utils.VideoStorge;
|
||||
@ -180,7 +181,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
private ViewPager mViewPager;
|
||||
private List<FrameLayout> mViewList;
|
||||
private MainHomeComViewHolder mainHomeComViewHolder;
|
||||
private MainHomeViewHolder mainHomeViewHolder;
|
||||
private MainHomeViewHolder2 mainHomeViewHolder;
|
||||
private MainHomeCommunityViewHolder mMainHomeCommunityViewHolder;
|
||||
private MainHomeGameViewHolder mainHomeGameLiveViewHolder;
|
||||
private MainMessageViewHolder mainMessageViewHolder;
|
||||
@ -1302,7 +1303,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
|
||||
//mainHomeComViewHolder = new MainHomeComViewHolder(mContext, MainActivity.this, parent);
|
||||
vh = mainHomeComViewHolder;
|
||||
} else if (position == 1) {
|
||||
mainHomeViewHolder = new MainHomeViewHolder(mContext, parent);
|
||||
mainHomeViewHolder = new MainHomeViewHolder2(mContext, parent);
|
||||
vh = mainHomeViewHolder;
|
||||
/* mMainHomeCommunityViewHolder = new MainHomeCommunityViewHolder(mContext, parent, this);//直播
|
||||
vh = mMainHomeCommunityViewHolder;*/
|
||||
|
@ -29,6 +29,7 @@ import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.interfaces.CommonCallback;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.views.NineGridLayout;
|
||||
@ -156,6 +157,12 @@ public class MainHomeComAdapter2 extends RefreshAdapter<ActiveBean> {
|
||||
attentionImg.setImageResource(R.mipmap.ic_yola_attention);
|
||||
}
|
||||
|
||||
author.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
RouteUtil.forwardUserHome(bean.getUser_id());
|
||||
}
|
||||
});
|
||||
// likeImg.setOnClickListener(new View.OnClickListener() {
|
||||
// @Override
|
||||
// public void onClick(View v) {
|
||||
|
@ -19,6 +19,7 @@ import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.opensource.svgaplayer.SVGADrawable;
|
||||
import com.opensource.svgaplayer.SVGAImageView;
|
||||
import com.opensource.svgaplayer.SVGAParser;
|
||||
@ -52,13 +53,18 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
|
||||
private Context context;
|
||||
private int Height;
|
||||
private int getWeekIntIndex = 0;
|
||||
private boolean showBaner =true;
|
||||
|
||||
public void setShowBaner(boolean showBaner) {
|
||||
// this.showBaner = showBaner;
|
||||
}
|
||||
|
||||
public MainHomeLiveAdapter(Context context, int h) {
|
||||
super(context);
|
||||
this.context = context;
|
||||
this.Height = h;
|
||||
mHeadView = mInflater.inflate(R.layout.item_main_home_live_head, null, false);
|
||||
mHeadView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DpUtil.dp2px(120)));
|
||||
mHeadView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DpUtil.dp2px(85)));
|
||||
}
|
||||
|
||||
public View getHeadView() {
|
||||
@ -67,10 +73,25 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position == 0) {
|
||||
if (!showBaner){
|
||||
if (position % 2 == 1) {
|
||||
return RIGHT;
|
||||
}else {
|
||||
return LEFT;
|
||||
}
|
||||
}
|
||||
if (position == 4) {
|
||||
return HEAD;
|
||||
} else if (position > 0) {
|
||||
LiveBean mode = mList.get(position - 1);
|
||||
} else{
|
||||
LiveBean mode;
|
||||
if(mList.size()<4){
|
||||
if(position>=mList.size()){
|
||||
return HEAD;
|
||||
}
|
||||
mode= mList.get(position);
|
||||
}else {
|
||||
mode = mList.get(position > 4 ? position - 1 : position);
|
||||
}
|
||||
if (TextUtils.equals(mode.getIs_week(), "1")) {
|
||||
return WEEKLAYOUT;
|
||||
} else {
|
||||
@ -114,8 +135,9 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder vh, int position) {
|
||||
int nowPosition = position>4?position-1:position;
|
||||
if (vh instanceof MainHomeLiveWeekItemViewHolder) {
|
||||
((MainHomeLiveWeekItemViewHolder) vh).loadViewDate(mList.get(position - 1), position - 1, Height, new MainHomeLiveWeekItemViewHolder.OnItemClickListener() {
|
||||
((MainHomeLiveWeekItemViewHolder) vh).loadViewDate(mList.get(nowPosition), nowPosition, Height, new MainHomeLiveWeekItemViewHolder.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(LiveBean bean, int position) {
|
||||
if (mOnItemClickListener != null) {
|
||||
@ -124,7 +146,7 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
|
||||
}
|
||||
});
|
||||
} else if (vh instanceof MainHomeLiveItemViewHolder) {
|
||||
((MainHomeLiveItemViewHolder) vh).loadViewDate(mList.get(position - 1), position - 1, Height, new MainHomeLiveItemViewHolder.OnItemClickListener() {
|
||||
((MainHomeLiveItemViewHolder) vh).loadViewDate(mList.get(nowPosition), nowPosition, Height, new MainHomeLiveItemViewHolder.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(LiveBean bean, int position) {
|
||||
if (mOnItemClickListener != null) {
|
||||
@ -137,7 +159,12 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return super.getItemCount() + 1;
|
||||
if (!showBaner)
|
||||
return super.getItemCount();
|
||||
if(mList.isEmpty()){
|
||||
return 0;
|
||||
}
|
||||
return super.getItemCount()+1;
|
||||
}
|
||||
|
||||
class HeadVh extends RecyclerView.ViewHolder {
|
||||
|
@ -3,13 +3,17 @@ package com.yunbao.main.adapter;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Build;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.LiveClassBean;
|
||||
@ -57,7 +61,7 @@ public class MainHomeLivesClassAdapter extends RecyclerView.Adapter<MainHomeLive
|
||||
@NonNull
|
||||
@Override
|
||||
public MainHomeLivesClassAdapter.Vh onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
int res = R.layout.item_main_home_lives_class;
|
||||
int res = R.layout.item_main_live_com_class;
|
||||
return new MainHomeLivesClassAdapter.Vh(mInflater.inflate(res, parent, false));
|
||||
}
|
||||
|
||||
@ -73,10 +77,12 @@ public class MainHomeLivesClassAdapter extends RecyclerView.Adapter<MainHomeLive
|
||||
|
||||
class Vh extends RecyclerView.ViewHolder {
|
||||
TextView mName;
|
||||
ImageView imageView;
|
||||
|
||||
public Vh(View itemView) {
|
||||
super(itemView);
|
||||
mName = (TextView) itemView.findViewById(R.id.tv_class_name);
|
||||
imageView =itemView.findViewById(R.id.index);
|
||||
itemView.setOnClickListener(mOnClickListener);
|
||||
}
|
||||
|
||||
@ -96,11 +102,17 @@ public class MainHomeLivesClassAdapter extends RecyclerView.Adapter<MainHomeLive
|
||||
}
|
||||
|
||||
if (position == choice) {
|
||||
mName.setBackgroundResource(R.drawable.button_ffc621);
|
||||
mName.setTextColor(Color.parseColor("#7d77fc"));
|
||||
mName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
|
||||
//mName.setBackgroundResource(R.drawable.bg_main_community_type_01);
|
||||
mName.setTextColor(ContextCompat.getColor(mContext, R.color.color_111111));
|
||||
mName.setTypeface(null, Typeface.BOLD);
|
||||
imageView.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mName.setBackgroundResource(R.drawable.button_cbd5e0);
|
||||
mName.setTextColor(Color.parseColor("#484D68"));
|
||||
//mName.setBackgroundResource(R.drawable.bg_main_community_type_02);
|
||||
mName.setTextColor(ContextCompat.getColor(mContext, R.color.color_8a8a8a));
|
||||
mName.setTypeface(null, Typeface.NORMAL);
|
||||
mName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);
|
||||
imageView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
29
main/src/main/java/com/yunbao/main/views/LiveOptAgent.java
Normal file
@ -0,0 +1,29 @@
|
||||
package com.yunbao.main.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.adapter.RefreshAdapter;
|
||||
import com.yunbao.common.bean.AnchorRecommendModel;
|
||||
import com.yunbao.common.bean.LiveBean;
|
||||
import com.yunbao.common.custom.CommonRefreshView;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
|
||||
|
||||
interface LiveOptAgent extends OnItemClickListener<LiveBean> {
|
||||
|
||||
|
||||
abstract public CommonRefreshView.DataHelper<LiveBean> getDataHelper();
|
||||
|
||||
|
||||
abstract public void loadData();
|
||||
|
||||
|
||||
abstract public void release();
|
||||
|
||||
}
|
||||
|
125
main/src/main/java/com/yunbao/main/views/LiveOptComAgent.java
Normal file
@ -0,0 +1,125 @@
|
||||
package com.yunbao.main.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.adapter.RefreshAdapter;
|
||||
import com.yunbao.common.bean.AnchorRecommendModel;
|
||||
import com.yunbao.common.bean.LiveBean;
|
||||
import com.yunbao.common.custom.CommonRefreshView;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.main.activity.MainActivity;
|
||||
import com.yunbao.main.activity.WeekWebViewActivity;
|
||||
import com.yunbao.main.adapter.MainHomeLiveAdapter;
|
||||
import com.yunbao.main.adapter.MainHomeRemFollLiveAdapter;
|
||||
import com.yunbao.main.http.MainHttpConsts;
|
||||
import com.yunbao.main.http.MainHttpUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import io.agora.beautyapi.faceunity.agora.SWAuManager;
|
||||
|
||||
public class LiveOptComAgent implements LiveOptAgent {
|
||||
|
||||
|
||||
private MainHomeLiveAdapter mAdapter;
|
||||
private Context mContext;
|
||||
public void watchLive(LiveBean liveBean, String key, int position) {
|
||||
((MainActivity) mContext).watchLive(liveBean, key, position);
|
||||
}
|
||||
|
||||
public LiveOptComAgent(Context context,MainHomeLiveAdapter adapter) {
|
||||
mContext = context;
|
||||
mAdapter = adapter;
|
||||
}
|
||||
|
||||
public static int pp;
|
||||
|
||||
@Override
|
||||
public void onItemClick(LiveBean bean, int position) {
|
||||
if ("1".equals(bean.getIslive())) {
|
||||
watchLive(bean, Constants.LIVE_HOME, position);
|
||||
} else if (bean.getIs_week() != null && bean.getIs_week().equals("1")) {
|
||||
String url = CommonAppConfig.HOST + bean.getUrl() + "?a=1";
|
||||
WeekWebViewActivity.forward(mContext, url, true);
|
||||
} else {
|
||||
RouteUtil.forwardUserHome(mContext, bean.getUid(), 0);
|
||||
}
|
||||
}
|
||||
|
||||
public CommonRefreshView.DataHelper<LiveBean> getDataHelper() {
|
||||
return new CommonRefreshView.DataHelper<LiveBean>() {
|
||||
@Override
|
||||
public RefreshAdapter<LiveBean> getAdapter() {
|
||||
// if (mAdapter == null) {
|
||||
// mAdapter = new MainHomeRemFollLiveAdapter(mContext, MainActivity.Height);
|
||||
// mAdapter.setOnItemClickListener(LiveOptComAgent.this);
|
||||
// }
|
||||
// Log.i("MainHomeViewHolder2", "LiveOptComAgent.getAdapter" );
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadData(int p, HttpCallback callback) {
|
||||
pp = p;
|
||||
Log.i("MainHomeViewHolder2", "LiveOptComAgent.loadData" );
|
||||
MainHttpUtil.getRandom(p, callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LiveBean> processData(String[] info) {
|
||||
if(pp == 1){
|
||||
return JSON.parseArray(Arrays.toString(info), LiveBean.class);
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshSuccess(List<LiveBean> list, int count) {
|
||||
SWAuManager.get().preloadChannel(list);
|
||||
EventBus.getDefault().post(new AnchorRecommendModel());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshFailure() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreSuccess(List<LiveBean> loadItemList, int loadItemCount) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreFailure() {
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public void loadData() {
|
||||
if (mAdapter != null) {
|
||||
SWAuManager.get().preloadChannel(mAdapter.getList());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void release() {
|
||||
MainHttpUtil.cancel(MainHttpConsts.GET_RANDOM);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
130
main/src/main/java/com/yunbao/main/views/LiveOptFollAgent.java
Normal file
@ -0,0 +1,130 @@
|
||||
package com.yunbao.main.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.adapter.RefreshAdapter;
|
||||
import com.yunbao.common.bean.AnchorRecommendModel;
|
||||
import com.yunbao.common.bean.LiveBean;
|
||||
import com.yunbao.common.custom.CommonRefreshView;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.main.activity.MainActivity;
|
||||
import com.yunbao.main.activity.WeekWebViewActivity;
|
||||
import com.yunbao.main.adapter.MainHomeLiveAdapter;
|
||||
import com.yunbao.main.adapter.MainHomeRemFollLiveAdapter;
|
||||
import com.yunbao.main.http.MainHttpConsts;
|
||||
import com.yunbao.main.http.MainHttpUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import io.agora.beautyapi.faceunity.agora.SWAuManager;
|
||||
|
||||
public class LiveOptFollAgent implements LiveOptAgent {
|
||||
|
||||
private MainHomeLiveAdapter mAdapter;
|
||||
|
||||
private Context mContext;
|
||||
public void watchLive(LiveBean liveBean, String key, int position) {
|
||||
((MainActivity) mContext).watchLive(liveBean, key, position);
|
||||
}
|
||||
|
||||
public LiveOptFollAgent(Context context,MainHomeLiveAdapter adapter) {
|
||||
Log.i("MainHomeViewHolder2", "LiveOptFollAgent.LiveOptFollAgent");
|
||||
mContext = context;
|
||||
mAdapter = adapter;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onItemClick(LiveBean bean, int position) {
|
||||
if ("1".equals(bean.getIslive())) {
|
||||
watchLive(bean, Constants.LIVE_HOME, position);
|
||||
} else if (bean.getIs_week() != null && bean.getIs_week().equals("1")) {
|
||||
String url = CommonAppConfig.HOST + bean.getUrl() + "?a=1";
|
||||
WeekWebViewActivity.forward(mContext, url, true);
|
||||
} else {
|
||||
RouteUtil.forwardUserHome(mContext, bean.getUid(), 0);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public CommonRefreshView.DataHelper<LiveBean> getDataHelper() {
|
||||
return new CommonRefreshView.DataHelper<LiveBean>() {
|
||||
@Override
|
||||
public RefreshAdapter<LiveBean> getAdapter() {
|
||||
// if (mAdapter == null) {
|
||||
// mAdapter = new MainHomeRemFollLiveAdapter(mContext, MainActivity.Height);
|
||||
// mAdapter.setOnItemClickListener(LiveOptFollAgent.this);
|
||||
// }
|
||||
// Log.i("MainHomeViewHolder2", "LiveOptFollAgent.getAdapter" );
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadData(int p, HttpCallback callback) {
|
||||
Log.i("t2", "aaa" + p);
|
||||
MainHttpUtil.getHomeFollow(p, callback);
|
||||
Log.i("MainHomeViewHolder2", "LiveOptFollAgent.loadData" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LiveBean> processData(String[] info) {
|
||||
return JSON.parseArray(Arrays.toString(info), LiveBean.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshSuccess(List<LiveBean> list, int count) {
|
||||
SWAuManager.get().preloadChannel(list);
|
||||
EventBus.getDefault().post(new AnchorRecommendModel());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshFailure() {
|
||||
Log.i("MainHomeViewHolder2", "LiveOptFollAgent.onRefreshFailure" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreSuccess(List<LiveBean> loadItemList, int loadItemCount) {
|
||||
List<LiveBean> new_data = new ArrayList<>();
|
||||
for (int j = 0; j < loadItemList.size(); j++) {
|
||||
if (loadItemList.get(j).getUserNiceName() != null) {
|
||||
new_data.add(loadItemList.get(j));
|
||||
}
|
||||
}
|
||||
SWAuManager.get().preloadChannel(new_data);
|
||||
mAdapter.insertList(new_data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreFailure() {
|
||||
Log.i("MainHomeViewHolder2", "LiveOptFollAgent.onLoadMoreFailure" );
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
public void loadData() {
|
||||
if (mAdapter != null) {
|
||||
SWAuManager.get().preloadChannel(mAdapter.getList());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void release() {
|
||||
MainHttpUtil.cancel(MainHttpConsts.GET_HOME_FOLLOW);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -6,6 +6,8 @@ import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Outline;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@ -163,14 +165,16 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
|
||||
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
|
||||
@Override
|
||||
public int getSpanSize(int position) {
|
||||
if (position == 0) {
|
||||
if (position == 4) {
|
||||
return 2;
|
||||
}else if(mAdapter.getList().size()<4&&position==mAdapter.getList().size()){
|
||||
return 2;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
mRefreshView.setLayoutManager(gridLayoutManager);
|
||||
ItemDecoration decoration = new ItemDecoration(mContext, 0x00000000, 5, 0);
|
||||
ItemDecoration decoration = new ItemDecoration(mContext, 0x00000000, 7, 0);
|
||||
decoration.setOnlySetItemOffsetsButNoDraw(true);
|
||||
mRefreshView.setItemDecoration(decoration);
|
||||
mAdapter = new MainHomeLiveAdapter(mContext, MainActivity.Height);
|
||||
@ -189,6 +193,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
|
||||
Log.i("t2", "aaa" + p);
|
||||
if (TextUtils.equals(typeHot, "Hot") || TextUtils.equals(typeHot, "hot") || TextUtils.equals(typeHot, "熱門")) {
|
||||
pp = 1;
|
||||
// MainHttpUtil.getHot(p, callback);
|
||||
LiveHttpUtil.getAnchorLastWeekList(new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
@ -226,7 +231,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
|
||||
if (info.length > 0) {
|
||||
JSONObject obj = JSON.parseObject(info[0]);
|
||||
|
||||
mBannerList = JSON.parseArray(obj.getString("slide"), BannerBean.class);
|
||||
mBannerList = JSON.parseArray(obj.getString("slide_pic"), BannerBean.class);
|
||||
if (!obj.containsKey("list")) {
|
||||
return new_data;
|
||||
}
|
||||
@ -330,9 +335,14 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
|
||||
if (!canClick()) {
|
||||
return;
|
||||
}
|
||||
// mRefreshView.getRefreshView().scrollToPosition(0);
|
||||
mAdapter.clearData();
|
||||
select = bean.getId();
|
||||
typeHot = bean.getEnglish();
|
||||
new Handler(Looper.getMainLooper())
|
||||
.postDelayed(() -> {
|
||||
mRefreshView.initData();
|
||||
}, 100);
|
||||
topAdapter.choice = position;
|
||||
topAdapter.notifyDataSetChanged();
|
||||
|
||||
@ -348,7 +358,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
|
||||
mBanner.setOutlineProvider(new ViewOutlineProvider() {
|
||||
@Override
|
||||
public void getOutline(View view, Outline outline) {
|
||||
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 10);
|
||||
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 30);
|
||||
}
|
||||
});
|
||||
mBanner.setClipToOutline(true);
|
||||
|
@ -13,22 +13,18 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.gson.Gson;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.adapter.RefreshAdapter;
|
||||
import com.yunbao.common.bean.ActiveBean;
|
||||
import com.yunbao.common.bean.NewCommunityType;
|
||||
import com.yunbao.common.custom.CommonRefreshView;
|
||||
import com.yunbao.common.custom.CommonRefreshWaterfallView;
|
||||
import com.yunbao.common.http.CommonHttpUtil;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.manager.CommunityTypeManager;
|
||||
import com.yunbao.common.manager.OpenAdManager;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.adapter.MainHomeComAdapter2;
|
||||
import com.yunbao.main.adapter.MainHomeComClassAdapter;
|
||||
|
@ -125,7 +125,6 @@ public class MainHomeRecomLiveViewHolder extends AbsMainHomeChildViewHolder impl
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
mRefreshView.initData();
|
||||
|
||||
|
||||
@ -149,9 +148,6 @@ public class MainHomeRecomLiveViewHolder extends AbsMainHomeChildViewHolder impl
|
||||
|
||||
@Override
|
||||
public void loadData() {
|
||||
// if (mRefreshView != null) {
|
||||
// mRefreshView.initData();
|
||||
// }
|
||||
if (mAdapter != null) {
|
||||
SWAuManager.get().preloadChannel(mAdapter.getList());
|
||||
}
|
||||
|
@ -0,0 +1,683 @@
|
||||
package com.yunbao.main.views;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
|
||||
import android.graphics.Outline;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewOutlineProvider;
|
||||
import android.widget.ImageView;
|
||||
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.bumptech.glide.Glide;
|
||||
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.DrawableImageViewTarget;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.ms.banner.Banner;
|
||||
import com.ms.banner.listener.OnBannerClickListener;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.activity.WebViewActivity;
|
||||
import com.yunbao.common.adapter.RefreshAdapter;
|
||||
import com.yunbao.common.bean.AnchorRecommendModel;
|
||||
import com.yunbao.common.bean.BannerBean;
|
||||
import com.yunbao.common.bean.LiveBean;
|
||||
import com.yunbao.common.bean.LiveClassBean;
|
||||
import com.yunbao.common.bean.WeekListBean;
|
||||
import com.yunbao.common.custom.CommonRefreshView;
|
||||
import com.yunbao.common.custom.ItemDecoration;
|
||||
import com.yunbao.common.dialog.GiftWallDialog;
|
||||
import com.yunbao.common.event.LiveRoomChangeEvent;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.LiveHttpUtil;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.manager.LiveClassManager;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
|
||||
import com.yunbao.common.utils.MicStatusManager;
|
||||
import com.yunbao.common.utils.MobclickAgent;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.views.CustomViewHolder;
|
||||
import com.yunbao.live.utils.LiveStorge;
|
||||
import com.yunbao.live.views.LiveRoomViewHolder;
|
||||
import com.yunbao.main.R;
|
||||
import com.yunbao.main.activity.MainActivity;
|
||||
import com.yunbao.main.adapter.MainHomeLiveAdapter;
|
||||
import com.yunbao.main.adapter.MainHomeLivesClassAdapter;
|
||||
import com.yunbao.main.http.MainHttpConsts;
|
||||
import com.yunbao.main.http.MainHttpUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.agora.beautyapi.faceunity.agora.SWAuManager;
|
||||
|
||||
|
||||
/**
|
||||
* Created by cxf on 2018/9/22.
|
||||
* MainActivity 新的直播首页
|
||||
*/
|
||||
|
||||
public class MainHomeViewHolder2 extends AbsMainHomeChildViewHolder implements OnItemClickListener<LiveBean>, LiveOptAgent {
|
||||
|
||||
|
||||
private View mShadow;
|
||||
private View mBtnDismiss;
|
||||
public static CommonRefreshView mRefreshView;
|
||||
private RecyclerView mClassRecyclerViewTop;
|
||||
private MainHomeLiveAdapter mAdapter;
|
||||
private ObjectAnimator mShowAnimator;
|
||||
private ObjectAnimator mHideAnimator;
|
||||
private Banner mBanner;
|
||||
private boolean mBannerShowed;
|
||||
private List<BannerBean> mBannerList;
|
||||
private List<WeekListBean> mWeekListBean;
|
||||
public static ImageView btnUseIco;
|
||||
private int select = 0;
|
||||
//是否是首頁
|
||||
private int intoIndex = 0;
|
||||
private List<LiveBean> new_data;
|
||||
private boolean isHave = false;
|
||||
private Map<String, String> gotoRoomKey = new HashMap<>();
|
||||
private Dialog mShowLoadingDialog;
|
||||
private String typeHot;
|
||||
|
||||
|
||||
private LiveOptAgent mLiveOptFollAgent, mLiveOptComAgent;
|
||||
private LiveOptAgent nowLiveOptAgent = this;
|
||||
|
||||
public MainHomeViewHolder2(Context context, ViewGroup parentView) {
|
||||
super(context, parentView);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.view_main_home2;
|
||||
}
|
||||
|
||||
public static int pp;
|
||||
|
||||
//显示顶部商城tab时,显示底部tabGroup
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onUpdata(String str) {
|
||||
if ("Updata".equals(str)) {
|
||||
if (mRefreshView != null) {
|
||||
mRefreshView.showRefreshBar();
|
||||
mRefreshView.mRecyclerView.scrollToPosition(0);
|
||||
}
|
||||
} else if ("blacklist".equals(str)) {
|
||||
if (mRefreshView != null) {
|
||||
mRefreshView.showRefreshBar();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
List<LiveClassBean> list = new LiveClassManager(mContext).getLiveClass();
|
||||
if (list != null && !list.isEmpty()) {
|
||||
typeHot = list.get(0).getEnglish();
|
||||
select = list.get(0).getId();
|
||||
}
|
||||
list.add(0, getAttentionLiveClass());
|
||||
if (list.size() > 2) {
|
||||
list.add(2, getCoLiveClass());
|
||||
} else {
|
||||
list.add(getCoLiveClass());
|
||||
}
|
||||
|
||||
|
||||
mShadow = findViewById(R.id.shadow);
|
||||
mBtnDismiss = findViewById(R.id.btn_dismiss);
|
||||
mBtnDismiss.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (canClick()) {
|
||||
if (mShowAnimator != null) {
|
||||
mShowAnimator.cancel();
|
||||
}
|
||||
if (mHideAnimator != null) {
|
||||
mHideAnimator.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
mRefreshView = (CommonRefreshView) findViewById(R.id.refreshView);
|
||||
btnUseIco = (ImageView) findViewById(R.id.btn_use_ico);
|
||||
mRefreshView.setEmptyLayoutId(R.layout.view_no_data_live);
|
||||
EventBus.getDefault().register(this);
|
||||
|
||||
GridLayoutManager gridLayoutManager = new GridLayoutManager(mContext, 2, GridLayoutManager.VERTICAL, false);
|
||||
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
|
||||
@Override
|
||||
public int getSpanSize(int position) {
|
||||
// if (nowLiveOptAgent!= MainHomeViewHolder2.this)
|
||||
// return 1;
|
||||
|
||||
if (position == 4) {
|
||||
return 2;
|
||||
} else if (mAdapter.getList().size() < 4 && position == mAdapter.getList().size()) {
|
||||
return 2;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
mRefreshView.setLayoutManager(gridLayoutManager);
|
||||
ItemDecoration decoration = new ItemDecoration(mContext, 0x00000000, 5, 0);
|
||||
decoration.setOnlySetItemOffsetsButNoDraw(true);
|
||||
mRefreshView.setItemDecoration(decoration);
|
||||
mAdapter = new MainHomeLiveAdapter(mContext, MainActivity.Height);
|
||||
mAdapter.setOnItemClickListener(MainHomeViewHolder2.this);
|
||||
mLiveOptFollAgent = new LiveOptFollAgent(mContext,mAdapter);
|
||||
mLiveOptComAgent = new LiveOptComAgent(mContext,mAdapter);
|
||||
mAdapter.setHasStableIds(true);//
|
||||
mRefreshView.setLoadMoreEnable(true);
|
||||
mRefreshView.setRecyclerViewAdapter(mAdapter);
|
||||
mRefreshView.setDataHelper(getDataHelper());
|
||||
mClassRecyclerViewTop = (RecyclerView) findViewById(R.id.topTitleRecyclerView);
|
||||
mClassRecyclerViewTop.setHasFixedSize(true);
|
||||
mClassRecyclerViewTop.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
|
||||
|
||||
if (list != null && list.size() > 0) {
|
||||
List<LiveClassBean> targetList = new ArrayList<>();
|
||||
if (list.size() <= 6) {
|
||||
targetList.addAll(list);
|
||||
} else {
|
||||
targetList.addAll(list);
|
||||
}
|
||||
final MainHomeLivesClassAdapter topAdapter = new MainHomeLivesClassAdapter(mContext, targetList, false);
|
||||
topAdapter.choice = 1;
|
||||
topAdapter.setOnItemClickListener(new OnItemClickListener<LiveClassBean>() {
|
||||
@Override
|
||||
public void onItemClick(LiveClassBean bean, int position) {
|
||||
switch (bean.getEnglish()) {
|
||||
case "Hot":
|
||||
MobclickAgent.onEvent(mContext, "home_page_recommend_hot", "热门");
|
||||
break;
|
||||
case "New":
|
||||
MobclickAgent.onEvent(mContext, "home_page_recommend_new", "新秀");
|
||||
break;
|
||||
case "Pretty":
|
||||
MobclickAgent.onEvent(mContext, "home_page_recommend_pretty", "颜值");
|
||||
break;
|
||||
case "Dance":
|
||||
MobclickAgent.onEvent(mContext, "home_page_recommend_dance", "舞蹈");
|
||||
break;
|
||||
case "Mr.Right":
|
||||
MobclickAgent.onEvent(mContext, "home_page_recommend_mr.right", "男神");
|
||||
break;
|
||||
case "Music":
|
||||
MobclickAgent.onEvent(mContext, "home_page_recommend_music", "音乐");
|
||||
break;
|
||||
default:
|
||||
MobclickAgent.onEvent(mContext, "home_page_recommend_other", "其他");
|
||||
break;
|
||||
}
|
||||
if (!canClick()) {
|
||||
return;
|
||||
}
|
||||
mAdapter.clearData();
|
||||
select = bean.getId();
|
||||
boolean flag = false;
|
||||
if (position == 0) {
|
||||
Log.i("MainHomeViewHolder2", "mLiveOptFollAgent:");
|
||||
flag= changeLiveOptAgent(mLiveOptFollAgent);
|
||||
} else if (position == 2) {
|
||||
Log.i("MainHomeViewHolder2", "mLiveOptComAgent:");
|
||||
flag= changeLiveOptAgent(mLiveOptComAgent);
|
||||
} else {
|
||||
Log.i("MainHomeViewHolder2", "MainHomeViewHolder2:");
|
||||
flag= changeLiveOptAgent(MainHomeViewHolder2.this);
|
||||
}
|
||||
typeHot = bean.getEnglish();
|
||||
if (!flag){
|
||||
new Handler(Looper.getMainLooper())
|
||||
.postDelayed(() -> {
|
||||
mRefreshView.initData();
|
||||
}, 100);
|
||||
}
|
||||
topAdapter.choice = position;
|
||||
topAdapter.notifyDataSetChanged();
|
||||
|
||||
}
|
||||
});
|
||||
if (mClassRecyclerViewTop != null) {
|
||||
mClassRecyclerViewTop.setAdapter(topAdapter);
|
||||
}
|
||||
}
|
||||
View headView = mAdapter.getHeadView();
|
||||
mBanner = (Banner) headView.findViewById(R.id.banner);
|
||||
mRefreshView.initData();
|
||||
mBanner.setOutlineProvider(new ViewOutlineProvider() {
|
||||
@Override
|
||||
public void getOutline(View view, Outline outline) {
|
||||
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 10);
|
||||
}
|
||||
});
|
||||
mBanner.setClipToOutline(true);
|
||||
String adUrl = ((Activity) mContext).getIntent().getStringExtra("ad_url");
|
||||
ImageView ad = headView.findViewById(R.id.ad_img);
|
||||
if (StringUtil.isEmpty(adUrl)) {
|
||||
ActivityCompat.startPostponedEnterTransition((Activity) mContext);
|
||||
ad.setVisibility(View.GONE);
|
||||
} else {
|
||||
//ImgLoader.display(mContext, adUrl, ad);
|
||||
|
||||
Glide.with(mContext)
|
||||
.load(adUrl)
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
|
||||
ActivityCompat.startPostponedEnterTransition((Activity) mContext);
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
|
||||
ActivityCompat.startPostponedEnterTransition((Activity) mContext);
|
||||
return false;
|
||||
}
|
||||
})
|
||||
/* .addListener(new RequestListener<Drawable>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
|
||||
ActivityCompat.startPostponedEnterTransition((Activity) mContext);
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
|
||||
ActivityCompat.startPostponedEnterTransition((Activity) mContext);
|
||||
return false;
|
||||
}
|
||||
})*/
|
||||
.error(R.mipmap.ic_launcher)
|
||||
.into(new DrawableImageViewTarget(ad));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private boolean changeLiveOptAgent(LiveOptAgent liveOptAgent) {
|
||||
if (nowLiveOptAgent == liveOptAgent) {
|
||||
return false;
|
||||
}
|
||||
|
||||
nowLiveOptAgent= liveOptAgent;
|
||||
if (liveOptAgent==this){
|
||||
// mRefreshView.setRecyclerViewAdapter(mAdapter);
|
||||
mRefreshView.setDataHelper(getDataHelper());
|
||||
mAdapter.setOnItemClickListener(this);
|
||||
mAdapter.setShowBaner(true);
|
||||
}else {
|
||||
// mRefreshView.setRecyclerViewAdapter(liveOptAgent.getDataHelper().getAdapter());
|
||||
mRefreshView.setDataHelper(liveOptAgent.getDataHelper());
|
||||
mAdapter.setOnItemClickListener(liveOptAgent);
|
||||
mAdapter.setShowBaner(false);
|
||||
}
|
||||
new Handler(Looper.getMainLooper())
|
||||
.postDelayed(() -> {
|
||||
mRefreshView.initData();
|
||||
}, 100);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private void gotoLive(final String live_id) {
|
||||
LiveHttpUtil.getLiveInfo(live_id, 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);
|
||||
if (liveBean == null) {
|
||||
return;
|
||||
}
|
||||
intoIndex = 1;
|
||||
if (gotoRoomKey != null && gotoRoomKey.isEmpty()) {
|
||||
gotoRoomKey = null;
|
||||
}
|
||||
liveBean.setParams(gotoRoomKey);
|
||||
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
|
||||
@Override
|
||||
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
|
||||
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal), isSw);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCheckError(String contextError) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
intoIndex = 1;
|
||||
RouteUtil.forwardUserHome(mContext, live_id, 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showBanner() {
|
||||
if (mBannerList == null || mBannerList.size() == 0 || mBanner == null) {
|
||||
return;
|
||||
}
|
||||
if (mBannerShowed) {
|
||||
return;
|
||||
}
|
||||
mBannerShowed = true;
|
||||
mBanner.setAutoPlay(true)
|
||||
.setPages(mBannerList, new CustomViewHolder())
|
||||
.setDelayTime(3000)
|
||||
.setOnBannerClickListener(new OnBannerClickListener() {
|
||||
@Override
|
||||
public void onBannerClick(List datas, int p) {
|
||||
if (mBannerList != null) {
|
||||
if (p >= 0 && p < mBannerList.size()) {
|
||||
BannerBean bean = mBannerList.get(p);
|
||||
if (bean != null) {
|
||||
String link = bean.getLink();
|
||||
if (bean.getType() == 2) {
|
||||
if (bean.getLink().isEmpty()) {
|
||||
ToastUtil.show("暫無法簽到,請稍後再試");
|
||||
return;
|
||||
} else {
|
||||
if (gotoRoomKey == null) {
|
||||
gotoRoomKey = new HashMap<>();
|
||||
}
|
||||
gotoRoomKey.put("OPEN", "NEWUSER");
|
||||
}
|
||||
}
|
||||
showLoadingDialog();
|
||||
|
||||
Map<String, String> map_ekv = new HashMap<String, String>();
|
||||
map_ekv.put("link", link);
|
||||
MobclickAgent.onEvent(mContext, "home_page_recommend_banner", map_ekv);
|
||||
|
||||
if (link.contains("http")) {
|
||||
WebViewActivity.forward(mContext, link, true, false);
|
||||
} else if ("home_page_banner_battle".equals(link)) {
|
||||
RouteUtil.forwardBattlePass();
|
||||
} else if ("home_page_banner_giftwall".equals(link)) {
|
||||
if (mShowLoadingDialog != null && mShowLoadingDialog.isShowing()) {
|
||||
mShowLoadingDialog.dismiss();
|
||||
}
|
||||
new GiftWallDialog(mContext, IMLoginManager.get(mContext).getUserInfo().getId() + "",
|
||||
IMLoginManager.get(mContext).getUserInfo().getUserNicename(), null
|
||||
, false).setFullWindows(true).setTab2(true).showDialog();
|
||||
} else {
|
||||
gotoLive(link);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Banner双击可能会导致进入两次直播间,点击Banner后需要展示加载中动画
|
||||
*/
|
||||
private void showLoadingDialog() {
|
||||
mShowLoadingDialog = DialogUitl.loadingDialog(mContext);
|
||||
mShowLoadingDialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemClick(LiveBean bean, int position) {
|
||||
if ("1".equals(bean.getIslive())) {
|
||||
intoIndex = 1;
|
||||
watchLive(bean, Constants.LIVE_HOME, position);
|
||||
} else if (bean.getIs_week() != null && bean.getIs_week().equals("1")) {
|
||||
String url = CommonAppConfig.HOST + bean.getUrl() + "?a=1";
|
||||
LiveHttpUtil.getLiveInfo(bean.getUid(), 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);
|
||||
|
||||
if (liveBean == null) {
|
||||
return;
|
||||
}
|
||||
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
|
||||
@Override
|
||||
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
|
||||
|
||||
if (LiveRoomViewHolder.mHandler != null) {
|
||||
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
|
||||
}
|
||||
if (!"".endsWith(Constants.mStream)) {
|
||||
if (MicStatusManager.getInstance().isMic(liveUid)) {
|
||||
MicStatusManager.getInstance().showDownMicDialog(mContext);
|
||||
return;
|
||||
}
|
||||
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
|
||||
} else {
|
||||
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk), isSw);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCheckError(String contextError) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
ToastUtil.show(msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
intoIndex = 1;
|
||||
RouteUtil.forwardUserHome(mContext, bean.getUid(), 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public CommonRefreshView.DataHelper<LiveBean> getDataHelper() {
|
||||
return new CommonRefreshView.DataHelper<LiveBean>() {
|
||||
@Override
|
||||
public RefreshAdapter<LiveBean> getAdapter() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadData(int p, HttpCallback callback) {
|
||||
Log.i("t2", "aaa" + p);
|
||||
if (TextUtils.equals(typeHot, "Hot") || TextUtils.equals(typeHot, "hot") || TextUtils.equals(typeHot, "熱門")) {
|
||||
pp = 1;
|
||||
LiveHttpUtil.getAnchorLastWeekList(new HttpCallback() {
|
||||
@Override
|
||||
public void onSuccess(int code, String msg, String[] info) {
|
||||
if (mWeekListBean != null) {
|
||||
mWeekListBean.clear();
|
||||
}
|
||||
if (code == 0 && info.length > 0) {
|
||||
mWeekListBean = JSON.parseArray(Arrays.toString(info), WeekListBean.class);
|
||||
} else {
|
||||
mWeekListBean = null;
|
||||
}
|
||||
if (mWeekListBean != null && mWeekListBean.size() > 0) {
|
||||
mAdapter.setWeekList(mWeekListBean);
|
||||
isHave = true;
|
||||
} else {
|
||||
mAdapter.moveWeekList();
|
||||
isHave = false;
|
||||
}
|
||||
Constants.getWeekIntIndex = Constants.getWeekIntIndex + 1;
|
||||
MainHttpUtil.getHot(p, callback);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
pp = 0;
|
||||
// if (select == 0) {
|
||||
// select = list.get(0).getId();
|
||||
// }
|
||||
MainHttpUtil.getClassLive(select, p, callback);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LiveBean> processData(String[] info) {
|
||||
new_data = new ArrayList<>();
|
||||
if (info.length > 0) {
|
||||
JSONObject obj = JSON.parseObject(info[0]);
|
||||
|
||||
mBannerList = JSON.parseArray(obj.getString("slide"), BannerBean.class);
|
||||
if (!obj.containsKey("list")) {
|
||||
return new_data;
|
||||
}
|
||||
List<LiveBean> old_data = JSON.parseArray(obj.getString("list"), LiveBean.class);
|
||||
LiveBean liveModel = null;
|
||||
if (old_data == null) {
|
||||
return new_data;
|
||||
}
|
||||
for (LiveBean model : old_data) {
|
||||
//判断周星榜数据
|
||||
if (TextUtils.equals(model.getIs_week(), "1")) {
|
||||
if (mWeekListBean != null && mWeekListBean.size() > 0) {
|
||||
model.setmWeekList(mWeekListBean);
|
||||
} else {
|
||||
liveModel = model;
|
||||
}
|
||||
}
|
||||
}
|
||||
//满足有周星榜字段但是没有周星榜数据的删掉
|
||||
if (liveModel != null) {
|
||||
old_data.remove(liveModel);
|
||||
}
|
||||
SWAuManager.get().preloadChannel(old_data);
|
||||
new_data.addAll(old_data);
|
||||
|
||||
}
|
||||
return new_data;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshSuccess(List<LiveBean> list, int count) {
|
||||
if (CommonAppConfig.LIVE_ROOM_SCROLL) {
|
||||
LiveStorge.getInstance().put(Constants.LIVE_HOME, list);
|
||||
}
|
||||
showBanner();
|
||||
EventBus.getDefault().post(new AnchorRecommendModel());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefreshFailure() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreSuccess(List<LiveBean> loadItemList, int loadItemCount) {
|
||||
new_data = new ArrayList<>();
|
||||
for (int j = 0; j < loadItemList.size(); j++) {
|
||||
if (loadItemList.get(j).getUserNiceName() != null) {
|
||||
new_data.add(loadItemList.get(j));
|
||||
}
|
||||
}
|
||||
if (loadItemList.size() > 0) {
|
||||
SWAuManager.get().preloadChannel(new_data);
|
||||
mAdapter.insertList(new_data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreFailure() {
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadData() {
|
||||
if (nowLiveOptAgent != this) {
|
||||
nowLiveOptAgent.loadData();
|
||||
} else {
|
||||
if (mAdapter != null) {
|
||||
SWAuManager.get().preloadChannel(mAdapter.getList());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void release() {
|
||||
MainHttpUtil.cancel(MainHttpConsts.GET_HOT);
|
||||
if (mHideAnimator != null) {
|
||||
mHideAnimator.cancel();
|
||||
}
|
||||
if (mShowAnimator != null) {
|
||||
mShowAnimator.cancel();
|
||||
}
|
||||
if (mAdapter != null) {
|
||||
mAdapter.clearAnimator();
|
||||
}
|
||||
mShowAnimator = null;
|
||||
mHideAnimator = null;
|
||||
mLiveOptFollAgent.release();
|
||||
mLiveOptComAgent.release();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
release();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
if (mShowLoadingDialog != null) {
|
||||
mShowLoadingDialog.dismiss();
|
||||
mShowLoadingDialog = null;
|
||||
}
|
||||
}
|
||||
|
||||
//获取关注的
|
||||
private LiveClassBean getAttentionLiveClass() {
|
||||
LiveClassBean liveClassBean = new LiveClassBean("關注", "Follow");
|
||||
liveClassBean.setId(Integer.MAX_VALUE);
|
||||
return liveClassBean;
|
||||
}
|
||||
|
||||
//获取推荐的
|
||||
private LiveClassBean getCoLiveClass() {
|
||||
LiveClassBean liveClassBean = new LiveClassBean("推薦", "Recommend");
|
||||
liveClassBean.setId(Integer.MAX_VALUE);
|
||||
return liveClassBean;
|
||||
}
|
||||
}
|
35
main/src/main/res/layout/item_main_live_com_class.xml
Normal file
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<TextView
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:id="@+id/tv_class_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="音乐"
|
||||
android:paddingStart="6dp"
|
||||
android:paddingEnd="6dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:textColor="@color/color_3d3d3d"
|
||||
android:textSize="15sp" />
|
||||
|
||||
<ImageView
|
||||
android:layout_marginBottom="4dp"
|
||||
android:id="@+id/index"
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="6dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_class_name"
|
||||
app:layout_constraintStart_toStartOf="@+id/tv_class_name"
|
||||
app:layout_constraintEnd_toEndOf="@+id/tv_class_name"
|
||||
android:src="@mipmap/ic_yola_item_select" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
111
main/src/main/res/layout/view_main_home2.xml
Normal file
@ -0,0 +1,111 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/cupImg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="38dp"
|
||||
android:src="@mipmap/ic_yola_cup"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/videoImg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="38dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@mipmap/ic_yola_vido"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<View
|
||||
android:id="@+id/searchView"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="34dp"
|
||||
android:background="@drawable/bg_white_radius17"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/cupImg"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/cupImg"
|
||||
app:layout_constraintWidth_percent="0.66" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/searchImg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:src="@mipmap/ic_yola_search_small"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/searchView"
|
||||
app:layout_constraintStart_toStartOf="@+id/searchView"
|
||||
app:layout_constraintTop_toTopOf="@+id/searchView" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/searchTipsTv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:text="搜主播名字"
|
||||
android:textColor="#99000000"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/searchView"
|
||||
app:layout_constraintStart_toEndOf="@+id/searchImg"
|
||||
app:layout_constraintTop_toTopOf="@+id/searchView" />
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/topTitleRecyclerView"
|
||||
app:layout_constraintTop_toBottomOf="@+id/searchView"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
tools:itemCount="1"
|
||||
android:layout_marginTop="7dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
|
||||
<com.yunbao.common.custom.CommonRefreshView
|
||||
android:id="@+id/refreshView"
|
||||
app:layout_constraintTop_toBottomOf="@+id/topTitleRecyclerView"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginTop="7dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/btn_dismiss"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clickable="true"
|
||||
android:visibility="gone">
|
||||
|
||||
<View
|
||||
android:id="@+id/shadow"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:alpha="0"
|
||||
android:background="#80000000" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/classRecyclerView_dialog"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/white"
|
||||
android:overScrollMode="never"
|
||||
android:paddingBottom="10dp" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|