parent
fd927c3bd4
commit
389d80bd76
@ -0,0 +1,134 @@ |
|||||||
|
package xyz.fycz.myreader.util.utils; |
||||||
|
|
||||||
|
import android.util.Log; |
||||||
|
|
||||||
|
|
||||||
|
import com.weaction.ddsdk.base.DdSdkHelper; |
||||||
|
|
||||||
|
import org.json.JSONArray; |
||||||
|
import org.json.JSONException; |
||||||
|
import org.json.JSONObject; |
||||||
|
|
||||||
|
import io.reactivex.Single; |
||||||
|
import io.reactivex.SingleEmitter; |
||||||
|
import io.reactivex.SingleOnSubscribe; |
||||||
|
import io.reactivex.annotations.NonNull; |
||||||
|
import okhttp3.MediaType; |
||||||
|
import okhttp3.RequestBody; |
||||||
|
import xyz.fycz.myreader.application.App; |
||||||
|
import xyz.fycz.myreader.base.observer.MySingleObserver; |
||||||
|
import xyz.fycz.myreader.common.URLCONST; |
||||||
|
import xyz.fycz.myreader.model.backup.UserService; |
||||||
|
import xyz.fycz.myreader.util.DateHelper; |
||||||
|
import xyz.fycz.myreader.util.SharedPreUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author fengyue |
||||||
|
* @date 2021/4/22 19:00 |
||||||
|
*/ |
||||||
|
public class AdUtils { |
||||||
|
public static final String TAG = AdUtils.class.getSimpleName(); |
||||||
|
private static boolean hasInitAd = false; |
||||||
|
|
||||||
|
public static Single<Boolean> checkHasAd() { |
||||||
|
return Single.create((SingleOnSubscribe<Boolean>) emitter -> { |
||||||
|
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); |
||||||
|
String body = "type=hasAd" + UserService.makeSignalParam(); |
||||||
|
RequestBody requestBody = RequestBody.create(mediaType, body); |
||||||
|
String jsonStr = OkHttpUtils.getHtml(URLCONST.AD_URL, requestBody, "UTF-8"); |
||||||
|
boolean hasAd = false; |
||||||
|
try { |
||||||
|
JSONObject jsonObject = new JSONObject(jsonStr); |
||||||
|
int code = jsonObject.getInt("code"); |
||||||
|
if (code > 200) { |
||||||
|
Log.e(TAG, "checkHasAd-->errorCode:" + code); |
||||||
|
if (code == 213) { |
||||||
|
hasAd = true; |
||||||
|
} |
||||||
|
} else { |
||||||
|
hasAd = jsonObject.getBoolean("result"); |
||||||
|
} |
||||||
|
Log.i(TAG, "hasAd:" + hasAd); |
||||||
|
} catch (JSONException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
emitter.onSuccess(hasAd); |
||||||
|
}).compose(RxUtils::toSimpleSingle); |
||||||
|
} |
||||||
|
|
||||||
|
public static void adRecord(String type, String name) { |
||||||
|
Single.create((SingleOnSubscribe<Boolean>) emitter -> { |
||||||
|
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); |
||||||
|
String body = "adType=" + type + "&type=" + name + UserService.makeSignalParam(); |
||||||
|
RequestBody requestBody = RequestBody.create(mediaType, body); |
||||||
|
OkHttpUtils.getHtml(URLCONST.AD_URL, requestBody, "UTF-8"); |
||||||
|
emitter.onSuccess(true); |
||||||
|
}).compose(RxUtils::toSimpleSingle).subscribe(new MySingleObserver<Boolean>() { |
||||||
|
@Override |
||||||
|
public void onSuccess(@NonNull Boolean aBoolean) { |
||||||
|
Log.i(TAG, name + "上报成功"); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onError(Throwable e) { |
||||||
|
Log.e(TAG, name + "上报失败\n" + e.getLocalizedMessage()); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
public static Single<int[]> adTimes() { |
||||||
|
return Single.create((SingleOnSubscribe<int[]>) emitter -> { |
||||||
|
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); |
||||||
|
String body = "type=adTimes" + UserService.makeSignalParam(); |
||||||
|
RequestBody requestBody = RequestBody.create(mediaType, body); |
||||||
|
String jsonStr = OkHttpUtils.getHtml(URLCONST.AD_URL, requestBody, "UTF-8"); |
||||||
|
JSONObject jsonObject = new JSONObject(jsonStr); |
||||||
|
int[] adTimes = new int[]{-1, 3, 5}; |
||||||
|
try { |
||||||
|
int code = jsonObject.getInt("code"); |
||||||
|
JSONArray adTimesArr = jsonObject.getJSONArray("result"); |
||||||
|
Log.i(TAG, "adTimesArr:" + adTimesArr.toString()); |
||||||
|
if (code > 200) { |
||||||
|
Log.e(TAG, "adTimes-->errorCode:" + code); |
||||||
|
if (code == 213) { |
||||||
|
adTimes = new int[]{-1}; |
||||||
|
} |
||||||
|
} else { |
||||||
|
adTimes = new int[adTimesArr.length()]; |
||||||
|
for (int i = 0; i < adTimesArr.length(); i++) { |
||||||
|
adTimes[i] = adTimesArr.getInt(i); |
||||||
|
} |
||||||
|
} |
||||||
|
} catch (JSONException e) { |
||||||
|
e.printStackTrace(); |
||||||
|
} |
||||||
|
emitter.onSuccess(adTimes); |
||||||
|
}).compose(RxUtils::toSimpleSingle); |
||||||
|
} |
||||||
|
|
||||||
|
public static boolean checkTodayShowAd() { |
||||||
|
SharedPreUtils spu = SharedPreUtils.getInstance(); |
||||||
|
String splashAdCount = spu.getString("splashAdCount"); |
||||||
|
boolean bookDetailAd = spu.getBoolean("bookDetailAd", true); |
||||||
|
int adTimes = spu.getInt("curAdTimes", 3); |
||||||
|
String[] splashAdCounts = splashAdCount.split(":"); |
||||||
|
String today = DateHelper.getYearMonthDay1(); |
||||||
|
int todayAdCount; |
||||||
|
if (today.equals(splashAdCounts[0])) { |
||||||
|
todayAdCount = Integer.parseInt(splashAdCounts[1]); |
||||||
|
} else { |
||||||
|
todayAdCount = 0; |
||||||
|
} |
||||||
|
return adTimes < 0 || todayAdCount < adTimes || bookDetailAd; |
||||||
|
} |
||||||
|
|
||||||
|
public static void initAd() { |
||||||
|
if (!hasInitAd) { |
||||||
|
hasInitAd = true; |
||||||
|
DdSdkHelper.init("1234", "216", "51716a16fbdf50905704b6575b1b3b60", |
||||||
|
"142364", "35ce0efe5f3cc960b116db227498e238", |
||||||
|
"8167", "85bd159309c3da1b", |
||||||
|
App.getApplication(), true); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue