Fixed: The navigationView and rightDrawerView was overlapping on statusBar.

This commit is contained in:
MohitMaliFtechiz 2024-12-27 11:37:57 +05:30 committed by Kelson
parent 53d773846c
commit 82ba9f3299
4 changed files with 28 additions and 16 deletions

View File

@ -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() {

View File

@ -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

View File

@ -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
}
}
}

View File

@ -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
}