Skip to content

Commit 363888e

Browse files
authored
fix bottom nav visibility (#516)
1 parent a507b72 commit 363888e

File tree

1 file changed

+33
-18
lines changed

1 file changed

+33
-18
lines changed

app/src/main/java/org/eu/exodus_privacy/exodusprivacy/MainActivity.kt

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import android.view.animation.AccelerateDecelerateInterpolator
99
import androidx.activity.viewModels
1010
import androidx.appcompat.app.AppCompatActivity
1111
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
12+
import androidx.core.view.isVisible
1213
import androidx.lifecycle.lifecycleScope
1314
import androidx.navigation.fragment.NavHostFragment
1415
import androidx.navigation.ui.NavigationUI
@@ -24,6 +25,7 @@ class MainActivity : AppCompatActivity() {
2425
private lateinit var binding: ActivityMainBinding
2526
private val TAG = MainActivity::class.java.simpleName
2627
private val viewModel: MainActivityViewModel by viewModels()
28+
private var isBottomNavViewVisible = true
2729

2830
override fun onCreate(savedInstanceState: Bundle?) {
2931
// Handle the splash screen transition
@@ -53,6 +55,8 @@ class MainActivity : AppCompatActivity() {
5355
}
5456

5557
val bottomNavigationView = binding.bottomNavView
58+
bottomNavigationView.isVisible =
59+
savedInstanceState?.getBoolean("bottomNavViewVisibility") ?: isBottomNavViewVisible
5660
val navHostFragment =
5761
supportFragmentManager.findFragmentById(R.id.fragmentContainerView) as NavHostFragment
5862
val navController = navHostFragment.navController
@@ -121,27 +125,38 @@ class MainActivity : AppCompatActivity() {
121125

122126
// Hide the bottom navigation bar with animation
123127
private fun hideBottomNavigation(view: View) {
124-
view.setLayerType(View.LAYER_TYPE_HARDWARE, null)
125-
view.clearAnimation()
126-
view.animate()
127-
.translationY(view.height.toFloat())
128-
.setDuration(300)
129-
.setInterpolator(AccelerateDecelerateInterpolator())
130-
.withEndAction {
131-
view.visibility = View.GONE
132-
view.setLayerType(View.LAYER_TYPE_NONE, null)
133-
}
128+
view.apply {
129+
setLayerType(View.LAYER_TYPE_HARDWARE, null)
130+
clearAnimation()
131+
animate()
132+
.translationY(view.height.toFloat())
133+
.setDuration(300)
134+
.setInterpolator(AccelerateDecelerateInterpolator())
135+
.withEndAction {
136+
isVisible = false
137+
isBottomNavViewVisible = false
138+
setLayerType(View.LAYER_TYPE_NONE, null)
139+
}
140+
}
134141
}
135142

136143
// Show the bottom navigation bar with animation
137144
private fun showBottomNavigation(view: View) {
138-
view.visibility = View.VISIBLE
139-
view.setLayerType(View.LAYER_TYPE_HARDWARE, null)
140-
view.clearAnimation()
141-
view.animate()
142-
.translationY(0f)
143-
.setDuration(300)
144-
.setInterpolator(AccelerateDecelerateInterpolator())
145-
.withEndAction { view.setLayerType(View.LAYER_TYPE_NONE, null) }
145+
view.apply {
146+
isVisible = true
147+
isBottomNavViewVisible = true
148+
setLayerType(View.LAYER_TYPE_HARDWARE, null)
149+
clearAnimation()
150+
animate()
151+
.translationY(0f)
152+
.setDuration(300)
153+
.setInterpolator(AccelerateDecelerateInterpolator())
154+
.withEndAction { setLayerType(View.LAYER_TYPE_NONE, null) }
155+
}
156+
}
157+
158+
override fun onSaveInstanceState(outState: Bundle) {
159+
super.onSaveInstanceState(outState)
160+
outState.putBoolean("bottomNavViewVisibility", isBottomNavViewVisible)
146161
}
147162
}

0 commit comments

Comments
 (0)