fixed responsive bugs

This commit is contained in:
2026-03-24 11:47:41 +01:00
parent e5531e6616
commit b6fea5be7a
3 changed files with 31 additions and 2 deletions

View File

@ -11,8 +11,11 @@ import android.widget.EditText
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.ProgressBar import android.widget.ProgressBar
import android.widget.Toast import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.dano.test1.network.DatabaseDownloader import com.dano.test1.network.DatabaseDownloader
import com.dano.test1.network.LoginManager import com.dano.test1.network.LoginManager
import com.dano.test1.network.TokenStore import com.dano.test1.network.TokenStore
@ -36,6 +39,7 @@ class MainActivity : AppCompatActivity() {
private fun t(key: String): String = LanguageManager.getText(bootLanguageId, key) private fun t(key: String): String = LanguageManager.getText(bootLanguageId, key)
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
// === Offline-Start ermöglichen === // === Offline-Start ermöglichen ===
@ -205,6 +209,16 @@ class MainActivity : AppCompatActivity() {
} }
// --- /LIVE NETZSTATUS --- // --- /LIVE NETZSTATUS ---
override fun onContentChanged() {
super.onContentChanged()
val content = findViewById<View>(android.R.id.content) ?: return
ViewCompat.setOnApplyWindowInsetsListener(content) { v, insets ->
val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(bars.left, bars.top, bars.right, bars.bottom)
WindowInsetsCompat.CONSUMED
}
}
override fun onConfigurationChanged(newConfig: Configuration) { override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig) super.onConfigurationChanged(newConfig)
} }

View File

@ -1,12 +1,16 @@
package com.dano.test1.ui package com.dano.test1.ui
import android.os.Bundle import android.os.Bundle
import android.view.View
import android.widget.Button import android.widget.Button
import android.widget.RadioButton import android.widget.RadioButton
import android.widget.RadioGroup import android.widget.RadioGroup
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.SwitchCompat import androidx.appcompat.widget.SwitchCompat
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.dano.test1.R import com.dano.test1.R
/** /**
@ -19,9 +23,18 @@ class DevSettingsActivity : AppCompatActivity() {
private lateinit var radioGroup: RadioGroup private lateinit var radioGroup: RadioGroup
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_dev_settings) setContentView(R.layout.activity_dev_settings)
findViewById<View>(android.R.id.content)?.let { content ->
ViewCompat.setOnApplyWindowInsetsListener(content) { v, insets ->
val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(bars.left, bars.top, bars.right, bars.bottom)
WindowInsetsCompat.CONSUMED
}
}
val toolbar = findViewById<Toolbar>(R.id.devSettingsToolbar) val toolbar = findViewById<Toolbar>(R.id.devSettingsToolbar)
setSupportActionBar(toolbar) setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayHomeAsUpEnabled(true)

View File

@ -22,7 +22,8 @@ object ViewUtils {
*/ */
fun setTextSizePercentOfScreenHeight(view: TextView, percentOfHeight: Float) { fun setTextSizePercentOfScreenHeight(view: TextView, percentOfHeight: Float) {
val dm = view.context.resources.displayMetrics val dm = view.context.resources.displayMetrics
val sp = (dm.heightPixels * percentOfHeight) / dm.scaledDensity val shortSide = minOf(dm.heightPixels, dm.widthPixels)
val sp = (shortSide * percentOfHeight) / dm.scaledDensity
TextViewCompat.setAutoSizeTextTypeWithDefaults(view, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE) TextViewCompat.setAutoSizeTextTypeWithDefaults(view, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE)
view.setTextSize(TypedValue.COMPLEX_UNIT_SP, sp) view.setTextSize(TypedValue.COMPLEX_UNIT_SP, sp)
} }
@ -33,8 +34,9 @@ object ViewUtils {
*/ */
fun <T> setupResponsiveSpinner(context: Context, spinner: Spinner, items: List<T>, selectedItem: T?) { fun <T> setupResponsiveSpinner(context: Context, spinner: Spinner, items: List<T>, selectedItem: T?) {
val dm = context.resources.displayMetrics val dm = context.resources.displayMetrics
val shortSide = minOf(dm.heightPixels, dm.widthPixels)
fun spFromScreenHeight(percent: Float): Float = (dm.heightPixels * percent) / dm.scaledDensity fun spFromScreenHeight(percent: Float): Float = (shortSide * percent) / dm.scaledDensity
fun pxFromSp(sp: Float): Int = (sp * dm.scaledDensity).toInt() fun pxFromSp(sp: Float): Int = (sp * dm.scaledDensity).toInt()
val textSp = spFromScreenHeight(0.0275f) val textSp = spFromScreenHeight(0.0275f)