lmw
2025-02-28 3dc12ef829d9bcd6a2a85a7456eb24f304c15c66
app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt
@@ -12,17 +12,22 @@
import androidx.core.os.bundleOf
import cn.sinata.xldutils.activity.BaseActivity
import cn.sinata.xldutils.utils.SPUtils
import com.amap.api.location.AMapLocationClient
import com.amap.apis.utils.core.api.AMapUtilCoreApi
import com.sinata.xqmuse.MainActivity
import com.sinata.xqmuse.R
import com.sinata.xqmuse.JkApplication
import com.sinata.xqmuse.XQApplication
import com.sinata.xqmuse.dialog.TipDialog
import com.sinata.xqmuse.dialog.UserRuleDialog
import com.sinata.xqmuse.network.Apis
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.ui.guide.GuideActivity
import com.sinata.xqmuse.utils.Const
import com.umeng.commonsdk.UMConfigure
import kotlinx.android.synthetic.main.activity_splash.*
import org.jetbrains.anko.browse
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
import java.io.ByteArrayInputStream
import java.security.cert.CertificateException
import java.security.cert.CertificateFactory
@@ -45,18 +50,21 @@
        )
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_splash)
//        getImg()
        getImg()
        val data = intent.data
        if (data!=null){
            val url = data.toString()
            Log.e("mmp","路径:${url}")
            if (url.startsWith("jkfitness://jkcyl.cn?code=")){
                code = url.substring(url.indexOf("=")+1)
                Log.e("mmp","解析参数:code=${code}")
            }
//            if (url.startsWith("xqmuse://xqmuse.cn?mid=")){ //何健豪:不做跳转详情
//                code = url.substring(url.indexOf("=")+1)
//                Log.e("mmp","解析参数:音频id=${code}")
//            }
        }
        AMapUtilCoreApi.setCollectInfoEnable(false)
        if (SPUtils.instance().getBoolean(Const.User.IS_AGREE)){
            startNext()
            AMapLocationClient.updatePrivacyShow(this,true,true)
            AMapLocationClient.updatePrivacyAgree(this,true)
            checkNewVersion()
        }else{
            getAgreement()
        }
@@ -83,10 +91,12 @@
            userRuleDialog.arguments = bundleOf("privacy" to privacy, "user" to user)
            userRuleDialog.setDismissCallback(object : UserRuleDialog.OnDismiss {
                override fun onDismiss() {
                    if (!SPUtils.instance().getBoolean(Const.User.IS_AGREE, false))
                    if (!SPUtils.instance().getBoolean(Const.User.IS_AGREE, false)){
                        finish()
                    else
                        startNext()
                        AMapLocationClient.updatePrivacyShow(this@SplashActivity,true,true)
                        AMapLocationClient.updatePrivacyAgree(this@SplashActivity,true)
                    } else
                        checkNewVersion()
                }
            })
            userRuleDialog.show(supportFragmentManager, "rule")
@@ -95,7 +105,6 @@
    private fun getImg() {
        val map = hashMapOf<String, Any>()
        map["type"] = 1
        HttpManager.queryString(Apis.querySystemImg,map).request(this){ _, data->
            iv_img.setImageURI(data?:"")
        }
@@ -142,17 +151,59 @@
        return mm.replaceAll("")
    }
    /***
     * 判断是否第一次启动
     */
    private fun startNext(){
        (application as JkApplication).initSdk()
        UMConfigure.preInit(this,  Const.UMENG_KEY, "")
        (application as XQApplication).initSdk()
        if (SPUtils.instance().getBoolean(Const.FIRST_LAUNCH,true)){ //第一次启动显示引导页
            SPUtils.instance().put(Const.FIRST_LAUNCH,false).apply()
            startActivity<GuideActivity>()
            startActivity<MainActivity>("code" to code,"isFirst" to true)
            finish()
        }else{
            gotoMainOrLogin()
        }
    }
    /**
     * 检查更新
     */
    private fun checkNewVersion() {
        HttpManager.detailVersion().request(this,success = {_,data->
            if (data?.versionNo.isNullOrEmpty()||data!!.versionNo <= getAppVersion(this)?:"") //已经是新版本
                startNext()
            else if (data.versionNo == SPUtils.instance().getString(Const.IGNORE_VERSION)){ //已手动跳过当前版本
                startNext()
            }else
                TipDialog.show(supportFragmentManager,data.remark,object : TipDialog.OnClickCallback{
                    override fun onOk() {
                        browse(data.androidFile)
                        finish()
                    }
                    override fun onCancel() {
                        SPUtils.instance().put(Const.IGNORE_VERSION,data?.versionNo).apply()
                        startNext()
                    }
                },"立即更新","下次再说",false,"有新版本啦!")
        }){_,_->
            startNext()
        }
    }
    /**
     * 获取版本号
     * @return 当前应用的版本号
     */
    private fun getAppVersion(context: Context): String? {
        return try {
            val manager = context.packageManager
            val info = manager.getPackageInfo(context.packageName, 0)
            info.versionName
        } catch (e: Exception) {
            e.printStackTrace()
            "null"
        }
    }
@@ -160,7 +211,7 @@
     * 跳转下一步
     */
    private fun gotoMainOrLogin(){
        object : CountDownTimer(2000, 500) {
        object : CountDownTimer(1500, 500) {
            override fun onFinish() {
                startActivity<MainActivity>("code" to code)
                finish()