|
|
|
@ -65,13 +65,29 @@ class MainActivity : AppCompatActivity(), ThemeProvider { |
|
|
|
|
|
|
|
window.statusBarColor = |
|
|
|
ContextCompat.getColor(applicationContext, android.R.color.transparent) |
|
|
|
ThemeHelper.setNavigationBarColor( |
|
|
|
this, |
|
|
|
ElevationOverlayProvider(binding.navigationView.context).compositeOverlay( |
|
|
|
MaterialColors.getColor(binding.navigationView, R.attr.colorSurface), |
|
|
|
binding.navigationView.elevation |
|
|
|
window.navigationBarColor = |
|
|
|
ContextCompat.getColor(applicationContext, android.R.color.transparent) |
|
|
|
|
|
|
|
binding.statusBarShade.setBackgroundColor( |
|
|
|
ThemeHelper.getColorWithOpacity( |
|
|
|
MaterialColors.getColor( |
|
|
|
binding.root, |
|
|
|
R.attr.colorSurface |
|
|
|
), |
|
|
|
ThemeHelper.SYSTEM_BAR_ALPHA |
|
|
|
) |
|
|
|
) |
|
|
|
if (InsetsHelper.getSystemGestureType(applicationContext) != InsetsHelper.GESTURE_NAVIGATION) { |
|
|
|
binding.navigationBarShade.setBackgroundColor( |
|
|
|
ThemeHelper.getColorWithOpacity( |
|
|
|
MaterialColors.getColor( |
|
|
|
binding.root, |
|
|
|
R.attr.colorSurface |
|
|
|
), |
|
|
|
ThemeHelper.SYSTEM_BAR_ALPHA |
|
|
|
) |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
val navHostFragment = |
|
|
|
supportFragmentManager.findFragmentById(R.id.fragment_container) as NavHostFragment |
|
|
|
@ -83,16 +99,6 @@ class MainActivity : AppCompatActivity(), ThemeProvider { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
binding.statusBarShade.setBackgroundColor( |
|
|
|
ThemeHelper.getColorWithOpacity( |
|
|
|
MaterialColors.getColor( |
|
|
|
binding.root, |
|
|
|
R.attr.colorSurface |
|
|
|
), |
|
|
|
ThemeHelper.SYSTEM_BAR_ALPHA |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
// Prevents navigation from being drawn for a short time on recreation if set to hidden |
|
|
|
if (!homeViewModel.navigationVisible.value?.first!!) { |
|
|
|
binding.navigationView.visibility = View.INVISIBLE |
|
|
|
@ -116,14 +122,6 @@ class MainActivity : AppCompatActivity(), ThemeProvider { |
|
|
|
navController.navigate(R.id.action_firstTimeSetupFragment_to_gamesFragment) |
|
|
|
(binding.navigationView as NavigationBarView).setupWithNavController(navController) |
|
|
|
showNavigation(visible = true, animated = true) |
|
|
|
|
|
|
|
ThemeHelper.setNavigationBarColor( |
|
|
|
this, |
|
|
|
ElevationOverlayProvider(binding.navigationView.context).compositeOverlay( |
|
|
|
MaterialColors.getColor(binding.navigationView, R.attr.colorSurface), |
|
|
|
binding.navigationView.elevation |
|
|
|
) |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
private fun setUpNavigation(navController: NavController) { |
|
|
|
@ -210,11 +208,18 @@ class MainActivity : AppCompatActivity(), ThemeProvider { |
|
|
|
} |
|
|
|
|
|
|
|
private fun setInsets() = |
|
|
|
ViewCompat.setOnApplyWindowInsetsListener(binding.statusBarShade) { view: View, windowInsets: WindowInsetsCompat -> |
|
|
|
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _: View, windowInsets: WindowInsetsCompat -> |
|
|
|
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()) |
|
|
|
val mlpShade = view.layoutParams as MarginLayoutParams |
|
|
|
mlpShade.height = insets.top |
|
|
|
binding.statusBarShade.layoutParams = mlpShade |
|
|
|
val mlpStatusShade = binding.statusBarShade.layoutParams as MarginLayoutParams |
|
|
|
mlpStatusShade.height = insets.top |
|
|
|
binding.statusBarShade.layoutParams = mlpStatusShade |
|
|
|
|
|
|
|
// The only situation where we care to have a nav bar shade is when it's at the bottom |
|
|
|
// of the screen where scrolling list elements can go behind it. |
|
|
|
val mlpNavShade = binding.navigationBarShade.layoutParams as MarginLayoutParams |
|
|
|
mlpNavShade.height = insets.bottom |
|
|
|
binding.navigationBarShade.layoutParams = mlpNavShade |
|
|
|
|
|
|
|
windowInsets |
|
|
|
} |
|
|
|
|
|
|
|
|