diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt index 41bc521db..b5db04d78 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt @@ -51,6 +51,7 @@ import org.kiwix.kiwixmobile.core.R.string import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions import org.kiwix.kiwixmobile.core.dao.NewBookDao import org.kiwix.kiwixmobile.core.downloader.downloadManager.DOWNLOAD_NOTIFICATION_TITLE +import org.kiwix.kiwixmobile.core.extensions.setTopMarginToViewForEdgeToEdgeMode import org.kiwix.kiwixmobile.core.extensions.toast import org.kiwix.kiwixmobile.core.main.ACTION_NEW_TAB import org.kiwix.kiwixmobile.core.main.CoreMainActivity @@ -122,10 +123,13 @@ class KiwixMainActivity : CoreMainActivity() { setContentView(activityKiwixMainBinding.root) navController.addOnDestinationChangedListener(finishActionModeOnDestinationChange) - activityKiwixMainBinding.drawerNavView.setupWithNavController(navController) - activityKiwixMainBinding.drawerNavView.setNavigationItemSelectedListener { item -> - closeNavigationDrawer() - onNavigationItemSelected(item) + activityKiwixMainBinding.drawerNavView.apply { + setupWithNavController(navController) + setNavigationItemSelectedListener { item -> + closeNavigationDrawer() + onNavigationItemSelected(item) + } + setTopMarginToViewForEdgeToEdgeMode() } activityKiwixMainBinding.bottomNavView.setupWithNavController(navController) lifecycleScope.launch { @@ -134,6 +138,7 @@ class KiwixMainActivity : CoreMainActivity() { handleZimFileIntent(intent) handleNotificationIntent(intent) handleGetContentIntent(intent) + readerTableOfContentsDrawer.setTopMarginToViewForEdgeToEdgeMode() } private suspend fun migrateInternalToPublicAppDirectory() { diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/base/BaseFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/base/BaseFragment.kt index 4f6158936..bd3970a0e 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/base/BaseFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/base/BaseFragment.kt @@ -21,16 +21,14 @@ package org.kiwix.kiwixmobile.core.base import android.content.Context import android.os.Bundle import android.view.View -import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar -import androidx.core.view.ViewCompat -import androidx.core.view.WindowInsetsCompat import androidx.fragment.app.Fragment import org.kiwix.kiwixmobile.core.R import org.kiwix.kiwixmobile.core.extensions.enableEdgeToEdgeMode import org.kiwix.kiwixmobile.core.extensions.getToolbarNavigationIcon import org.kiwix.kiwixmobile.core.extensions.setToolTipWithContentDescription +import org.kiwix.kiwixmobile.core.extensions.setTopMarginToViewForEdgeToEdgeMode /** * All fragments should inherit from this fragment. @@ -52,15 +50,7 @@ abstract class BaseFragment : Fragment() { super.onViewCreated(view, savedInstanceState) enableEdgeToEdgeMode() setupToolbar() - this.view?.let { - ViewCompat.setOnApplyWindowInsetsListener(it) { view, windowInsets -> - val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) - val layoutParams = view.layoutParams as? ViewGroup.MarginLayoutParams - layoutParams?.topMargin = insets.top - view.layoutParams = layoutParams - WindowInsetsCompat.CONSUMED - } - } + this.view.setTopMarginToViewForEdgeToEdgeMode() } // Setup toolbar to handle common back pressed event diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ViewExtensions.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ViewExtensions.kt index 9584c3228..900c53e4f 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ViewExtensions.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ViewExtensions.kt @@ -21,10 +21,12 @@ package org.kiwix.kiwixmobile.core.extensions import android.annotation.SuppressLint import android.os.Build import android.view.View +import android.view.ViewGroup import android.view.Window import android.view.WindowManager import androidx.annotation.ColorInt import androidx.appcompat.widget.TooltipCompat +import androidx.core.view.ViewCompat import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsControllerCompat @@ -119,3 +121,15 @@ fun View.closeFullScreenMode(window: Window) { clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) } } + +fun View?.setTopMarginToViewForEdgeToEdgeMode() { + this?.let { + ViewCompat.setOnApplyWindowInsetsListener(it) { view, windowInsets -> + val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) + val layoutParams = view.layoutParams as? ViewGroup.MarginLayoutParams + layoutParams?.topMargin = insets.top + view.layoutParams = layoutParams + WindowInsetsCompat.CONSUMED + } + } +} diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomMainActivity.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomMainActivity.kt index 5721c21e6..a04a3bf90 100644 --- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomMainActivity.kt +++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomMainActivity.kt @@ -38,6 +38,7 @@ import org.kiwix.kiwixmobile.custom.BuildConfig import org.kiwix.kiwixmobile.custom.R import org.kiwix.kiwixmobile.core.R.string import org.kiwix.kiwixmobile.core.R.drawable +import org.kiwix.kiwixmobile.core.extensions.setTopMarginToViewForEdgeToEdgeMode import org.kiwix.kiwixmobile.custom.customActivityComponent import org.kiwix.kiwixmobile.custom.databinding.ActivityCustomMainBinding @@ -84,6 +85,8 @@ class CustomMainActivity : CoreMainActivity() { super.onCreate(savedInstanceState) activityCustomMainBinding = ActivityCustomMainBinding.inflate(layoutInflater) setContentView(activityCustomMainBinding.root) + drawerNavView.setTopMarginToViewForEdgeToEdgeMode() + readerTableOfContentsDrawer.setTopMarginToViewForEdgeToEdgeMode() if (savedInstanceState != null) { return }