|
|
@ -17,7 +17,9 @@ import okhttp3.RequestBody; |
|
|
|
import xyz.fycz.myreader.application.App; |
|
|
|
import xyz.fycz.myreader.application.App; |
|
|
|
import xyz.fycz.myreader.base.observer.MySingleObserver; |
|
|
|
import xyz.fycz.myreader.base.observer.MySingleObserver; |
|
|
|
import xyz.fycz.myreader.common.URLCONST; |
|
|
|
import xyz.fycz.myreader.common.URLCONST; |
|
|
|
|
|
|
|
import xyz.fycz.myreader.entity.AdBean; |
|
|
|
import xyz.fycz.myreader.model.user.UserService; |
|
|
|
import xyz.fycz.myreader.model.user.UserService; |
|
|
|
|
|
|
|
import xyz.fycz.myreader.model.user.UserService2; |
|
|
|
import xyz.fycz.myreader.util.SharedPreUtils; |
|
|
|
import xyz.fycz.myreader.util.SharedPreUtils; |
|
|
|
import xyz.fycz.myreader.util.help.DateHelper; |
|
|
|
import xyz.fycz.myreader.util.help.DateHelper; |
|
|
|
|
|
|
|
|
|
|
@ -28,14 +30,24 @@ import xyz.fycz.myreader.util.help.DateHelper; |
|
|
|
public class AdUtils { |
|
|
|
public class AdUtils { |
|
|
|
public static final String TAG = AdUtils.class.getSimpleName(); |
|
|
|
public static final String TAG = AdUtils.class.getSimpleName(); |
|
|
|
private static boolean hasInitAd = false; |
|
|
|
private static boolean hasInitAd = false; |
|
|
|
|
|
|
|
public static AdBean adConfig; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static { |
|
|
|
|
|
|
|
String config = SharedPreUtils.getInstance(true).getString("adConfig"); |
|
|
|
|
|
|
|
adConfig = GsonExtensionsKt.getGSON().fromJson(config, AdBean.class); |
|
|
|
|
|
|
|
if (adConfig == null || adConfig.getBackAdTime() == 0) { |
|
|
|
|
|
|
|
adConfig = new AdBean(false, 20, 60); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static Single<Boolean> checkHasAd() { |
|
|
|
public static Single<Boolean> checkHasAd() { |
|
|
|
return Single.create((SingleOnSubscribe<Boolean>) emitter -> { |
|
|
|
return Single.create((SingleOnSubscribe<Boolean>) emitter -> { |
|
|
|
|
|
|
|
boolean hasAd = false; |
|
|
|
|
|
|
|
if (!adConfig.isCloud()) { |
|
|
|
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); |
|
|
|
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); |
|
|
|
String body = "type=hasAd" + UserService.makeSignalParam(); |
|
|
|
String body = "type=adConfig" + UserService2.INSTANCE.makeAuth(); |
|
|
|
RequestBody requestBody = RequestBody.create(mediaType, body); |
|
|
|
RequestBody requestBody = RequestBody.create(mediaType, body); |
|
|
|
String jsonStr = OkHttpUtils.getHtml(URLCONST.AD_URL, requestBody, "UTF-8"); |
|
|
|
String jsonStr = OkHttpUtils.getHtml(URLCONST.AD_URL, requestBody, "UTF-8"); |
|
|
|
boolean hasAd = false; |
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
JSONObject jsonObject = new JSONObject(jsonStr); |
|
|
|
JSONObject jsonObject = new JSONObject(jsonStr); |
|
|
|
int code = jsonObject.getInt("code"); |
|
|
|
int code = jsonObject.getInt("code"); |
|
|
@ -45,12 +57,18 @@ public class AdUtils { |
|
|
|
hasAd = true; |
|
|
|
hasAd = true; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
hasAd = jsonObject.getBoolean("result"); |
|
|
|
String res = jsonObject.getString("result"); |
|
|
|
|
|
|
|
SharedPreUtils.getInstance(true).putString("adConfig", res); |
|
|
|
|
|
|
|
adConfig = GsonExtensionsKt.getGSON().fromJson(res, AdBean.class); |
|
|
|
|
|
|
|
hasAd = adConfig.isHasAd(); |
|
|
|
} |
|
|
|
} |
|
|
|
Log.i(TAG, "hasAd:" + hasAd); |
|
|
|
Log.i(TAG, "hasAd:" + hasAd); |
|
|
|
} catch (JSONException e) { |
|
|
|
} catch (JSONException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
hasAd = adConfig.isHasAd(); |
|
|
|
|
|
|
|
} |
|
|
|
emitter.onSuccess(hasAd); |
|
|
|
emitter.onSuccess(hasAd); |
|
|
|
}).compose(RxUtils::toSimpleSingle); |
|
|
|
}).compose(RxUtils::toSimpleSingle); |
|
|
|
} |
|
|
|
} |
|
|
@ -58,7 +76,7 @@ public class AdUtils { |
|
|
|
public static void adRecord(String type, String name) { |
|
|
|
public static void adRecord(String type, String name) { |
|
|
|
Single.create((SingleOnSubscribe<Boolean>) emitter -> { |
|
|
|
Single.create((SingleOnSubscribe<Boolean>) emitter -> { |
|
|
|
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); |
|
|
|
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); |
|
|
|
String body = "adType=" + type + "&type=" + name + UserService.makeSignalParam(); |
|
|
|
String body = "adType=" + type + "&type=" + name + UserService2.INSTANCE.makeAuth(); |
|
|
|
RequestBody requestBody = RequestBody.create(mediaType, body); |
|
|
|
RequestBody requestBody = RequestBody.create(mediaType, body); |
|
|
|
OkHttpUtils.getHtml(URLCONST.AD_URL, requestBody, "UTF-8"); |
|
|
|
OkHttpUtils.getHtml(URLCONST.AD_URL, requestBody, "UTF-8"); |
|
|
|
emitter.onSuccess(true); |
|
|
|
emitter.onSuccess(true); |
|
|
@ -78,7 +96,7 @@ public class AdUtils { |
|
|
|
public static Single<int[]> adTimes() { |
|
|
|
public static Single<int[]> adTimes() { |
|
|
|
return Single.create((SingleOnSubscribe<int[]>) emitter -> { |
|
|
|
return Single.create((SingleOnSubscribe<int[]>) emitter -> { |
|
|
|
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); |
|
|
|
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); |
|
|
|
String body = "type=adTimes" + UserService.makeSignalParam(); |
|
|
|
String body = "type=adTimes" + UserService2.INSTANCE.makeAuth(); |
|
|
|
RequestBody requestBody = RequestBody.create(mediaType, body); |
|
|
|
RequestBody requestBody = RequestBody.create(mediaType, body); |
|
|
|
String jsonStr = OkHttpUtils.getHtml(URLCONST.AD_URL, requestBody, "UTF-8"); |
|
|
|
String jsonStr = OkHttpUtils.getHtml(URLCONST.AD_URL, requestBody, "UTF-8"); |
|
|
|
JSONObject jsonObject = new JSONObject(jsonStr); |
|
|
|
JSONObject jsonObject = new JSONObject(jsonStr); |
|
|
@ -121,6 +139,19 @@ public class AdUtils { |
|
|
|
return adTimes < 0 || todayAdCount < adTimes || bookDetailAd; |
|
|
|
return adTimes < 0 || todayAdCount < adTimes || bookDetailAd; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void backTime() { |
|
|
|
|
|
|
|
SharedPreUtils.getInstance(true).putLong("backTime", System.currentTimeMillis()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static boolean backSplashAd() { |
|
|
|
|
|
|
|
SharedPreUtils sp = SharedPreUtils.getInstance(true); |
|
|
|
|
|
|
|
Long splashAdTime = sp.getLong("splashAdTime"); |
|
|
|
|
|
|
|
Long backTime = sp.getLong("backTime"); |
|
|
|
|
|
|
|
Long currentTime = System.currentTimeMillis(); |
|
|
|
|
|
|
|
return currentTime - splashAdTime >= adConfig.getIntervalAdTime() * 60L * 1000 || |
|
|
|
|
|
|
|
currentTime - backTime >= adConfig.getBackAdTime() * 60L * 1000; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static void initAd() { |
|
|
|
public static void initAd() { |
|
|
|
/*if (!hasInitAd) { |
|
|
|
/*if (!hasInitAd) { |
|
|
|
hasInitAd = true; |
|
|
|
hasInitAd = true; |
|
|
|