From 6ede7f76efb39da8ed978e7c167ea69feb0c6e66 Mon Sep 17 00:00:00 2001 From: Li ZongYing Date: Wed, 21 Feb 2024 16:36:37 +0800 Subject: [PATCH] auto auth --- .../java/com/lizongying/mytv/MainActivity.kt | 12 +++-- .../main/java/com/lizongying/mytv/Request.kt | 49 +++++++++++++------ .../com/lizongying/mytv/SettingFragment.kt | 3 ++ 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/lizongying/mytv/MainActivity.kt b/app/src/main/java/com/lizongying/mytv/MainActivity.kt index 9f3b7b1..2b6b2a9 100644 --- a/app/src/main/java/com/lizongying/mytv/MainActivity.kt +++ b/app/src/main/java/com/lizongying/mytv/MainActivity.kt @@ -49,8 +49,6 @@ class MainActivity : FragmentActivity() { private var channelNum = true private var bootStartup = true - private var versionName = "" - init { lifecycleScope.launch(Dispatchers.IO) { val utilsJob = async(start = CoroutineStart.LAZY) { Utils.init() } @@ -87,7 +85,7 @@ class MainActivity : FragmentActivity() { bootStartup = sharedPref.getBoolean(BOOT_STARTUP, bootStartup) val packageInfo = getPackageInfo() - versionName = packageInfo.versionName + val versionName = packageInfo.versionName val versionCode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { packageInfo.longVersionCode } else { @@ -162,6 +160,11 @@ class MainActivity : FragmentActivity() { handler.postDelayed(hideMain, delayHideMain) } + fun settingActive() { + handler.removeCallbacks(hideSetting) + handler.postDelayed(hideSetting, delayHideSetting) + } + private val hideMain = Runnable { if (!mainFragment.isHidden) { supportFragmentManager.beginTransaction().hide(mainFragment).commit() @@ -268,8 +271,7 @@ class MainActivity : FragmentActivity() { Log.i(TAG, "settingFragment ${settingFragment.isVisible}") if (!settingFragment.isVisible) { settingFragment.show(supportFragmentManager, "setting") - handler.removeCallbacks(hideSetting) - handler.postDelayed(hideSetting, delayHideSetting) + settingActive() } else { handler.removeCallbacks(hideSetting) settingFragment.dismiss() diff --git a/app/src/main/java/com/lizongying/mytv/Request.kt b/app/src/main/java/com/lizongying/mytv/Request.kt index d30b93f..9acd418 100644 --- a/app/src/main/java/com/lizongying/mytv/Request.kt +++ b/app/src/main/java/com/lizongying/mytv/Request.kt @@ -36,6 +36,8 @@ class Request { private var ysp: YSP? = null private var token = "" + private var needAuth = false + // TODO onDestroy private val handler = Handler(Looper.getMainLooper()) private lateinit var btraceRunnable: BtraceRunnable @@ -54,7 +56,7 @@ class Request { } var call: Call? = null - var callAuth: Call? = null + private var callAuth: Call? = null private fun fetchAuth(tvModel: TVViewModel, cookie: String) { callAuth?.cancel() @@ -119,7 +121,7 @@ class Request { if (tvModel.getTV().needToken) { if (tvModel.tokenRetryTimes == tvModel.tokenRetryMaxTimes) { if (!tvModel.getTV().mustToken) { - fetchVideo(tvModel, cookie) + fetchAuth(tvModel, cookie) } } else { token = "" @@ -186,14 +188,17 @@ class Request { if (tvModel.getTV().needToken) { if (tvModel.tokenRetryTimes == tvModel.tokenRetryMaxTimes) { if (!tvModel.getTV().mustToken) { - fetchVideo(tvModel, cookie) +// fetchVideo(tvModel, cookie) + fetchAuth(tvModel, cookie) } } else { token = "" - fetchVideo(tvModel) +// fetchVideo(tvModel) + fetchAuth(tvModel) } } else { - fetchVideo(tvModel, cookie) +// fetchVideo(tvModel, cookie) + fetchAuth(tvModel, cookie) } } } @@ -208,14 +213,17 @@ class Request { if (tvModel.getTV().needToken) { if (tvModel.tokenRetryTimes == tvModel.tokenRetryMaxTimes) { if (!tvModel.getTV().mustToken) { - fetchVideo(tvModel, cookie) +// fetchVideo(tvModel, cookie) + fetchAuth(tvModel, cookie) } } else { token = "" - fetchVideo(tvModel) +// fetchVideo(tvModel) + fetchAuth(tvModel) } } else { - fetchVideo(tvModel, cookie) +// fetchVideo(tvModel, cookie) + fetchAuth(tvModel, cookie) } } } @@ -227,14 +235,17 @@ class Request { if (tvModel.getTV().needToken) { if (tvModel.tokenRetryTimes == tvModel.tokenRetryMaxTimes) { if (!tvModel.getTV().mustToken) { - fetchVideo(tvModel, cookie) +// fetchVideo(tvModel, cookie) + fetchAuth(tvModel, cookie) } } else { token = "" - fetchVideo(tvModel) +// fetchVideo(tvModel) + fetchAuth(tvModel) } } else { - fetchVideo(tvModel, cookie) +// fetchVideo(tvModel, cookie) + fetchAuth(tvModel, cookie) } } } @@ -323,6 +334,7 @@ class Request { Log.e(TAG, "info status error") if (tvModel.tokenRetryTimes < tvModel.tokenRetryMaxTimes) { tvModel.tokenRetryTimes++ + if (needAuth) fetchVideo(tvModel) } else { if (!tvModel.getTV().mustToken) { @@ -357,13 +369,20 @@ class Request { fun fetchData(tvModel: TVViewModel) { if (tvModel.getTV().needToken) { -// fetchVideo(tvModel) - fetchAuth(tvModel) + if (needAuth) { + fetchAuth(tvModel) + } else { + fetchVideo(tvModel) + } } else { val cookie = "versionName=99.99.99; versionCode=999999; vplatform=109; platformVersion=Chrome; deviceModel=120; appid=1400421205" -// fetchVideo(tvModel, cookie) - fetchAuth(tvModel, cookie) + + if (needAuth) { + fetchAuth(tvModel, cookie) + } else { + fetchVideo(tvModel, cookie) + } } } diff --git a/app/src/main/java/com/lizongying/mytv/SettingFragment.kt b/app/src/main/java/com/lizongying/mytv/SettingFragment.kt index 87889ae..d713772 100644 --- a/app/src/main/java/com/lizongying/mytv/SettingFragment.kt +++ b/app/src/main/java/com/lizongying/mytv/SettingFragment.kt @@ -40,18 +40,21 @@ class SettingFragment( switchChannelReversal?.isChecked = channelReversal switchChannelReversal?.setOnCheckedChangeListener { _, isChecked -> (activity as MainActivity).saveChannelReversal(isChecked) + (activity as MainActivity).settingActive() } val switchChannelNum = _binding?.switchChannelNum switchChannelNum?.isChecked = channelNum switchChannelNum?.setOnCheckedChangeListener { _, isChecked -> (activity as MainActivity).saveChannelNum(isChecked) + (activity as MainActivity).settingActive() } val switchBootStartup = _binding?.switchBootStartup switchBootStartup?.isChecked = bootStartup switchBootStartup?.setOnCheckedChangeListener { _, isChecked -> (activity as MainActivity).saveBootStartup(isChecked) + (activity as MainActivity).settingActive() } updateManager = UpdateManager(context, this, versionCode)