mirror of
https://github.com/cmclark00/mintris.git
synced 2025-05-18 05:15:20 +01:00
Fix: Adjust layout padding to respect display cutouts
This commit is contained in:
parent
501e5b37fc
commit
6044b0d93b
8 changed files with 176 additions and 84 deletions
|
@ -45,6 +45,10 @@ import android.widget.ImageButton
|
|||
import android.graphics.drawable.GradientDrawable
|
||||
import android.widget.TextView
|
||||
import android.widget.Switch
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.view.updatePadding
|
||||
|
||||
class MainActivity : AppCompatActivity(),
|
||||
GamepadController.GamepadConnectionListener,
|
||||
|
@ -135,6 +139,65 @@ class MainActivity : AppCompatActivity(),
|
|||
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
// Store initial padding values before applying insets
|
||||
val initialPausePadding = Rect(binding.pauseContainer.paddingLeft, binding.pauseContainer.paddingTop,
|
||||
binding.pauseContainer.paddingRight, binding.pauseContainer.paddingBottom)
|
||||
val initialGameOverPadding = Rect(binding.gameOverContainer.paddingLeft, binding.gameOverContainer.paddingTop,
|
||||
binding.gameOverContainer.paddingRight, binding.gameOverContainer.paddingBottom)
|
||||
val initialCustomizationPadding = Rect(binding.customizationContainer.paddingLeft, binding.customizationContainer.paddingTop,
|
||||
binding.customizationContainer.paddingRight, binding.customizationContainer.paddingBottom)
|
||||
val initialProgressionPadding = Rect(binding.progressionScreen.paddingLeft, binding.progressionScreen.paddingTop,
|
||||
binding.progressionScreen.paddingRight, binding.progressionScreen.paddingBottom)
|
||||
|
||||
// Apply insets to the pause container
|
||||
ViewCompat.setOnApplyWindowInsetsListener(binding.pauseContainer) { view, windowInsets ->
|
||||
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
// Apply insets by adding to initial padding
|
||||
view.updatePadding(
|
||||
left = initialPausePadding.left + insets.left,
|
||||
top = initialPausePadding.top + insets.top,
|
||||
right = initialPausePadding.right + insets.right,
|
||||
bottom = initialPausePadding.bottom + insets.bottom
|
||||
)
|
||||
WindowInsetsCompat.CONSUMED
|
||||
}
|
||||
|
||||
// Apply insets to the game over container
|
||||
ViewCompat.setOnApplyWindowInsetsListener(binding.gameOverContainer) { view, windowInsets ->
|
||||
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
view.updatePadding(
|
||||
left = initialGameOverPadding.left + insets.left,
|
||||
top = initialGameOverPadding.top + insets.top,
|
||||
right = initialGameOverPadding.right + insets.right,
|
||||
bottom = initialGameOverPadding.bottom + insets.bottom
|
||||
)
|
||||
WindowInsetsCompat.CONSUMED
|
||||
}
|
||||
|
||||
// Apply insets to the customization container
|
||||
ViewCompat.setOnApplyWindowInsetsListener(binding.customizationContainer) { view, windowInsets ->
|
||||
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
view.updatePadding(
|
||||
left = initialCustomizationPadding.left + insets.left,
|
||||
top = initialCustomizationPadding.top + insets.top,
|
||||
right = initialCustomizationPadding.right + insets.right,
|
||||
bottom = initialCustomizationPadding.bottom + insets.bottom
|
||||
)
|
||||
WindowInsetsCompat.CONSUMED
|
||||
}
|
||||
|
||||
// Apply insets to the progression screen
|
||||
ViewCompat.setOnApplyWindowInsetsListener(binding.progressionScreen) { view, windowInsets ->
|
||||
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
view.updatePadding(
|
||||
left = initialProgressionPadding.left + insets.left,
|
||||
top = initialProgressionPadding.top + insets.top,
|
||||
right = initialProgressionPadding.right + insets.right,
|
||||
bottom = initialProgressionPadding.bottom + insets.bottom
|
||||
)
|
||||
WindowInsetsCompat.CONSUMED
|
||||
}
|
||||
|
||||
// Disable Android back gesture to prevent accidental app exits
|
||||
disableAndroidBackGesture()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue