diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9529384e5..d5da6efd5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+### Changed
+
+- Compatibility updates for Android 15 & 16
+
## [1.3.0] - 2025-10-09
### Added
- Support for importing contacts from vCards shared by other apps ([#321])
diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml
index 8a70d7a03..5e0d2f0a4 100644
--- a/app/detekt-baseline.xml
+++ b/app/detekt-baseline.xml
@@ -105,14 +105,12 @@
MaxLineLength:FilterContactSourcesDialog.kt$FilterContactSourcesDialog$binding.filterContactSourcesList.adapter = FilterContactSourcesAdapter(activity, contactSourcesWithCount, selectedSources)
MaxLineLength:FilterContactSourcesDialog.kt$FilterContactSourcesDialog$val selectedContactSources = (binding.filterContactSourcesList.adapter as FilterContactSourcesAdapter).getSelectedContactSources()
MaxLineLength:GroupContactsActivity.kt$GroupContactsActivity$private fun getDefaultRingtoneUri()
- MaxLineLength:GroupContactsActivity.kt$GroupContactsActivity$updateMaterialActivityViews(binding.groupContactsCoordinator, binding.groupContactsList, useTransparentNavigation = true, useTopSearchMenu = false)
MaxLineLength:GroupsAdapter.kt$GroupsAdapter$activity: SimpleActivity
MaxLineLength:GroupsFragment.kt$GroupsFragment$class
MaxLineLength:ImportContactsDialog.kt$ImportContactsDialog$class
MaxLineLength:ImportContactsDialog.kt$ImportContactsDialog$targetContactSource = if (it == activity.getString(R.string.phone_storage_hidden)) SMT_PRIVATE else it
MaxLineLength:InsertOrEditContactActivity.kt$InsertOrEditContactActivity$binding.insertEditTabsHolder.newTab().setCustomView(org.fossify.commons.R.layout.bottom_tablayout_item)
MaxLineLength:InsertOrEditContactActivity.kt$InsertOrEditContactActivity$private fun getInactiveTabIndexes(activeIndex: Int)
- MaxLineLength:InsertOrEditContactActivity.kt$InsertOrEditContactActivity$updateMaterialActivityViews(binding.insertEditCoordinator, binding.insertEditContactHolder, useTransparentNavigation = false, useTopSearchMenu = true)
MaxLineLength:MainActivity.kt$MainActivity$(drawable as LayerDrawable).findDrawableByLayerId(org.fossify.commons.R.id.shortcut_plus_background).applyColorFilter(appIconColor)
MaxLineLength:MainActivity.kt$MainActivity$binding.mainTabsHolder.newTab().setCustomView(org.fossify.commons.R.layout.bottom_tablayout_item)
MaxLineLength:MainActivity.kt$MainActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_2_title_commons, org.fossify.commons.R.string.faq_2_text_commons))
@@ -124,7 +122,6 @@
MaxLineLength:MainActivity.kt$MainActivity$findViewById<MyViewPagerFragment<*>>(R.id.favorites_fragment)?.startNameWithSurnameChanged(configStartNameWithSurname)
MaxLineLength:MainActivity.kt$MainActivity$private fun getInactiveTabIndexes(activeIndex: Int)
MaxLineLength:MainActivity.kt$MainActivity$resources.getColoredDrawableWithColor(org.fossify.commons.R.drawable.ic_dialpad_vector, properPrimaryColor.getContrastColor())
- MaxLineLength:MainActivity.kt$MainActivity$updateMaterialActivityViews(binding.mainCoordinator, binding.mainHolder, useTransparentNavigation = false, useTopSearchMenu = true)
MaxLineLength:MainActivity.kt$MainActivity$val licenses = LICENSE_JODA or LICENSE_GLIDE or LICENSE_GSON or LICENSE_INDICATOR_FAST_SCROLL or LICENSE_AUTOFITTEXTVIEW
MaxLineLength:ManageAutoBackupsDialog.kt$ManageAutoBackupsDialog$activity
MaxLineLength:ManageAutoBackupsDialog.kt$ManageAutoBackupsDialog$binding.backupContactSourcesList.adapter = FilterContactSourcesAdapter(activity, contactSourcesWithCount, selectedContactSources.toList())
@@ -162,7 +159,6 @@
MaxLineLength:SelectGroupsDialog.kt$SelectGroupsDialog$setColors(activity.getProperTextColor(), activity.getProperPrimaryColor(), activity.getProperBackgroundColor())
MaxLineLength:SettingsActivity.kt$SettingsActivity$VcfExporter.ExportResult.EXPORT_PARTIAL -> org.fossify.commons.R.string.exporting_some_entries_failed
MaxLineLength:SettingsActivity.kt$SettingsActivity$binding.settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") && !isTiramisuPlus())
- MaxLineLength:SettingsActivity.kt$SettingsActivity$updateMaterialActivityViews(binding.settingsCoordinator, binding.settingsHolder, useTransparentNavigation = true, useTopSearchMenu = false)
MaxLineLength:SettingsActivity.kt$SettingsActivity$}
MaxLineLength:ViewContactActivity.kt$ViewContactActivity$.
MaxLineLength:ViewContactActivity.kt$ViewContactActivity$// a contact cannot have different emails per contact source. Such contacts are handled as separate ones, not duplicates of each other
@@ -188,8 +184,6 @@
PrintStackTrace:VcfExporter.kt$VcfExporter$e
ProtectedMemberInFinalClass:GroupContactsActivity.kt$GroupContactsActivity$protected val INTENT_SELECT_RINGTONE = 600
ProtectedMemberInFinalClass:GroupContactsActivity.kt$GroupContactsActivity$protected var contact: Contact? = null
- ReturnCount:EditContactActivity.kt$EditContactActivity$private fun startCropPhotoIntent(primaryUri: Uri?, backupUri: Uri?)
- ReturnCount:SimpleActivity.kt$SimpleActivity$protected fun getPhoneNumberFromIntent(intent: Intent): String?
SwallowedException:ContactsAdapter.kt$ContactsAdapter$e: Exception
SwallowedException:EditContactActivity.kt$EditContactActivity$e: ActivityNotFoundException
SwallowedException:EditContactActivity.kt$EditContactActivity$e: Exception
diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml
index 32eb128e2..fbe38ad3b 100644
--- a/app/lint-baseline.xml
+++ b/app/lint-baseline.xml
@@ -8,7 +8,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -19,17 +19,6 @@
file="src/main/AndroidManifest.xml"/>
-
-
-
-
@@ -91,7 +80,7 @@
errorLine1="distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -102,20 +91,53 @@
errorLine1="gradlePlugins-agp = "8.11.1""
errorLine2=" ~~~~~~~~">
+ message="A newer version of androidx.room:room-compiler than 2.8.2 is available: 2.8.3"
+ errorLine1="room = "2.8.2""
+ errorLine2=" ~~~~~~~">
+
+
+
+
+ file="$HOME/Projects/Fossify/FossifyOrg/Contacts/gradle/libs.versions.toml"
+ line="18"
+ column="8"/>
+
+
+
+
+
+
+
+
@@ -147,7 +169,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -230,7 +252,7 @@
@@ -1208,7 +1230,7 @@
errorLine2=" ~~~~~~~~">
@@ -1673,7 +1695,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1794,7 +1816,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1805,7 +1827,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
@@ -1816,7 +1838,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1827,7 +1849,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
diff --git a/app/src/main/kotlin/org/fossify/contacts/activities/EditContactActivity.kt b/app/src/main/kotlin/org/fossify/contacts/activities/EditContactActivity.kt
index ba4deb294..036bebaa7 100644
--- a/app/src/main/kotlin/org/fossify/contacts/activities/EditContactActivity.kt
+++ b/app/src/main/kotlin/org/fossify/contacts/activities/EditContactActivity.kt
@@ -83,7 +83,6 @@ class EditContactActivity : ContactActivity() {
}
override fun onCreate(savedInstanceState: Bundle?) {
- showTransparentTop = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
@@ -91,8 +90,9 @@ class EditContactActivity : ContactActivity() {
return
}
- binding.contactWrapper.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
- setupInsets()
+ setupEdgeToEdge(
+ padBottomImeAndSystem = listOf(binding.contactScrollview)
+ )
setupMenu()
val action = intent.action
@@ -296,10 +296,11 @@ class EditContactActivity : ContactActivity() {
}
}
- override fun onBackPressed() {
+ override fun onBackPressedCompat(): Boolean {
maybeShowUnsavedChangesDialog {
- super.onBackPressed()
+ performDefaultBack()
}
+ return true
}
private fun maybeShowUnsavedChangesDialog(discard: () -> Unit) {
@@ -323,19 +324,7 @@ class EditContactActivity : ContactActivity() {
}
}
- private fun setupInsets() {
- binding.contactWrapper.setOnApplyWindowInsetsListener { _, insets ->
- val windowInsets = WindowInsetsCompat.toWindowInsetsCompat(insets)
- val imeInsets = windowInsets.getInsets(WindowInsetsCompat.Type.ime())
- binding.contactScrollview.run {
- setPadding(paddingLeft, paddingTop, paddingRight, imeInsets.bottom)
- }
- insets
- }
- }
-
private fun setupMenu() {
- (binding.contactAppbar.layoutParams as RelativeLayout.LayoutParams).topMargin = statusBarHeight
binding.contactToolbar.menu.apply {
findItem(R.id.save).setOnMenuItemClickListener {
saveContact()
diff --git a/app/src/main/kotlin/org/fossify/contacts/activities/GroupContactsActivity.kt b/app/src/main/kotlin/org/fossify/contacts/activities/GroupContactsActivity.kt
index 712cc58b0..14e1117f2 100644
--- a/app/src/main/kotlin/org/fossify/contacts/activities/GroupContactsActivity.kt
+++ b/app/src/main/kotlin/org/fossify/contacts/activities/GroupContactsActivity.kt
@@ -34,14 +34,15 @@ class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener, Refresh
protected var contact: Contact? = null
override fun onCreate(savedInstanceState: Bundle?) {
- isMaterialActivity = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
updateTextColors(binding.groupContactsCoordinator)
setupOptionsMenu()
- updateMaterialActivityViews(binding.groupContactsCoordinator, binding.groupContactsList, useTransparentNavigation = true, useTopSearchMenu = false)
- setupMaterialScrollListener(binding.groupContactsList, binding.groupContactsToolbar)
+ setupEdgeToEdge(
+ padBottomImeAndSystem = listOf(binding.groupContactsList)
+ )
+ setupMaterialScrollListener(binding.groupContactsList, binding.groupContactsAppbar)
group = intent.extras?.getSerializable(GROUP) as Group
binding.groupContactsToolbar.title = group.title
@@ -65,9 +66,7 @@ class GroupContactsActivity : SimpleActivity(), RemoveFromGroupListener, Refresh
override fun onResume() {
super.onResume()
refreshContacts()
- setupToolbar(binding.groupContactsToolbar, NavigationIcon.Arrow)
- (binding.groupContactsFab.layoutParams as CoordinatorLayout.LayoutParams).bottomMargin =
- navigationBarHeight + resources.getDimension(org.fossify.commons.R.dimen.activity_margin).toInt()
+ setupTopAppBar(binding.groupContactsAppbar, NavigationIcon.Arrow)
}
private fun setupOptionsMenu() {
diff --git a/app/src/main/kotlin/org/fossify/contacts/activities/InsertOrEditContactActivity.kt b/app/src/main/kotlin/org/fossify/contacts/activities/InsertOrEditContactActivity.kt
index eec67cc27..e634a3e88 100644
--- a/app/src/main/kotlin/org/fossify/contacts/activities/InsertOrEditContactActivity.kt
+++ b/app/src/main/kotlin/org/fossify/contacts/activities/InsertOrEditContactActivity.kt
@@ -33,6 +33,9 @@ class InsertOrEditContactActivity : SimpleActivity(), RefreshContactsListener {
private var isSelectContactIntent = false
private var specialMimeType: String? = null
+
+ override var isSearchBarEnabled = true
+
private val binding by viewBinding(ActivityInsertEditContactBinding::inflate)
private val contactsFavoritesList = arrayListOf(
@@ -45,7 +48,9 @@ class InsertOrEditContactActivity : SimpleActivity(), RefreshContactsListener {
setContentView(binding.root)
setupOptionsMenu()
isSelectContactIntent = intent.action == Intent.ACTION_PICK
- updateMaterialActivityViews(binding.insertEditCoordinator, binding.insertEditContactHolder, useTransparentNavigation = false, useTopSearchMenu = true)
+ setupEdgeToEdge(
+ padBottomImeAndSystem = listOf(binding.insertEditTabsHolder),
+ )
if (isSelectContactIntent) {
specialMimeType = when (intent.data) {
@@ -85,7 +90,7 @@ class InsertOrEditContactActivity : SimpleActivity(), RefreshContactsListener {
}
private fun setupOptionsMenu() {
- binding.insertEditMenu.getToolbar().inflateMenu(R.menu.menu_insert_or_edit)
+ binding.insertEditMenu.requireToolbar().inflateMenu(R.menu.menu_insert_or_edit)
binding.insertEditMenu.toggleHideOnScroll(false)
binding.insertEditMenu.setupMenu()
@@ -99,7 +104,7 @@ class InsertOrEditContactActivity : SimpleActivity(), RefreshContactsListener {
getCurrentFragment()?.onSearchQueryChanged(text)
}
- binding.insertEditMenu.getToolbar().setOnMenuItemClickListener { menuItem ->
+ binding.insertEditMenu.requireToolbar().setOnMenuItemClickListener { menuItem ->
when (menuItem.itemId) {
R.id.sort -> showSortingDialog()
R.id.filter -> showFilterDialog()
@@ -110,7 +115,6 @@ class InsertOrEditContactActivity : SimpleActivity(), RefreshContactsListener {
}
private fun updateMenuColors() {
- updateStatusbarColor(getProperBackgroundColor())
binding.insertEditMenu.updateColors()
}
@@ -122,11 +126,12 @@ class InsertOrEditContactActivity : SimpleActivity(), RefreshContactsListener {
}
}
- override fun onBackPressed() {
- if (binding.insertEditMenu.isSearchOpen) {
+ override fun onBackPressedCompat(): Boolean {
+ return if (binding.insertEditMenu.isSearchOpen) {
binding.insertEditMenu.closeSearch()
+ true
} else {
- super.onBackPressed()
+ false
}
}
@@ -217,7 +222,6 @@ class InsertOrEditContactActivity : SimpleActivity(), RefreshContactsListener {
val bottomBarColor = getBottomNavigationBackgroundColor()
binding.insertEditTabsHolder.setBackgroundColor(bottomBarColor)
- updateNavigationBarColor(bottomBarColor)
}
private fun getInactiveTabIndexes(activeIndex: Int) = (0 until binding.insertEditTabsHolder.tabCount).filter { it != activeIndex }
diff --git a/app/src/main/kotlin/org/fossify/contacts/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/contacts/activities/MainActivity.kt
index e776f3d84..cefe8ef24 100644
--- a/app/src/main/kotlin/org/fossify/contacts/activities/MainActivity.kt
+++ b/app/src/main/kotlin/org/fossify/contacts/activities/MainActivity.kt
@@ -46,6 +46,9 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
private var storedStartNameWithSurname = false
private var storedFontSize = 0
private var storedShowTabs = 0
+
+ override var isSearchBarEnabled = true
+
private val binding by viewBinding(ActivityMainBinding::inflate)
override fun onCreate(savedInstanceState: Bundle?) {
@@ -54,7 +57,9 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
appLaunched(BuildConfig.APPLICATION_ID)
setupOptionsMenu()
refreshMenuItems()
- updateMaterialActivityViews(binding.mainCoordinator, binding.mainHolder, useTransparentNavigation = false, useTopSearchMenu = true)
+ setupEdgeToEdge(
+ padBottomImeAndSystem = listOf(binding.mainTabsHolder),
+ )
storeStateVariables()
setupTabs()
checkContactPermissions()
@@ -153,17 +158,18 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
}
}
- override fun onBackPressed() {
- if (binding.mainMenu.isSearchOpen) {
+ override fun onBackPressedCompat(): Boolean {
+ return if (binding.mainMenu.isSearchOpen) {
binding.mainMenu.closeSearch()
+ true
} else {
- super.onBackPressed()
+ false
}
}
private fun refreshMenuItems() {
val currentFragment = getCurrentFragment()
- binding.mainMenu.getToolbar().menu.apply {
+ binding.mainMenu.requireToolbar().menu.apply {
findItem(R.id.sort).isVisible = currentFragment != findViewById(R.id.groups_fragment)
findItem(R.id.filter).isVisible = currentFragment != findViewById(R.id.groups_fragment)
findItem(R.id.dialpad).isVisible = !config.showDialpadButton
@@ -174,7 +180,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
}
private fun setupOptionsMenu() {
- binding.mainMenu.getToolbar().inflateMenu(R.menu.menu)
+ binding.mainMenu.requireToolbar().inflateMenu(R.menu.menu)
binding.mainMenu.toggleHideOnScroll(false)
binding.mainMenu.setupMenu()
@@ -188,7 +194,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
getCurrentFragment()?.onSearchQueryChanged(text)
}
- binding.mainMenu.getToolbar().setOnMenuItemClickListener { menuItem ->
+ binding.mainMenu.requireToolbar().setOnMenuItemClickListener { menuItem ->
when (menuItem.itemId) {
R.id.sort -> showSortingDialog(showCustomSorting = getCurrentFragment() is FavoritesFragment)
R.id.filter -> showFilterDialog()
@@ -228,7 +234,6 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
}
private fun updateMenuColors() {
- updateStatusbarColor(getProperBackgroundColor())
binding.mainMenu.updateColors()
}
@@ -302,7 +307,6 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
val bottomBarColor = getBottomNavigationBackgroundColor()
binding.mainTabsHolder.setBackgroundColor(bottomBarColor)
- updateNavigationBarColor(bottomBarColor)
}
private fun getInactiveTabIndexes(activeIndex: Int) = (0 until binding.mainTabsHolder.tabCount).filter { it != activeIndex }
diff --git a/app/src/main/kotlin/org/fossify/contacts/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/contacts/activities/SettingsActivity.kt
index b196eaac6..9862a9d7f 100644
--- a/app/src/main/kotlin/org/fossify/contacts/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/org/fossify/contacts/activities/SettingsActivity.kt
@@ -33,16 +33,15 @@ class SettingsActivity : SimpleActivity() {
private var ignoredExportContactSources = HashSet()
override fun onCreate(savedInstanceState: Bundle?) {
- isMaterialActivity = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
- updateMaterialActivityViews(binding.settingsCoordinator, binding.settingsHolder, useTransparentNavigation = true, useTopSearchMenu = false)
- setupMaterialScrollListener(binding.settingsNestedScrollview, binding.settingsToolbar)
+ setupEdgeToEdge(padBottomSystem = listOf(binding.settingsNestedScrollview))
+ setupMaterialScrollListener(binding.settingsNestedScrollview, binding.settingsAppbar)
}
override fun onResume() {
super.onResume()
- setupToolbar(binding.settingsToolbar, NavigationIcon.Arrow)
+ setupTopAppBar(binding.settingsAppbar, NavigationIcon.Arrow)
setupCustomizeColors()
setupManageShownContactFields()
diff --git a/app/src/main/kotlin/org/fossify/contacts/activities/ViewContactActivity.kt b/app/src/main/kotlin/org/fossify/contacts/activities/ViewContactActivity.kt
index 8b587da59..fc5eb972b 100644
--- a/app/src/main/kotlin/org/fossify/contacts/activities/ViewContactActivity.kt
+++ b/app/src/main/kotlin/org/fossify/contacts/activities/ViewContactActivity.kt
@@ -47,7 +47,6 @@ class ViewContactActivity : ContactActivity() {
}
override fun onCreate(savedInstanceState: Bundle?) {
- showTransparentTop = true
super.onCreate(savedInstanceState)
setContentView(binding.root)
@@ -55,8 +54,9 @@ class ViewContactActivity : ContactActivity() {
return
}
+ setupEdgeToEdge(padBottomSystem = listOf(binding.contactScrollview))
+
showFields = config.showContactFields
- binding.contactWrapper.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
setupMenu()
}
@@ -81,16 +81,16 @@ class ViewContactActivity : ContactActivity() {
}
}
- override fun onBackPressed() {
- if (binding.contactPhotoBig.alpha == 1f) {
+ override fun onBackPressedCompat(): Boolean {
+ return if (binding.contactPhotoBig.alpha == 1f) {
hideBigContactPhoto()
+ true
} else {
- super.onBackPressed()
+ false
}
}
private fun setupMenu() {
- (binding.contactAppbar.layoutParams as RelativeLayout.LayoutParams).topMargin = statusBarHeight
binding.contactToolbar.menu.apply {
findItem(R.id.share).setOnMenuItemClickListener {
if (fullContact != null) {
diff --git a/app/src/main/res/layout/activity_edit_contact.xml b/app/src/main/res/layout/activity_edit_contact.xml
index 99482f3b6..c908123cd 100644
--- a/app/src/main/res/layout/activity_edit_contact.xml
+++ b/app/src/main/res/layout/activity_edit_contact.xml
@@ -588,7 +588,7 @@
android:background="@drawable/gradient_background_flipped"
android:contentDescription="@null" />
-
-
+
diff --git a/app/src/main/res/layout/activity_group_contacts.xml b/app/src/main/res/layout/activity_group_contacts.xml
index 89b0e39f2..b5a55bef3 100644
--- a/app/src/main/res/layout/activity_group_contacts.xml
+++ b/app/src/main/res/layout/activity_group_contacts.xml
@@ -5,21 +5,28 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
+ android:layout_height="wrap_content">
+
+
+
+
+ android:scrollbars="none"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index bfeefb866..85d05441e 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -6,21 +6,28 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
+ android:layout_height="wrap_content">
+
+
+
+
+ android:scrollbars="none"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
-
+
diff --git a/detekt.yml b/detekt.yml
index 6472c5a35..73ddc0c1a 100644
--- a/detekt.yml
+++ b/detekt.yml
@@ -40,6 +40,11 @@ style:
maxLineLength: 120
excludePackageStatements: true
excludeImportStatements: true
+ ReturnCount:
+ active: true
+ max: 4
+ excludeGuardClauses: true
+ excludes: ["**/test/**", "**/androidTest/**"]
naming:
FunctionNaming:
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 47ba8b8f1..5e52ad4b0 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -17,12 +17,12 @@ indicatorfastscroll = "4524cd0b61"
#Room
room = "2.8.2"
#Fossify
-commons = "5.4.0"
+commons = "5.5.0"
#Gradle
gradlePlugins-agp = "8.11.1"
#build
-app-build-compileSDKVersion = "34"
-app-build-targetSDK = "34"
+app-build-compileSDKVersion = "36"
+app-build-targetSDK = "36"
app-build-minimumSDK = "26"
app-build-javaVersion = "VERSION_17"
app-build-kotlinJVMTarget = "17"
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 45478cbec..94d40dbf9 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -11,6 +11,7 @@ dependencyResolutionManagement {
google()
mavenCentral()
maven { setUrl("https://jitpack.io") }
+ mavenLocal()
}
}
include(":app")