mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-18 03:45:33 -04:00
#2238 back press works from any fragment
This commit is contained in:
parent
4519e903db
commit
3fd41facc4
@ -23,6 +23,7 @@ import android.view.ActionMode
|
|||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import androidx.appcompat.app.ActionBarDrawerToggle
|
import androidx.appcompat.app.ActionBarDrawerToggle
|
||||||
import androidx.appcompat.widget.Toolbar
|
import androidx.appcompat.widget.Toolbar
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import com.google.android.material.navigation.NavigationView
|
import com.google.android.material.navigation.NavigationView
|
||||||
import org.kiwix.kiwixmobile.core.R
|
import org.kiwix.kiwixmobile.core.R
|
||||||
import org.kiwix.kiwixmobile.core.base.BaseActivity
|
import org.kiwix.kiwixmobile.core.base.BaseActivity
|
||||||
@ -43,7 +44,7 @@ abstract class CoreMainActivity : BaseActivity(), WebViewProvider,
|
|||||||
|
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
super.onActivityResult(requestCode, resultCode, data)
|
super.onActivityResult(requestCode, resultCode, data)
|
||||||
supportFragmentManager.fragments.forEach { it.onActivityResult(requestCode, resultCode, data) }
|
activeFragments().forEach { it.onActivityResult(requestCode, resultCode, data) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onRequestPermissionsResult(
|
override fun onRequestPermissionsResult(
|
||||||
@ -52,34 +53,34 @@ abstract class CoreMainActivity : BaseActivity(), WebViewProvider,
|
|||||||
grantResults: IntArray
|
grantResults: IntArray
|
||||||
) {
|
) {
|
||||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||||
supportFragmentManager.fragments.forEach {
|
activeFragments().forEach {
|
||||||
it.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
it.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActionModeStarted(mode: ActionMode) {
|
override fun onActionModeStarted(mode: ActionMode) {
|
||||||
super.onActionModeStarted(mode)
|
super.onActionModeStarted(mode)
|
||||||
supportFragmentManager.fragments.filterIsInstance<BaseFragmentActivityExtensions>().forEach {
|
activeFragments().filterIsInstance<BaseFragmentActivityExtensions>().forEach {
|
||||||
it.onActionModeStarted(mode, this)
|
it.onActionModeStarted(mode, this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActionModeFinished(mode: ActionMode) {
|
override fun onActionModeFinished(mode: ActionMode) {
|
||||||
super.onActionModeFinished(mode)
|
super.onActionModeFinished(mode)
|
||||||
supportFragmentManager.fragments.filterIsInstance<BaseFragmentActivityExtensions>().forEach {
|
activeFragments().filterIsInstance<BaseFragmentActivityExtensions>().forEach {
|
||||||
it.onActionModeFinished(mode, this)
|
it.onActionModeFinished(mode, this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onNewIntent(intent: Intent) {
|
override fun onNewIntent(intent: Intent) {
|
||||||
super.onNewIntent(intent)
|
super.onNewIntent(intent)
|
||||||
supportFragmentManager.fragments.filterIsInstance<BaseFragmentActivityExtensions>().forEach {
|
activeFragments().filterIsInstance<BaseFragmentActivityExtensions>().forEach {
|
||||||
it.onNewIntent(intent, this)
|
it.onNewIntent(intent, this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getCurrentWebView(): KiwixWebView? {
|
override fun getCurrentWebView(): KiwixWebView? {
|
||||||
return supportFragmentManager.fragments.filterIsInstance<WebViewProvider>().firstOrNull()
|
return activeFragments().filterIsInstance<WebViewProvider>().firstOrNull()
|
||||||
?.getCurrentWebView()
|
?.getCurrentWebView()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,13 +103,19 @@ abstract class CoreMainActivity : BaseActivity(), WebViewProvider,
|
|||||||
closeNavigationDrawer()
|
closeNavigationDrawer()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
supportFragmentManager.fragments.filterIsInstance<BaseFragmentActivityExtensions>().forEach {
|
if (activeFragments().filterIsInstance<BaseFragmentActivityExtensions>().isEmpty()) {
|
||||||
|
return super.onBackPressed()
|
||||||
|
}
|
||||||
|
activeFragments().filterIsInstance<BaseFragmentActivityExtensions>().forEach {
|
||||||
if (it.onBackPressed(this) == BaseFragmentActivityExtensions.Super.ShouldCall) {
|
if (it.onBackPressed(this) == BaseFragmentActivityExtensions.Super.ShouldCall) {
|
||||||
super.onBackPressed()
|
super.onBackPressed()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun activeFragments(): MutableList<Fragment> =
|
||||||
|
supportFragmentManager.fragments
|
||||||
|
|
||||||
abstract fun navigationDrawerIsOpen(): Boolean
|
abstract fun navigationDrawerIsOpen(): Boolean
|
||||||
abstract fun closeNavigationDrawer()
|
abstract fun closeNavigationDrawer()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user