From b6fea5be7ab332f4c084fb1d0dd098a301cd469f Mon Sep 17 00:00:00 2001 From: Tom Hempel Date: Tue, 24 Mar 2026 11:47:41 +0100 Subject: [PATCH] fixed responsive bugs --- app/src/main/java/com/dano/test1/MainActivity.kt | 14 ++++++++++++++ .../java/com/dano/test1/ui/DevSettingsActivity.kt | 13 +++++++++++++ .../main/java/com/dano/test1/utils/ViewUtils.kt | 6 ++++-- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/dano/test1/MainActivity.kt b/app/src/main/java/com/dano/test1/MainActivity.kt index 99646fe..151e99e 100644 --- a/app/src/main/java/com/dano/test1/MainActivity.kt +++ b/app/src/main/java/com/dano/test1/MainActivity.kt @@ -11,8 +11,11 @@ import android.widget.EditText import android.widget.LinearLayout import android.widget.ProgressBar import android.widget.Toast +import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AlertDialog 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.LoginManager import com.dano.test1.network.TokenStore @@ -36,6 +39,7 @@ class MainActivity : AppCompatActivity() { private fun t(key: String): String = LanguageManager.getText(bootLanguageId, key) override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() super.onCreate(savedInstanceState) // === Offline-Start ermöglichen === @@ -205,6 +209,16 @@ class MainActivity : AppCompatActivity() { } // --- /LIVE NETZSTATUS --- + override fun onContentChanged() { + super.onContentChanged() + val content = findViewById(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) { super.onConfigurationChanged(newConfig) } diff --git a/app/src/main/java/com/dano/test1/ui/DevSettingsActivity.kt b/app/src/main/java/com/dano/test1/ui/DevSettingsActivity.kt index e818d83..acaa5c1 100644 --- a/app/src/main/java/com/dano/test1/ui/DevSettingsActivity.kt +++ b/app/src/main/java/com/dano/test1/ui/DevSettingsActivity.kt @@ -1,12 +1,16 @@ package com.dano.test1.ui import android.os.Bundle +import android.view.View import android.widget.Button import android.widget.RadioButton import android.widget.RadioGroup +import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.SwitchCompat import androidx.appcompat.widget.Toolbar +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import com.dano.test1.R /** @@ -19,9 +23,18 @@ class DevSettingsActivity : AppCompatActivity() { private lateinit var radioGroup: RadioGroup override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() super.onCreate(savedInstanceState) setContentView(R.layout.activity_dev_settings) + findViewById(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(R.id.devSettingsToolbar) setSupportActionBar(toolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true) diff --git a/app/src/main/java/com/dano/test1/utils/ViewUtils.kt b/app/src/main/java/com/dano/test1/utils/ViewUtils.kt index c551921..d32fdeb 100644 --- a/app/src/main/java/com/dano/test1/utils/ViewUtils.kt +++ b/app/src/main/java/com/dano/test1/utils/ViewUtils.kt @@ -22,7 +22,8 @@ object ViewUtils { */ fun setTextSizePercentOfScreenHeight(view: TextView, percentOfHeight: Float) { 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) view.setTextSize(TypedValue.COMPLEX_UNIT_SP, sp) } @@ -33,8 +34,9 @@ object ViewUtils { */ fun setupResponsiveSpinner(context: Context, spinner: Spinner, items: List, selectedItem: T?) { 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() val textSp = spFromScreenHeight(0.0275f)