GetActiveInfoUtil.java
4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package com.cnlive.demo.video.util;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import com.cnlive.demo.video.model.LiveInfo;
import com.cnlive.libs.util.Config;
import com.cnlive.libs.util.HttpUtils;
import com.cnlive.libs.util.auth.AuthUtil;
import com.cnlive.libs.util.data.network.Callback;
import com.cnlive.libs.util.data.network.DataGenericsCallback;
import com.cnlive.libs.util.data.okhttp3.Call;
import com.cnlive.libs.util.data.okhttpUtil.callback.GenericsCallback;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Lynn on 6/7/2017.
* 此类为获取活动状态的demo,网络请求可根据自己的实际情况修改
*/
public class GetActiveInfoUtil {
private static final String TAG = "GetActiveInfoUtil";
private static final String BASE_URL = "https://api.cnlive.com/open/api2";
private static final String URL_LIVE_INFO_BASE = BASE_URL + "/live_epg/getLiveActivityPlayInfo4App";
private static DataGenericsCallback<LiveInfo> mLiveActivityCallback;
public static void getActiveInfo(final Context context, String activityId) {
loadLiveInfo(activityId, new Callback() {
@Override
public void onState(int i, String s, Object o) {
LiveInfo liveInfo = (LiveInfo) o;
if (i == 0) {
//获取活动新消息成功
if (liveInfo.getData() != null) {
switch (liveInfo.getData().getActivityStatus()) {
case -2:
Toast.makeText(context, -2 + "活动异常", Toast.LENGTH_SHORT).show();
break;
case 0:
Toast.makeText(context, 0 + "未开始", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(context, 1 + "已开始", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(context, 3 + "已结束", Toast.LENGTH_SHORT).show();
break;
case 4:
Toast.makeText(context, 4 + "已下线", Toast.LENGTH_SHORT).show();
break;
}
}
}
}
});
}
private static void loadLiveInfo(String activityId, Callback callback) {
if (mLiveActivityCallback != null) {
mLiveActivityCallback.cancel();
mLiveActivityCallback = null;
}
if (TextUtils.isEmpty(activityId)) {
callback.onState(-1, "activityId错误,获取活动信息失败", null);
return;
}
mLiveActivityCallback = new DataGenericsCallback<LiveInfo>(callback) {
@Override
public void onError(Call call, Exception e) {
if (callback == null) return;
if (e != null) Log.e("CNLiveVideo", "video error", e);
callback.onState(-2, "获取活动信息失败", null);
}
@Override
public void onResponse(LiveInfo response, Exception e) {
if (callback == null) return;
if (response != null && "0".equals(response.getErrorCode())) {
callback.onState(0, "获取活动信息成功", response);
} else if (response != null && !TextUtils.isEmpty(response.getErrorCode())) {
//请求失败 服务器错误
Log.e("DataLoad", " " + response.getErrorCode());
callback.onState(-3, "请求服务器失败 " + response.getErrorMessage(), response);
} else {
onError(null, e);
}
}
};
loadLiveInfo(activityId, mLiveActivityCallback);
}
private static void loadLiveInfo(String activityId, GenericsCallback<LiveInfo> callBack) {
String appId = Config.getAppId();
Map<String, String> map = new HashMap<>();
map.put("appId", appId);
map.put("activityId", activityId);
HttpUtils.doGetAsyn(URL_LIVE_INFO_BASE, map, callBack);
}
}