diff --git a/CHANGELOG.md b/CHANGELOG.md
index 697732a7..9f6209ec 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.1] - 2025-10-05
### Changed
- Updated translations
diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml
index 123873da..681960c6 100644
--- a/app/detekt-baseline.xml
+++ b/app/detekt-baseline.xml
@@ -73,7 +73,6 @@
MaxLineLength:CameraErrorHandler.kt$CameraErrorHandler$VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE -> context.toast(R.string.video_capture_insufficient_storage_error)
MaxLineLength:ImageUtil.kt$ImageUtil$require(image.format == ImageFormat.YUV_420_888) { "Incorrect image format of the input image proxy: " + image.format }
MaxLineLength:MainActivity.kt$MainActivity$if
- MaxLineLength:MainActivity.kt$MainActivity$safeInsetBottom + navigationBarHeight + resources.getDimensionPixelSize(org.fossify.commons.R.dimen.bigger_margin)
MaxLineLength:MainActivity.kt$MainActivity$}
MaxLineLength:SettingsActivity.kt$SettingsActivity$it.beGoneIf(settingsUseEnglishHolder.isGone() && settingsPurchaseThankYouHolder.isGone() && settingsLanguageHolder.isGone())
MaxLineLength:SettingsActivity.kt$SettingsActivity$settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") && !isTiramisuPlus())
@@ -85,12 +84,7 @@
NestedBlockDepth:MediaOutputHelper.kt$MediaOutputHelper$private fun getUriForFilePath(path: String): Uri?
NestedBlockDepth:PhotoProcessor.kt$PhotoProcessor$override fun doInBackground(vararg params: ByteArray): String
NestedBlockDepth:VideoQualityManager.kt$VideoQualityManager$fun initSupportedQualities(cameraProvider: ProcessCameraProvider)
- ReturnCount:ImageSaver.kt$ImageSaver$@SuppressLint("RestrictedApi") private fun saveImageToTempFile(): File?
- ReturnCount:MediaActionSound.kt$MediaActionSound$private fun loadSound(sound: SoundState): Int
- ReturnCount:MediaOutputHelper.kt$MediaOutputHelper$private fun getFileDescriptorMediaOutput(): MediaOutput.FileDescriptorMediaOutput?
- ReturnCount:MediaOutputHelper.kt$MediaOutputHelper$private fun getUriForFilePath(path: String): Uri?
ReturnCount:PhotoProcessor.kt$PhotoProcessor$override fun doInBackground(vararg params: ByteArray): String
- ReturnCount:PhotoProcessor.kt$PhotoProcessor$private fun rotate(bitmap: Bitmap, degree: Int): Bitmap?
SwallowedException:BitmapUtils.kt$BitmapUtils$ex: OutOfMemoryError
SwallowedException:CameraXPreview.kt$CameraXPreview$e: Exception
SwallowedException:ImageUtil.kt$ImageUtil$e: IOException
diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml
index 9d7fe31f..9f727466 100644
--- a/app/lint-baseline.xml
+++ b/app/lint-baseline.xml
@@ -41,7 +41,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -52,17 +52,6 @@
file="src/main/AndroidManifest.xml"/>
-
-
-
-
@@ -92,7 +81,7 @@
errorLine2=" ~~~~">
@@ -113,7 +102,7 @@
errorLine1="distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -124,73 +113,73 @@
errorLine1="gradlePlugins-agp = "8.11.1""
errorLine2=" ~~~~~~~~">
@@ -201,22 +190,11 @@
errorLine1="androidx-ktx = "2.8.6""
errorLine2=" ~~~~~~~">
-
-
-
-
+
+
+
+
{
bottomMargin = marginBottom
diff --git a/app/src/main/kotlin/org/fossify/camera/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/camera/activities/SettingsActivity.kt
index c239e468..591603a4 100644
--- a/app/src/main/kotlin/org/fossify/camera/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/org/fossify/camera/activities/SettingsActivity.kt
@@ -20,26 +20,20 @@ class SettingsActivity : SimpleActivity() {
private val binding by viewBinding(ActivitySettingsBinding::inflate)
override fun onCreate(savedInstanceState: Bundle?) {
- isMaterialActivity = true
super.onCreate(savedInstanceState)
binding.apply {
setContentView(root)
setupOptionsMenu()
refreshMenuItems()
- updateMaterialActivityViews(
- settingsCoordinator,
- settingsHolder,
- useTransparentNavigation = true,
- useTopSearchMenu = false
- )
- setupMaterialScrollListener(settingsNestedScrollview, settingsToolbar)
+ setupEdgeToEdge(padBottomSystem = listOf(settingsNestedScrollview))
+ setupMaterialScrollListener(binding.settingsNestedScrollview, binding.settingsAppbar)
}
}
override fun onResume() {
super.onResume()
- setupToolbar(binding.settingsToolbar, NavigationIcon.Arrow)
+ setupTopAppBar(binding.settingsAppbar, NavigationIcon.Arrow)
setupCustomizeColors()
setupUseEnglish()
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index cbe795b6..b7bfc067 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -6,22 +6,29 @@
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">