Merge pull request #141 from binwiederhier/target-sdk-36

Target SDK 36
This commit is contained in:
Philipp C. Heckel 2025-12-23 12:32:36 -05:00 committed by GitHub
commit 33d5813487
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 37 additions and 11 deletions

View file

@ -15,7 +15,7 @@ android {
defaultConfig {
applicationId "io.heckel.ntfy"
minSdkVersion 26
targetSdkVersion 35
targetSdkVersion 36
versionCode 52
versionName "1.19.4"

View file

@ -14,12 +14,16 @@ import android.view.MenuItem
import android.view.View
import android.widget.TextView
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode
import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.RecyclerView
@ -115,6 +119,7 @@ class DetailActivity : AppCompatActivity(), NotificationFragment.NotificationSet
}
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_detail)
@ -137,8 +142,7 @@ class DetailActivity : AppCompatActivity(), NotificationFragment.NotificationSet
toolbar.overflowIcon?.setTint(toolbarTextColor)
setSupportActionBar(toolbar)
// Set system status bar color and appearance
window.statusBarColor = statusBarColor
// Set system status bar appearance
WindowInsetsControllerCompat(window, window.decorView).isAppearanceLightStatusBars =
Colors.shouldUseLightStatusBar(dynamicColors, darkMode)
@ -280,6 +284,14 @@ class DetailActivity : AppCompatActivity(), NotificationFragment.NotificationSet
adapter = DetailAdapter(this, lifecycleScope, repository, onNotificationClick, onNotificationLongClick)
mainList = findViewById(R.id.detail_notification_list)
mainList.adapter = adapter
// Apply window insets to ensure content is not covered by navigation bar
mainList.clipToPadding = false
ViewCompat.setOnApplyWindowInsetsListener(mainList) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.updatePadding(bottom = systemBars.bottom)
insets
}
viewModel.list(subscriptionId).observe(this) {
it?.let {

View file

@ -10,6 +10,7 @@ import android.os.Bundle
import android.provider.Settings
import android.text.TextUtils
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
@ -45,6 +46,7 @@ class DetailSettingsActivity : AppCompatActivity() {
private var subscriptionId: Long = 0
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings)
@ -79,8 +81,7 @@ class DetailSettingsActivity : AppCompatActivity() {
toolbar.overflowIcon?.setTint(toolbarTextColor)
setSupportActionBar(toolbar)
// Set system status bar color and appearance
window.statusBarColor = statusBarColor
// Set system status bar appearance
WindowInsetsControllerCompat(window, window.decorView).isAppearanceLightStatusBars =
Colors.shouldUseLightStatusBar(dynamicColors, darkMode)

View file

@ -19,6 +19,7 @@ import android.view.View
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
@ -30,6 +31,7 @@ import androidx.core.text.HtmlCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.core.view.updatePadding
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.RecyclerView
@ -126,6 +128,7 @@ class MainActivity : AppCompatActivity(), AddFragment.SubscribeListener, Notific
}
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
@ -152,8 +155,7 @@ class MainActivity : AppCompatActivity(), AddFragment.SubscribeListener, Notific
setSupportActionBar(toolbar)
title = getString(R.string.main_action_bar_title)
// Set system status bar color and appearance
window.statusBarColor = statusBarColor
// Set system status bar appearance
WindowInsetsControllerCompat(window, window.decorView).isAppearanceLightStatusBars =
Colors.shouldUseLightStatusBar(dynamicColors, darkMode)
@ -193,6 +195,14 @@ class MainActivity : AppCompatActivity(), AddFragment.SubscribeListener, Notific
Colors.onPrimary(this)
)
mainList.adapter = adapter
// Apply window insets to ensure content is not covered by navigation bar
mainList.clipToPadding = false
ViewCompat.setOnApplyWindowInsetsListener(mainList) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.updatePadding(bottom = systemBars.bottom)
insets
}
viewModel.list().observe(this) {
it?.let { subscriptions ->

View file

@ -14,6 +14,7 @@ import android.text.TextUtils
import android.view.View
import android.widget.Button
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.Keep
import androidx.appcompat.app.AppCompatActivity
@ -58,6 +59,7 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere
private lateinit var serviceManager: SubscriberServiceManager
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings)
@ -83,8 +85,7 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere
toolbar.overflowIcon?.setTint(toolbarTextColor)
setSupportActionBar(toolbar)
// Set system status bar color and appearance
window.statusBarColor = statusBarColor
// Set system status bar appearance
WindowInsetsControllerCompat(window, window.decorView).isAppearanceLightStatusBars =
Colors.shouldUseLightStatusBar(dynamicColors, darkMode)

View file

@ -8,6 +8,7 @@ import android.text.Editable
import android.text.TextWatcher
import android.view.*
import android.widget.*
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.WindowInsetsControllerCompat
import androidx.lifecycle.lifecycleScope
@ -51,6 +52,7 @@ class ShareActivity : AppCompatActivity() {
private lateinit var errorImage: ImageView
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_share)
@ -72,8 +74,7 @@ class ShareActivity : AppCompatActivity() {
setSupportActionBar(toolbar)
title = getString(R.string.share_title)
// Set system status bar color and appearance
window.statusBarColor = statusBarColor
// Set system status bar appearance
WindowInsetsControllerCompat(window, window.decorView).isAppearanceLightStatusBars =
Colors.shouldUseLightStatusBar(dynamicColors, darkMode)

View file

@ -1,2 +1,3 @@
Maintenance + bug fixes:
* Updated target SDK version to 36
* Updated dependencies, minimum SDK version to 26, clean up legacy code, upgrade Gradle (ntfy-android#140, thanks to @cyb3rko)