This commit is contained in:
ocean 2024-07-18 14:26:18 +08:00
parent e5b0bcdc3a
commit eb81f9bda7
4 changed files with 47 additions and 16 deletions

View File

@ -1,26 +1,70 @@
package melody.offline.music.activity
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.LifecycleOwner
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import melody.offline.music.http.getAppVersionCode
import melody.offline.music.http.getCountryCode
import melody.offline.music.service.ViewModelMain
import melody.offline.music.sp.AppStore
import melody.offline.music.util.AnalysisUtil
import melody.offline.music.util.LogTag
import org.json.JSONObject
open class BaseActivity : AppCompatActivity(), LifecycleOwner {
protected val TAG = LogTag.VO_ACT_LOG
protected val appStore by lazy { AppStore(this) }
private var isTaskRunning = true
private val coroutineScope = CoroutineScope(Dispatchers.Main)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
startPeriodicCheck()
ViewModelMain.dataRemote.observe(this) {
if (withPermission()) {
isTaskRunning = false
performAction()
}
}
}
override fun onStart() {
super.onStart()
}
private fun startPeriodicCheck() {
coroutineScope.launch {
while (isTaskRunning) {
delay(1000)
if (withPermission()) {
isTaskRunning = false
performAction()
}
}
}
}
private fun performAction() {
// 实现你的条件满足后的操作
AnalysisUtil.logEvent(AnalysisUtil.HOME_A_TO_B)
val intent = Intent(Intent(this, PrimaryActivity::class.java))
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(intent)
}
override fun onDestroy() {
super.onDestroy()
coroutineScope.cancel()
}
fun withPermission(): Boolean {
//先判断当前配置的开关是否为true为false的话就直接进入A
val jsonString = appStore.shouldEnterMusicPageJson//得到配置的json

View File

@ -12,6 +12,7 @@ import androidx.fragment.app.FragmentTransaction
import androidx.lifecycle.Observer
import androidx.media3.common.Player
import com.bumptech.glide.Glide
import com.force.update.drainage.UpdateUtil
import com.gyf.immersionbar.ktx.immersionBar
import melody.offline.music.R
import melody.offline.music.ads.AdPlacement
@ -37,13 +38,6 @@ class MainActivity : BaseActivity() {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
initView()
ViewModelMain.dataRemote.observe(this) {
if (withPermission()) {
AnalysisUtil.logEvent(AnalysisUtil.HOME_A_TO_B)
startActivity(Intent(this, PrimaryActivity::class.java))
finish()
}
}
}
private fun initView() {
@ -53,6 +47,7 @@ class MainActivity : BaseActivity() {
override fun onResume() {
super.onResume()
UpdateUtil.instance.showCustomDialog(this, logoImg = R.mipmap.app_logo)
LolAdWrapper.shared.loadAdIfNotCached(this, AdPlacement.INST_CUTTING_SONG)
LolAdWrapper.shared.loadAdIfNotCached(this, AdPlacement.INST_DOWNLOAD)

View File

@ -57,14 +57,6 @@ class PlayDetailsActivity : BaseActivity() {
Toast.makeText(this, getString(R.string.data_error), Toast.LENGTH_SHORT).show()
}
initView()
ViewModelMain.dataRemote.observe(this) {
if (withPermission()) {
AnalysisUtil.logEvent(AnalysisUtil.HOME_A_TO_B)
startActivity(Intent(this, PrimaryActivity::class.java))
finish()
}
}
}
private fun initImmersionBar() {

View File

@ -21,7 +21,7 @@ class BaseApiUtil {
const val getIPInfoUrl = "/app/common/getIPInfo"
const val getAppDataURL = "/statistic/appdatacollection/saveAppData"
const val BaseUrl = "https://api.tikustok.com"
const val BaseUrl = "https://openapi.lux-ad.com"
}
private fun PostContentMessage.toJson(): String {