diff --git a/app/src/main/java/melody/offline/music/activity/BaseActivity.kt b/app/src/main/java/melody/offline/music/activity/BaseActivity.kt index c3398ff..f7ad2ae 100644 --- a/app/src/main/java/melody/offline/music/activity/BaseActivity.kt +++ b/app/src/main/java/melody/offline/music/activity/BaseActivity.kt @@ -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 diff --git a/app/src/main/java/melody/offline/music/activity/MainActivity.kt b/app/src/main/java/melody/offline/music/activity/MainActivity.kt index 4537e7b..f809a0d 100644 --- a/app/src/main/java/melody/offline/music/activity/MainActivity.kt +++ b/app/src/main/java/melody/offline/music/activity/MainActivity.kt @@ -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) diff --git a/app/src/main/java/melody/offline/music/activity/PlayDetailsActivity.kt b/app/src/main/java/melody/offline/music/activity/PlayDetailsActivity.kt index 27fd7f8..435287e 100644 --- a/app/src/main/java/melody/offline/music/activity/PlayDetailsActivity.kt +++ b/app/src/main/java/melody/offline/music/activity/PlayDetailsActivity.kt @@ -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() { diff --git a/app/src/main/java/melody/offline/music/http/BaseApiUtil.kt b/app/src/main/java/melody/offline/music/http/BaseApiUtil.kt index 68d5ada..e8fef25 100644 --- a/app/src/main/java/melody/offline/music/http/BaseApiUtil.kt +++ b/app/src/main/java/melody/offline/music/http/BaseApiUtil.kt @@ -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 {