461 lines
23 KiB
Plaintext
461 lines
23 KiB
Plaintext
package com.novelbook.android.netutils;
|
|
|
|
import android.Manifest;
|
|
import android.app.Activity;
|
|
import android.content.Context;
|
|
import android.net.ConnectivityManager;
|
|
import android.net.NetworkInfo;
|
|
import android.os.Build;
|
|
import android.text.TextUtils;
|
|
import android.util.Log;
|
|
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.JsonObject;
|
|
import com.novelbook.android.AD.toutiao.TTAdManagerHolder;
|
|
import com.novelbook.android.BookActivity;
|
|
import com.novelbook.android.BuildConfig;
|
|
import com.novelbook.android.Main2Activity;
|
|
import com.novelbook.android.MyApp;
|
|
import com.novelbook.android.bean.AdSetting;
|
|
import com.novelbook.android.db.Novel;
|
|
import com.novelbook.android.netsubscribe.BookSubscribe;
|
|
import com.novelbook.android.upgrade.UpdateManager;
|
|
import com.novelbook.android.utils.CommonUtil;
|
|
import com.novelbook.android.utils.Config;
|
|
import com.novelbook.android.utils.Constants;
|
|
import com.novelbook.android.utils.GsonUtil;
|
|
|
|
import org.json.JSONException;
|
|
import org.json.JSONObject;
|
|
|
|
import java.util.Date;
|
|
import java.util.Random;
|
|
|
|
import okhttp3.Call;
|
|
|
|
import static com.novelbook.android.FileActivity.EXTERNAL_STORAGE_REQ_CODE;
|
|
|
|
|
|
/**
|
|
* Created by 眼神 on 2018/3/27.
|
|
* 网络请求工具类
|
|
*/
|
|
public class NetUtil {
|
|
|
|
private static final String TAG= NetUtil.class.getSimpleName();
|
|
public static int currentRequestTag =0;
|
|
public static String hosts;
|
|
public static boolean isRequestHosts;
|
|
/* public static String getUrl(String key){
|
|
|
|
try {
|
|
JSONObject jsonObject = getHost();
|
|
if(jsonObject==null && key == "/api/g"){
|
|
return URLConstant.getRootUrl();
|
|
}
|
|
RandomHost rh = new RandomHost(jsonObject,key);
|
|
String url = rh.next();
|
|
if(!url.endsWith("/api/")){
|
|
url+="/api/";
|
|
}
|
|
return url;
|
|
} catch (JSONException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return "";
|
|
}*/
|
|
|
|
public static boolean isHostExpires(){
|
|
|
|
if(Constants.LAST_G==0){
|
|
return false;
|
|
}
|
|
long t =Constants.MAXAGE_G*1000 - (new Date().getTime() - Constants.LAST_G ) ;
|
|
Log.d(TAG, "HttpMethods intercept isHostExpires: time left is " +CommonUtil.getTimeCnt4Read(t,true));
|
|
|
|
// t=0;
|
|
return t < 0;
|
|
}
|
|
|
|
public static JSONObject getHost(boolean isMainApi) {
|
|
JSONObject jsonObject=null;
|
|
if(!isMainApi && isHostExpires()){
|
|
Log.d(TAG, String.format("HttpMethods intercept isHostExpires prepare book: main API maxAge %s, is expired, loading main API again ",CommonUtil.getTimeCnt4Read(Constants.MAXAGE_G*1000,true)));
|
|
getHostPolicy();
|
|
}
|
|
if (TextUtils.isEmpty(hosts)) {
|
|
Config config = Config.getInstance();
|
|
hosts = config.getBaseUrl();
|
|
Log.d(TAG, " hostconfig gethosts " +hosts);
|
|
if(TextUtils.isEmpty(hosts)){
|
|
return null;
|
|
}
|
|
}
|
|
try {
|
|
jsonObject = new JSONObject(hosts);
|
|
|
|
if (jsonObject != null && TextUtils.isEmpty(Constants.announcement)) {
|
|
|
|
initHostConstants(jsonObject);
|
|
}
|
|
} catch (JSONException e) {
|
|
e.printStackTrace();
|
|
}
|
|
Log.d(TAG, "getUrl: host is " + hosts);
|
|
if (TextUtils.isEmpty(hosts)) {
|
|
Log.e(TAG, "getHosts: error on get hosts");
|
|
}
|
|
|
|
|
|
return jsonObject;
|
|
}
|
|
/**
|
|
* 判断是否有网络连接
|
|
*
|
|
* @return
|
|
*/
|
|
public static boolean isNetworkConnected() {
|
|
|
|
ConnectivityManager mConnectivityManager = (ConnectivityManager) MyApp.applicationContext
|
|
.getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
NetworkInfo mNetworkInfo = mConnectivityManager
|
|
.getActiveNetworkInfo();
|
|
if (mNetworkInfo != null) {
|
|
return mNetworkInfo.isAvailable();
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 判断WIFI网络是否可用
|
|
*
|
|
* @param context
|
|
* @return
|
|
*/
|
|
public static boolean isWifiConnected(Context context) {
|
|
if (context != null) {
|
|
ConnectivityManager mConnectivityManager = (ConnectivityManager) MyApp.applicationContext
|
|
.getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
NetworkInfo mWiFiNetworkInfo = mConnectivityManager
|
|
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
|
|
if (mWiFiNetworkInfo != null) {
|
|
return mWiFiNetworkInfo.isAvailable();
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
public static boolean isWiFiActive() {
|
|
ConnectivityManager connectivity = (ConnectivityManager) MyApp.applicationContext
|
|
.getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
if (connectivity != null) {
|
|
NetworkInfo[] info = connectivity.getAllNetworkInfo();
|
|
if (info != null) {
|
|
for (int i = 0; i < info.length; i++) {
|
|
if (info[i].getTypeName().equals("WIFI") && info[i].isConnected()) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* 获取当前网络连接的类型信息
|
|
*
|
|
* @return
|
|
*/
|
|
public static int getConnectedType() {
|
|
if ( MyApp.applicationContext != null) {
|
|
ConnectivityManager mConnectivityManager = (ConnectivityManager) MyApp.applicationContext
|
|
.getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
|
|
if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {
|
|
return mNetworkInfo.getType();
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
public static void cancelRequest(int tag) {
|
|
currentRequestTag =tag;
|
|
for (Call call : HttpMethods.getOkClient().dispatcher().queuedCalls()) {
|
|
Log.d(TAG, String.format("cancelRequest: queuedCalls ,request url %s, request TAG %s ,current Tag ",call.request().url(), call.request().tag(),tag));
|
|
if (!call.request().tag().equals(tag))
|
|
call.cancel();
|
|
}
|
|
|
|
//B) go through the running calls and cancel if the tag matches:
|
|
for (Call call : HttpMethods.getOkClient().dispatcher().runningCalls()) {
|
|
Log.d(TAG, String.format("cancelRequest: request url %s, request TAG %s ,current Tag %s",call.request().url(), call.request().tag(),tag));
|
|
if (call.request().tag()!=null && !call.request().tag().equals(tag)) {
|
|
call.cancel();
|
|
Log.d(TAG, String.format("cancelRequest: request url %s, request TAG %s ,current Tag %s, canceled.",call.request().url(), call.request().tag(),tag));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public static String getUserAgent(){
|
|
String[] uas = {
|
|
/*// Opera
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60",
|
|
"Opera/8.0 (Windows NT 5.1; U; en)",
|
|
"Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50",
|
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50",
|
|
// Firefox
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0",
|
|
"Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10",
|
|
// Safari
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
|
|
// chrome
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36",
|
|
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11",
|
|
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16",
|
|
// 360
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
|
|
// 淘宝浏览器
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11",
|
|
// 猎豹浏览器
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER",
|
|
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)",
|
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)",
|
|
// QQ浏览器
|
|
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)",
|
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
|
|
// sogou浏览器
|
|
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0",
|
|
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)",
|
|
// maxthon浏览器
|
|
*/
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.2357.134 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2848.83 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
|
|
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4094.1 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2864.75 Safari/537.36",
|
|
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2894.32 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2637.97 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2770.24 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0",
|
|
"Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2955.47 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2981.31 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2672.36 Safari/537.36",
|
|
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
|
|
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2912.2 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2956.56 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2812.77 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2650.71 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2624.94 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2690.7 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2842.56 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2963.76 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2641.13 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2632.57 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2932.36 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2635.65 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2642.10 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2945.41 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2975.95 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2884.62 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2843.16 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0",
|
|
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2938.72 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2660.98 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2650.44 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2635.83 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2963.74 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2682.72 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2635.64 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2915.8 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 5.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2624.61 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2975.60 Safari/537.36",
|
|
"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2862.8 Safari/537.36"
|
|
|
|
};
|
|
|
|
return uas[new Random().nextInt(uas.length-1)];
|
|
// return"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36";
|
|
// return "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36";
|
|
}
|
|
|
|
public static String getCoverUrl(String url){
|
|
if (!TextUtils.isEmpty(url)) {
|
|
if(!TextUtils.isEmpty(url) ){
|
|
if(url.startsWith("//")){
|
|
url ="http:"+url;
|
|
}
|
|
}
|
|
|
|
}
|
|
return url;
|
|
}
|
|
|
|
public static String getUserAgent(Context context) {
|
|
String userAgent = "";
|
|
// APP版本
|
|
String versionName = CommonUtil.getVersionName(context);
|
|
// 手机型号
|
|
String systemModel = CommonUtil.getSystemModel();
|
|
// 系统版本
|
|
String systemVersion = CommonUtil.getSystemVersion();
|
|
String deviceBrand = CommonUtil.getDeviceBrand();
|
|
String packagenm = CommonUtil.getPackageName(context);
|
|
|
|
String channel =CommonUtil.getChannel(context);// BuildConfig.CHANNEL;
|
|
userAgent = "Android/" +channel +"/"+ versionName + "/"+packagenm+"/" + deviceBrand + "/" + systemModel + "/" + systemVersion;
|
|
return userAgent;
|
|
}
|
|
|
|
|
|
public static void getHostPolicy(){
|
|
Log.d(TAG, " hostconfig is in ... isRequestHosts? "+isRequestHosts );
|
|
if(isRequestHosts){
|
|
return;
|
|
}
|
|
isRequestHosts =true;
|
|
BookSubscribe.getMastDomain(new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
|
@Override
|
|
public void onSuccess(String result) {
|
|
|
|
// mFirstPage= gson.fromJson(result, FirstPage.class);
|
|
try {
|
|
JSONObject jsonObject = new JSONObject(result);
|
|
String resultstr = jsonObject.getString("hosts");
|
|
Config config =Config.createConfig(MyApp.applicationContext);
|
|
config.setBaseUrl(resultstr);
|
|
Log.d(TAG, " hostconfig sethosts " +resultstr);
|
|
//config.setBaseUrl(resultstr);
|
|
hosts="";
|
|
Constants.LAST_G = new Date().getTime();
|
|
String ads = jsonObject.getString("adsenseSetting");
|
|
config.setAdSetting(ads);
|
|
Gson gson = new Gson();
|
|
Constants.AD_SETTING = gson.fromJson(ads, AdSetting.class);
|
|
|
|
if (Constants.AD_SETTING.isShowAdsense() ) {
|
|
TTAdManagerHolder.init(MyApp.applicationContext);
|
|
}
|
|
initHostConstants(jsonObject);
|
|
Constants.PRE_LOAD_CHAPT = jsonObject.getBoolean("preLoadChapter");
|
|
config.setPreLoadChapter(Constants.PRE_LOAD_CHAPT);
|
|
// Constants.minVersion =
|
|
// config.setRootUrl( jsonObject.getString("masterDomains"));
|
|
isRequestHosts =false;
|
|
|
|
Constants.SHOW_NOVEL_CHAPTER_URL = jsonObject.getBoolean("showTargetSiteChatperUrl");
|
|
Constants.DECLARE =jsonObject.getString("disclaimer");
|
|
config.setShowChaptUrl( Constants.SHOW_NOVEL_CHAPTER_URL);
|
|
config.setDeclare( Constants.DECLARE );
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onFault(String errorMsg) {
|
|
//失败
|
|
Log.d(TAG, "error on get firstpage: " + errorMsg);
|
|
isRequestHosts =false;
|
|
}
|
|
}, MyApp.applicationContext));
|
|
}
|
|
|
|
static long lastUpgradCheck =0;
|
|
static void initHostConstants( JSONObject jsonObject ) throws JSONException {
|
|
Constants.announcement = jsonObject.getString("declare");
|
|
Constants.email = jsonObject.getString("email");
|
|
String tmp = jsonObject.getString("upgradeUrl");
|
|
Constants.updateUrl = TextUtils.isEmpty(tmp) ? Constants.updateUrl : tmp;
|
|
Constants.minVersion = jsonObject.getInt("minVersion");
|
|
//if(jsonObject.has("showTargetSiteChatperUrl")) {
|
|
|
|
//}
|
|
Constants.version = CommonUtil.getVersionCode(MyApp.applicationContext);
|
|
if (lastUpgradCheck == 0 || Constants.version < Constants.minVersion) {
|
|
lastUpgradCheck = new Date().getTime();
|
|
checkUpdate(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Gson gson = new Gson();
|
|
// AdSetting ads = gson.fromJson(adStr, AdSetting.class);
|
|
|
|
/* Constants.AD_SPLASH_INVTERVAL = (long) 1000 * ads.getInt("splashInterval");
|
|
Constants.AD_SPLASH_PAGES = ads.getInt("splashPageCount");
|
|
Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT = ads.getInt("times4ChapterTopBanner");
|
|
Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT = ads.getInt("times4ChapterContentBanner");
|
|
|
|
Constants.AD_SPLASH_SOURCE = ads.getInt("splashSource");
|
|
Constants.AD_UNIFIED_RECYCLE_SOURCE = ads.getInt("unifiedReceycleSource");
|
|
Constants.AD_NATIVE_BANNER_SOURCE = ads.getInt("nativeBannerSource");
|
|
Constants.AD_BANNER_SOURCE = ads.getInt("bannerSource");
|
|
|
|
if (Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT > 1 && Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT == Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT) {
|
|
Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT--; //顶部广告和页内广告要错开
|
|
}
|
|
|
|
Log.d(TAG, String.format("initHostConstants: Constants.AD_SPLASH_INVTERVAL %s,AD_SPLASH_PAGES %s", Constants.AD_SPLASH_INVTERVAL, Constants.AD_SPLASH_PAGES));
|
|
*/
|
|
|
|
// try {
|
|
|
|
// }catch (Exception er){
|
|
// Log.e(TAG, "initHostConstants: update error ",er );
|
|
// }
|
|
|
|
/*
|
|
Config config = Config.getInstance();
|
|
Constants.SHOWAD = ads.getBoolean("showAdsense");
|
|
|
|
|
|
config.setShowAd(Constants.SHOWAD);
|
|
config.setAdTopBannerRate(Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT);
|
|
config.setAdNativeBannerInLinesRate(Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT);
|
|
config.setAdSplashSource(Constants.AD_SPLASH_SOURCE);
|
|
config.setAdUnifiedRecycleSource(Constants.AD_UNIFIED_RECYCLE_SOURCE);
|
|
config.setAdNativeBannerSource(Constants.AD_NATIVE_BANNER_SOURCE);
|
|
config.setAdBannerSource(Constants.AD_BANNER_SOURCE);
|
|
|
|
Log.d(TAG, String.format("initHostConstants: Constants.AD_SPLASH_INVTERVAL %s,AD_SPLASH_PAGES %s, Constants.SHOWAD %s,Constants.AD_PRE_LOAD_CHAPT %s "
|
|
, Constants.AD_SPLASH_INVTERVAL, Constants.AD_SPLASH_PAGES, Constants.SHOWAD, Constants.PRE_LOAD_CHAPT));
|
|
*/
|
|
|
|
}
|
|
public static void checkUpdate(boolean isSilence){
|
|
|
|
Activity currentActivity = MyApp.getCurrentActivity();
|
|
if(currentActivity==null){
|
|
return;
|
|
}
|
|
UpdateManager manager = new UpdateManager(currentActivity);
|
|
if(isSilence)
|
|
manager.checkUpdateSilence();
|
|
else
|
|
manager.checkUpdate();
|
|
}
|
|
}
|