Merge branch 'master' into dev_share
# Conflicts: # app/src/main/java/com/shayu/phonelive/NeverCrashUtils.java # config.gradle # main/src/main/java/com/yunbao/main/activity/TestActivity.java
This commit is contained in:
@@ -15,6 +15,7 @@ import com.yunbao.common.bean.AnchorRecommendItemModel;
|
||||
import com.yunbao.common.bean.AnchorRecommendModel;
|
||||
import com.yunbao.common.bean.CustomSidebarInfoModel;
|
||||
import com.yunbao.common.http.main.MainNetManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.views.DrawerRecommendViewHolder;
|
||||
import com.yunbao.common.views.DrawerTaskViewHolder;
|
||||
import com.yunbao.common.views.FunGamesViewHolder;
|
||||
@@ -121,6 +122,7 @@ public class CustomDrawerPopupAdapter extends RecyclerView.Adapter {
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(R.string.net_error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.yunbao.common.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.bean.ListInfoMessageModel;
|
||||
import com.yunbao.common.views.LiveSystemMessageViewHolder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 主播消息中心适配器
|
||||
*/
|
||||
public class LiveSystemMessageAdapter extends RecyclerView.Adapter {
|
||||
private Context mContext;
|
||||
private LayoutInflater mInflater;
|
||||
private List<ListInfoMessageModel> listInfoMessageModels = new ArrayList<>();
|
||||
|
||||
public LiveSystemMessageAdapter(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
mInflater = LayoutInflater.from(mContext);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
return new LiveSystemMessageViewHolder(mInflater.inflate(R.layout.view_live_system_message, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
LiveSystemMessageViewHolder messageViewHolder = (LiveSystemMessageViewHolder) holder;
|
||||
messageViewHolder.setViewData(listInfoMessageModels.get(position));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return listInfoMessageModels.size();
|
||||
}
|
||||
|
||||
public void addData(List<ListInfoMessageModel> list) {
|
||||
listInfoMessageModels.addAll(list);
|
||||
notifyDataSetChanged();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.yunbao.common.bean;
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class ListInfoMessageModel extends BaseModel {
|
||||
@SerializedName("id")
|
||||
private int id;
|
||||
@SerializedName("title")
|
||||
private String title;
|
||||
@SerializedName("banner")
|
||||
private String banner;
|
||||
@SerializedName("content")
|
||||
private String content;
|
||||
@SerializedName("link")
|
||||
private String link;
|
||||
@SerializedName("addtime")
|
||||
private String addtime;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public ListInfoMessageModel setId(int id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public ListInfoMessageModel setTitle(String title) {
|
||||
this.title = title;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBanner() {
|
||||
return banner;
|
||||
}
|
||||
|
||||
public ListInfoMessageModel setBanner(String banner) {
|
||||
this.banner = banner;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public ListInfoMessageModel setContent(String content) {
|
||||
this.content = content;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getLink() {
|
||||
return link;
|
||||
}
|
||||
|
||||
public ListInfoMessageModel setLink(String link) {
|
||||
this.link = link;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getAddtime() {
|
||||
return addtime;
|
||||
}
|
||||
|
||||
public ListInfoMessageModel setAddtime(String addtime) {
|
||||
this.addtime = addtime;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 会话列表展示时间
|
||||
*/
|
||||
public String getLastDate(String type) {
|
||||
if (!TextUtils.isEmpty(addtime) && !TextUtils.equals(addtime, "0")) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||
Date currenTimeZone;
|
||||
if (TextUtils.equals(type, "-1")) {
|
||||
currenTimeZone = new Date(Long.parseLong(addtime));
|
||||
} else {
|
||||
currenTimeZone = new Date(Long.parseLong(addtime + "000"));
|
||||
}
|
||||
return sdf.format(currenTimeZone);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.yunbao.common.bean;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
/**
|
||||
* 直播数据
|
||||
*/
|
||||
public class LiveDataInfoModel extends BaseModel{
|
||||
@SerializedName("totalCoin")
|
||||
private long totalCoin;//钻石数量
|
||||
@SerializedName("totalGold")
|
||||
private long totalGold;//金币数量
|
||||
@SerializedName("acceptNum")
|
||||
private long acceptNum;//送礼人数
|
||||
@SerializedName("enterNum")
|
||||
private long enterNum;//进场人数
|
||||
@SerializedName("attentionNum")
|
||||
private long attentionNum;//关注人数
|
||||
@SerializedName("fanGroupNum")
|
||||
private long fanGroupNum;//粉丝团人数
|
||||
@SerializedName("attentionNumRate")
|
||||
private double attentionNumRate;//关注转化率
|
||||
@SerializedName("fanGroupNumRate")
|
||||
private double fanGroupNumRate;//粉丝团转化率
|
||||
|
||||
public LiveDataInfoModel() {
|
||||
}
|
||||
|
||||
public long getTotalCoin() {
|
||||
return totalCoin;
|
||||
}
|
||||
|
||||
public void setTotalCoin(long totalCoin) {
|
||||
this.totalCoin = totalCoin;
|
||||
}
|
||||
|
||||
public long getTotalGold() {
|
||||
return totalGold;
|
||||
}
|
||||
|
||||
public void setTotalGold(long totalGold) {
|
||||
this.totalGold = totalGold;
|
||||
}
|
||||
|
||||
public long getAcceptNum() {
|
||||
return acceptNum;
|
||||
}
|
||||
|
||||
public void setAcceptNum(long acceptNum) {
|
||||
this.acceptNum = acceptNum;
|
||||
}
|
||||
|
||||
public long getEnterNum() {
|
||||
return enterNum;
|
||||
}
|
||||
|
||||
public void setEnterNum(long enterNum) {
|
||||
this.enterNum = enterNum;
|
||||
}
|
||||
|
||||
public long getAttentionNum() {
|
||||
return attentionNum;
|
||||
}
|
||||
|
||||
public void setAttentionNum(long attentionNum) {
|
||||
this.attentionNum = attentionNum;
|
||||
}
|
||||
|
||||
public long getFanGroupNum() {
|
||||
return fanGroupNum;
|
||||
}
|
||||
|
||||
public void setFanGroupNum(long fanGroupNum) {
|
||||
this.fanGroupNum = fanGroupNum;
|
||||
}
|
||||
|
||||
public double getAttentionNumRate() {
|
||||
return attentionNumRate;
|
||||
}
|
||||
|
||||
public void setAttentionNumRate(double attentionNumRate) {
|
||||
this.attentionNumRate = attentionNumRate;
|
||||
}
|
||||
|
||||
public double getFanGroupNumRate() {
|
||||
return fanGroupNumRate;
|
||||
}
|
||||
|
||||
public void setFanGroupNumRate(double fanGroupNumRate) {
|
||||
this.fanGroupNumRate = fanGroupNumRate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LiveDataInfoModel{" +
|
||||
"totalCoin=" + totalCoin +
|
||||
", totalGold=" + totalGold +
|
||||
", acceptNum=" + acceptNum +
|
||||
", enterNum=" + enterNum +
|
||||
", attentionNum=" + attentionNum +
|
||||
", fanGroupNum=" + fanGroupNum +
|
||||
", attentionNumRate=" + attentionNumRate +
|
||||
", fanGroupNumRate=" + fanGroupNumRate +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
259
common/src/main/java/com/yunbao/common/bean/LiveTaskModel.java
Normal file
259
common/src/main/java/com/yunbao/common/bean/LiveTaskModel.java
Normal file
@@ -0,0 +1,259 @@
|
||||
package com.yunbao.common.bean;
|
||||
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* 直播任务
|
||||
*/
|
||||
public class LiveTaskModel extends BaseModel {
|
||||
public static final int TASK_TYPE_TIP = 0;
|
||||
public static final int TASK_TYPE_ITEM = 1;
|
||||
|
||||
int type;
|
||||
@SerializedName("new")
|
||||
NewUser user;
|
||||
@SerializedName("list")
|
||||
List<List<Task>> list;
|
||||
|
||||
public LiveTaskModel() {
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public NewUser getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
public void setUser(NewUser user) {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public List<List<Task>> getList() {
|
||||
if (user != null && user.isNew()) {
|
||||
for (List<Task> tasks : list) {
|
||||
for (Task task : tasks) {
|
||||
task.isNewUser = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public void setList(List<List<Task>> list) {
|
||||
this.list = list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LiveTaskModel{" +
|
||||
"type=" + type +
|
||||
", user=" + user +
|
||||
", list=" + list +
|
||||
'}';
|
||||
}
|
||||
|
||||
public static class NewUser {
|
||||
@SerializedName("isNew")
|
||||
private int isNew;
|
||||
@SerializedName("endTime")
|
||||
private String endTime;
|
||||
|
||||
public NewUser() {
|
||||
}
|
||||
|
||||
public boolean isNew() {
|
||||
return isNew == 1;
|
||||
}
|
||||
|
||||
public void setNew(int aNew) {
|
||||
isNew = aNew;
|
||||
}
|
||||
|
||||
public String getEndTime() {
|
||||
if (!StringUtil.isEmpty(endTime)) {
|
||||
endTime = WordUtil.getString(R.string.live_task_new_user_timer) + new SimpleDateFormat("yyyy/MM/dd HH:mm", Locale.getDefault()).format(new Date(Long.parseLong(endTime) * 1000));
|
||||
}
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(String endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "NewUser{" +
|
||||
"isNew=" + isNew +
|
||||
", endTime='" + endTime + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
public static class Task implements Serializable {
|
||||
@SerializedName("id")
|
||||
private int id;
|
||||
@SerializedName("type")
|
||||
private int type;
|
||||
@SerializedName("task_type")
|
||||
private int taskType;
|
||||
@SerializedName("task_name")
|
||||
private String taskName;
|
||||
@SerializedName("task_num")
|
||||
private int taskNum;
|
||||
@SerializedName("hot")
|
||||
private long hot;
|
||||
@SerializedName("exp")
|
||||
private long exp;
|
||||
@SerializedName("new_hot")
|
||||
private long newUserHot;
|
||||
@SerializedName("new_exp")
|
||||
private long newUserExp;
|
||||
@SerializedName("sort")
|
||||
private int sort;
|
||||
@SerializedName("status")
|
||||
private int status;
|
||||
|
||||
@SerializedName("now_num")
|
||||
private int nowValue;
|
||||
|
||||
private boolean isNewUser = false;
|
||||
|
||||
public Task() {
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public int getTaskType() {
|
||||
return taskType;
|
||||
}
|
||||
|
||||
public void setTaskType(int taskType) {
|
||||
this.taskType = taskType;
|
||||
}
|
||||
|
||||
public String getTaskName() {
|
||||
return taskName;
|
||||
}
|
||||
|
||||
public void setTaskName(String taskName) {
|
||||
this.taskName = taskName;
|
||||
}
|
||||
|
||||
public int getTaskNum() {
|
||||
return taskNum;
|
||||
}
|
||||
|
||||
public void setTaskNum(int taskNum) {
|
||||
this.taskNum = taskNum;
|
||||
}
|
||||
|
||||
public long getHot() {
|
||||
if (isNewUser) {
|
||||
hot = newUserHot;
|
||||
}
|
||||
return hot;
|
||||
}
|
||||
|
||||
public void setHot(long hot) {
|
||||
this.hot = hot;
|
||||
}
|
||||
|
||||
public long getExp() {
|
||||
if (isNewUser) {
|
||||
exp = newUserExp;
|
||||
}
|
||||
return exp;
|
||||
}
|
||||
|
||||
public void setExp(long exp) {
|
||||
this.exp = exp;
|
||||
}
|
||||
|
||||
public long getNewUserHot() {
|
||||
return newUserHot;
|
||||
}
|
||||
|
||||
public void setNewUserHot(long newUserHot) {
|
||||
this.newUserHot = newUserHot;
|
||||
}
|
||||
|
||||
public long getNewUserExp() {
|
||||
return newUserExp;
|
||||
}
|
||||
|
||||
public void setNewUserExp(long newUserExp) {
|
||||
this.newUserExp = newUserExp;
|
||||
}
|
||||
|
||||
public int getSort() {
|
||||
return sort;
|
||||
}
|
||||
|
||||
public void setSort(int sort) {
|
||||
this.sort = sort;
|
||||
}
|
||||
|
||||
public boolean getStatus() {
|
||||
return status == 1;
|
||||
}
|
||||
|
||||
public void setStatus(int status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public int getNowValue() {
|
||||
return nowValue;
|
||||
}
|
||||
|
||||
public void setNowValue(int nowValue) {
|
||||
this.nowValue = nowValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Task{" +
|
||||
"id=" + id +
|
||||
", type=" + type +
|
||||
", taskType=" + taskType +
|
||||
", taskName='" + taskName + '\'' +
|
||||
", taskNum=" + taskNum +
|
||||
", hot=" + hot +
|
||||
", exp=" + exp +
|
||||
", newUserHot=" + newUserHot +
|
||||
", newUserExp=" + newUserExp +
|
||||
", sort=" + sort +
|
||||
", status=" + status +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,6 +75,9 @@ public class TabButtonGroup extends LinearLayout implements View.OnClickListener
|
||||
}
|
||||
}
|
||||
|
||||
public int getCurPosition() {
|
||||
return mCurPosition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.yunbao.common.dialog;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.lxj.xpopup.XPopup;
|
||||
import com.lxj.xpopup.core.BottomPopupView;
|
||||
|
||||
|
||||
public abstract class AbsDialogPopupWindow extends BottomPopupView {
|
||||
private final Context mContext;
|
||||
|
||||
public AbsDialogPopupWindow(@NonNull Context context) {
|
||||
super(context);
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
public abstract void buildDialog(XPopup.Builder builder);
|
||||
public abstract int bindLayoutId();
|
||||
|
||||
@Override
|
||||
protected int getImplLayoutId() {
|
||||
return bindLayoutId();
|
||||
}
|
||||
|
||||
public void showDialog() {
|
||||
XPopup.Builder builder = new XPopup.Builder(mContext);
|
||||
builder.isDestroyOnDismiss(true);
|
||||
buildDialog(builder);
|
||||
builder.asCustom(this).show();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.yunbao.common.dialog;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Gravity;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
|
||||
public class YoursystemisolderDialog extends AbsDialogFragment {
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.view_yoursystemisolder;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDialogStyle() {
|
||||
return R.style.dialog;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canCancel() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setWindowAttributes(Window window) {
|
||||
window.setWindowAnimations(R.style.bottomToTopAnim);
|
||||
WindowManager.LayoutParams params = window.getAttributes();
|
||||
params.width = DpUtil.dp2px(277);
|
||||
params.height = DpUtil.dp2px(134);
|
||||
params.gravity = Gravity.CENTER;
|
||||
window.setAttributes(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
TextView hint = (TextView) findViewById(R.id.hint);
|
||||
TextView toSetUp = (TextView) findViewById(R.id.to_set_up);
|
||||
TextView knowThe = (TextView) findViewById(R.id.know_the);
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.know_the), () -> dismiss());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show(@NonNull FragmentManager manager, @Nullable String tag) {
|
||||
try {
|
||||
super.show(manager, tag);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private YoursystemisolderDialog.HintListener listener;
|
||||
|
||||
public YoursystemisolderDialog setListener(YoursystemisolderDialog.HintListener listener) {
|
||||
this.listener = listener;
|
||||
return this;
|
||||
}
|
||||
|
||||
public interface HintListener {
|
||||
void requestPermission();
|
||||
}
|
||||
}
|
||||
@@ -44,4 +44,14 @@ public class AnchorInfoEvent {
|
||||
public void setClear(boolean clear) {
|
||||
this.clear = clear;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AnchorInfoEvent{" +
|
||||
"clear=" + clear +
|
||||
", id='" + id + '\'' +
|
||||
", userNiceName='" + userNiceName + '\'' +
|
||||
", avatar='" + avatar + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,10 +12,13 @@ import com.yunbao.common.bean.HourRank;
|
||||
import com.yunbao.common.bean.HttpCallbackModel;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.bean.LinkMicUserBeanV2;
|
||||
import com.yunbao.common.bean.ListInfoMessageModel;
|
||||
import com.yunbao.common.bean.LiveAiRobotBean;
|
||||
import com.yunbao.common.bean.LiveDataInfoModel;
|
||||
import com.yunbao.common.bean.LiveInfoModel;
|
||||
import com.yunbao.common.bean.LiveRoomActivityBanner;
|
||||
import com.yunbao.common.bean.LiveStetUpStatusModel;
|
||||
import com.yunbao.common.bean.LiveTaskModel;
|
||||
import com.yunbao.common.bean.MsgSwitchDetailModel;
|
||||
import com.yunbao.common.bean.NewPeopleInfo;
|
||||
import com.yunbao.common.bean.NobleRankHideUserListModel;
|
||||
@@ -537,4 +540,39 @@ public interface PDLiveApi {
|
||||
Observable<ResponseModel<LiveStetUpStatusModel>> getLiveStetUpStatus(
|
||||
@Query("liveuid") String liveUid
|
||||
);
|
||||
|
||||
@GET("/api/public/?service=live.jieshuDRPK")
|
||||
Observable<ResponseModel<BaseModel>> jieshuDRPK(
|
||||
@Query("roomid") String roomId,
|
||||
@Query("uid") String uid);
|
||||
|
||||
@GET("/api/public/?service=Message.getListInfo")
|
||||
Observable<ResponseModel<List<ListInfoMessageModel>>> getListInfo(
|
||||
@Query("type") String type,
|
||||
@Query("p") int p);
|
||||
|
||||
/**
|
||||
* 获取主播任务列表
|
||||
*/
|
||||
@GET("/api/public/?service=Live.getLiveTaskStatus")
|
||||
Observable<ResponseModel<LiveTaskModel>> getLiveTaskList(
|
||||
@Query("type") int type,
|
||||
@Query("liveuid") String liveUid
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取直播数据
|
||||
*/
|
||||
@GET("/api/public/?service=Live.getLiveStatisticalData")
|
||||
Observable<ResponseModel<LiveDataInfoModel>> getLiveDataInfo(
|
||||
@Query("liveuid") String liveUid
|
||||
);
|
||||
|
||||
/**
|
||||
* 获取直播数据
|
||||
*/
|
||||
@GET("/api/public/?service=Message.getAnchorMsg")
|
||||
Observable<ResponseModel<List<ListInfoMessageModel>>> getAnchorMsg(
|
||||
@Query("liveuid") String liveUid, @Query("page") int page, @Query("limit") int limit
|
||||
);
|
||||
}
|
||||
|
||||
@@ -14,10 +14,13 @@ import com.yunbao.common.bean.EnterRoomNewModel;
|
||||
import com.yunbao.common.bean.HttpCallbackModel;
|
||||
import com.yunbao.common.bean.LinkMicUserBean;
|
||||
import com.yunbao.common.bean.LinkMicUserBeanV2;
|
||||
import com.yunbao.common.bean.ListInfoMessageModel;
|
||||
import com.yunbao.common.bean.LiveAiRobotBean;
|
||||
import com.yunbao.common.bean.LiveDataInfoModel;
|
||||
import com.yunbao.common.bean.LiveInfoModel;
|
||||
import com.yunbao.common.bean.LiveRoomActivityBanner;
|
||||
import com.yunbao.common.bean.LiveStetUpStatusModel;
|
||||
import com.yunbao.common.bean.LiveTaskModel;
|
||||
import com.yunbao.common.bean.NobleRankHideUserListModel;
|
||||
import com.yunbao.common.bean.NobleTrumpetModel;
|
||||
import com.yunbao.common.bean.PkRankBean;
|
||||
@@ -1063,6 +1066,85 @@ public class LiveNetManager {
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
public void jieshuDRPK(String uID) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.jieshuDRPK(uID, uID)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(baseModelResponseModel -> {
|
||||
|
||||
}, throwable -> {
|
||||
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
public void getListInfo(String type, int p, HttpCallback<List<ListInfoMessageModel>> callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.getListInfo(type, p)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(listResponseModel -> {
|
||||
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||
}, throwable -> {
|
||||
callback.onError(throwable.getMessage());
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取直播任务
|
||||
*
|
||||
* @param type 1 直播任务 2粉丝任务
|
||||
*/
|
||||
public void getLiveTask(int type, String liveUid, HttpCallback<LiveTaskModel> callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.getLiveTaskList(type, liveUid)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(listResponseModel -> {
|
||||
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||
}, throwable -> {
|
||||
callback.onError(throwable.getMessage());
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取直播数据
|
||||
*/
|
||||
public void getLiveData(String liveUid, HttpCallback<LiveDataInfoModel> callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.getLiveDataInfo(liveUid)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(listResponseModel -> {
|
||||
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||
}, throwable -> {
|
||||
callback.onError(throwable.getMessage());
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取主播消息
|
||||
*
|
||||
* @param liveUid 直播间id
|
||||
* @param page 页码
|
||||
* @param callback 回调
|
||||
*/
|
||||
public void getAnchorMsg(String liveUid, int page, HttpCallback<List<ListInfoMessageModel>> callback) {
|
||||
API.get().pdLiveApi(mContext)
|
||||
.getAnchorMsg(liveUid, page, 10)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(listResponseModel -> {
|
||||
if (callback != null) {
|
||||
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||
}
|
||||
}, throwable -> {
|
||||
if (callback != null) {
|
||||
callback.onError(throwable.getMessage());
|
||||
}
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
/**
|
||||
* 直播间取消网络请求
|
||||
*/
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.yunbao.common.manager;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.text.TextUtils;
|
||||
|
||||
@@ -40,7 +41,15 @@ public class IMLoginManager extends BaseCacheManager {
|
||||
private final String IS_HINT2 = "is_hint2";
|
||||
private final String SELECT_CLARITY = "selectClarity";
|
||||
private final String CLARITY = "clarity";
|
||||
private final String xiaJBG = "xiaJBG";
|
||||
|
||||
public void setXiaJBG(boolean xjbg) {
|
||||
put(xiaJBG, xjbg);
|
||||
}
|
||||
|
||||
public boolean IsXiaJBG() {
|
||||
return getBoolean(xiaJBG, false);
|
||||
}
|
||||
|
||||
public void setClarity(String clarity) {
|
||||
put(CLARITY, clarity);
|
||||
@@ -276,11 +285,12 @@ public class IMLoginManager extends BaseCacheManager {
|
||||
}
|
||||
|
||||
public boolean isMountEffect() {
|
||||
return getBoolean(MountEffect, true);
|
||||
|
||||
return getBoolean(MountEffect, !(Build.VERSION.SDK_INT < Build.VERSION_CODES.O));
|
||||
}
|
||||
|
||||
public boolean isGiftEffect() {
|
||||
return getBoolean(GiftEffect, true);
|
||||
return getBoolean(GiftEffect, !(Build.VERSION.SDK_INT < Build.VERSION_CODES.O));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.os.Looper;
|
||||
import android.util.Log;
|
||||
|
||||
import com.yunbao.common.CommonAppContext;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.bean.RankPkInfoBean;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
@@ -341,7 +342,7 @@ public class RandomPkManager {
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
ToastUtil.show(R.string.net_error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package com.yunbao.common.utils;
|
||||
|
||||
import static android.provider.Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION;
|
||||
import static androidx.core.content.PermissionChecker.PERMISSION_GRANTED;
|
||||
import static java.text.DateFormat.DEFAULT;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -14,10 +12,10 @@ import android.os.Environment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.FileProvider;
|
||||
import androidx.core.content.PermissionChecker;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.lzy.okgo.OkGo;
|
||||
import com.lzy.okgo.callback.StringCallback;
|
||||
import com.lzy.okgo.model.Progress;
|
||||
@@ -31,7 +29,6 @@ import com.yunbao.common.CommonAppConfig;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
@@ -42,11 +39,20 @@ import java.nio.file.Files;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.MultipartBody;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
|
||||
/**
|
||||
* Created by cxf on 2019/6/20.
|
||||
*/
|
||||
@@ -150,13 +156,17 @@ public class LogUtil {
|
||||
|
||||
|
||||
public static void shareFile(Context context) {
|
||||
if(true){
|
||||
try {
|
||||
if (!new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "pdlive.debug").exists()) {
|
||||
return;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return;
|
||||
}
|
||||
if (PermissionChecker.checkCallingOrSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
|
||||
/* if (PermissionChecker.checkCallingOrSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
|
||||
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
String title = "[PDLIVE]" + CommonAppConfig.getInstance().getUid() + "_";
|
||||
String today = title + SimpleDateFormat.getDateInstance(DEFAULT, Locale.CHINA).format(new Date());
|
||||
File dir = new File(context.getDir("files", Context.MODE_PRIVATE).getAbsolutePath() + File.separator);
|
||||
@@ -184,33 +194,90 @@ public class LogUtil {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (zip.exists()) {
|
||||
Intent share = new Intent(Intent.ACTION_SEND);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
Uri contentUri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", zip);
|
||||
share.putExtra(Intent.EXTRA_STREAM, contentUri);
|
||||
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
} else {
|
||||
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(zip));
|
||||
}
|
||||
share.setType("application/vnd.ms-excel");
|
||||
share.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
context.startActivity(Intent.createChooser(share, "分享文件"));
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !CommonAppConfig.IS_GOOGLE_PLAY) {
|
||||
if (!Environment.isExternalStorageManager()) {
|
||||
Intent intent = new Intent(ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
|
||||
context.startActivity(intent);
|
||||
DialogUitl.showSimpleDialog(context, "上报日志", new DialogUitl.SimpleCallback() {
|
||||
@Override
|
||||
public void onConfirmClick(Dialog dialog, String content) {
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
uploadLog(zip);
|
||||
}
|
||||
}).start();
|
||||
dialog.dismiss();
|
||||
ToastUtil.show("OK");
|
||||
Intent share = new Intent(Intent.ACTION_SEND);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
Uri contentUri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", zip);
|
||||
share.putExtra(Intent.EXTRA_STREAM, contentUri);
|
||||
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
} else {
|
||||
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(zip));
|
||||
}
|
||||
share.setType("application/vnd.ms-excel");
|
||||
share.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
context.startActivity(Intent.createChooser(share, "分享文件"));
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !CommonAppConfig.IS_GOOGLE_PLAY) {
|
||||
if (!Environment.isExternalStorageManager()) {
|
||||
Intent intent = new Intent(ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
}
|
||||
File out = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + zip.getName());
|
||||
try {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
Files.copy(zip.toPath(), out.toPath());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
File out = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + zip.getName());
|
||||
try {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
Files.copy(zip.toPath(), out.toPath());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
private static String TAG="Upload";
|
||||
private static void uploadLog(File log) {
|
||||
|
||||
JSONObject body = new JSONObject();
|
||||
|
||||
MultipartBody requestBody = new MultipartBody.Builder()
|
||||
.addFormDataPart("uid", CommonAppConfig.getInstance().getUid())
|
||||
.addFormDataPart("time", new SimpleDateFormat("yyyy-DD-mm HH:mm:ss", Locale.getDefault()).format(new Date()))
|
||||
.addFormDataPart("isGoogle", CommonAppConfig.IS_GOOGLE_PLAY+"")
|
||||
.addFormDataPart("appVersion", CommonAppConfig.getInstance().getVersion())
|
||||
.addFormDataPart("file","file", RequestBody.create(MediaType.parse("application/octet-stream"),log)) //上报日志文件
|
||||
.build();
|
||||
|
||||
body.put("uid", CommonAppConfig.getInstance().getUid());
|
||||
body.put("time", new SimpleDateFormat("yyyy-DD-mm HH:mm:ss", Locale.getDefault()).format(new Date()));
|
||||
body.put("isGoogle", CommonAppConfig.IS_GOOGLE_PLAY);
|
||||
body.put("appVersion", CommonAppConfig.getInstance().getVersion());
|
||||
|
||||
OkHttpClient client = new OkHttpClient.Builder()
|
||||
.connectTimeout(3, TimeUnit.SECONDS)
|
||||
.build();
|
||||
Request request = new Request.Builder()
|
||||
//.url("https://newht.yaoulive.com/index.php/api/error_log/report") //无法接受文件
|
||||
.url("https://tools.yutou233.cn/public/file/request.do")//临时上报地址,可接受文件
|
||||
.post(requestBody)
|
||||
.build();
|
||||
client.newCall(request)
|
||||
.enqueue(new Callback() {
|
||||
@Override
|
||||
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
||||
Log.e(TAG, "error",e );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, okhttp3.Response response) throws IOException {
|
||||
String body = response.body().string();
|
||||
Log.i(TAG, "onResponse: "+body);
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -75,6 +75,15 @@ public class RouteUtil {
|
||||
.withBoolean("forwardEntry", true)
|
||||
.navigation();
|
||||
}
|
||||
/**
|
||||
* 只回到登录页,不提示东西
|
||||
*/
|
||||
public static void forwardEntry2() {
|
||||
ARouter.getInstance().build(PATH_ENTRY)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.navigation();
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳转到个人主页
|
||||
|
||||
@@ -164,7 +164,7 @@ public class CustomDrawerPopupView extends DrawerPopupView {
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
ToastUtil.show(R.string.net_error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ public class DrawerTaskChildViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
ToastUtil.show( R.string.net_error);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.yunbao.common.views;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lxj.xpopup.core.BottomPopupView;
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.adapter.LiveSystemMessageAdapter;
|
||||
import com.yunbao.common.bean.ListInfoMessageModel;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.http.live.LiveNetManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.views.weight.OnRecyclerViewScrollListener;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 主播消息中心
|
||||
*/
|
||||
public class LiveAnchorMessageCustomPopup extends BottomPopupView {
|
||||
private LiveSystemMessageAdapter adapter;
|
||||
private RecyclerView liveMessage;
|
||||
private String liveUid;
|
||||
private int page = 1, size = 0;
|
||||
|
||||
public LiveAnchorMessageCustomPopup(@NonNull Context context, String liveUid) {
|
||||
super(context);
|
||||
this.liveUid = liveUid;
|
||||
}
|
||||
|
||||
public LiveAnchorMessageCustomPopup(@NonNull Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
// 返回自定义弹窗的布局
|
||||
@Override
|
||||
protected int getImplLayoutId() {
|
||||
return R.layout.dialog_live_anchor_message;
|
||||
}
|
||||
|
||||
// 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑
|
||||
@Override
|
||||
protected void onCreate() {
|
||||
super.onCreate();
|
||||
initView();
|
||||
initDate();
|
||||
}
|
||||
|
||||
private void initDate() {
|
||||
LiveNetManager.get(getContext())
|
||||
.getAnchorMsg(liveUid, page, new HttpCallback<List<ListInfoMessageModel>>() {
|
||||
@Override
|
||||
public void onSuccess(List<ListInfoMessageModel> data) {
|
||||
size = data.size();
|
||||
|
||||
if (page == 1 && size == 0) {
|
||||
liveMessage.setVisibility(GONE);
|
||||
findViewById(R.id.img_no_new).setVisibility(VISIBLE);
|
||||
} else {
|
||||
findViewById(R.id.img_no_new).setVisibility(GONE);
|
||||
liveMessage.setVisibility(VISIBLE);
|
||||
adapter.addData(data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show( R.string.net_error);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
liveMessage = findViewById(R.id.live_message);
|
||||
liveMessage.setHasFixedSize(false);
|
||||
liveMessage.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
|
||||
adapter = new LiveSystemMessageAdapter(getContext());
|
||||
liveMessage.setAdapter(adapter);
|
||||
liveMessage.addOnScrollListener(new OnRecyclerViewScrollListener() {
|
||||
@Override
|
||||
public void onBottom() {
|
||||
if (size > 0) {
|
||||
page = page + 1;
|
||||
initDate();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
}
|
||||
}
|
||||
@@ -142,7 +142,7 @@ public class LiveOpenCustomPopup extends CenterPopupView {
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
ToastUtil.show( R.string.net_error);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@ public class LiveRobotMessageCustomPopup extends BottomPopupView {
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
ToastUtil.show( R.string.net_error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public class LiveRobotSayHelloCustomPopup extends BottomPopupView {
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
ToastUtil.show( R.string.net_error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -251,7 +251,7 @@ public class LiveRobotSettingCustomPopup extends BottomPopupView implements View
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
ToastUtil.show( R.string.net_error);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.yunbao.common.views;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.cardview.widget.CardView;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.R;
|
||||
import com.yunbao.common.bean.ListInfoMessageModel;
|
||||
import com.yunbao.common.glide.ImgLoader;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
|
||||
public class LiveSystemMessageViewHolder extends RecyclerView.ViewHolder {
|
||||
private TextView titleText, timeText, contextLayout, toView;
|
||||
private CardView bannerCard;
|
||||
private ImageView bannerImage;
|
||||
|
||||
public LiveSystemMessageViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
titleText = itemView.findViewById(R.id.title_text);
|
||||
timeText = itemView.findViewById(R.id.time_text);
|
||||
contextLayout = itemView.findViewById(R.id.context_layout);
|
||||
toView = itemView.findViewById(R.id.to_view);
|
||||
bannerCard = itemView.findViewById(R.id.banner_card);
|
||||
bannerImage = itemView.findViewById(R.id.banner_image);
|
||||
}
|
||||
|
||||
public void setViewData(ListInfoMessageModel model) {
|
||||
titleText.setText(model.getTitle());
|
||||
timeText.setText(model.getLastDate("1"));
|
||||
if (TextUtils.isEmpty(model.getBanner())) {
|
||||
bannerCard.setVisibility(View.GONE);
|
||||
} else {
|
||||
bannerCard.setVisibility(View.VISIBLE);
|
||||
ImgLoader.display(itemView.getContext(), model.getBanner(), bannerImage);
|
||||
}
|
||||
contextLayout.setText(model.getContent());
|
||||
if (TextUtils.isEmpty(model.getLink())) {
|
||||
toView.setVisibility(View.GONE);
|
||||
} else {
|
||||
toView.setVisibility(View.VISIBLE);
|
||||
toView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
RouteUtil.forwardLiveZhuangBanActivity(model.getLink(), false);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -44,7 +44,7 @@ public class RobotMessageViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
ToastUtil.show( R.string.net_error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public class RobotSayHelloViewHoler extends RecyclerView.ViewHolder {
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
ToastUtil.show(error);
|
||||
ToastUtil.show( R.string.net_error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -105,9 +105,9 @@ public class LiveFloatView implements Function1<FloatCallbacks.Builder, Unit> {
|
||||
@Override
|
||||
public void onNetStatus(Bundle bundle) {
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
ViewClicksAntiShake.clicksAntiShake(magnetView.findViewById(R.id.btn_close), new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
|
||||
Reference in New Issue
Block a user