diff --git a/app/src/main/kotlin/com/tutpro/baresip/AudioActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/AudioActivity.kt index 843ed512..8f5dfe43 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/AudioActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/AudioActivity.kt @@ -1,5 +1,6 @@ package com.tutpro.baresip +import android.os.Build import android.os.Bundle import android.util.TypedValue import android.view.Gravity @@ -10,6 +11,11 @@ import android.widget.* import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat +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.ActivityAudioBinding class AudioActivity : AppCompatActivity() { @@ -40,12 +46,21 @@ class AudioActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) binding = ActivityAudioBinding.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.AudioView.updatePadding(top = systemBars.top + 56) + WindowInsetsCompat.CONSUMED + } + + if (!Utils.isDarkTheme(this)) + WindowInsetsControllerCompat(window, binding.root).isAppearanceLightStatusBars = true + supportActionBar?.setDisplayHomeAsUpEnabled(true) Utils.addActivity("audio") diff --git a/app/src/main/kotlin/com/tutpro/baresip/CallDetailsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/CallDetailsActivity.kt index 54867bbf..f8bb6a0e 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/CallDetailsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/CallDetailsActivity.kt @@ -1,10 +1,17 @@ package com.tutpro.baresip import android.media.MediaPlayer +import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.MenuItem +import android.view.View import androidx.activity.OnBackPressedCallback +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.ActivityCallDetailsBinding class CallDetailsActivity : AppCompatActivity() { @@ -24,8 +31,6 @@ class CallDetailsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) setContentView(R.layout.activity_call_details) @@ -33,6 +38,16 @@ class CallDetailsActivity : AppCompatActivity() { binding = ActivityCallDetailsBinding.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.CallDetailsView.updatePadding(top = systemBars.top + 56) + WindowInsetsCompat.CONSUMED + } + + if (!Utils.isDarkTheme(this)) + WindowInsetsControllerCompat(window, binding.root).isAppearanceLightStatusBars = true aor = intent.getStringExtra("aor")!! peer = intent.getStringExtra("peer")!! position = intent.getIntExtra("position", 0) diff --git a/app/src/main/kotlin/com/tutpro/baresip/CallsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/CallsActivity.kt index a4ee4f7f..b4494aa0 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/CallsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/CallsActivity.kt @@ -3,14 +3,21 @@ package com.tutpro.baresip import android.app.Activity import android.content.DialogInterface import android.content.Intent +import android.os.Build import android.os.Bundle import android.os.SystemClock import android.view.Menu import android.view.MenuItem +import android.view.View import android.widget.AdapterView 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.google.android.material.dialog.MaterialAlertDialogBuilder import com.tutpro.baresip.databinding.ActivityCallsBinding @@ -31,13 +38,22 @@ class CallsActivity : AppCompatActivity() { public override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) binding = ActivityCallsBinding.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.CallsView.updatePadding(top = systemBars.top + 56) + WindowInsetsCompat.CONSUMED + } + + if (!Utils.isDarkTheme(this)) + WindowInsetsControllerCompat(window, binding.root).isAppearanceLightStatusBars = true + aor = intent.getStringExtra("aor")!! Utils.addActivity("calls,$aor") diff --git a/app/src/main/kotlin/com/tutpro/baresip/ChatActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ChatActivity.kt index c8854ff5..4c0a1751 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ChatActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ChatActivity.kt @@ -3,6 +3,7 @@ package com.tutpro.baresip import android.app.Activity import android.content.Context import android.content.Intent +import android.os.Build import android.os.Bundle import android.os.SystemClock import android.view.Menu @@ -16,6 +17,11 @@ import android.widget.ListView import android.widget.Toast 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.lifecycle.Observer import com.tutpro.baresip.databinding.ActivityChatBinding @@ -43,13 +49,22 @@ class ChatActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) binding = ActivityChatBinding.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.ChatView.updatePadding(top = systemBars.top + 56) + 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/kotlin/com/tutpro/baresip/ChatsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt index adef277e..3bf2d465 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ChatsActivity.kt @@ -3,14 +3,21 @@ package com.tutpro.baresip import android.app.Activity import android.content.DialogInterface 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 android.widget.* import androidx.activity.OnBackPressedCallback import androidx.activity.result.ActivityResultLauncher 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.google.android.material.dialog.MaterialAlertDialogBuilder import com.tutpro.baresip.databinding.ActivityChatsBinding @@ -35,13 +42,22 @@ class ChatsActivity: AppCompatActivity() { public override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) binding = ActivityChatsBinding.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.ChatsView.updatePadding(top = systemBars.top + 56) + WindowInsetsCompat.CONSUMED + } + + if (!Utils.isDarkTheme(this)) + WindowInsetsControllerCompat(window, binding.root).isAppearanceLightStatusBars = true + listView = binding.chats plusButton = binding.plusButton diff --git a/app/src/main/kotlin/com/tutpro/baresip/ContactActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ContactActivity.kt index 6175e94d..a4a41167 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ContactActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ContactActivity.kt @@ -10,6 +10,7 @@ import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.Matrix import android.graphics.drawable.BitmapDrawable +import android.os.Build import android.os.Bundle import android.provider.ContactsContract import android.provider.ContactsContract.CommonDataKinds @@ -22,6 +23,11 @@ import androidx.activity.OnBackPressedCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.cardview.widget.CardView +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.exifinterface.media.ExifInterface import com.tutpro.baresip.databinding.ActivityContactBinding import java.io.ByteArrayOutputStream @@ -56,14 +62,22 @@ class ContactActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) binding = ActivityContactBinding.inflate(layoutInflater) setContentView(binding.root) layout = binding.ContactView + 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.ContactView.updatePadding(top = systemBars.top + 56) + WindowInsetsCompat.CONSUMED + } + + if (!Utils.isDarkTheme(this)) + WindowInsetsControllerCompat(window, binding.root).isAppearanceLightStatusBars = true textAvatarView = binding.TextAvatar cardAvatarView = binding.CardAvatar cardImageAvatarView = binding.ImageAvatar diff --git a/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt index 8d77c0ba..f5253d4f 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt @@ -2,13 +2,20 @@ package com.tutpro.baresip import android.app.Activity import android.content.* +import android.os.Build import android.os.Bundle import android.os.SystemClock import android.provider.ContactsContract import androidx.appcompat.app.AppCompatActivity import android.view.MenuItem +import android.view.View import androidx.activity.OnBackPressedCallback import androidx.activity.result.contract.ActivityResultContracts +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.lifecycle.Observer import com.tutpro.baresip.databinding.ActivityContactsBinding @@ -28,13 +35,22 @@ class ContactsActivity : AppCompatActivity() { public override fun onCreate(savedInstanceState: Bundle?) { - theme.applyStyle(R.style.OptOutEdgeToEdgeEnforcement,false) - super.onCreate(savedInstanceState) binding = ActivityContactsBinding.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.ContactsView.updatePadding(top = systemBars.top + 56) + WindowInsetsCompat.CONSUMED + } + + if (!Utils.isDarkTheme(this)) + WindowInsetsControllerCompat(window, binding.root).isAppearanceLightStatusBars = true + aor = intent.getStringExtra("aor")!! Utils.addActivity("contacts,$aor") diff --git a/app/src/main/res/layout/activity_call_details.xml b/app/src/main/res/layout/activity_call_details.xml index ec0f78a8..8a60fdee 100644 --- a/app/src/main/res/layout/activity_call_details.xml +++ b/app/src/main/res/layout/activity_call_details.xml @@ -1,6 +1,7 @@ - - -