From 4cd2d4bbda985769727c02c48bb61e02894a569e Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Sat, 14 Dec 2024 01:19:02 +0200 Subject: [PATCH] Added edge-to-edge support to Accounts, Account and Codecs activities --- .../com/tutpro/baresip/AccountActivity.kt | 20 ++++++++++++++++-- .../com/tutpro/baresip/AccountsActivity.kt | 21 +++++++++++++++++-- .../com/tutpro/baresip/CodecsActivity.kt | 20 ++++++++++++++++-- app/src/main/res/layout/activity_accounts.xml | 1 + app/src/main/res/layout/activity_codecs.xml | 1 + 5 files changed, 57 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt index 8dae5f03..a552ab3a 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/AccountActivity.kt @@ -2,6 +2,7 @@ package com.tutpro.baresip import android.app.Activity import android.content.Intent +import android.os.Build import android.os.Bundle import android.view.Menu import android.view.MenuItem @@ -11,6 +12,11 @@ import android.view.View.VISIBLE import android.widget.* import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity +import androidx.core.graphics.Insets +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.WindowInsetsControllerCompat +import androidx.core.view.updatePadding import com.tutpro.baresip.databinding.ActivityAccountBinding import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -75,13 +81,23 @@ class AccountActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) binding = ActivityAccountBinding.inflate(layoutInflater) setContentView(binding.root) + ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { v: View, insets: WindowInsetsCompat -> + val systemBars: Insets = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(0, systemBars.top, 0, systemBars.bottom) + WindowInsetsCompat.CONSUMED + } + + if (!Utils.isDarkTheme(this)) + WindowInsetsControllerCompat(window, binding.root).isAppearanceLightStatusBars = true + + if (Build.VERSION.SDK_INT >= 35) + binding.AccountView.updatePadding(top = 172) + supportActionBar?.setDisplayHomeAsUpEnabled(true) uri = binding.Uri diff --git a/app/src/main/kotlin/com/tutpro/baresip/AccountsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/AccountsActivity.kt index 31c54b8e..31f74a9d 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/AccountsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/AccountsActivity.kt @@ -2,12 +2,19 @@ package com.tutpro.baresip import android.app.Activity import android.content.Intent +import android.os.Build import android.os.Bundle import android.view.Menu import android.view.MenuItem +import android.view.View import androidx.activity.OnBackPressedCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity +import androidx.core.graphics.Insets +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.WindowInsetsControllerCompat +import androidx.core.view.updatePadding import com.tutpro.baresip.databinding.ActivityAccountsBinding class AccountsActivity : AppCompatActivity() { @@ -24,12 +31,22 @@ class AccountsActivity : AppCompatActivity() { public override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) binding = ActivityAccountsBinding.inflate(layoutInflater) setContentView(binding.root) + ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { v: View, insets: WindowInsetsCompat -> + val systemBars: Insets = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(0, systemBars.top, 0, systemBars.bottom) + WindowInsetsCompat.CONSUMED + } + + if (!Utils.isDarkTheme(this)) + WindowInsetsControllerCompat(window, binding.root).isAppearanceLightStatusBars = true + + if (Build.VERSION.SDK_INT >= 35) + binding.AccountsView.updatePadding(top = 172) + aor = intent.getStringExtra("aor")!! Utils.addActivity("accounts,$aor") diff --git a/app/src/main/kotlin/com/tutpro/baresip/CodecsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/CodecsActivity.kt index c4bb65f9..c4bfa5b9 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/CodecsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/CodecsActivity.kt @@ -1,11 +1,18 @@ package com.tutpro.baresip import android.annotation.SuppressLint +import android.os.Build import android.os.Bundle import android.view.Menu import android.view.MenuItem +import android.view.View import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity +import androidx.core.graphics.Insets +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.WindowInsetsControllerCompat +import androidx.core.view.updatePadding import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.ItemTouchHelper.* import androidx.recyclerview.widget.LinearLayoutManager @@ -32,13 +39,22 @@ class CodecsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) binding = ActivityCodecsBinding.inflate(layoutInflater) setContentView(binding.root) + ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { v: View, insets: WindowInsetsCompat -> + val systemBars: Insets = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(0, systemBars.top, 0, systemBars.bottom) + if (Build.VERSION.SDK_INT >= 35) + binding.CodecsView.updatePadding(top = systemBars.top + 64) + WindowInsetsCompat.CONSUMED + } + + if (!Utils.isDarkTheme(this)) + WindowInsetsControllerCompat(window, binding.root).isAppearanceLightStatusBars = true + supportActionBar?.setDisplayHomeAsUpEnabled(true) aor = intent.getStringExtra("aor")!! diff --git a/app/src/main/res/layout/activity_accounts.xml b/app/src/main/res/layout/activity_accounts.xml index bb88989c..a58ae25d 100644 --- a/app/src/main/res/layout/activity_accounts.xml +++ b/app/src/main/res/layout/activity_accounts.xml @@ -1,6 +1,7 @@