Merge pull request #6764 from Bnyro/master

fix: sleep timer doesn't work if playing downloads offline
This commit is contained in:
Bnyro 2024-11-18 19:00:17 +01:00 committed by GitHub
commit e9a0d24411
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -6,7 +6,8 @@ import android.os.Looper
import android.os.Process import android.os.Process
import androidx.core.os.postDelayed import androidx.core.os.postDelayed
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.ui.activities.MainActivity import com.github.libretube.helpers.ContextHelper
import com.github.libretube.ui.base.BaseActivity
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import java.util.Timer import java.util.Timer
import kotlin.concurrent.scheduleAtFixedRate import kotlin.concurrent.scheduleAtFixedRate
@ -45,9 +46,9 @@ object SleepTimer {
private fun showTimerEndedSnackBar(context: Context) { private fun showTimerEndedSnackBar(context: Context) {
var killApp = true var killApp = true
val mainActivity = context as? MainActivity ?: return val activity = ContextHelper.unwrapActivity<BaseActivity>(context)
val snackBar = Snackbar.make( val snackBar = Snackbar.make(
mainActivity.binding.root, activity.window.decorView.rootView,
R.string.take_a_break, R.string.take_a_break,
Snackbar.LENGTH_INDEFINITE Snackbar.LENGTH_INDEFINITE
) )
@ -64,8 +65,8 @@ object SleepTimer {
handler.postDelayed(REACTION_INTERVAL * 1000) { handler.postDelayed(REACTION_INTERVAL * 1000) {
if (killApp) { if (killApp) {
// kill the application // kill the application
mainActivity.finishAffinity() activity.finishAffinity()
mainActivity.finish() activity.finish()
Process.killProcess(Process.myPid()) Process.killProcess(Process.myPid())
} }
} }