From 3c76744b877e52b3b1ad1ef09bd7bf47ccbb761d Mon Sep 17 00:00:00 2001 From: LMJ_Company <447180005@qq.com> Date: Mon, 19 Sep 2016 16:41:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=97=E9=B1=BCAPI=EF=BC=88capi.douyucdn.cn?= =?UTF-8?q?=EF=BC=89=E6=9B=BF=E6=8D=A2=E4=B8=BAMax+=EF=BC=88api.maxjia.com?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- .../java/com/c9mj/platform/MyApplication.java | 2 + ...eRoomAdapter.java => LiveListAdapter.java} | 20 +- .../com/c9mj/platform/live/api/LiveAPI.java | 75 +- .../c9mj/platform/live/bean/LiveBaseBean.java | 33 +- .../platform/live/bean/LiveIndicatorBean.java | 72 -- .../platform/live/bean/LiveListItemBean.java | 208 ++++ .../platform/live/bean/LiveRoomInfoBean.java | 895 ------------------ .../platform/live/bean/LiveRoomItemBean.java | 262 ----- .../mvp/presenter/ILiveListPresenter.java | 9 + .../live/mvp/presenter/ILivePresenter.java | 9 - .../mvp/presenter/ILiveRoomListPresenter.java | 10 - .../presenter/impl/LiveListPresenterImpl.java | 57 ++ .../mvp/presenter/impl/LivePresenterImpl.java | 45 - .../impl/LiveRoomListPresenterImpl.java | 64 -- .../platform/live/mvp/view/ILiveFragment.java | 14 - ...stFragment.java => ILiveListFragment.java} | 6 +- .../c9mj/platform/live/ui/LiveFragment.java | 43 +- ...istFragment.java => LiveListFragment.java} | 74 +- .../platform/live/ui/LivePlayActivity.java | 15 +- .../c9mj/platform/user/ui/UserFragment.java | 8 +- .../com/c9mj/platform/util/ToastUtil.java | 19 +- .../util/retrofit/RetrofitHelper.java | 10 +- .../main/res/layout/activity_live_play.xml | 7 + ...ve_roomlist.xml => fragment_live_list.xml} | 2 +- ...e_layout.xml => item_live_list_layout.xml} | 0 app/src/main/res/values/strings.xml | 12 +- gradlew.bat | 4 +- 28 files changed, 430 insertions(+), 1547 deletions(-) rename app/src/main/java/com/c9mj/platform/live/adapter/{LiveRoomAdapter.java => LiveListAdapter.java} (62%) delete mode 100644 app/src/main/java/com/c9mj/platform/live/bean/LiveIndicatorBean.java create mode 100644 app/src/main/java/com/c9mj/platform/live/bean/LiveListItemBean.java delete mode 100644 app/src/main/java/com/c9mj/platform/live/bean/LiveRoomInfoBean.java delete mode 100644 app/src/main/java/com/c9mj/platform/live/bean/LiveRoomItemBean.java create mode 100644 app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILiveListPresenter.java delete mode 100644 app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILivePresenter.java delete mode 100644 app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILiveRoomListPresenter.java create mode 100644 app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LiveListPresenterImpl.java delete mode 100644 app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LivePresenterImpl.java delete mode 100644 app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LiveRoomListPresenterImpl.java delete mode 100644 app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveFragment.java rename app/src/main/java/com/c9mj/platform/live/mvp/view/{ILiveRoomListFragment.java => ILiveListFragment.java} (52%) rename app/src/main/java/com/c9mj/platform/live/ui/{LiveRoomListFragment.java => LiveListFragment.java} (62%) rename app/src/main/res/layout/{fragment_live_roomlist.xml => fragment_live_list.xml} (94%) rename app/src/main/res/layout/{item_live_layout.xml => item_live_list_layout.xml} (100%) diff --git a/.idea/misc.xml b/.idea/misc.xml index cca2cda..7158618 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/app/src/main/java/com/c9mj/platform/MyApplication.java b/app/src/main/java/com/c9mj/platform/MyApplication.java index 6b8e651..6c793e9 100644 --- a/app/src/main/java/com/c9mj/platform/MyApplication.java +++ b/app/src/main/java/com/c9mj/platform/MyApplication.java @@ -2,6 +2,7 @@ import android.app.Application; +import com.c9mj.platform.util.ToastUtil; import com.squareup.leakcanary.LeakCanary; /** @@ -14,5 +15,6 @@ public class MyApplication extends Application{ public void onCreate() { super.onCreate(); LeakCanary.install(this); + ToastUtil.init(getApplicationContext()); } } diff --git a/app/src/main/java/com/c9mj/platform/live/adapter/LiveRoomAdapter.java b/app/src/main/java/com/c9mj/platform/live/adapter/LiveListAdapter.java similarity index 62% rename from app/src/main/java/com/c9mj/platform/live/adapter/LiveRoomAdapter.java rename to app/src/main/java/com/c9mj/platform/live/adapter/LiveListAdapter.java index 640e798..dc7f9e0 100644 --- a/app/src/main/java/com/c9mj/platform/live/adapter/LiveRoomAdapter.java +++ b/app/src/main/java/com/c9mj/platform/live/adapter/LiveListAdapter.java @@ -4,7 +4,7 @@ import com.bumptech.glide.Glide; import com.c9mj.platform.R; -import com.c9mj.platform.live.bean.LiveRoomItemBean; +import com.c9mj.platform.live.bean.LiveListItemBean; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; @@ -15,24 +15,24 @@ * date: 2016/9/12 * 直播房间列表的Adapter */ -public class LiveRoomAdapter extends BaseQuickAdapter{ - public LiveRoomAdapter(List data) { - super(R.layout.item_live_layout, data); +public class LiveListAdapter extends BaseQuickAdapter{ + public LiveListAdapter(List data) { + super(R.layout.item_live_list_layout, data); } @Override - protected void convert(BaseViewHolder viewHolder, LiveRoomItemBean bean) { - viewHolder.setText(R.id.live_tv_roomname, bean.getRoom_name())//房间名称 - .setText(R.id.live_tv_nickname, bean.getNickname())//主播昵称 - .setText(R.id.live_tv_online, String.valueOf(bean.getOnline()))//在线人数 + protected void convert(BaseViewHolder viewHolder, LiveListItemBean bean) { + viewHolder.setText(R.id.live_tv_roomname, bean.getLive_title())//房间名称 + .setText(R.id.live_tv_nickname, bean.getLive_nickname())//主播昵称 + .setText(R.id.live_tv_online, String.valueOf(bean.getLive_online()))//在线人数 .setOnClickListener(R.id.live_cardview, new OnItemChildClickListener());//添加子Item点击监听,在UI中实现回调接口 Glide.with(mContext)//直播房间截图 - .load(bean.getRoom_src()) + .load(bean.getLive_img()) .crossFade() .centerCrop() .into((ImageView) viewHolder.getView(R.id.live_iv_roomsrc)); Glide.with(mContext)//主播头像 - .load(bean.getAvatar_mid()) + .load(bean.getLive_userimg()) .crossFade() .centerCrop() .into((ImageView) viewHolder.getView(R.id.live_iv_avatar)); diff --git a/app/src/main/java/com/c9mj/platform/live/api/LiveAPI.java b/app/src/main/java/com/c9mj/platform/live/api/LiveAPI.java index 164ab29..f02820d 100644 --- a/app/src/main/java/com/c9mj/platform/live/api/LiveAPI.java +++ b/app/src/main/java/com/c9mj/platform/live/api/LiveAPI.java @@ -2,13 +2,11 @@ import com.c9mj.platform.live.bean.LiveBaseBean; -import com.c9mj.platform.live.bean.LiveIndicatorBean; -import com.c9mj.platform.live.bean.LiveRoomItemBean; +import com.c9mj.platform.live.bean.LiveListItemBean; import java.util.List; import retrofit2.http.GET; -import retrofit2.http.Path; import retrofit2.http.Query; import rx.Observable; @@ -18,63 +16,26 @@ */ public interface LiveAPI { - public static final String CLIENT_SYS = "client_sys"; public static final int LIMIT = 20; - - /** - * 请求顶部栏目标题 - * @return - */ - @GET("/api/v1/getColumnList?client_sys=android") - Observable>> getColumnList(); - - /** - * 请求全部直播 - * @param offset 分页偏移量 - * @return - */ - @GET("/api/v1/live") - Observable>> getAllLiveList( + public static final String MAX_ID = "0"; + public static final String IMEI = "123456789101234"; + public static final String OS_TYPE = "Android"; + public static final String OS_VERSION = "5.1.1"; + public static final String VERSION = "3.6.6"; + public static final String LANG = "zh-cn"; + + //请求获取不同游戏的直播列表 + @GET("/api/live/list/") + Observable>> getLiveList( @Query("offset") int offset, @Query("limit") int limit, - @Query("client_sys") String client_sys + @Query("game_type") String game_type, + @Query("max_id") String max_id, + @Query("imei") String imei, + @Query("os_type") String os_type, + @Query("os_version") String os_version, + @Query("version") String version, + @Query("lang") String lang ); - /** - * 根据cate_id请求不同分类节目的直播 - * @param cate_id - * @param offset - * @param limit - * @param client_sys - * @return - */ - @GET("/api/v1/getColumnRoom/{cate_id}") - Observable>> getColumnLiveList( - @Path("cate_id") String cate_id, - @Query("offset") int offset, - @Query("limit") int limit, - @Query("client_sys") String client_sys - ); - - /** - * 请求直播间信息 - * @param room_id - * @param aid - * @param client_sys - * @param ne - * @param support_pwd - * @param time - * @param auth - * @return - */ - @GET("/api/v1/room/{room_id}") - Observable>> getRoomInfo( - @Path("room_id") String room_id, - @Query("aid") String aid, - @Query("client_sys") String client_sys, - @Query("ne") String ne, - @Query("support_pwd") String support_pwd, - @Query("time") String time, - @Query("auth") String auth - ); } diff --git a/app/src/main/java/com/c9mj/platform/live/bean/LiveBaseBean.java b/app/src/main/java/com/c9mj/platform/live/bean/LiveBaseBean.java index 4ba3572..a537f59 100644 --- a/app/src/main/java/com/c9mj/platform/live/bean/LiveBaseBean.java +++ b/app/src/main/java/com/c9mj/platform/live/bean/LiveBaseBean.java @@ -7,27 +7,36 @@ public class LiveBaseBean { /** - * error : 0 + * status : 0 * message : 成功 - * data : {} + * result : {} */ - private int error; - private T data; + private String status; + private String msg; + private T result; - public int getError() { - return error; + public String getStatus() { + return status; } - public void setError(int error) { - this.error = error; + public void setStatus(String status) { + this.status = status; } - public T getData() { - return data; + public String getMsg() { + return msg; } - public void setData(T data) { - this.data = data; + public void setMsg(String msg) { + this.msg = msg; + } + + public T getResult() { + return result; + } + + public void setResult(T result) { + this.result = result; } } diff --git a/app/src/main/java/com/c9mj/platform/live/bean/LiveIndicatorBean.java b/app/src/main/java/com/c9mj/platform/live/bean/LiveIndicatorBean.java deleted file mode 100644 index cb0bd1f..0000000 --- a/app/src/main/java/com/c9mj/platform/live/bean/LiveIndicatorBean.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.c9mj.platform.live.bean; - -/** - * author: LMJ - * date: 2016/9/9 - * 用于顶部Indicator - */ -public class LiveIndicatorBean { - /** - * cate_id : 1 - * cate_name : 热门游戏 - * short_name : game - * push_ios : 1 - * push_show : 0 - * push_vertical_screen : 0 - */ - - private String cate_id; - private String cate_name; - private String short_name; - private String push_ios; - private String push_show; - private String push_vertical_screen; - - public String getCate_id() { - return cate_id; - } - - public void setCate_id(String cate_id) { - this.cate_id = cate_id; - } - - public String getCate_name() { - return cate_name; - } - - public void setCate_name(String cate_name) { - this.cate_name = cate_name; - } - - public String getShort_name() { - return short_name; - } - - public void setShort_name(String short_name) { - this.short_name = short_name; - } - - public String getPush_ios() { - return push_ios; - } - - public void setPush_ios(String push_ios) { - this.push_ios = push_ios; - } - - public String getPush_show() { - return push_show; - } - - public void setPush_show(String push_show) { - this.push_show = push_show; - } - - public String getPush_vertical_screen() { - return push_vertical_screen; - } - - public void setPush_vertical_screen(String push_vertical_screen) { - this.push_vertical_screen = push_vertical_screen; - } -} diff --git a/app/src/main/java/com/c9mj/platform/live/bean/LiveListItemBean.java b/app/src/main/java/com/c9mj/platform/live/bean/LiveListItemBean.java new file mode 100644 index 0000000..667d261 --- /dev/null +++ b/app/src/main/java/com/c9mj/platform/live/bean/LiveListItemBean.java @@ -0,0 +1,208 @@ +package com.c9mj.platform.live.bean; + +/** + * author: LMJ + * date: 2016/9/12 + */ +public class LiveListItemBean { + + /** + * enable : 1 + * game_type : dota2 + * live_id : 246195 + * live_img : https://rpic.douyucdn.cn/z1609/19/15/246195_160919152708.jpg + * live_name : douyu + * live_nickname : 叶子长青K + * live_online : 41 + * live_title : 叶中天 品火猫 感冒我需要打稳重点 + * live_type : douyu + * live_userimg : http://uc.douyutv.com/avatar.php?uid=2350097&size=small + * offline_time : 1474226479.5676 + * online_time : 1474207228.6536 + * push_time : 1474129572.6225 + * show_type : native + * sort_num : 41 + * url_info : {"Referer":"http://api.douyutv.com/","User_Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.54","url":"http://capi.douyucdn.cn/api/v1/room/246195?aid=dotamax&time=1474270860&auth=d5cf3a2479f1b17fd7631adddf41cde7"} + */ + + private int enable; + private String game_type; + private String live_id; + private String live_img; + private String live_name; + private String live_nickname; + private int live_online; + private String live_title; + private String live_type; + private String live_userimg; + private String offline_time; + private String online_time; + private String push_time; + private String show_type; + private int sort_num; + /** + * Referer : http://api.douyutv.com/ + * User_Agent : Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.54 + * url : http://capi.douyucdn.cn/api/v1/room/246195?aid=dotamax&time=1474270860&auth=d5cf3a2479f1b17fd7631adddf41cde7 + */ + + private UrlInfoBean url_info; + + public int getEnable() { + return enable; + } + + public void setEnable(int enable) { + this.enable = enable; + } + + public String getGame_type() { + return game_type; + } + + public void setGame_type(String game_type) { + this.game_type = game_type; + } + + public String getLive_id() { + return live_id; + } + + public void setLive_id(String live_id) { + this.live_id = live_id; + } + + public String getLive_img() { + return live_img; + } + + public void setLive_img(String live_img) { + this.live_img = live_img; + } + + public String getLive_name() { + return live_name; + } + + public void setLive_name(String live_name) { + this.live_name = live_name; + } + + public String getLive_nickname() { + return live_nickname; + } + + public void setLive_nickname(String live_nickname) { + this.live_nickname = live_nickname; + } + + public int getLive_online() { + return live_online; + } + + public void setLive_online(int live_online) { + this.live_online = live_online; + } + + public String getLive_title() { + return live_title; + } + + public void setLive_title(String live_title) { + this.live_title = live_title; + } + + public String getLive_type() { + return live_type; + } + + public void setLive_type(String live_type) { + this.live_type = live_type; + } + + public String getLive_userimg() { + return live_userimg; + } + + public void setLive_userimg(String live_userimg) { + this.live_userimg = live_userimg; + } + + public String getOffline_time() { + return offline_time; + } + + public void setOffline_time(String offline_time) { + this.offline_time = offline_time; + } + + public String getOnline_time() { + return online_time; + } + + public void setOnline_time(String online_time) { + this.online_time = online_time; + } + + public String getPush_time() { + return push_time; + } + + public void setPush_time(String push_time) { + this.push_time = push_time; + } + + public String getShow_type() { + return show_type; + } + + public void setShow_type(String show_type) { + this.show_type = show_type; + } + + public int getSort_num() { + return sort_num; + } + + public void setSort_num(int sort_num) { + this.sort_num = sort_num; + } + + public UrlInfoBean getUrl_info() { + return url_info; + } + + public void setUrl_info(UrlInfoBean url_info) { + this.url_info = url_info; + } + + public static class UrlInfoBean { + private String Referer; + private String User_Agent; + private String url; + + public String getReferer() { + return Referer; + } + + public void setReferer(String Referer) { + this.Referer = Referer; + } + + public String getUser_Agent() { + return User_Agent; + } + + public void setUser_Agent(String User_Agent) { + this.User_Agent = User_Agent; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + } +} diff --git a/app/src/main/java/com/c9mj/platform/live/bean/LiveRoomInfoBean.java b/app/src/main/java/com/c9mj/platform/live/bean/LiveRoomInfoBean.java deleted file mode 100644 index 4974f37..0000000 --- a/app/src/main/java/com/c9mj/platform/live/bean/LiveRoomInfoBean.java +++ /dev/null @@ -1,895 +0,0 @@ -package com.c9mj.platform.live.bean; - -import java.util.List; - -/** - * author: LMJ - * date: 2016/9/18 - * 获取直播间详细信息 - */ -public class LiveRoomInfoBean { - - /** - * error : 0 - * data : {"use_p2p":"0","show_details":"更多资讯请关注微博Jerry_寅子 百度寅子吧","nickname":"寅子","rtmp_url":"http://hdl3.douyucdn.cn/live","anchor_city":"鱼塘","specific_status":"1","url":"/yinzitv","servers":[{"ip":"119.90.49.88","port":"8090"},{"ip":"119.90.49.89","port":"8093"},{"ip":"119.90.49.86","port":"8078"},{"ip":"119.90.49.90","port":"8100"},{"ip":"119.90.49.88","port":"8086"},{"ip":"119.90.49.95","port":"8074"},{"ip":"119.90.49.89","port":"8095"},{"ip":"119.90.49.87","port":"8084"},{"ip":"119.90.49.92","port":"8059"},{"ip":"119.90.49.92","port":"8058"},{"ip":"119.90.49.107","port":"8032"},{"ip":"119.90.49.105","port":"8022"},{"ip":"119.90.49.104","port":"8018"},{"ip":"119.90.49.109","port":"8044"},{"ip":"119.90.49.87","port":"8081"},{"ip":"119.90.49.87","port":"8082"},{"ip":"119.90.49.109","port":"8041"},{"ip":"119.90.49.106","port":"8029"},{"ip":"119.90.49.93","port":"8065"},{"ip":"119.90.49.105","port":"8025"},{"ip":"119.90.49.92","port":"8057"},{"ip":"119.90.49.103","port":"8012"},{"ip":"119.90.49.102","port":"8006"},{"ip":"119.90.49.108","port":"8039"},{"ip":"119.90.49.109","port":"8043"},{"ip":"119.90.49.103","port":"8011"},{"ip":"119.90.49.104","port":"8019"},{"ip":"119.90.49.101","port":"8005"},{"ip":"119.90.49.87","port":"8083"},{"ip":"119.90.49.105","port":"8023"}],"rtmp_cdn":"ws","specific_catalog":"yinzitv","cate_id1":1,"show_status":"1","game_icon_url":"https://staticlive.douyucdn.cn/upload/game_cate/602c38f19a4fe9af40fdb64a00ce9ed5.jpg","game_name":"主机游戏","cdnsWithName":[{"name":"主线路","cdn":"ws"},{"name":"备用线路5","cdn":"tct"},{"name":"备用线路2","cdn":"ws2"},{"name":"备用线路3","cdn":"dl"}],"show_time":"1474192791","isVertical":0,"rtmp_live":"71415rOQQY4ughwh.flv?wsAuth=52ff32cd2a1bde42eada0c8a8af08bc8&token=app-android1-0-71415-7daf98dd26d986af276fc121cd96ce2f&logo=0&expire=0&did=40f898e5-09d2-4ebd-af57-4fc70c7a2cb4","fans":"1013218","game_url":"/directory/game/TVgame","room_src":"http://rpic.douyucdn.cn/z1609/18/19/71415_160918195249.jpg","is_white_list":"0","room_name":"斗鱼NO.1声优-NBA2K17巨猩崛起","owner_uid":"2488316","owner_avatar":"https://apic.douyucdn.cn/upload/avatar/002/48/83/16_avatar_big.jpg","black":[],"vertical_src":"http://rpic.douyucdn.cn/z1609/18/19/71415_160918195249.jpg","room_dm_delay":30,"owner_weight":"203.6t","is_pass_player":0,"hls_url":"http://hls3.douyucdn.cn/live/71415rOQQY4ughwh/playlist.m3u8?wsSecret=9c5cf4cb31b8e4f6f526a15352b4373b&wsTime=1474200325","room_id":"71415","cur_credit":"12","gift_ver":"v2.2.9.1","low_credit":"4","gift":[{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/6b81104cddfc8e4180595ddabe2175e9.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/31143be41f9ff98220b739d5681b2f4a.gif","gx":1000,"mobile_big_effect_icon_0":"http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/2883a0029f72e982f42276db50d8295e.gif","mobile_big_effect_icon_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/475c160777db69a58d511f040c23987c.png","big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/08b9cd1fe7b3e88524af33f1ad7d633c.png","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/80f1c6874d2736bed8e996130bbe674a.png","mobile_big_effect_icon_2":"http://staticlive.douyucdn.cn/upload/dygift/1606/adaa674619c27283ec8722744e9adf8b.png","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/e3858afacdf2470373e58c8a97178583.png","brgb":"#9a76c5","mobile_big_effect_icon_3":"http://staticlive.douyucdn.cn/upload/dygift/1606/5cc70f77e75a5c4b4933d71e62d1b815.png","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/39e0edd5a6201b88d6c4309cde848449.png","pt":"余额不足,飞机还在滑行中","id":"54","intro":"主播带我飞","pc":"10000","m_ef_gif_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif","urgb":"#581c86","ef":2,"sort":"56766","ch":"1","stay_time":60000,"desc":"赠送房间广播","mobile_stay_time":"50000","mobile_small_effect_icon":"","grgb":"#9104af","drgb":"#210101","pad_big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/ad6896bd52fcd1b63da12ce46d8edd0b.png","type":"2","mobimg":"http://staticlive.douyucdn.cn/upload/dygift/95b474c513a2a0b7ddee9c72e05cf0fc.png","small_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/7d378950c5be267d93ad0522b6909d79.png","name":"飞机","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/7ec31cfe83b4de01377c7e435371e4d6.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/b90d1ba81b9448c012e057d5b387e60b.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/8e424060ec7d2fccd91292cf029c82d6.gif","gx":60,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/6c15b652ed0de9e8236081452d03ad8c.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/0839305733dacc9f3225d147104d91c5.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/28eb351ecd47ff1de8ec9266ff13f9f9.png","brgb":"#ffa0a0","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/777039db9e85e95a04c2abbccfecb63b.png","pt":"余额不足,666还在酝酿中","id":"52","intro":"主播这么6,你麻麻知道吗","pc":"600","m_ef_gif_1":"","urgb":"#e61324","ef":0,"sort":"56730","ch":"1","stay_time":6000,"desc":"","mobile_stay_time":"6000","mobile_small_effect_icon":"","grgb":"#902c00","drgb":"#210101","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"666","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/d0f0b2e347138368dabcd1a7a0d5804e.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d76029bc0f1f8c95bc74dd9a1d35f60e.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/37e882815c4291a6b80518d7fa412118.gif","gx":1,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/81ce1befcbb82236342510d487a45ccf.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/7b0451a9c6ae4e7dc70dd109f896e8db.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d6f46156d7265c30e472ba56d523f4f8.png","brgb":"#f79b5e","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/80bda610a81072efdcc94cb8846957a1.png","pt":"余额不足,赞还在笔划生成中","id":"57","intro":"赞一个","pc":"10","m_ef_gif_1":"","urgb":"#a20b0b","ef":0,"sort":"32589","ch":"1","stay_time":4000,"desc":"","mobile_stay_time":"2000","mobile_small_effect_icon":"","grgb":"#6a2f00","drgb":"#210101","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"赞","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/df66a7c0fe8f77ca51021cbc198a0257.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/66e93802817e71f6b9543b11670c7048.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/52205fdfd37b1b002d2de4d91c3afd99.gif","gx":5000,"mobile_big_effect_icon_0":"http://staticlive.douyucdn.cn/upload/dygift/1606/f3eb5d9c1573a373aacca7466f5050ab.gif","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/52417ea2f7c9bdff262a364c653ec047.gif","mobile_big_effect_icon_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/180a0ad10fbf582e6990efd31add8426.png","big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/33d2f977b12205e10a9a3522a1e9fd90.gif","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/7167a38ffe55949df05c7a661071b39d.png","mobile_big_effect_icon_2":"http://staticlive.douyucdn.cn/upload/dygift/1606/fa553dcf79565f7b8a2d6e96b6c7da90.png","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/c659808dbe34657b2bddd788a0eecfe4.png","brgb":"#ff831f","mobile_big_effect_icon_3":"http://staticlive.douyucdn.cn/upload/dygift/1606/287527403ec8b6788a0ead58c15cb7eb.png","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/7964d4092fcb0fc1af5a5e09f5b76d94.gif","pt":"余额不足,火箭被卡在发射塔上了","id":"59","intro":"我们的征途是星辰大海","pc":"50000","m_ef_gif_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/f3eb5d9c1573a373aacca7466f5050ab.gif","urgb":"#750101","ef":1,"sort":"6","ch":"0","stay_time":200000,"desc":"赠送网站广播并派送出神秘宝箱","mobile_stay_time":"150000","mobile_small_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/149b382f03945f6a0a9dbd5a67e6acc0.png","grgb":"#a20b0b","drgb":"#210101","pad_big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/37a9d72b1821753fe2950ca00c8d57c9.gif","type":"2","mobimg":"http://staticlive.douyucdn.cn/upload/dygift/4a6604a94ee694ff2f8f7782d525de86.png","small_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/01d7d7288adfd424bdd4a6a8e8c0b9ea.png","name":"火箭","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/4b612f6c5753dffc8b51b7dbd9f05d35.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/93daef170894a9d6bd8495fa0f81e165.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/f0ae1148d092f0cb2fe162152e4bff16.gif","gx":1000,"mobile_big_effect_icon_0":"http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/3ef88917e109e6e54667098af5c03d67.gif","mobile_big_effect_icon_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/475c160777db69a58d511f040c23987c.png","big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/08b9cd1fe7b3e88524af33f1ad7d633c.png","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/f7a44c0b6ac21210e905447929e8de39.png","mobile_big_effect_icon_2":"http://staticlive.douyucdn.cn/upload/dygift/1606/adaa674619c27283ec8722744e9adf8b.png","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/76dd0d8c803b133467e4f0196c7d071d.png","brgb":"#9a76c5","mobile_big_effect_icon_3":"http://staticlive.douyucdn.cn/upload/dygift/1606/5cc70f77e75a5c4b4933d71e62d1b815.png","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d8993d42da06ae6c625ace3dff6448a1.png","pt":"余额不足,飞机还在滑行中","id":"195","intro":"主播带我飞","pc":"10000","m_ef_gif_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif","urgb":"#581c86","ef":2,"sort":"5","ch":"0","stay_time":60000,"desc":"赠送房间广播","mobile_stay_time":"50000","mobile_small_effect_icon":"","grgb":"#9104af","drgb":"#210101","pad_big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/ad6896bd52fcd1b63da12ce46d8edd0b.png","type":"2","mobimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/ac245d735b62dcae65dd3eea9352b7e3.png","small_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/7d378950c5be267d93ad0522b6909d79.png","name":"飞机","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/da5a1fd20028953ad93a8a2bbd359a89.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/6681d1a713ece37912a1dac339c9fb29.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/f70971ba31d835fe7f6ec70102a5ed6a.gif","gx":60,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/c7cbf10ede359644ca193cd95369cc48.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/0316cb9c7b06164adae71819ff27bb0c.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/9c30da343dc3b1e65156ae0570603d06.png","brgb":"#ffa0a0","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/9665f1867726d057fc6b72df6d3e4110.png","pt":"余额不足,666还在酝酿中","id":"194","intro":"主播这么6,你麻麻知道吗","pc":"600","m_ef_gif_1":"","urgb":"#e61324","ef":0,"sort":"4","ch":"0","stay_time":6000,"desc":"","mobile_stay_time":"6000","mobile_small_effect_icon":"","grgb":"#902c00","drgb":"#210101","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"666","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/863edbbfdcc8256a461f99cf01527fe0.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/e144b05fd7dec1b194909e02b6dff92f.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/179fc49b64440ac5c9d6d2c13ef58921.gif","gx":2,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/344fe065475cc90728b7744818ffe2b5.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d97486ec2260c2ab3697ee183df2a892.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/3cecdd879dc9e9ec5f0c77099201ca94.png","brgb":"#6075b6","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/94f7e067812518652383ae608f59392a.png","pt":"余额不足,小鸡还在孵化中","id":"193","intro":"真是太鶸拉~","pc":"20","m_ef_gif_1":"","urgb":"#616e84","ef":0,"sort":"3","ch":"0","stay_time":4000,"desc":"","mobile_stay_time":"4000","mobile_small_effect_icon":"","grgb":"#616e84","drgb":"#31364b","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"弱鸡","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/487fb96a74ecd9412b9c6cbf0a14623a.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/b09488ff5ebe85c4f66e72e27b53d517.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/e66c37cea4049c3168e89ce4e464f16f.gif","gx":1,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/09d957288d2dfb811de4c5784ec74414.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/8b795f4ee116c22af81ba2e3441c0625.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d1ebe78032472a3146b5f8e717ead680.png","brgb":"#f79b5e","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/ecb0d4c424ff0bafbf4ba52a3284268b.png","pt":"余额不足,赞还在笔划生成中","id":"192","intro":"赞一个!","pc":"10","m_ef_gif_1":"","urgb":"#a20b0b","ef":0,"sort":"2","ch":"0","stay_time":2000,"desc":"","mobile_stay_time":"2000","mobile_small_effect_icon":"","grgb":"#6a2f00","drgb":"#210101","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"赞","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/4e4d80671f23025f901a054bf3febcf7.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/072dc9aea67fb42f095f973c8e0a183e.png","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/af31b1e87d5ce95abb9e63d2cb73b821.png","gx":1,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/c3226805223b413ff84fa972b4ebdb13.png","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/9cae286a5687e8709c6fe957bea41c06.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/37a913eb1d9b3e8e6278d8a309696d58.png","brgb":"#fdd592","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/9251ec1e5badb67527b99b15e1f96a95.png","pt":"","id":"191","intro":"绝佳的增重美食","pc":"100","m_ef_gif_1":"","urgb":"#dd4e00","ef":0,"sort":"1","ch":"0","stay_time":1000,"desc":"","mobile_stay_time":"1500","mobile_small_effect_icon":"","grgb":"#c64b00","drgb":"#210101","pad_big_effect_icon":"","type":"1","mobimg":"","small_effect_icon":"","name":"100鱼丸","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/96f05ad1f8b1eb5bb37526533c9d6bfb.png"}],"rtmp_multi_bitrate":{"middle":"71415rOQQY4ughwh_550.flv?wsAuth=3555423c8385328d59d6b21808d5058d&token=app-android1-0-71415-4cc21b2d56b781c7e65d2413e6323fcb&logo=0&expire=0&did=40f898e5-09d2-4ebd-af57-4fc70c7a2cb4","middle2":"71415rOQQY4ughwh_900.flv?wsAuth=820e61fef21ce0ac05ede18981934d95&token=app-android1-0-71415-cc8ed1a19716ce16019d927a9c6053aa&logo=0&expire=0&did=40f898e5-09d2-4ebd-af57-4fc70c7a2cb4"},"cdns":["ws","tct","ws2","dl"],"online":423056,"credit_illegal":"0","vod_quality":"0","cate_id":"19"} - */ - - private int error; - /** - * use_p2p : 0 - * show_details : 更多资讯请关注微博Jerry_寅子 百度寅子吧 - * nickname : 寅子 - * rtmp_url : http://hdl3.douyucdn.cn/live - * anchor_city : 鱼塘 - * specific_status : 1 - * url : /yinzitv - * servers : [{"ip":"119.90.49.88","port":"8090"},{"ip":"119.90.49.89","port":"8093"},{"ip":"119.90.49.86","port":"8078"},{"ip":"119.90.49.90","port":"8100"},{"ip":"119.90.49.88","port":"8086"},{"ip":"119.90.49.95","port":"8074"},{"ip":"119.90.49.89","port":"8095"},{"ip":"119.90.49.87","port":"8084"},{"ip":"119.90.49.92","port":"8059"},{"ip":"119.90.49.92","port":"8058"},{"ip":"119.90.49.107","port":"8032"},{"ip":"119.90.49.105","port":"8022"},{"ip":"119.90.49.104","port":"8018"},{"ip":"119.90.49.109","port":"8044"},{"ip":"119.90.49.87","port":"8081"},{"ip":"119.90.49.87","port":"8082"},{"ip":"119.90.49.109","port":"8041"},{"ip":"119.90.49.106","port":"8029"},{"ip":"119.90.49.93","port":"8065"},{"ip":"119.90.49.105","port":"8025"},{"ip":"119.90.49.92","port":"8057"},{"ip":"119.90.49.103","port":"8012"},{"ip":"119.90.49.102","port":"8006"},{"ip":"119.90.49.108","port":"8039"},{"ip":"119.90.49.109","port":"8043"},{"ip":"119.90.49.103","port":"8011"},{"ip":"119.90.49.104","port":"8019"},{"ip":"119.90.49.101","port":"8005"},{"ip":"119.90.49.87","port":"8083"},{"ip":"119.90.49.105","port":"8023"}] - * rtmp_cdn : ws - * specific_catalog : yinzitv - * cate_id1 : 1 - * show_status : 1 - * game_icon_url : https://staticlive.douyucdn.cn/upload/game_cate/602c38f19a4fe9af40fdb64a00ce9ed5.jpg - * game_name : 主机游戏 - * cdnsWithName : [{"name":"主线路","cdn":"ws"},{"name":"备用线路5","cdn":"tct"},{"name":"备用线路2","cdn":"ws2"},{"name":"备用线路3","cdn":"dl"}] - * show_time : 1474192791 - * isVertical : 0 - * rtmp_live : 71415rOQQY4ughwh.flv?wsAuth=52ff32cd2a1bde42eada0c8a8af08bc8&token=app-android1-0-71415-7daf98dd26d986af276fc121cd96ce2f&logo=0&expire=0&did=40f898e5-09d2-4ebd-af57-4fc70c7a2cb4 - * fans : 1013218 - * game_url : /directory/game/TVgame - * room_src : http://rpic.douyucdn.cn/z1609/18/19/71415_160918195249.jpg - * is_white_list : 0 - * room_name : 斗鱼NO.1声优-NBA2K17巨猩崛起 - * owner_uid : 2488316 - * owner_avatar : https://apic.douyucdn.cn/upload/avatar/002/48/83/16_avatar_big.jpg - * black : [] - * vertical_src : http://rpic.douyucdn.cn/z1609/18/19/71415_160918195249.jpg - * room_dm_delay : 30 - * owner_weight : 203.6t - * is_pass_player : 0 - * hls_url : http://hls3.douyucdn.cn/live/71415rOQQY4ughwh/playlist.m3u8?wsSecret=9c5cf4cb31b8e4f6f526a15352b4373b&wsTime=1474200325 - * room_id : 71415 - * cur_credit : 12 - * gift_ver : v2.2.9.1 - * low_credit : 4 - * gift : [{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/6b81104cddfc8e4180595ddabe2175e9.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/31143be41f9ff98220b739d5681b2f4a.gif","gx":1000,"mobile_big_effect_icon_0":"http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/2883a0029f72e982f42276db50d8295e.gif","mobile_big_effect_icon_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/475c160777db69a58d511f040c23987c.png","big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/08b9cd1fe7b3e88524af33f1ad7d633c.png","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/80f1c6874d2736bed8e996130bbe674a.png","mobile_big_effect_icon_2":"http://staticlive.douyucdn.cn/upload/dygift/1606/adaa674619c27283ec8722744e9adf8b.png","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/e3858afacdf2470373e58c8a97178583.png","brgb":"#9a76c5","mobile_big_effect_icon_3":"http://staticlive.douyucdn.cn/upload/dygift/1606/5cc70f77e75a5c4b4933d71e62d1b815.png","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/39e0edd5a6201b88d6c4309cde848449.png","pt":"余额不足,飞机还在滑行中","id":"54","intro":"主播带我飞","pc":"10000","m_ef_gif_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif","urgb":"#581c86","ef":2,"sort":"56766","ch":"1","stay_time":60000,"desc":"赠送房间广播","mobile_stay_time":"50000","mobile_small_effect_icon":"","grgb":"#9104af","drgb":"#210101","pad_big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/ad6896bd52fcd1b63da12ce46d8edd0b.png","type":"2","mobimg":"http://staticlive.douyucdn.cn/upload/dygift/95b474c513a2a0b7ddee9c72e05cf0fc.png","small_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/7d378950c5be267d93ad0522b6909d79.png","name":"飞机","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/7ec31cfe83b4de01377c7e435371e4d6.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/b90d1ba81b9448c012e057d5b387e60b.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/8e424060ec7d2fccd91292cf029c82d6.gif","gx":60,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/6c15b652ed0de9e8236081452d03ad8c.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/0839305733dacc9f3225d147104d91c5.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/28eb351ecd47ff1de8ec9266ff13f9f9.png","brgb":"#ffa0a0","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/777039db9e85e95a04c2abbccfecb63b.png","pt":"余额不足,666还在酝酿中","id":"52","intro":"主播这么6,你麻麻知道吗","pc":"600","m_ef_gif_1":"","urgb":"#e61324","ef":0,"sort":"56730","ch":"1","stay_time":6000,"desc":"","mobile_stay_time":"6000","mobile_small_effect_icon":"","grgb":"#902c00","drgb":"#210101","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"666","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/d0f0b2e347138368dabcd1a7a0d5804e.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d76029bc0f1f8c95bc74dd9a1d35f60e.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/37e882815c4291a6b80518d7fa412118.gif","gx":1,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/81ce1befcbb82236342510d487a45ccf.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/7b0451a9c6ae4e7dc70dd109f896e8db.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d6f46156d7265c30e472ba56d523f4f8.png","brgb":"#f79b5e","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/80bda610a81072efdcc94cb8846957a1.png","pt":"余额不足,赞还在笔划生成中","id":"57","intro":"赞一个","pc":"10","m_ef_gif_1":"","urgb":"#a20b0b","ef":0,"sort":"32589","ch":"1","stay_time":4000,"desc":"","mobile_stay_time":"2000","mobile_small_effect_icon":"","grgb":"#6a2f00","drgb":"#210101","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"赞","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/df66a7c0fe8f77ca51021cbc198a0257.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/66e93802817e71f6b9543b11670c7048.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/52205fdfd37b1b002d2de4d91c3afd99.gif","gx":5000,"mobile_big_effect_icon_0":"http://staticlive.douyucdn.cn/upload/dygift/1606/f3eb5d9c1573a373aacca7466f5050ab.gif","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/52417ea2f7c9bdff262a364c653ec047.gif","mobile_big_effect_icon_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/180a0ad10fbf582e6990efd31add8426.png","big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/33d2f977b12205e10a9a3522a1e9fd90.gif","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/7167a38ffe55949df05c7a661071b39d.png","mobile_big_effect_icon_2":"http://staticlive.douyucdn.cn/upload/dygift/1606/fa553dcf79565f7b8a2d6e96b6c7da90.png","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/c659808dbe34657b2bddd788a0eecfe4.png","brgb":"#ff831f","mobile_big_effect_icon_3":"http://staticlive.douyucdn.cn/upload/dygift/1606/287527403ec8b6788a0ead58c15cb7eb.png","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/7964d4092fcb0fc1af5a5e09f5b76d94.gif","pt":"余额不足,火箭被卡在发射塔上了","id":"59","intro":"我们的征途是星辰大海","pc":"50000","m_ef_gif_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/f3eb5d9c1573a373aacca7466f5050ab.gif","urgb":"#750101","ef":1,"sort":"6","ch":"0","stay_time":200000,"desc":"赠送网站广播并派送出神秘宝箱","mobile_stay_time":"150000","mobile_small_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/149b382f03945f6a0a9dbd5a67e6acc0.png","grgb":"#a20b0b","drgb":"#210101","pad_big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/37a9d72b1821753fe2950ca00c8d57c9.gif","type":"2","mobimg":"http://staticlive.douyucdn.cn/upload/dygift/4a6604a94ee694ff2f8f7782d525de86.png","small_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/01d7d7288adfd424bdd4a6a8e8c0b9ea.png","name":"火箭","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/4b612f6c5753dffc8b51b7dbd9f05d35.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/93daef170894a9d6bd8495fa0f81e165.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/f0ae1148d092f0cb2fe162152e4bff16.gif","gx":1000,"mobile_big_effect_icon_0":"http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/3ef88917e109e6e54667098af5c03d67.gif","mobile_big_effect_icon_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/475c160777db69a58d511f040c23987c.png","big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/08b9cd1fe7b3e88524af33f1ad7d633c.png","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/f7a44c0b6ac21210e905447929e8de39.png","mobile_big_effect_icon_2":"http://staticlive.douyucdn.cn/upload/dygift/1606/adaa674619c27283ec8722744e9adf8b.png","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/76dd0d8c803b133467e4f0196c7d071d.png","brgb":"#9a76c5","mobile_big_effect_icon_3":"http://staticlive.douyucdn.cn/upload/dygift/1606/5cc70f77e75a5c4b4933d71e62d1b815.png","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d8993d42da06ae6c625ace3dff6448a1.png","pt":"余额不足,飞机还在滑行中","id":"195","intro":"主播带我飞","pc":"10000","m_ef_gif_1":"http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif","urgb":"#581c86","ef":2,"sort":"5","ch":"0","stay_time":60000,"desc":"赠送房间广播","mobile_stay_time":"50000","mobile_small_effect_icon":"","grgb":"#9104af","drgb":"#210101","pad_big_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/ad6896bd52fcd1b63da12ce46d8edd0b.png","type":"2","mobimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/ac245d735b62dcae65dd3eea9352b7e3.png","small_effect_icon":"http://staticlive.douyucdn.cn/upload/dygift/1606/7d378950c5be267d93ad0522b6909d79.png","name":"飞机","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/da5a1fd20028953ad93a8a2bbd359a89.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/6681d1a713ece37912a1dac339c9fb29.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/f70971ba31d835fe7f6ec70102a5ed6a.gif","gx":60,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/c7cbf10ede359644ca193cd95369cc48.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/0316cb9c7b06164adae71819ff27bb0c.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/9c30da343dc3b1e65156ae0570603d06.png","brgb":"#ffa0a0","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/9665f1867726d057fc6b72df6d3e4110.png","pt":"余额不足,666还在酝酿中","id":"194","intro":"主播这么6,你麻麻知道吗","pc":"600","m_ef_gif_1":"","urgb":"#e61324","ef":0,"sort":"4","ch":"0","stay_time":6000,"desc":"","mobile_stay_time":"6000","mobile_small_effect_icon":"","grgb":"#902c00","drgb":"#210101","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"666","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/863edbbfdcc8256a461f99cf01527fe0.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/e144b05fd7dec1b194909e02b6dff92f.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/179fc49b64440ac5c9d6d2c13ef58921.gif","gx":2,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/344fe065475cc90728b7744818ffe2b5.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d97486ec2260c2ab3697ee183df2a892.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/3cecdd879dc9e9ec5f0c77099201ca94.png","brgb":"#6075b6","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/94f7e067812518652383ae608f59392a.png","pt":"余额不足,小鸡还在孵化中","id":"193","intro":"真是太鶸拉~","pc":"20","m_ef_gif_1":"","urgb":"#616e84","ef":0,"sort":"3","ch":"0","stay_time":4000,"desc":"","mobile_stay_time":"4000","mobile_small_effect_icon":"","grgb":"#616e84","drgb":"#31364b","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"弱鸡","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/487fb96a74ecd9412b9c6cbf0a14623a.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/b09488ff5ebe85c4f66e72e27b53d517.gif","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/e66c37cea4049c3168e89ce4e464f16f.gif","gx":1,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/09d957288d2dfb811de4c5784ec74414.gif","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/8b795f4ee116c22af81ba2e3441c0625.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/d1ebe78032472a3146b5f8e717ead680.png","brgb":"#f79b5e","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/ecb0d4c424ff0bafbf4ba52a3284268b.png","pt":"余额不足,赞还在笔划生成中","id":"192","intro":"赞一个!","pc":"10","m_ef_gif_1":"","urgb":"#a20b0b","ef":0,"sort":"2","ch":"0","stay_time":2000,"desc":"","mobile_stay_time":"2000","mobile_small_effect_icon":"","grgb":"#6a2f00","drgb":"#210101","pad_big_effect_icon":"","type":"2","mobimg":"","small_effect_icon":"","name":"赞","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/4e4d80671f23025f901a054bf3febcf7.png"},{"himg":"http://staticlive.douyucdn.cn/upload/dygift/1606/072dc9aea67fb42f095f973c8e0a183e.png","pdhimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/af31b1e87d5ce95abb9e63d2cb73b821.png","gx":1,"mobile_big_effect_icon_0":"","cimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/c3226805223b413ff84fa972b4ebdb13.png","mobile_big_effect_icon_1":"","big_effect_icon":"","pdbimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/9cae286a5687e8709c6fe957bea41c06.png","mobile_big_effect_icon_2":"","mimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/37a913eb1d9b3e8e6278d8a309696d58.png","brgb":"#fdd592","mobile_big_effect_icon_3":"","m_ef_gif_2":"","pimg":"http://staticlive.douyucdn.cn/upload/dygift/1606/9251ec1e5badb67527b99b15e1f96a95.png","pt":"","id":"191","intro":"绝佳的增重美食","pc":"100","m_ef_gif_1":"","urgb":"#dd4e00","ef":0,"sort":"1","ch":"0","stay_time":1000,"desc":"","mobile_stay_time":"1500","mobile_small_effect_icon":"","grgb":"#c64b00","drgb":"#210101","pad_big_effect_icon":"","type":"1","mobimg":"","small_effect_icon":"","name":"100鱼丸","mobile_icon_v2":"http://staticlive.douyucdn.cn/upload/dygift/1606/96f05ad1f8b1eb5bb37526533c9d6bfb.png"}] - * rtmp_multi_bitrate : {"middle":"71415rOQQY4ughwh_550.flv?wsAuth=3555423c8385328d59d6b21808d5058d&token=app-android1-0-71415-4cc21b2d56b781c7e65d2413e6323fcb&logo=0&expire=0&did=40f898e5-09d2-4ebd-af57-4fc70c7a2cb4","middle2":"71415rOQQY4ughwh_900.flv?wsAuth=820e61fef21ce0ac05ede18981934d95&token=app-android1-0-71415-cc8ed1a19716ce16019d927a9c6053aa&logo=0&expire=0&did=40f898e5-09d2-4ebd-af57-4fc70c7a2cb4"} - * cdns : ["ws","tct","ws2","dl"] - * online : 423056 - * credit_illegal : 0 - * vod_quality : 0 - * cate_id : 19 - */ - - private DataBean data; - - public int getError() { - return error; - } - - public void setError(int error) { - this.error = error; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - public static class DataBean { - private String use_p2p; - private String show_details; - private String nickname; - private String rtmp_url; - private String anchor_city; - private String specific_status; - private String url; - private String rtmp_cdn; - private String specific_catalog; - private int cate_id1; - private String show_status; - private String game_icon_url; - private String game_name; - private String show_time; - private int isVertical; - private String rtmp_live; - private String fans; - private String game_url; - private String room_src; - private String is_white_list; - private String room_name; - private String owner_uid; - private String owner_avatar; - private String vertical_src; - private int room_dm_delay; - private String owner_weight; - private int is_pass_player; - private String hls_url; - private String room_id; - private String cur_credit; - private String gift_ver; - private String low_credit; - /** - * middle : 71415rOQQY4ughwh_550.flv?wsAuth=3555423c8385328d59d6b21808d5058d&token=app-android1-0-71415-4cc21b2d56b781c7e65d2413e6323fcb&logo=0&expire=0&did=40f898e5-09d2-4ebd-af57-4fc70c7a2cb4 - * middle2 : 71415rOQQY4ughwh_900.flv?wsAuth=820e61fef21ce0ac05ede18981934d95&token=app-android1-0-71415-cc8ed1a19716ce16019d927a9c6053aa&logo=0&expire=0&did=40f898e5-09d2-4ebd-af57-4fc70c7a2cb4 - */ - - private RtmpMultiBitrateBean rtmp_multi_bitrate; - private int online; - private String credit_illegal; - private String vod_quality; - private String cate_id; - /** - * ip : 119.90.49.88 - * port : 8090 - */ - - private List servers; - /** - * name : 主线路 - * cdn : ws - */ - - private List cdnsWithName; - private List black; - /** - * himg : http://staticlive.douyucdn.cn/upload/dygift/1606/6b81104cddfc8e4180595ddabe2175e9.gif - * pdhimg : http://staticlive.douyucdn.cn/upload/dygift/1606/31143be41f9ff98220b739d5681b2f4a.gif - * gx : 1000 - * mobile_big_effect_icon_0 : http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif - * cimg : http://staticlive.douyucdn.cn/upload/dygift/1606/2883a0029f72e982f42276db50d8295e.gif - * mobile_big_effect_icon_1 : http://staticlive.douyucdn.cn/upload/dygift/1606/475c160777db69a58d511f040c23987c.png - * big_effect_icon : http://staticlive.douyucdn.cn/upload/dygift/1606/08b9cd1fe7b3e88524af33f1ad7d633c.png - * pdbimg : http://staticlive.douyucdn.cn/upload/dygift/1606/80f1c6874d2736bed8e996130bbe674a.png - * mobile_big_effect_icon_2 : http://staticlive.douyucdn.cn/upload/dygift/1606/adaa674619c27283ec8722744e9adf8b.png - * mimg : http://staticlive.douyucdn.cn/upload/dygift/1606/e3858afacdf2470373e58c8a97178583.png - * brgb : #9a76c5 - * mobile_big_effect_icon_3 : http://staticlive.douyucdn.cn/upload/dygift/1606/5cc70f77e75a5c4b4933d71e62d1b815.png - * m_ef_gif_2 : - * pimg : http://staticlive.douyucdn.cn/upload/dygift/1606/39e0edd5a6201b88d6c4309cde848449.png - * pt : 余额不足,飞机还在滑行中 - * id : 54 - * intro : 主播带我飞 - * pc : 10000 - * m_ef_gif_1 : http://staticlive.douyucdn.cn/upload/dygift/1606/a7c2d1fd8a8f4a332bd6ad200a7fad07.gif - * urgb : #581c86 - * ef : 2 - * sort : 56766 - * ch : 1 - * stay_time : 60000 - * desc : 赠送房间广播 - * mobile_stay_time : 50000 - * mobile_small_effect_icon : - * grgb : #9104af - * drgb : #210101 - * pad_big_effect_icon : http://staticlive.douyucdn.cn/upload/dygift/1606/ad6896bd52fcd1b63da12ce46d8edd0b.png - * type : 2 - * mobimg : http://staticlive.douyucdn.cn/upload/dygift/95b474c513a2a0b7ddee9c72e05cf0fc.png - * small_effect_icon : http://staticlive.douyucdn.cn/upload/dygift/1606/7d378950c5be267d93ad0522b6909d79.png - * name : 飞机 - * mobile_icon_v2 : http://staticlive.douyucdn.cn/upload/dygift/1606/7ec31cfe83b4de01377c7e435371e4d6.png - */ - - private List gift; - private List cdns; - - public String getUse_p2p() { - return use_p2p; - } - - public void setUse_p2p(String use_p2p) { - this.use_p2p = use_p2p; - } - - public String getShow_details() { - return show_details; - } - - public void setShow_details(String show_details) { - this.show_details = show_details; - } - - public String getNickname() { - return nickname; - } - - public void setNickname(String nickname) { - this.nickname = nickname; - } - - public String getRtmp_url() { - return rtmp_url; - } - - public void setRtmp_url(String rtmp_url) { - this.rtmp_url = rtmp_url; - } - - public String getAnchor_city() { - return anchor_city; - } - - public void setAnchor_city(String anchor_city) { - this.anchor_city = anchor_city; - } - - public String getSpecific_status() { - return specific_status; - } - - public void setSpecific_status(String specific_status) { - this.specific_status = specific_status; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getRtmp_cdn() { - return rtmp_cdn; - } - - public void setRtmp_cdn(String rtmp_cdn) { - this.rtmp_cdn = rtmp_cdn; - } - - public String getSpecific_catalog() { - return specific_catalog; - } - - public void setSpecific_catalog(String specific_catalog) { - this.specific_catalog = specific_catalog; - } - - public int getCate_id1() { - return cate_id1; - } - - public void setCate_id1(int cate_id1) { - this.cate_id1 = cate_id1; - } - - public String getShow_status() { - return show_status; - } - - public void setShow_status(String show_status) { - this.show_status = show_status; - } - - public String getGame_icon_url() { - return game_icon_url; - } - - public void setGame_icon_url(String game_icon_url) { - this.game_icon_url = game_icon_url; - } - - public String getGame_name() { - return game_name; - } - - public void setGame_name(String game_name) { - this.game_name = game_name; - } - - public String getShow_time() { - return show_time; - } - - public void setShow_time(String show_time) { - this.show_time = show_time; - } - - public int getIsVertical() { - return isVertical; - } - - public void setIsVertical(int isVertical) { - this.isVertical = isVertical; - } - - public String getRtmp_live() { - return rtmp_live; - } - - public void setRtmp_live(String rtmp_live) { - this.rtmp_live = rtmp_live; - } - - public String getFans() { - return fans; - } - - public void setFans(String fans) { - this.fans = fans; - } - - public String getGame_url() { - return game_url; - } - - public void setGame_url(String game_url) { - this.game_url = game_url; - } - - public String getRoom_src() { - return room_src; - } - - public void setRoom_src(String room_src) { - this.room_src = room_src; - } - - public String getIs_white_list() { - return is_white_list; - } - - public void setIs_white_list(String is_white_list) { - this.is_white_list = is_white_list; - } - - public String getRoom_name() { - return room_name; - } - - public void setRoom_name(String room_name) { - this.room_name = room_name; - } - - public String getOwner_uid() { - return owner_uid; - } - - public void setOwner_uid(String owner_uid) { - this.owner_uid = owner_uid; - } - - public String getOwner_avatar() { - return owner_avatar; - } - - public void setOwner_avatar(String owner_avatar) { - this.owner_avatar = owner_avatar; - } - - public String getVertical_src() { - return vertical_src; - } - - public void setVertical_src(String vertical_src) { - this.vertical_src = vertical_src; - } - - public int getRoom_dm_delay() { - return room_dm_delay; - } - - public void setRoom_dm_delay(int room_dm_delay) { - this.room_dm_delay = room_dm_delay; - } - - public String getOwner_weight() { - return owner_weight; - } - - public void setOwner_weight(String owner_weight) { - this.owner_weight = owner_weight; - } - - public int getIs_pass_player() { - return is_pass_player; - } - - public void setIs_pass_player(int is_pass_player) { - this.is_pass_player = is_pass_player; - } - - public String getHls_url() { - return hls_url; - } - - public void setHls_url(String hls_url) { - this.hls_url = hls_url; - } - - public String getRoom_id() { - return room_id; - } - - public void setRoom_id(String room_id) { - this.room_id = room_id; - } - - public String getCur_credit() { - return cur_credit; - } - - public void setCur_credit(String cur_credit) { - this.cur_credit = cur_credit; - } - - public String getGift_ver() { - return gift_ver; - } - - public void setGift_ver(String gift_ver) { - this.gift_ver = gift_ver; - } - - public String getLow_credit() { - return low_credit; - } - - public void setLow_credit(String low_credit) { - this.low_credit = low_credit; - } - - public RtmpMultiBitrateBean getRtmp_multi_bitrate() { - return rtmp_multi_bitrate; - } - - public void setRtmp_multi_bitrate(RtmpMultiBitrateBean rtmp_multi_bitrate) { - this.rtmp_multi_bitrate = rtmp_multi_bitrate; - } - - public int getOnline() { - return online; - } - - public void setOnline(int online) { - this.online = online; - } - - public String getCredit_illegal() { - return credit_illegal; - } - - public void setCredit_illegal(String credit_illegal) { - this.credit_illegal = credit_illegal; - } - - public String getVod_quality() { - return vod_quality; - } - - public void setVod_quality(String vod_quality) { - this.vod_quality = vod_quality; - } - - public String getCate_id() { - return cate_id; - } - - public void setCate_id(String cate_id) { - this.cate_id = cate_id; - } - - public List getServers() { - return servers; - } - - public void setServers(List servers) { - this.servers = servers; - } - - public List getCdnsWithName() { - return cdnsWithName; - } - - public void setCdnsWithName(List cdnsWithName) { - this.cdnsWithName = cdnsWithName; - } - - public List getBlack() { - return black; - } - - public void setBlack(List black) { - this.black = black; - } - - public List getGift() { - return gift; - } - - public void setGift(List gift) { - this.gift = gift; - } - - public List getCdns() { - return cdns; - } - - public void setCdns(List cdns) { - this.cdns = cdns; - } - - public static class RtmpMultiBitrateBean { - private String middle; - private String middle2; - - public String getMiddle() { - return middle; - } - - public void setMiddle(String middle) { - this.middle = middle; - } - - public String getMiddle2() { - return middle2; - } - - public void setMiddle2(String middle2) { - this.middle2 = middle2; - } - } - - public static class ServersBean { - private String ip; - private String port; - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - } - - public static class CdnsWithNameBean { - private String name; - private String cdn; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getCdn() { - return cdn; - } - - public void setCdn(String cdn) { - this.cdn = cdn; - } - } - - public static class GiftBean { - private String himg; - private String pdhimg; - private int gx; - private String mobile_big_effect_icon_0; - private String cimg; - private String mobile_big_effect_icon_1; - private String big_effect_icon; - private String pdbimg; - private String mobile_big_effect_icon_2; - private String mimg; - private String brgb; - private String mobile_big_effect_icon_3; - private String m_ef_gif_2; - private String pimg; - private String pt; - private String id; - private String intro; - private String pc; - private String m_ef_gif_1; - private String urgb; - private int ef; - private String sort; - private String ch; - private int stay_time; - private String desc; - private String mobile_stay_time; - private String mobile_small_effect_icon; - private String grgb; - private String drgb; - private String pad_big_effect_icon; - private String type; - private String mobimg; - private String small_effect_icon; - private String name; - private String mobile_icon_v2; - - public String getHimg() { - return himg; - } - - public void setHimg(String himg) { - this.himg = himg; - } - - public String getPdhimg() { - return pdhimg; - } - - public void setPdhimg(String pdhimg) { - this.pdhimg = pdhimg; - } - - public int getGx() { - return gx; - } - - public void setGx(int gx) { - this.gx = gx; - } - - public String getMobile_big_effect_icon_0() { - return mobile_big_effect_icon_0; - } - - public void setMobile_big_effect_icon_0(String mobile_big_effect_icon_0) { - this.mobile_big_effect_icon_0 = mobile_big_effect_icon_0; - } - - public String getCimg() { - return cimg; - } - - public void setCimg(String cimg) { - this.cimg = cimg; - } - - public String getMobile_big_effect_icon_1() { - return mobile_big_effect_icon_1; - } - - public void setMobile_big_effect_icon_1(String mobile_big_effect_icon_1) { - this.mobile_big_effect_icon_1 = mobile_big_effect_icon_1; - } - - public String getBig_effect_icon() { - return big_effect_icon; - } - - public void setBig_effect_icon(String big_effect_icon) { - this.big_effect_icon = big_effect_icon; - } - - public String getPdbimg() { - return pdbimg; - } - - public void setPdbimg(String pdbimg) { - this.pdbimg = pdbimg; - } - - public String getMobile_big_effect_icon_2() { - return mobile_big_effect_icon_2; - } - - public void setMobile_big_effect_icon_2(String mobile_big_effect_icon_2) { - this.mobile_big_effect_icon_2 = mobile_big_effect_icon_2; - } - - public String getMimg() { - return mimg; - } - - public void setMimg(String mimg) { - this.mimg = mimg; - } - - public String getBrgb() { - return brgb; - } - - public void setBrgb(String brgb) { - this.brgb = brgb; - } - - public String getMobile_big_effect_icon_3() { - return mobile_big_effect_icon_3; - } - - public void setMobile_big_effect_icon_3(String mobile_big_effect_icon_3) { - this.mobile_big_effect_icon_3 = mobile_big_effect_icon_3; - } - - public String getM_ef_gif_2() { - return m_ef_gif_2; - } - - public void setM_ef_gif_2(String m_ef_gif_2) { - this.m_ef_gif_2 = m_ef_gif_2; - } - - public String getPimg() { - return pimg; - } - - public void setPimg(String pimg) { - this.pimg = pimg; - } - - public String getPt() { - return pt; - } - - public void setPt(String pt) { - this.pt = pt; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getIntro() { - return intro; - } - - public void setIntro(String intro) { - this.intro = intro; - } - - public String getPc() { - return pc; - } - - public void setPc(String pc) { - this.pc = pc; - } - - public String getM_ef_gif_1() { - return m_ef_gif_1; - } - - public void setM_ef_gif_1(String m_ef_gif_1) { - this.m_ef_gif_1 = m_ef_gif_1; - } - - public String getUrgb() { - return urgb; - } - - public void setUrgb(String urgb) { - this.urgb = urgb; - } - - public int getEf() { - return ef; - } - - public void setEf(int ef) { - this.ef = ef; - } - - public String getSort() { - return sort; - } - - public void setSort(String sort) { - this.sort = sort; - } - - public String getCh() { - return ch; - } - - public void setCh(String ch) { - this.ch = ch; - } - - public int getStay_time() { - return stay_time; - } - - public void setStay_time(int stay_time) { - this.stay_time = stay_time; - } - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { - this.desc = desc; - } - - public String getMobile_stay_time() { - return mobile_stay_time; - } - - public void setMobile_stay_time(String mobile_stay_time) { - this.mobile_stay_time = mobile_stay_time; - } - - public String getMobile_small_effect_icon() { - return mobile_small_effect_icon; - } - - public void setMobile_small_effect_icon(String mobile_small_effect_icon) { - this.mobile_small_effect_icon = mobile_small_effect_icon; - } - - public String getGrgb() { - return grgb; - } - - public void setGrgb(String grgb) { - this.grgb = grgb; - } - - public String getDrgb() { - return drgb; - } - - public void setDrgb(String drgb) { - this.drgb = drgb; - } - - public String getPad_big_effect_icon() { - return pad_big_effect_icon; - } - - public void setPad_big_effect_icon(String pad_big_effect_icon) { - this.pad_big_effect_icon = pad_big_effect_icon; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getMobimg() { - return mobimg; - } - - public void setMobimg(String mobimg) { - this.mobimg = mobimg; - } - - public String getSmall_effect_icon() { - return small_effect_icon; - } - - public void setSmall_effect_icon(String small_effect_icon) { - this.small_effect_icon = small_effect_icon; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getMobile_icon_v2() { - return mobile_icon_v2; - } - - public void setMobile_icon_v2(String mobile_icon_v2) { - this.mobile_icon_v2 = mobile_icon_v2; - } - } - } -} diff --git a/app/src/main/java/com/c9mj/platform/live/bean/LiveRoomItemBean.java b/app/src/main/java/com/c9mj/platform/live/bean/LiveRoomItemBean.java deleted file mode 100644 index d798a06..0000000 --- a/app/src/main/java/com/c9mj/platform/live/bean/LiveRoomItemBean.java +++ /dev/null @@ -1,262 +0,0 @@ -package com.c9mj.platform.live.bean; - -/** - * author: LMJ - * date: 2016/9/12 - */ -public class LiveRoomItemBean { - - /** - * room_id : 4809 - * room_src : https://rpic.douyucdn.cn/z1609/12/09/4809_160912094308.jpg - * vertical_src : https://rpic.douyucdn.cn/z1609/12/09/4809_160912094308.jpg - * isVertical : 0 - * cate_id : 1 - * room_name : 饼干:牧魂人打野!!挖坟走起来! - * show_status : 1 - * subject : - * show_time : 1473642332 - * owner_uid : 184165 - * specific_catalog : - * specific_status : 0 - * vod_quality : 0 - * nickname : 饼干狂魔MasterB - * online : 414490 - * url : /4809 - * game_url : /directory/game/LOL - * game_name : 英雄联盟 - * child_id : 33 - * avatar : https://apic.douyucdn.cn/upload/avatar/000/18/41/65_avatar_big.jpg - * avatar_mid : https://apic.douyucdn.cn/upload/avatar/000/18/41/65_avatar_middle.jpg - * avatar_small : https://apic.douyucdn.cn/upload/avatar/000/18/41/65_avatar_small.jpg - * fans : 1845827 - * ranktype : 0 - * anchor_city : 鱼塘 - */ - - private String room_id; - private String room_src; - private String vertical_src; - private int isVertical; - private String cate_id; - private String room_name; - private String show_status; - private String subject; - private String show_time; - private String owner_uid; - private String specific_catalog; - private String specific_status; - private String vod_quality; - private String nickname; - private int online; - private String url; - private String game_url; - private String game_name; - private String child_id; - private String avatar; - private String avatar_mid; - private String avatar_small; - private String fans; - private int ranktype; - private String anchor_city; - - public String getRoom_id() { - return room_id; - } - - public void setRoom_id(String room_id) { - this.room_id = room_id; - } - - public String getRoom_src() { - return room_src; - } - - public void setRoom_src(String room_src) { - this.room_src = room_src; - } - - public String getVertical_src() { - return vertical_src; - } - - public void setVertical_src(String vertical_src) { - this.vertical_src = vertical_src; - } - - public int getIsVertical() { - return isVertical; - } - - public void setIsVertical(int isVertical) { - this.isVertical = isVertical; - } - - public String getCate_id() { - return cate_id; - } - - public void setCate_id(String cate_id) { - this.cate_id = cate_id; - } - - public String getRoom_name() { - return room_name; - } - - public void setRoom_name(String room_name) { - this.room_name = room_name; - } - - public String getShow_status() { - return show_status; - } - - public void setShow_status(String show_status) { - this.show_status = show_status; - } - - public String getSubject() { - return subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } - - public String getShow_time() { - return show_time; - } - - public void setShow_time(String show_time) { - this.show_time = show_time; - } - - public String getOwner_uid() { - return owner_uid; - } - - public void setOwner_uid(String owner_uid) { - this.owner_uid = owner_uid; - } - - public String getSpecific_catalog() { - return specific_catalog; - } - - public void setSpecific_catalog(String specific_catalog) { - this.specific_catalog = specific_catalog; - } - - public String getSpecific_status() { - return specific_status; - } - - public void setSpecific_status(String specific_status) { - this.specific_status = specific_status; - } - - public String getVod_quality() { - return vod_quality; - } - - public void setVod_quality(String vod_quality) { - this.vod_quality = vod_quality; - } - - public String getNickname() { - return nickname; - } - - public void setNickname(String nickname) { - this.nickname = nickname; - } - - public int getOnline() { - return online; - } - - public void setOnline(int online) { - this.online = online; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getGame_url() { - return game_url; - } - - public void setGame_url(String game_url) { - this.game_url = game_url; - } - - public String getGame_name() { - return game_name; - } - - public void setGame_name(String game_name) { - this.game_name = game_name; - } - - public String getChild_id() { - return child_id; - } - - public void setChild_id(String child_id) { - this.child_id = child_id; - } - - public String getAvatar() { - return avatar; - } - - public void setAvatar(String avatar) { - this.avatar = avatar; - } - - public String getAvatar_mid() { - return avatar_mid; - } - - public void setAvatar_mid(String avatar_mid) { - this.avatar_mid = avatar_mid; - } - - public String getAvatar_small() { - return avatar_small; - } - - public void setAvatar_small(String avatar_small) { - this.avatar_small = avatar_small; - } - - public String getFans() { - return fans; - } - - public void setFans(String fans) { - this.fans = fans; - } - - public int getRanktype() { - return ranktype; - } - - public void setRanktype(int ranktype) { - this.ranktype = ranktype; - } - - public String getAnchor_city() { - return anchor_city; - } - - public void setAnchor_city(String anchor_city) { - this.anchor_city = anchor_city; - } -} diff --git a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILiveListPresenter.java b/app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILiveListPresenter.java new file mode 100644 index 0000000..143580d --- /dev/null +++ b/app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILiveListPresenter.java @@ -0,0 +1,9 @@ +package com.c9mj.platform.live.mvp.presenter; + +/** + * author: LMJ + * date: 2016/9/9 + */ +public interface ILiveListPresenter { + void getLiveList(int offset, int limit, String game_type);//请求不同游戏的直播列表 +} diff --git a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILivePresenter.java b/app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILivePresenter.java deleted file mode 100644 index f33c56f..0000000 --- a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILivePresenter.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.c9mj.platform.live.mvp.presenter; - -/** - * author: LMJ - * date: 2016/9/9 - */ -public interface ILivePresenter { - void getColumnList();//得到顶部Tab的具体数据 -} diff --git a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILiveRoomListPresenter.java b/app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILiveRoomListPresenter.java deleted file mode 100644 index 7ecd982..0000000 --- a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/ILiveRoomListPresenter.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.c9mj.platform.live.mvp.presenter; - -/** - * author: LMJ - * date: 2016/9/9 - */ -public interface ILiveRoomListPresenter { - void getAllRoomList(int offset, int limit, String client_sys);//请求全部直播 - void getColumnRoomList(String cate_id, int offset, int limit, String clientSys);//请求不同栏目直播 -} diff --git a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LiveListPresenterImpl.java b/app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LiveListPresenterImpl.java new file mode 100644 index 0000000..03fcbc2 --- /dev/null +++ b/app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LiveListPresenterImpl.java @@ -0,0 +1,57 @@ +package com.c9mj.platform.live.mvp.presenter.impl; + +import android.content.Context; + +import com.c9mj.platform.live.api.LiveAPI; +import com.c9mj.platform.live.bean.LiveListItemBean; +import com.c9mj.platform.live.mvp.presenter.ILiveListPresenter; +import com.c9mj.platform.live.mvp.view.ILiveListFragment; +import com.c9mj.platform.util.retrofit.HttpSubscriber; +import com.c9mj.platform.util.retrofit.RetrofitHelper; + +import java.util.List; + +/** + * author: LMJ + * date: 2016/9/9 + */ +public class LiveListPresenterImpl implements ILiveListPresenter { + + private Context context; + private ILiveListFragment view; + + public LiveListPresenterImpl(Context context, ILiveListFragment view) { + this.context = context; + this.view = view; + } + + + @Override + public void getLiveList(int offset, int limit, String game_type) { + RetrofitHelper.getLiveHelper().create(LiveAPI.class) + .getLiveList( + offset, + limit, + game_type, + LiveAPI.MAX_ID, + LiveAPI.IMEI, + LiveAPI.OS_TYPE, + LiveAPI.OS_VERSION, + LiveAPI.VERSION, + LiveAPI.LANG + ) + .compose(RetrofitHelper.>handleLiveResult()) + .subscribe(new HttpSubscriber>() { + @Override + public void _onNext(List roomBeanList) { + view.updateRecyclerView(roomBeanList); + } + + @Override + public void _onError(String message) { + view.showError(message); + } + }); + } + +} diff --git a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LivePresenterImpl.java b/app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LivePresenterImpl.java deleted file mode 100644 index 04a5dfa..0000000 --- a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LivePresenterImpl.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.c9mj.platform.live.mvp.presenter.impl; - -import android.content.Context; - -import com.c9mj.platform.live.bean.LiveIndicatorBean; -import com.c9mj.platform.live.mvp.presenter.ILivePresenter; -import com.c9mj.platform.live.mvp.view.ILiveFragment; -import com.c9mj.platform.util.retrofit.HttpSubscriber; -import com.c9mj.platform.util.retrofit.RetrofitHelper; -import com.c9mj.platform.live.api.LiveAPI; - -import java.util.List; - -/** - * author: LMJ - * date: 2016/9/9 - */ -public class LivePresenterImpl implements ILivePresenter { - - private Context context; - private ILiveFragment view; - - public LivePresenterImpl(Context context, ILiveFragment view) { - this.context = context; - this.view = view; - } - - @Override - public void getColumnList() { - RetrofitHelper.getLiveHelper().create(LiveAPI.class) - .getColumnList() - .compose(RetrofitHelper.>handleLiveResult()) - .subscribe(new HttpSubscriber>() { - @Override - public void _onNext(List columnBeanList) { - view.updateIndicator(columnBeanList); - } - - @Override - public void _onError(String message) { - view.showError(message); - } - }); - } -} diff --git a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LiveRoomListPresenterImpl.java b/app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LiveRoomListPresenterImpl.java deleted file mode 100644 index 77185c4..0000000 --- a/app/src/main/java/com/c9mj/platform/live/mvp/presenter/impl/LiveRoomListPresenterImpl.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.c9mj.platform.live.mvp.presenter.impl; - -import android.content.Context; - -import com.c9mj.platform.live.api.LiveAPI; -import com.c9mj.platform.live.bean.LiveRoomItemBean; -import com.c9mj.platform.live.mvp.presenter.ILiveRoomListPresenter; -import com.c9mj.platform.live.mvp.view.ILiveRoomListFragment; -import com.c9mj.platform.util.retrofit.HttpSubscriber; -import com.c9mj.platform.util.retrofit.RetrofitHelper; - -import java.util.List; - -/** - * author: LMJ - * date: 2016/9/9 - */ -public class LiveRoomListPresenterImpl implements ILiveRoomListPresenter { - - private Context context; - private ILiveRoomListFragment view; - - public LiveRoomListPresenterImpl(Context context, ILiveRoomListFragment view) { - this.context = context; - this.view = view; - } - - @Override - public void getAllRoomList(int offset, int limit, String client_sys) { - RetrofitHelper.getLiveHelper().create(LiveAPI.class) - .getAllLiveList(offset, limit, client_sys) - .compose(RetrofitHelper.>handleLiveResult()) - .subscribe(new HttpSubscriber>() { - @Override - public void _onNext(List roomBeanList) { - view.updateRecyclerView(roomBeanList); - } - - @Override - public void _onError(String message) { - view.showError(message); - } - }); - } - - @Override - public void getColumnRoomList(String cate_id, int offset, int limit, String client_sys) { - RetrofitHelper.getLiveHelper().create(LiveAPI.class) - .getColumnLiveList(cate_id, offset, limit, client_sys) - .compose(RetrofitHelper.>handleLiveResult()) - .subscribe(new HttpSubscriber>() { - @Override - public void _onNext(List roomBeanList) { - view.updateRecyclerView(roomBeanList); - } - - @Override - public void _onError(String message) { - view.showError(message); - } - }); - } - -} diff --git a/app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveFragment.java b/app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveFragment.java deleted file mode 100644 index b753579..0000000 --- a/app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveFragment.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.c9mj.platform.live.mvp.view; - -import com.c9mj.platform.live.bean.LiveIndicatorBean; - -import java.util.List; - -/** - * author: LMJ - * date: 2016/9/9 - */ -public interface ILiveFragment { - void updateIndicator(List columnBeanList);//更新分类的Indicator - void showError(String message);//异常错误 -} diff --git a/app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveRoomListFragment.java b/app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveListFragment.java similarity index 52% rename from app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveRoomListFragment.java rename to app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveListFragment.java index abc83fb..9f0dcff 100644 --- a/app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveRoomListFragment.java +++ b/app/src/main/java/com/c9mj/platform/live/mvp/view/ILiveListFragment.java @@ -1,6 +1,6 @@ package com.c9mj.platform.live.mvp.view; -import com.c9mj.platform.live.bean.LiveRoomItemBean; +import com.c9mj.platform.live.bean.LiveListItemBean; import java.util.List; @@ -8,7 +8,7 @@ * author: LMJ * date: 2016/9/9 */ -public interface ILiveRoomListFragment { - void updateRecyclerView(List roomBeanList);//更新列表 +public interface ILiveListFragment { + void updateRecyclerView(List roomBeanList);//更新列表 void showError(String message);//异常错误 } diff --git a/app/src/main/java/com/c9mj/platform/live/ui/LiveFragment.java b/app/src/main/java/com/c9mj/platform/live/ui/LiveFragment.java index 7473b3e..316326b 100644 --- a/app/src/main/java/com/c9mj/platform/live/ui/LiveFragment.java +++ b/app/src/main/java/com/c9mj/platform/live/ui/LiveFragment.java @@ -11,10 +11,6 @@ import android.view.ViewGroup; import com.c9mj.platform.R; -import com.c9mj.platform.live.bean.LiveIndicatorBean; -import com.c9mj.platform.live.mvp.presenter.impl.LivePresenterImpl; -import com.c9mj.platform.live.mvp.view.ILiveFragment; -import com.c9mj.platform.util.ToastUtil; import com.c9mj.platform.util.adapter.FragmentAdapter; import com.c9mj.platform.widget.fragment.LazyFragment; @@ -39,14 +35,12 @@ * date: 2016/9/1 * 直播主页面 */ -public class LiveFragment extends LazyFragment implements ILiveFragment { +public class LiveFragment extends LazyFragment{ private List fragmentList = new ArrayList<>(); private List titleList = new ArrayList<>(); private Context context; - private LivePresenterImpl presenter; - @BindView(R.id.magic_indicator) MagicIndicator indicator; @@ -71,7 +65,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, context = view.getContext(); - initMVP(); initFragment(); initViewPager(); initIndicator(); @@ -81,16 +74,19 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, @Override protected void initLazyView(@Nullable Bundle savedInstanceState) { - presenter.getColumnList(); - } - - private void initMVP() { - presenter = new LivePresenterImpl(context, this); } private void initFragment() { - fragmentList.add(LiveRoomListFragment.newInstance()); - titleList.add(getString(R.string.live_all)); + titleList.add(getString(R.string.live_lol)); + titleList.add(getString(R.string.live_ow)); + titleList.add(getString(R.string.live_dota2)); + titleList.add(getString(R.string.live_hs)); + titleList.add(getString(R.string.live_csgo)); + fragmentList.add(LiveListFragment.newInstance(getString(R.string.game_type_lol))); + fragmentList.add(LiveListFragment.newInstance(getString(R.string.game_type_ow))); + fragmentList.add(LiveListFragment.newInstance(getString(R.string.game_type_dota2))); + fragmentList.add(LiveListFragment.newInstance(getString(R.string.game_type_hs))); + fragmentList.add(LiveListFragment.newInstance(getString(R.string.game_type_csgo))); } private void initViewPager() { @@ -101,7 +97,7 @@ private void initViewPager() { private void initIndicator() { CommonNavigator navigator = new CommonNavigator(context); - navigator.setAdjustMode(false); + navigator.setAdjustMode(true); navigator.setFollowTouch(true); navigatorAdapter = new CommonNavigatorAdapter() { @Override @@ -142,19 +138,4 @@ public IPagerIndicator getIndicator(Context context) { ViewPagerHelper.bind(indicator, viewPager); } - @Override - public void updateIndicator(List list) { - for (LiveIndicatorBean bean : - list) { - fragmentList.add(LiveRoomListFragment.newInstance(bean.getCate_id())); - titleList.add(bean.getCate_name()); - } - fragmentAdapter.notifyDataSetChanged(); - navigatorAdapter.notifyDataSetChanged(); - } - - @Override - public void showError(String message) { - ToastUtil.show(context, message); - } } diff --git a/app/src/main/java/com/c9mj/platform/live/ui/LiveRoomListFragment.java b/app/src/main/java/com/c9mj/platform/live/ui/LiveListFragment.java similarity index 62% rename from app/src/main/java/com/c9mj/platform/live/ui/LiveRoomListFragment.java rename to app/src/main/java/com/c9mj/platform/live/ui/LiveListFragment.java index 0b98a06..ae39308 100644 --- a/app/src/main/java/com/c9mj/platform/live/ui/LiveRoomListFragment.java +++ b/app/src/main/java/com/c9mj/platform/live/ui/LiveListFragment.java @@ -2,23 +2,22 @@ import android.content.Context; +import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.c9mj.platform.R; -import com.c9mj.platform.live.adapter.LiveRoomAdapter; +import com.c9mj.platform.live.adapter.LiveListAdapter; import com.c9mj.platform.live.api.LiveAPI; -import com.c9mj.platform.live.bean.LiveRoomItemBean; -import com.c9mj.platform.live.mvp.presenter.impl.LiveRoomListPresenterImpl; -import com.c9mj.platform.live.mvp.view.ILiveRoomListFragment; +import com.c9mj.platform.live.bean.LiveListItemBean; +import com.c9mj.platform.live.mvp.presenter.impl.LiveListPresenterImpl; +import com.c9mj.platform.live.mvp.view.ILiveListFragment; import com.c9mj.platform.util.ToastUtil; import com.c9mj.platform.widget.animation.CustionAnimation; import com.c9mj.platform.widget.fragment.LazyFragment; @@ -31,35 +30,37 @@ import butterknife.ButterKnife; /** - * A simple {@link Fragment} subclass. + * author: LMJ + * date: 2016/9/19 + * 直播列表 */ -public class LiveRoomListFragment extends LazyFragment implements ILiveRoomListFragment, +public class LiveListFragment extends LazyFragment implements ILiveListFragment, SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener { - private static final String CATE_ID = "cate_id"; + private static final String GAME_TYPE = "game_type"; - private String cate_id; + private String game_type; private int offset = 0;//用于记录分页偏移量 - private List roomBeanList = new ArrayList<>(); + private List roomBeanList = new ArrayList<>(); private Context context; - private LiveRoomListPresenterImpl presenter; + private LiveListPresenterImpl presenter; @BindView(R.id.refreshlayout) SwipeRefreshLayout refreshLayout; @BindView(R.id.recyclerview) RecyclerView recyclerView; - LiveRoomAdapter adapter; + LiveListAdapter adapter; - public static LiveRoomListFragment newInstance() { + public static LiveListFragment newInstance() { return newInstance(""); } - public static LiveRoomListFragment newInstance(String cate_id) { - LiveRoomListFragment fragment = new LiveRoomListFragment(); + public static LiveListFragment newInstance(String game_type) { + LiveListFragment fragment = new LiveListFragment(); Bundle args = new Bundle(); - args.putString(CATE_ID, cate_id); + args.putString(GAME_TYPE, game_type); fragment.setArguments(args); return fragment; } @@ -69,11 +70,11 @@ public static LiveRoomListFragment newInstance(String cate_id) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - View view = inflater.inflate(R.layout.fragment_live_roomlist, container, false); + View view = inflater.inflate(R.layout.fragment_live_list, container, false); ButterKnife.bind(this, view); context = view.getContext(); - cate_id = getArguments().getString(CATE_ID);//得到传入的cate_id + game_type = getArguments().getString(GAME_TYPE);//得到传入的cate_id initMVP(); initRefreshView(); @@ -87,20 +88,16 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, @Override protected void initLazyView(@Nullable Bundle savedInstanceState) { if (savedInstanceState == null) { - refreshLayout.setProgressViewOffset(false, 0, 30);// 这句话是为了,第一次进入页面初始化数据的时候显示加载进度条 refreshLayout.setRefreshing(true); - if (TextUtils.isEmpty(cate_id)) {//传入cate_id为空,请求全部直播 - presenter.getAllRoomList(offset, LiveAPI.LIMIT, LiveAPI.CLIENT_SYS); - } else {//不为空,根据cate_id分类请求直播数据 - presenter.getColumnRoomList(cate_id, offset, LiveAPI.LIMIT, LiveAPI.CLIENT_SYS); - } + //根据game_type分类请求直播数据 + presenter.getLiveList(offset, LiveAPI.LIMIT, game_type ); } } private void initMVP() { - presenter = new LiveRoomListPresenterImpl(context, this); + presenter = new LiveListPresenterImpl(context, this); } private void initRefreshView() { @@ -109,7 +106,7 @@ private void initRefreshView() { } private void initRecyclerView() { - adapter = new LiveRoomAdapter(roomBeanList); + adapter = new LiveListAdapter(roomBeanList); recyclerView.setLayoutManager(new GridLayoutManager(context, 2)); adapter.openLoadAnimation(new CustionAnimation()); adapter.isFirstOnly(true); @@ -122,17 +119,18 @@ private void initRecyclerView() { @Override public void onItemChildClick(BaseQuickAdapter baseQuickAdapter, View view, int i) { roomBeanList.get(i); + startActivity(new Intent(getActivity(), LivePlayActivity.class)); } }); } @Override - public void updateRecyclerView(List list) { + public void updateRecyclerView(List list) { refreshLayout.setRefreshing(false); roomBeanList.addAll(offset, list);//在roomBeanList的尾部添加 offset = roomBeanList.size(); - if (list.size() < LiveAPI.LIMIT){ - adapter.notifyDataChangedAfterLoadMore(false); + if (list.size() < LiveAPI.LIMIT){//分页数据size比每页数据的limit小,说明已全部加载数据 + adapter.notifyDataChangedAfterLoadMore(false);//下一次不再加载更多,并显示FooterView adapter.addFooterView(LayoutInflater.from(context).inflate(R.layout.layout_footer, (ViewGroup) recyclerView.getParent(), false)); return; } @@ -142,7 +140,7 @@ public void updateRecyclerView(List list) { @Override public void showError(String message) { refreshLayout.setRefreshing(false); - ToastUtil.show(context, message); + ToastUtil.show(message); } @Override @@ -151,19 +149,13 @@ public void onRefresh() { roomBeanList.clear();//清空原数据 adapter.removeAllFooterView(); refreshLayout.setRefreshing(true); - if (TextUtils.isEmpty(cate_id)){//传入cate_id为空,请求全部直播 - presenter.getAllRoomList(offset, LiveAPI.LIMIT, LiveAPI.CLIENT_SYS); - }else {//不为空,根据cate_id分类请求直播数据 - presenter.getColumnRoomList(cate_id, offset, LiveAPI.LIMIT, LiveAPI.CLIENT_SYS); - } + //根据game_type分类请求直播数据 + presenter.getLiveList(offset, LiveAPI.LIMIT, game_type ); } @Override public void onLoadMoreRequested() { - if (TextUtils.isEmpty(cate_id)){//传入cate_id为空,请求全部直播 - presenter.getAllRoomList(offset, LiveAPI.LIMIT, LiveAPI.CLIENT_SYS); - }else {//不为空,根据cate_id分类请求直播数据 - presenter.getColumnRoomList(cate_id, offset, LiveAPI.LIMIT, LiveAPI.CLIENT_SYS); - } + //根据game_type分类请求直播数据 + presenter.getLiveList(offset, LiveAPI.LIMIT, game_type ); } } diff --git a/app/src/main/java/com/c9mj/platform/live/ui/LivePlayActivity.java b/app/src/main/java/com/c9mj/platform/live/ui/LivePlayActivity.java index ce6c02d..16a0927 100644 --- a/app/src/main/java/com/c9mj/platform/live/ui/LivePlayActivity.java +++ b/app/src/main/java/com/c9mj/platform/live/ui/LivePlayActivity.java @@ -1,11 +1,13 @@ package com.c9mj.platform.live.ui; -import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.widget.Button; import com.c9mj.platform.R; -import me.yokeyword.fragmentation.SupportActivity; +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; import me.yokeyword.fragmentation_swipeback.SwipeBackActivity; /** @@ -15,9 +17,18 @@ */ public class LivePlayActivity extends SwipeBackActivity { + @BindView(R.id.button) + Button button; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_live_play); + ButterKnife.bind(this); + } + + @OnClick(R.id.button) + public void onClick() { } + } diff --git a/app/src/main/java/com/c9mj/platform/user/ui/UserFragment.java b/app/src/main/java/com/c9mj/platform/user/ui/UserFragment.java index 5ca9e72..dfb612a 100644 --- a/app/src/main/java/com/c9mj/platform/user/ui/UserFragment.java +++ b/app/src/main/java/com/c9mj/platform/user/ui/UserFragment.java @@ -138,9 +138,9 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { Glide.with(this).load(filePath).into(iv_appbar); SpHelper.with(this.getContext()).setString(SpHelper.STRING_USER, filePath);//保存图片路径 } else if (resultCode == Activity.RESULT_CANCELED) { - ToastUtil.show(getContext(), getString(R.string.user_carema_cancel)); + ToastUtil.show(getString(R.string.user_carema_cancel)); } else { - ToastUtil.show(getContext(), getString(R.string.error_unknown)); + ToastUtil.show( getString(R.string.error_unknown)); } } break; @@ -150,9 +150,9 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { Glide.with(this).load(filePath).into(iv_appbar); SpHelper.with(this.getContext()).setString(SpHelper.STRING_USER, filePath);//保存图片路径 } else if (resultCode == Activity.RESULT_CANCELED) { - ToastUtil.show(getContext(), getString(R.string.user_carema_cancel)); + ToastUtil.show( getString(R.string.user_carema_cancel)); } else { - ToastUtil.show(getContext(), getString(R.string.error_unknown)); + ToastUtil.show(getString(R.string.error_unknown)); } } break; diff --git a/app/src/main/java/com/c9mj/platform/util/ToastUtil.java b/app/src/main/java/com/c9mj/platform/util/ToastUtil.java index d610471..3b65dd8 100644 --- a/app/src/main/java/com/c9mj/platform/util/ToastUtil.java +++ b/app/src/main/java/com/c9mj/platform/util/ToastUtil.java @@ -9,18 +9,24 @@ * 用于维护唯一Toastd工具类 */ public class ToastUtil { + private static Context context; private static Toast toast; private static boolean isShow = false; + public static void init(Context applicationContext) { + context = applicationContext; + initToast(context); + } + private static void initToast(Context context) { if (toast == null){ synchronized (ToastUtil.class){ - toast = new Toast(context.getApplicationContext()); + toast = new Toast(context); } } } - public static void show(Context context, CharSequence content, int duration){ + public static void show(CharSequence content, int duration){ initToast(context); if (isShow == true){ isShow = false; @@ -31,13 +37,14 @@ public static void show(Context context, CharSequence content, int duration){ isShow = true; } - public static void show(Context context, CharSequence content){ - show(context, content, Toast.LENGTH_SHORT); + public static void show(CharSequence content){ + show(content, Toast.LENGTH_SHORT); } - public static void show(Context context, int resId){ - show(context, context.getString(resId), Toast.LENGTH_SHORT); + public static void show(int resId){ + show(context.getString(resId), Toast.LENGTH_SHORT); } + } diff --git a/app/src/main/java/com/c9mj/platform/util/retrofit/RetrofitHelper.java b/app/src/main/java/com/c9mj/platform/util/retrofit/RetrofitHelper.java index 7dea6f2..c3c3e2d 100644 --- a/app/src/main/java/com/c9mj/platform/util/retrofit/RetrofitHelper.java +++ b/app/src/main/java/com/c9mj/platform/util/retrofit/RetrofitHelper.java @@ -22,9 +22,9 @@ public class RetrofitHelper{ public static final String BASE_EXPLORE_URL = "http://api.douban.com/v2/movie/"; - public static final String BASE_LIVE_URL = "http://capi.douyucdn.cn"; + public static final String BASE_LIVE_URL = "http://api.maxjia.com"; public static final String BASE_USER_URL = "http://api.douban.com/v2/movie/"; - public static final String BASE_DANMU_URL = "openbarrage.douyutv.com"; + public static final String BASE_DANMU_URL = "http://api.douban.com/v2/movie/"; private static Retrofit retrofit = null; @@ -76,12 +76,12 @@ public Observable call(Observable> baseBeanObservable) {//Ste return baseBeanObservable.flatMap(new Func1, Observable>() {//Step 2:把Observable>转换为Observable @Override public Observable call(final LiveBaseBean baseBean) {//Step 3:根据返回码决定是否发送事件 - if (baseBean.getError() == 0){// 0:成功 + if (baseBean.getStatus().equals("ok")){// ok:成功 return Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber subscriber) { try { - subscriber.onNext(baseBean.getData());//发送事件给Subscriber + subscriber.onNext(baseBean.getResult());//发送事件给Subscriber subscriber.onCompleted(); }catch (Exception e){ subscriber.onError(e); @@ -89,7 +89,7 @@ public void call(Subscriber subscriber) { } }); }else {//error:错误Exception - return Observable.error(new RetrofitException(baseBean.getError())); + return Observable.error(new RetrofitException(baseBean.getMsg())); } } diff --git a/app/src/main/res/layout/activity_live_play.xml b/app/src/main/res/layout/activity_live_play.xml index 65ac691..4e61a5b 100644 --- a/app/src/main/res/layout/activity_live_play.xml +++ b/app/src/main/res/layout/activity_live_play.xml @@ -9,4 +9,11 @@ android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.c9mj.platform.live.ui.LivePlayActivity"> +