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 package melody.offline.music.activity
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.LifecycleOwner 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.getAppVersionCode
import melody.offline.music.http.getCountryCode import melody.offline.music.http.getCountryCode
import melody.offline.music.service.ViewModelMain
import melody.offline.music.sp.AppStore import melody.offline.music.sp.AppStore
import melody.offline.music.util.AnalysisUtil
import melody.offline.music.util.LogTag import melody.offline.music.util.LogTag
import org.json.JSONObject import org.json.JSONObject
open class BaseActivity : AppCompatActivity(), LifecycleOwner { open class BaseActivity : AppCompatActivity(), LifecycleOwner {
protected val TAG = LogTag.VO_ACT_LOG protected val TAG = LogTag.VO_ACT_LOG
protected val appStore by lazy { AppStore(this) } protected val appStore by lazy { AppStore(this) }
private var isTaskRunning = true
private val coroutineScope = CoroutineScope(Dispatchers.Main)
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
startPeriodicCheck()
ViewModelMain.dataRemote.observe(this) {
if (withPermission()) {
isTaskRunning = false
performAction()
}
}
} }
override fun onStart() { override fun onStart() {
super.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 { fun withPermission(): Boolean {
//先判断当前配置的开关是否为true为false的话就直接进入A //先判断当前配置的开关是否为true为false的话就直接进入A
val jsonString = appStore.shouldEnterMusicPageJson//得到配置的json val jsonString = appStore.shouldEnterMusicPageJson//得到配置的json

View File

@ -12,6 +12,7 @@ import androidx.fragment.app.FragmentTransaction
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.media3.common.Player import androidx.media3.common.Player
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.force.update.drainage.UpdateUtil
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import melody.offline.music.R import melody.offline.music.R
import melody.offline.music.ads.AdPlacement import melody.offline.music.ads.AdPlacement
@ -37,13 +38,6 @@ class MainActivity : BaseActivity() {
binding = ActivityMainBinding.inflate(layoutInflater) binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
initView() initView()
ViewModelMain.dataRemote.observe(this) {
if (withPermission()) {
AnalysisUtil.logEvent(AnalysisUtil.HOME_A_TO_B)
startActivity(Intent(this, PrimaryActivity::class.java))
finish()
}
}
} }
private fun initView() { private fun initView() {
@ -53,6 +47,7 @@ class MainActivity : BaseActivity() {
override fun onResume() { override fun onResume() {
super.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_CUTTING_SONG)
LolAdWrapper.shared.loadAdIfNotCached(this, AdPlacement.INST_DOWNLOAD) 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() Toast.makeText(this, getString(R.string.data_error), Toast.LENGTH_SHORT).show()
} }
initView() initView()
ViewModelMain.dataRemote.observe(this) {
if (withPermission()) {
AnalysisUtil.logEvent(AnalysisUtil.HOME_A_TO_B)
startActivity(Intent(this, PrimaryActivity::class.java))
finish()
}
}
} }
private fun initImmersionBar() { private fun initImmersionBar() {

View File

@ -21,7 +21,7 @@ class BaseApiUtil {
const val getIPInfoUrl = "/app/common/getIPInfo" const val getIPInfoUrl = "/app/common/getIPInfo"
const val getAppDataURL = "/statistic/appdatacollection/saveAppData" 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 { private fun PostContentMessage.toJson(): String {