From 0d334f7ba558a53286f0dd3fcf2ac8119ece9d6d Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 21 Oct 2024 12:39:31 +0200 Subject: [PATCH] fix: back gesture handling in no internet activity --- .../ui/activities/NoInternetActivity.kt | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt index df9f7412f2..af24147b64 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt @@ -3,6 +3,7 @@ package com.github.libretube.ui.activities import android.content.Intent import android.os.Bundle import androidx.activity.addCallback +import androidx.fragment.app.Fragment import androidx.fragment.app.commit import androidx.fragment.app.replace import com.github.libretube.R @@ -43,17 +44,27 @@ class NoInternetActivity : BaseActivity() { setContentView(binding.root) onBackPressedDispatcher.addCallback(this) { - supportFragmentManager.fragments.filterIsInstance() - .firstOrNull() - ?.let { - supportFragmentManager.commit { - remove(it) - } - } - ?: finishAffinity() + if (removeFragment() || removeFragment()) return@addCallback + + finishAffinity() } } + private inline fun removeFragment(): Boolean { + val fragment = supportFragmentManager.fragments.filterIsInstance() + .firstOrNull() + + if (fragment != null) { + supportFragmentManager.commit { + remove(fragment) + } + + return true + } + + return false + } + override fun onNewIntent(intent: Intent) { super.onNewIntent(intent)