mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 18:56:44 -04:00
Fixed: The navigationView and rightDrawerView was overlapping on statusBar.
This commit is contained in:
parent
53d773846c
commit
82ba9f3299
@ -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() {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user