| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162 |
- package com.ytpm.hydtw.fragment
- import android.annotation.SuppressLint
- import android.os.Build
- import android.os.Bundle
- import android.os.CountDownTimer
- import android.view.Gravity
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import androidx.core.content.res.ResourcesCompat
- import androidx.fragment.app.Fragment
- import com.anythink.banner.api.ATBannerListener
- import com.anythink.banner.api.ATBannerView
- import com.anythink.core.api.ATAdConst
- import com.anythink.core.api.ATAdInfo
- import com.anythink.core.api.ATShowConfig
- import com.anythink.core.api.AdError
- import com.anythink.interstitial.api.ATInterstitial
- import com.anythink.interstitial.api.ATInterstitialListener
- import com.anythink.nativead.api.ATNative
- import com.anythink.nativead.api.ATNativeAdView
- import com.anythink.nativead.api.ATNativeEventListener
- import com.anythink.nativead.api.ATNativeNetworkListener
- import com.anythink.nativead.api.NativeAd
- import com.anythink.rewardvideo.api.ATRewardVideoAd
- import com.anythink.rewardvideo.api.ATRewardVideoListener
- import com.blankj.utilcode.util.GsonUtils
- import com.blankj.utilcode.util.LogUtils
- import com.blankj.utilcode.util.ToastUtils
- import com.blankj.utilcode.util.ToastUtils.MODE
- import com.gyf.immersionbar.ImmersionBar
- import com.ytpm.hydtw.Constants
- import com.ytpm.hydtw.R
- import com.ytpm.hydtw.adapter.MineAdapter
- import com.ytpm.hydtw.dao.Question
- import com.ytpm.hydtw.dao.Record
- import com.ytpm.hydtw.dao.UserInfo
- import com.ytpm.hydtw.databinding.FragmentDatiBinding
- import com.ytpm.hydtw.loading.GlobalLoading
- import com.ytpm.hydtw.loading.LoadingDialog
- import com.ytpm.hydtw.network.BaseRetrofit
- import com.ytpm.hydtw.network.Callback2
- import com.ytpm.hydtw.utils.DateTimeConverter
- import com.ytpm.hydtw.utils.DateTimeUtils
- import com.ytpm.hydtw.utils.GlideUtils
- import com.ytpm.hydtw.utils.MediationNativeAdUtil
- import com.ytpm.hydtw.utils.UserInfoSpUtils
- import kotlinx.coroutines.CoroutineScope
- import kotlinx.coroutines.DelicateCoroutinesApi
- import kotlinx.coroutines.Dispatchers
- import kotlinx.coroutines.GlobalScope
- import kotlinx.coroutines.Job
- import kotlinx.coroutines.cancel
- import kotlinx.coroutines.delay
- import kotlinx.coroutines.isActive
- import kotlinx.coroutines.launch
- import java.time.Instant
- import java.time.LocalDateTime
- import java.time.ZoneId
- import java.time.format.DateTimeFormatter
- class DatiFragment() : Fragment(), ATRewardVideoListener,
- ATBannerListener {
- private var mBannerView: ATBannerView? = null
- private var atNative: ATNative? = null
- private var interstitialAd: ATInterstitial? = null
- private var startAdTime: String? = null
- private var endAdTime: String? = null
- private var startBannerAdTime: String? = null
- private var endBannerAdTime: String? = null
- private var startNativeAdTime: String? = null
- private var endNativeAdTime: String? = null
- private var startInAdTime: String? = null
- private var endInAdTime: String? = null
- private var mRewardVideoAd: ATRewardVideoAd? = null
- private var job: Job? = null
- private var scope: CoroutineScope? = null
- private var useTimer: Int = 0
- private var job1: Job? = null
- private var scope1: CoroutineScope? = null
- private var inAdTime: Int = 0
- private var job2: Job? = null
- private var scope2: CoroutineScope? = null
- private var nativeAdTime: Int = 0
- private var job3: Job? = null
- private var scope3: CoroutineScope? = null
- private var getTlTime = 30
- private var pauseGetTlTime = false
- private var job4: Job? = null
- private var scope4: CoroutineScope? = null
- private var getTlShowBtnTime = 8
- private var pauseGetTlShowBtnTime = false
- private var getTlCountDownTimer: CountDownTimer? = null
- private var getTlShowBtnCountDownTimer: CountDownTimer? = null
- private var startReloadRewardVideoAd: CountDownTimer? = null
- private var questions: ArrayList<Question>? = arrayListOf()
- private lateinit var binding: FragmentDatiBinding
- private var nowIndex = 0
- private var tl = 0
- private var jrdd = 0
- private var lsdd = 0
- private var isGrDialogShow = false
- private var isGetTlDialogShow = false
- private var isGetResult = false
- private var isInAdPaunse = false
- private var loadDialog: LoadingDialog? = null
- private var loadingTime = 10
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- binding = FragmentDatiBinding.inflate(inflater)
- ImmersionBar.with(this)
- .transparentStatusBar()
- .statusBarDarkFont(true)
- .titleBar(null)
- .init()
- loadAd()
- initData()
- initUserTime()
- initInAdTime()
- // initNativeTime()
- loadBannerAd()
- loadNativeAd()
- loadInterstitial()
- initView()
- useTimer = 0
- return binding.root
- }
- private fun initView() {
- val headImg = UserInfoSpUtils().getHeadImg()
- if (headImg.isNotEmpty()) {
- context?.let {
- GlideUtils().circelImages(it, headImg, binding.dialogGettlHead)
- GlideUtils().circelImages(it, headImg, binding.fragmentDatiHead)
- GlideUtils().circelImages(it, headImg, binding.dialogSetHead)
- }
- }
- val registerTime = UserInfoSpUtils().getRegistryTime()
- val ddd = DateTimeConverter.convertToBeijingTime(registerTime, "yyyy/MM/dd HH:mm:ss")
- binding.dialogGettlRegisterTime.text = "注册时间:${ddd}"
- binding.dialogSetRegisterTime.text = "注册时间:${ddd}"
- val loginTime = UserInfoSpUtils().getLoginTime()
- val ccc = DateTimeConverter.convertToBeijingTime(loginTime, "yyyy/MM/dd HH:mm:ss")
- binding.dialogGettlLoginTime.text = "登录时间:${ccc}"
- val uid = UserInfoSpUtils().getUserId()
- binding.fragmentDatiUid.text = uid
- binding.dialogGettlUserid.text = uid
- binding.dialogSetUserid.text = uid
- val nickname = UserInfoSpUtils().getNickName()
- binding.dialogSetNickname.text = nickname
- binding.dialogGettlNickname.text = nickname
- jrdd = UserInfoSpUtils().getTodayAnswerCount()
- lsdd = UserInfoSpUtils().getHistoryAnswerCount()
- binding.jrddTv.text = "今日答题: ${jrdd}题"
- binding.lsddTv.text = "历史答题: ${lsdd}题"
- tl = UserInfoSpUtils().getPower()
- binding.tlValue.text = "体力:${tl}"
- binding.switch1.isChecked = true
- binding.switch2.isChecked = true
- startGetTlTime()
- initGetTlTime()
- binding.dialogGr.setOnClickListener {
- }
- binding.fragmentDatiGr.setOnClickListener {
- this.isGrDialogShow = !isGrDialogShow
- if (isGrDialogShow) {
- binding.dialogGr.visibility = View.VISIBLE
- } else {
- binding.dialogGr.visibility = View.GONE
- }
- }
- binding.dialogGrClose.setOnClickListener {
- this.isGrDialogShow = false
- binding.dialogGr.visibility = View.GONE
- loadBannerAd()
- loadNativeAd()
- }
- binding.getTlCl.setOnClickListener {
- if (getTlTime > 0) {
- ToastUtils.showShort("等待倒计时结束!")
- return@setOnClickListener
- }
- if (isGetTlDialogShow) {
- this.isGetTlDialogShow = false
- binding.dialgoGettlLl.visibility = View.GONE
- } else {
- this.isGetTlDialogShow = true
- binding.dialgoGettlLl.visibility = View.VISIBLE
- }
- var nowTime = ""
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val current = LocalDateTime.now()
- val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
- nowTime = current.format(formatter)
- } else {
- nowTime = DateTimeUtils.getCurrentDateTime()
- }
- binding.dialogGettlTime.text = nowTime
- startGetTlShowBtnTime()
- }
- binding.dialgoGettlLl.setOnClickListener { }
- binding.dialotGettlBtnTx.setOnClickListener {
- showAd()
- }
- binding.getTlDialogClose.setOnClickListener {
- this.isGetTlDialogShow = false
- binding.dialgoGettlLl.visibility = View.GONE
- initGetTlBtnTime()
- loadBannerAd()
- loadNativeAd()
- }
- binding.a1.setOnClickListener {
- if (isGetResult) {
- return@setOnClickListener
- }
- gameResult(0)
- }
- binding.a2.setOnClickListener {
- if (isGetResult) {
- return@setOnClickListener
- }
- gameResult(1)
- }
- initDialogGetTl()
- }
- private fun initUserTime() {
- if (job == null) {
- job = Job()
- }
- if (scope == null) {
- scope = CoroutineScope(Dispatchers.Main + job!!)
- }
- scope!!.launch {
- while (isActive) {
- useTimer++
- delay(1000)
- }
- }
- }
- private fun initInAdTime() {
- if (job1 == null) {
- job1 = Job()
- }
- if (scope1 == null) {
- scope1 = CoroutineScope(Dispatchers.Main + job1!!)
- }
- scope1!!.launch {
- while (isActive) {
- if (!isInAdPaunse) {
- inAdTime++
- if (inAdTime == 30) {
- interstitialAd?.load()
- job1?.cancel()
- scope1?.cancel()
- job1 = null
- scope1 = null
- inAdTime = 0
- }
- }
- delay(1000)
- }
- }
- }
- private fun initNativeTime() {
- if (job2 == null) {
- job2 = Job()
- }
- if (scope2 == null) {
- scope2 = CoroutineScope(Dispatchers.Main + job2!!)
- }
- scope2!!.launch {
- while (isActive) {
- nativeAdTime++
- if (nativeAdTime == 40) {
- if (atNative?.checkAdStatus()?.isLoading == false) {
- atNative?.makeAdRequest()
- }
- job2?.cancel()
- scope2?.cancel()
- job2 = null
- scope2 = null
- nativeAdTime = 0
- }
- delay(1000)
- }
- }
- }
- override fun onPause() {
- super.onPause()
- this.isInAdPaunse = true
- this.pauseGetTlShowBtnTime = true
- }
- override fun onResume() {
- super.onResume()
- this.isInAdPaunse = false
- this.pauseGetTlShowBtnTime = false
- getUserInfo()
- }
- private fun initDialogGetTl() {
- val adapter = MineAdapter(initDataAdapter())
- binding.dialgoGettlRl.adapter = adapter
- binding.dialogGettlJrdd.text = "今日答题: ${jrdd}题"
- binding.dialogGettlLsdd.text = "历史答题: ${lsdd}题"
- }
- private fun initDataAdapter(): MutableList<Record> {
- val dfdfd = UserInfoSpUtils().getAnswerRecordList()
- return dfdfd.toMutableList()
- }
- private fun answer(questionId: String, itemId: String) {
- val map = HashMap<String, Any>()
- map["duration"] = useTimer
- map["itemId"] = itemId
- map["questionId"] = questionId
- map["userId"] = UserInfoSpUtils().getUserId()
- val requestBody = BaseRetrofit.getRequestBodyByMapToJson(map)
- var url = if (Constants.isDebug) {
- Constants.ANSWER_QUESTION
- } else {
- Constants.FULL_URL_V2 + Constants.ANSWER_QUESTION
- }
- BaseRetrofit.getInstance().apiService.answerQuestion(url, requestBody)
- .enqueue(object : Callback2<Any>() {
- override fun success(body: Any?) {
- val userinfo = UserInfoSpUtils().getUserInfo()
- var answerTime = ""
- // 格式化为ISO字符串
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val instant = Instant.now()
- val formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME
- answerTime = instant.atZone(ZoneId.of("UTC")).format(formatter)
- } else {
- answerTime = DateTimeUtils.getCurrentDateTimeIso().toString()
- }
- val record = Record(answerTime)
- val ddd = UserInfoSpUtils().getUserInfo().answerRecordList as MutableList
- ddd.add(0, record)
- userinfo.answerRecordList = ddd
- userinfo.lastQuestionId = questionId
- UserInfoSpUtils().changeValue(userinfo)
- initDialogGetTl()
- useTimer = 0
- }
- override fun fail(msg: String?) {
- ToastUtils
- .make()
- .setMode(MODE.DARK)
- .setGravity(Gravity.CENTER, 0, 0)
- .setTopIcon(R.mipmap.icon_fail)
- .setDurationIsLong(true)
- .show(msg)
- }
- })
- }
- private fun addPower() {
- var url = if (Constants.isDebug) {
- Constants.ADD_POWER
- } else {
- Constants.FULL_URL_V2 + Constants.ADD_POWER
- }
- val userId = UserInfoSpUtils().getUserId()
- BaseRetrofit.getInstance().apiService.addPower(url, userId)
- .enqueue(object : Callback2<Any>() {
- override fun success(body: Any?) {
- tl++
- val user = UserInfoSpUtils().getUserInfo()
- user.power = tl
- UserInfoSpUtils().changeValue(user)
- isGetTlDialogShow = false
- binding.dialgoGettlLl.visibility = View.GONE
- changeLever()
- initGetTlBtnTime()
- initGetTlTime()
- }
- override fun fail(msg: String?) {
- ToastUtils
- .make()
- .setMode(MODE.DARK)
- .setGravity(Gravity.CENTER, 0, 0)
- .setTopIcon(R.mipmap.icon_fail)
- .setDurationIsLong(true)
- .show(msg)
- }
- })
- }
- @SuppressLint("SetTextI18n")
- private fun initGetTlTime() {
- binding.zz.visibility = View.VISIBLE
- getTlTime = 30
- binding.zz.text = "${getTlTime}s"
- getTlCountDownTimer?.start()
- }
- @SuppressLint("SetTextI18n")
- private fun initGetTlBtnTime() {
- binding.dialotGettlBtnTx.visibility = View.GONE
- binding.getTlDialogClose.visibility = View.GONE
- binding.dialgoGettlTime.visibility = View.VISIBLE
- getTlShowBtnTime = 8
- binding.dialgoGettlTime.text = "${getTlShowBtnTime}s"
- }
- private fun startGetTlShowBtnTime() {
- if (job4 == null) {
- job4 = Job()
- }
- if (scope4 == null) {
- scope4 = CoroutineScope(Dispatchers.Main + job4!!)
- }
- scope4!!.launch {
- while (isActive) {
- if (!pauseGetTlShowBtnTime) {
- getTlShowBtnTime--
- if (getTlShowBtnTime <= 0) {
- binding.dialgoGettlTime.visibility = View.GONE
- binding.dialotGettlBtnTx.visibility = View.VISIBLE
- binding.getTlDialogClose.visibility = View.VISIBLE
- job4?.cancel()
- scope4?.cancel()
- job4 = null
- scope4 = null
- getTlShowBtnTime = 8
- } else {
- binding.dialgoGettlTime.text = "${getTlShowBtnTime}s"
- }
- }
- delay(1000)
- }
- }
- //
- // if (getTlShowBtnCountDownTimer != null) {
- // return
- // }
- // this.getTlShowBtnTime = 8
- // getTlShowBtnCountDownTimer =
- // object : CountDownTimer((getTlShowBtnTime * 1000).toLong(), 1000) {
- // @SuppressLint("SetTextI18n")
- // override fun onTick(millisUntilFinished: Long) {
- // val secondsRemaining = millisUntilFinished / 1000
- // getTlShowBtnTime--
- // binding.dialgoGettlTime.text = "${secondsRemaining}s"
- // }
- //
- // override fun onFinish() {
- // getTlShowBtnTime = 0
- // binding.dialgoGettlTime.visibility = View.GONE
- // binding.dialotGettlBtnTx.visibility = View.VISIBLE
- // binding.getTlDialogClose.visibility = View.VISIBLE
- // }
- // }
- }
- private fun startGetTlTime() {
- if (getTlCountDownTimer != null) {
- return
- }
- this.getTlTime = 30
- getTlCountDownTimer = object : CountDownTimer((getTlTime * 1000).toLong(), 1000) {
- @SuppressLint("SetTextI18n")
- override fun onTick(millisUntilFinished: Long) {
- val secondsRemaining = millisUntilFinished / 1000
- getTlTime--
- binding.zz.text = "${secondsRemaining}s"
- }
- override fun onFinish() {
- getTlTime = 0
- binding.zz.visibility = View.GONE
- }
- }
- }
- private fun startReloadRewardVideoAd() {
- if (startReloadRewardVideoAd != null) {
- return
- }
- startReloadRewardVideoAd = object : CountDownTimer((loadingTime * 1000).toLong(), 1000) {
- @SuppressLint("SetTextI18n")
- override fun onTick(millisUntilFinished: Long) {
- }
- override fun onFinish() {
- ToastUtils.showShort("非法操作,请30秒后重新获取!")
- if (loadDialog?.isShowing == true) loadDialog?.dismiss()
- }
- }
- }
- private fun initLever() {
- val lastQuestionId = UserInfoSpUtils().getLastQuestionId()
- questions?.forEachIndexed { index, question ->
- if (question.questionId.equals(lastQuestionId)) {
- nowIndex = index + 1
- if (nowIndex >= (questions?.size?.minus(1)!!)) {
- nowIndex = 0
- }
- }
- }
- }
- private fun initData() {
- var url = if (Constants.isDebug) {
- Constants.GET_QUESTIONS
- } else {
- Constants.FULL_URL_V2 + Constants.GET_QUESTIONS
- }
- BaseRetrofit.getInstance().apiService.getQuestions(url).enqueue(object :
- Callback2<List<Question>>() {
- override fun success(body: List<Question>?) {
- binding.answerCl.visibility = View.VISIBLE
- questions = arrayListOf()
- body?.forEach { item ->
- if (item.itemList.size == 2) {
- questions?.add(item)
- }
- }
- if (questions.isNullOrEmpty()) {
- ToastUtils
- .make()
- .setMode(MODE.DARK)
- .setGravity(Gravity.CENTER, 0, 0)
- .setTopIcon(R.mipmap.icon_fail)
- .setDurationIsLong(true)
- .show("题目异常,请联系程序猿!")
- return
- }
- initLever()
- changeLever()
- }
- override fun fail(msg: String?) {
- ToastUtils
- .make()
- .setMode(MODE.DARK)
- .setGravity(Gravity.CENTER, 0, 0)
- .setTopIcon(R.mipmap.icon_fail)
- .setDurationIsLong(true)
- .show(msg)
- }
- })
- }
- private fun setBackGround(view: View, resId: Int) {
- view.background = ResourcesCompat.getDrawable(resources, resId, null)
- }
- @OptIn(DelicateCoroutinesApi::class)
- @SuppressLint("SetTextI18n")
- private fun gameResult(btnIndex: Int) {
- val item = questions?.get(nowIndex)
- if (item?.correctItem == item?.itemList?.get(btnIndex)?.itemId) {
- when (btnIndex) {
- 0 -> {
- setBackGround(binding.a1, R.mipmap.icon_success_anseer)
- binding.a1Result.visibility = View.VISIBLE
- setBackGround(binding.a1Result, R.mipmap.icon_success)
- }
- 1 -> {
- setBackGround(binding.a2, R.mipmap.icon_success_anseer)
- binding.a2Result.visibility = View.VISIBLE
- setBackGround(binding.a2Result, R.mipmap.icon_success)
- }
- }
- } else {
- when (btnIndex) {
- 0 -> {
- setBackGround(binding.a1, R.mipmap.icon_fail_anseer)
- binding.a1Result.visibility = View.VISIBLE
- setBackGround(binding.a1Result, R.mipmap.icon_fail)
- }
- 1 -> {
- setBackGround(binding.a2, R.mipmap.icon_fail_anseer)
- binding.a2Result.visibility = View.VISIBLE
- setBackGround(binding.a2Result, R.mipmap.icon_fail)
- }
- }
- }
- if (nowIndex == (questions?.size?.minus(1))) {
- nowIndex = 0
- } else {
- nowIndex++
- }
- jrdd++
- lsdd++
- val user = UserInfoSpUtils().getUserInfo()
- user.todayAnswerCount = jrdd
- user.historyAnswerCount = lsdd
- UserInfoSpUtils().changeValue(user)
- binding.jrddTv.text = "今日答题: ${jrdd}题"
- binding.lsddTv.text = "历史答题: ${lsdd}题"
- val questionId = item?.questionId
- val itemId = item?.itemList?.get(btnIndex)?.itemId
- if (questionId != null && itemId != null) {
- answer(questionId, itemId)
- } else {
- ToastUtils.showShort("参数异常!")
- }
- GlobalScope.launch {
- isGetResult = true
- delay(3000)
- isGetResult = false
- tl--
- val user = UserInfoSpUtils().getUserInfo()
- user.power = tl
- UserInfoSpUtils().changeValue(user)
- GlobalScope.launch(Dispatchers.Main) { changeLever() }
- }
- }
- @SuppressLint("SetTextI18n")
- private fun changeLever() {
- binding.tlValue.text = "体力:${tl}"
- binding.gkValue.text = "关卡:${nowIndex + 1}"
- setBackGround(binding.a1, R.mipmap.icon_nomal_btn)
- binding.a1Result.visibility = View.GONE
- setBackGround(binding.a2, R.mipmap.icon_nomal_btn)
- binding.a2Result.visibility = View.GONE
- val data = questions?.get(nowIndex)
- binding.content.text = data?.questionContent
- data?.itemList?.forEachIndexed { index, item ->
- when (index) {
- 0 -> binding.a1.text = item.itemContent
- 1 -> binding.a2.text = item.itemContent
- }
- }
- changeTran()
- }
- private fun changeTran() {
- if (tl <= 0) {
- binding.a1Tran.visibility = View.VISIBLE
- binding.a1.isClickable = false
- binding.a2Tran.visibility = View.VISIBLE
- binding.a2.isClickable = false
- ToastUtils.make().setTopIcon(R.mipmap.icon_fail)
- ToastUtils.showShort("体力不足,请先领取")
- } else {
- binding.a1Tran.visibility = View.GONE
- binding.a1.isClickable = true
- binding.a2Tran.visibility = View.GONE
- binding.a2.isClickable = true
- }
- }
- override fun onDestroy() {
- super.onDestroy()
- getTlCountDownTimer?.cancel()
- getTlShowBtnCountDownTimer?.cancel()
- getTlCountDownTimer = null
- getTlShowBtnCountDownTimer = null
- job?.cancel()
- scope?.cancel()
- job = null
- scope = null
- }
- private fun loadAd() {
- if (mRewardVideoAd == null) {
- mRewardVideoAd = ATRewardVideoAd(context, Constants.TAKU_REWARD_PID)
- }
- val userid = UserInfoSpUtils().getUserInfo().userId
- val userdata = UserInfoSpUtils().getUserInfo().nickName
- val localMap: MutableMap<String, Any> = HashMap()
- localMap[ATAdConst.KEY.USER_ID] = userid
- localMap[ATAdConst.KEY.USER_CUSTOM_DATA] = userdata
- mRewardVideoAd?.setLocalExtra(localMap)
- mRewardVideoAd?.setAdListener(this)
- mRewardVideoAd?.load()
- }
- private var isReload = false
- private fun showAd() {
- if (mRewardVideoAd?.isAdReady == true) {
- mRewardVideoAd?.show(activity)
- return
- }
- // 在 Fragment 中使用
- if (isAdded && activity != null && !requireActivity().isFinishing) {
- loadDialog = LoadingDialog(activity)
- loadDialog?.show()
- startReloadRewardVideoAd()
- startReloadRewardVideoAd?.start()
- }
- isReload = true
- if (mRewardVideoAd?.checkAdStatus()?.isLoading != true) mRewardVideoAd?.load()
- }
- private var isRewardedVideoFinish = false
- override fun onRewardedVideoAdLoaded() {
- LogUtils.e("DFDFDF=onRewardedVideoAdLoaded")
- startReloadRewardVideoAd?.cancel()
- startReloadRewardVideoAd = null
- if (loadDialog?.isShowing == true) loadDialog?.dismiss()
- if (isReload) showAd()
- }
- override fun onRewardedVideoAdFailed(p0: AdError?) {
- LogUtils.e("DFDFDF=onRewardedVideoAdFailed${p0?.code}")
- }
- override fun onRewardedVideoAdPlayStart(p0: ATAdInfo?) {
- isReload = false
- isRewardedVideoFinish = false
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val current = LocalDateTime.now()
- val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
- startAdTime = current.format(formatter)
- } else {
- startAdTime = DateTimeUtils.getCurrentDateTime()
- }
- mRewardVideoAd?.load()
- LogUtils.e("DFDFDF=onRewardedVideoAdPlayStart${p0.toString()}")
- }
- override fun onRewardedVideoAdPlayEnd(p0: ATAdInfo?) {
- LogUtils.e("DFDFDF=onRewardedVideoAdPlayEnd${p0.toString()}")
- isRewardedVideoFinish = true
- }
- override fun onRewardedVideoAdPlayFailed(p0: AdError?, p1: ATAdInfo?) {
- LogUtils.e("DFDFDF=onRewardedVideoAdPlayFailed${p0?.code}===${p1.toString()}")
- }
- override fun onRewardedVideoAdClosed(p0: ATAdInfo?) {
- LogUtils.e("DFDFDF=onRewardedVideoAdClosed${p0.toString()}")
- loadBannerAd()
- loadNativeAd()
- if (!isRewardedVideoFinish) {
- ToastUtils.showLong("获取奖励失败,请观看完广告再关闭!")
- }
- }
- override fun onRewardedVideoAdPlayClicked(p0: ATAdInfo?) {
- LogUtils.e("DFDFDF=onRewardedVideoAdPlayClicked${p0.toString()}")
- }
- override fun onReward(p0: ATAdInfo?) {
- isRewardedVideoFinish = true
- LogUtils.e("DFDFDF=onReward${p0.toString()}")
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val current = LocalDateTime.now()
- val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
- endAdTime = current.format(formatter)
- } else {
- endAdTime = DateTimeUtils.getCurrentDateTime()
- }
- saveRecord(p0, startAdTime.toString(), endAdTime.toString())
- }
- private fun saveRecord(p0: ATAdInfo?, startAdTime: String, endAdTime: String) {
- if (p0 == null) return
- val map = HashMap<String, Any>()
- map["adSourceId"] = p0.adsourceId.toInt()
- map["beginTime"] = startAdTime
- map["finishTime"] = endAdTime
- map["networkFormId"] = p0.networkFirmId
- map["networkName"] = p0.networkName
- map["networkPlacementId"] = p0.networkPlacementId
- map["nickName"] = UserInfoSpUtils().getNickName()
- map["placementId"] = p0.placementId
- map["recordId"] = p0.requestId
- map["revenue"] = p0.publisherRevenue.toDouble()
- map["userId"] = UserInfoSpUtils().getUserId()
- map["ecpm"] = p0.ecpm.toString()
- map["adSourceIndex"] = p0.adsourceIndex
- map["adSourceType"] = p0.adSourceAdType
- map["resultJson"] = p0.toString()
- val body = BaseRetrofit.getRequestBodyByMapToJson(map)
- var url = if (Constants.isDebug) {
- Constants.SAVE_RECORD
- } else {
- Constants.FULL_URL_V2 + Constants.SAVE_RECORD
- }
- BaseRetrofit.getInstance().apiService.saveRecord(url, body)
- .enqueue(object : Callback2<Any>() {
- override fun success(body: Any?) {
- if (p0.adSourceAdType == 1) addPower()
- LogUtils.e("dfdfdfdf广告同步成功!")
- }
- override fun fail(msg: String?) {
- ToastUtils.showShort(msg)
- }
- })
- }
- private fun loadNativeAd() {
- if (atNative == null) {
- atNative =
- ATNative(context, Constants.TAKU_NATIVE_PID, object : ATNativeNetworkListener {
- override fun onNativeAdLoaded() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val current = LocalDateTime.now()
- val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
- startNativeAdTime = current.format(formatter)
- } else {
- startNativeAdTime = DateTimeUtils.getCurrentDateTime()
- }
- val nativeAd: NativeAd? = atNative?.getNativeAd(getATShowConfig())
- nativeAd?.setNativeEventListener(object : ATNativeEventListener {
- override fun onAdImpressed(
- p0: ATNativeAdView?,
- p1: ATAdInfo?
- ) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val current = LocalDateTime.now()
- val formatter =
- DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
- endNativeAdTime = current.format(formatter)
- } else {
- endNativeAdTime = DateTimeUtils.getCurrentDateTime()
- }
- saveRecord(
- p1,
- startNativeAdTime.toString(),
- endNativeAdTime.toString()
- )
- // reloadNativeAd()
- LogUtils.e("dfdfdfdfonAdImpressed${p1.toString()}")
- }
- override fun onAdClicked(
- p0: ATNativeAdView?,
- p1: ATAdInfo?
- ) {
- LogUtils.e("dfdfdfdfonAdImpressed${p1.toString()}")
- }
- override fun onAdVideoStart(p0: ATNativeAdView?) {
- }
- override fun onAdVideoEnd(p0: ATNativeAdView?) {
- }
- override fun onAdVideoProgress(
- p0: ATNativeAdView?,
- p1: Int
- ) {
- LogUtils.e("dfdfdfdfonAdVideoProgress}")
- }
- })
- try {
- nativeAd?.renderAdContainer(binding.fragmentDatiContentAd, null)
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
- override fun onNativeAdLoadFail(adError: AdError) {
- LogUtils.e("onNativeAdLoadFail:" + adError.fullErrorInfo)
- atNative = null
- }
- })
- }
- binding.fragmentDatiContentAd.removeAllViews()
- val userid = UserInfoSpUtils().getUserInfo().userId
- val userdata = UserInfoSpUtils().getUserInfo().nickName
- val localMap: MutableMap<String, Any> = HashMap()
- localMap[ATAdConst.KEY.USER_ID] = userid
- localMap[ATAdConst.KEY.USER_CUSTOM_DATA] = userdata
- atNative?.setLocalExtra(localMap)
- if (atNative?.checkAdStatus()?.isLoading == false) atNative?.makeAdRequest()
- }
- private fun loadInterstitial() {
- interstitialAd = ATInterstitial(context, Constants.TAKU_INTERSTITIAL_PID)
- val userid = UserInfoSpUtils().getUserInfo().userId
- val userdata = UserInfoSpUtils().getUserInfo().nickName
- val localMap: MutableMap<String, Any> = HashMap()
- localMap[ATAdConst.KEY.USER_ID] = userid
- localMap[ATAdConst.KEY.USER_CUSTOM_DATA] = userdata
- interstitialAd?.setLocalExtra(localMap)
- interstitialAd?.setNativeAdCustomRender { mixNativeAd, atAdInfo ->
- MediationNativeAdUtil.getViewFromNativeAd(
- context,
- mixNativeAd,
- atAdInfo,
- true
- )
- }
- interstitialAd?.setAdListener(object : ATInterstitialListener {
- override fun onInterstitialAdLoaded() {
- LogUtils.e("==========onInterstitialAdLoaded")
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val current = LocalDateTime.now()
- val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
- startInAdTime = current.format(formatter)
- } else {
- startInAdTime = DateTimeUtils.getCurrentDateTime()
- }
- interstitialAd?.show(activity, getATShowConfig1())
- }
- override fun onInterstitialAdLoadFail(p0: AdError?) {
- LogUtils.e("===========onInterstitialAdLoadFail")
- initInAdTime()
- }
- override fun onInterstitialAdClicked(p0: ATAdInfo?) {
- LogUtils.e("===========onInterstitialAdClicked")
- }
- override fun onInterstitialAdShow(p0: ATAdInfo?) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val current = LocalDateTime.now()
- val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
- endInAdTime = current.format(formatter)
- } else {
- endInAdTime = DateTimeUtils.getCurrentDateTime()
- }
- saveRecord(p0, startInAdTime.toString(), endInAdTime.toString())
- LogUtils.e("=============onInterstitialAdShow${p0.toString()}")
- }
- override fun onInterstitialAdClose(p0: ATAdInfo?) {
- initInAdTime()
- }
- override fun onInterstitialAdVideoStart(p0: ATAdInfo?) {
- LogUtils.e("===========onInterstitialAdVideoStart")
- }
- override fun onInterstitialAdVideoEnd(p0: ATAdInfo?) {
- LogUtils.e("==============onInterstitialAdVideoEnd")
- }
- override fun onInterstitialAdVideoError(p0: AdError?) {
- LogUtils.e("==========onInterstitialAdVideoError")
- }
- })
- interstitialAd?.load()
- }
- private fun loadBannerAd() {
- mBannerView = ATBannerView(context)
- mBannerView?.setPlacementId(Constants.TAKU_BANNER_PID)
- mBannerView?.setShowConfig(getATShowConfig())
- mBannerView?.setBannerAdListener(this)
- binding.fragmentDatiBanner.removeAllViews()
- binding.fragmentDatiBanner.addView(mBannerView)
- val userid = UserInfoSpUtils().getUserInfo().userId
- val userdata = UserInfoSpUtils().getUserInfo().nickName
- val localMap: MutableMap<String, Any> = HashMap()
- localMap[ATAdConst.KEY.USER_ID] = userid
- localMap[ATAdConst.KEY.USER_CUSTOM_DATA] = userdata
- mBannerView?.setLocalExtra(localMap)
- if (mBannerView?.checkAdStatus()?.isLoading == false) mBannerView?.loadAd()
- }
- private fun getATShowConfig(): ATShowConfig {
- val builder: ATShowConfig.Builder = ATShowConfig.Builder()
- builder.scenarioId("banner_ad_show_1")
- builder.showCustomExt("banner_ad_show_custom_ext")
- return builder.build()
- }
- private fun getATShowConfig1(): ATShowConfig {
- val builder = ATShowConfig.Builder()
- builder.scenarioId("interstitial_ad_show_1")
- builder.showCustomExt("interstitial_ad_show_custom_ext")
- return builder.build()
- }
- override fun onBannerLoaded() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val current = LocalDateTime.now()
- val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
- startBannerAdTime = current.format(formatter)
- } else {
- startBannerAdTime = DateTimeUtils.getCurrentDateTime()
- }
- LogUtils.e("dfdfdf onBannerLoaded")
- }
- override fun onBannerFailed(p0: AdError?) {
- LogUtils.e("dfdfdf onBannerFailed")
- }
- override fun onBannerClicked(p0: ATAdInfo?) {
- LogUtils.e("dfdfdf onBannerClicked")
- }
- override fun onBannerShow(p0: ATAdInfo?) {
- LogUtils.e("dfdfdf onBannerShow${p0.toString()}")
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- val current = LocalDateTime.now()
- val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
- endBannerAdTime = current.format(formatter)
- } else {
- endBannerAdTime = DateTimeUtils.getCurrentDateTime()
- }
- saveRecord(p0, startBannerAdTime.toString(), endBannerAdTime.toString())
- }
- override fun onBannerClose(p0: ATAdInfo?) {
- LogUtils.e("dfdfdf onBannerClose")
- }
- override fun onBannerAutoRefreshed(p0: ATAdInfo?) {
- LogUtils.e("dfdfdf onBannerAutoRefreshed")
- }
- override fun onBannerAutoRefreshFail(p0: AdError?) {
- LogUtils.e("dfdfdf onBannerAutoRefreshFail")
- }
- private fun getUserInfo() {
- var url = if (Constants.isDebug) {
- Constants.GET_USER_INFO
- } else {
- Constants.FULL_URL_V2 + Constants.GET_USER_INFO
- }
- BaseRetrofit.getInstance().apiService.getUserInfo(url, UserInfoSpUtils().getUserId())
- .enqueue(object : Callback2<UserInfo>() {
- override fun success(body: UserInfo?) {
- body?.let { UserInfoSpUtils().putUserInfo(it) }
- jrdd = UserInfoSpUtils().getTodayAnswerCount()
- lsdd = UserInfoSpUtils().getHistoryAnswerCount()
- binding.jrddTv.text = "今日答题: ${jrdd}题"
- binding.lsddTv.text = "历史答题: ${lsdd}题"
- initDialogGetTl()
- }
- override fun fail(msg: String?) {
- ToastUtils.showShort(msg)
- }
- })
- }
- }
|