Implement NavigationBar theme
This commit is contained in:
parent
61dadcba85
commit
5684aba36d
1 changed files with 40 additions and 5 deletions
|
@ -1,25 +1,60 @@
|
||||||
package io.heckel.ntfy.ui
|
package io.heckel.ntfy.ui
|
||||||
|
|
||||||
|
import android.content.res.Configuration
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.view.WindowInsetsController
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import io.heckel.ntfy.R
|
import io.heckel.ntfy.R
|
||||||
import io.heckel.ntfy.databinding.MainSettingsActivityBinding
|
import io.heckel.ntfy.databinding.MainSettingsActivityBinding
|
||||||
|
|
||||||
|
|
||||||
class MainSettingsActivity : AppCompatActivity() {
|
class MainSettingsActivity : AppCompatActivity() {
|
||||||
|
|
||||||
private lateinit var mBinding: MainSettingsActivityBinding
|
private lateinit var mBinding: MainSettingsActivityBinding
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.R)
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
mBinding = MainSettingsActivityBinding.inflate(layoutInflater)
|
mBinding = MainSettingsActivityBinding.inflate(layoutInflater)
|
||||||
setContentView(mBinding.root)
|
setContentView(mBinding.root)
|
||||||
|
|
||||||
mBinding.toolbar.setNavigationOnClickListener {
|
setupToolbar()
|
||||||
onBackPressed()
|
setSystemBarsAppearance()
|
||||||
|
showPreferencesFragment()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setupToolbar() {
|
||||||
|
mBinding.toolbar.setNavigationOnClickListener {
|
||||||
|
onBackPressedDispatcher.onBackPressed()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.R)
|
||||||
|
private fun setSystemBarsAppearance() {
|
||||||
|
val insetsController = window.insetsController ?: return
|
||||||
|
|
||||||
|
val isLightMode = isSystemInLightMode()
|
||||||
|
if (isLightMode) {
|
||||||
|
insetsController.setSystemBarsAppearance(
|
||||||
|
WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS,
|
||||||
|
WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
insetsController.setSystemBarsAppearance(
|
||||||
|
0,
|
||||||
|
WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isSystemInLightMode(): Boolean {
|
||||||
|
val nightModeFlags = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
|
||||||
|
return nightModeFlags != Configuration.UI_MODE_NIGHT_YES
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun showPreferencesFragment() {
|
||||||
supportFragmentManager
|
supportFragmentManager
|
||||||
.beginTransaction()
|
.beginTransaction()
|
||||||
.replace(R.id.fragment_container, PreferencesFragment())
|
.replace(R.id.fragment_container, PreferencesFragment())
|
||||||
|
|
Loading…
Reference in a new issue