From 3cc22b917105afd7b874f0178d31c971a59c9dc5 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Tue, 29 Jul 2025 16:47:02 +0530 Subject: [PATCH 01/11] chore: bump target SDK version to 35 --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 974d3bc4d..9bb473247 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,8 +17,8 @@ commons = "5.4.0" #Gradle gradlePlugins-agp = "8.11.1" #build -app-build-compileSDKVersion = "34" -app-build-targetSDK = "34" +app-build-compileSDKVersion = "35" +app-build-targetSDK = "35" app-build-minimumSDK = "26" app-build-javaVersion = "VERSION_17" app-build-kotlinJVMTarget = "17" From 189a4e56e092c188311c599767ff2d4fc4475747 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sat, 18 Oct 2025 19:11:55 +0530 Subject: [PATCH 02/11] chore: bump target SDK version to 36 --- gradle/libs.versions.toml | 4 ++-- settings.gradle.kts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9bb473247..abfc4a6d8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,8 +17,8 @@ commons = "5.4.0" #Gradle gradlePlugins-agp = "8.11.1" #build -app-build-compileSDKVersion = "35" -app-build-targetSDK = "35" +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") From 7931afab58d4225816f59c09a6f7f9024e1e6e8d Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Tue, 21 Oct 2025 15:29:24 +0530 Subject: [PATCH 03/11] refactor: update edge-to-edge implementation --- .../kotlin/org/fossify/notes/activities/MainActivity.kt | 9 +++------ .../org/fossify/notes/activities/SettingsActivity.kt | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt index bbfa640ac..713b36498 100644 --- a/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt @@ -158,18 +158,15 @@ class MainActivity : SimpleActivity() { private val binding by viewBinding(ActivityMainBinding::inflate) override fun onCreate(savedInstanceState: Bundle?) { - isMaterialActivity = true super.onCreate(savedInstanceState) setContentView(binding.root) appLaunched(BuildConfig.APPLICATION_ID) setupOptionsMenu() refreshMenuItems() - updateMaterialActivityViews( - mainCoordinatorLayout = binding.mainCoordinator, - nestedView = null, - useTransparentNavigation = false, - useTopSearchMenu = false + updateEdgeToEdge( + topAppBar = binding.mainToolbar, + scrollingView = binding.notesList, ) searchQueryET = findViewById(org.fossify.commons.R.id.search_query) diff --git a/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt index 9679cc96d..4b0c075ba 100644 --- a/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt @@ -77,15 +77,12 @@ class SettingsActivity : SimpleActivity() { private val binding by viewBinding(ActivitySettingsBinding::inflate) override fun onCreate(savedInstanceState: Bundle?) { - isMaterialActivity = true super.onCreate(savedInstanceState) setContentView(binding.root) - updateMaterialActivityViews( - mainCoordinatorLayout = binding.settingsCoordinator, - nestedView = binding.settingsHolder, - useTransparentNavigation = true, - useTopSearchMenu = false + updateEdgeToEdge( + topAppBar = binding.settingsToolbar, + scrollingView = binding.settingsNestedScrollview, ) setupMaterialScrollListener(binding.settingsNestedScrollview, binding.settingsToolbar) } From a359bcae1ace4bf278f91d849a5b4a21189427dc Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Tue, 21 Oct 2025 16:04:54 +0530 Subject: [PATCH 04/11] refactor: update edge-to-edge implementation --- .../main/kotlin/org/fossify/notes/activities/MainActivity.kt | 2 +- .../kotlin/org/fossify/notes/activities/SettingsActivity.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt index 713b36498..c4da7894f 100644 --- a/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt @@ -201,7 +201,7 @@ class MainActivity : SimpleActivity() { override fun onResume() { super.onResume() - setupToolbar(binding.mainToolbar) + setupTopAppBar(binding.mainToolbar) if (storedEnableLineWrap != config.enableLineWrap) { initViewPager() } diff --git a/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt index 4b0c075ba..38929dbd1 100644 --- a/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt @@ -89,7 +89,7 @@ class SettingsActivity : SimpleActivity() { override fun onResume() { super.onResume() - setupToolbar(binding.settingsToolbar, NavigationIcon.Arrow) + setupTopAppBar(binding.settingsToolbar, NavigationIcon.Arrow) setupCustomizeColors() setupUseEnglish() From de599de3792a4fcddf307d819abab594356c2079 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Tue, 21 Oct 2025 16:10:39 +0530 Subject: [PATCH 05/11] refactor: update edge-to-edge implementation --- .../fossify/notes/activities/MainActivity.kt | 10 +++----- .../notes/activities/SettingsActivity.kt | 9 +++---- .../activities/WidgetConfigureActivity.kt | 1 + app/src/main/res/layout/activity_main.xml | 24 ++++++++++++------- app/src/main/res/layout/activity_settings.xml | 23 +++++++++++------- gradle/libs.versions.toml | 2 +- 6 files changed, 38 insertions(+), 31 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt index c4da7894f..df7c57576 100644 --- a/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt @@ -164,11 +164,7 @@ class MainActivity : SimpleActivity() { setupOptionsMenu() refreshMenuItems() - updateEdgeToEdge( - topAppBar = binding.mainToolbar, - scrollingView = binding.notesList, - ) - + setupEdgeToEdge(padBottomImeAndSystem = listOf(binding.viewPager)) searchQueryET = findViewById(org.fossify.commons.R.id.search_query) searchPrevBtn = findViewById(org.fossify.commons.R.id.search_previous) searchNextBtn = findViewById(org.fossify.commons.R.id.search_next) @@ -201,7 +197,7 @@ class MainActivity : SimpleActivity() { override fun onResume() { super.onResume() - setupTopAppBar(binding.mainToolbar) + setupTopAppBar(binding.mainAppbar) if (storedEnableLineWrap != config.enableLineWrap) { initViewPager() } @@ -233,7 +229,7 @@ class MainActivity : SimpleActivity() { it.applyColorFilter(contrastColor) } - updateTopBarColors(binding.mainToolbar, getProperBackgroundColor()) + updateTopBarColors(binding.mainAppbar, getProperBackgroundColor()) } override fun onPause() { diff --git a/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt index 38929dbd1..15bbc2e66 100644 --- a/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/notes/activities/SettingsActivity.kt @@ -80,16 +80,13 @@ class SettingsActivity : SimpleActivity() { super.onCreate(savedInstanceState) setContentView(binding.root) - updateEdgeToEdge( - topAppBar = binding.settingsToolbar, - scrollingView = binding.settingsNestedScrollview, - ) - setupMaterialScrollListener(binding.settingsNestedScrollview, binding.settingsToolbar) + setupEdgeToEdge(padBottomSystem = listOf(binding.settingsNestedScrollview)) + setupMaterialScrollListener(binding.settingsNestedScrollview, binding.settingsAppbar) } override fun onResume() { super.onResume() - setupTopAppBar(binding.settingsToolbar, NavigationIcon.Arrow) + setupTopAppBar(binding.settingsAppbar, NavigationIcon.Arrow) setupCustomizeColors() setupUseEnglish() diff --git a/app/src/main/kotlin/org/fossify/notes/activities/WidgetConfigureActivity.kt b/app/src/main/kotlin/org/fossify/notes/activities/WidgetConfigureActivity.kt index 2efee53bd..72336e912 100644 --- a/app/src/main/kotlin/org/fossify/notes/activities/WidgetConfigureActivity.kt +++ b/app/src/main/kotlin/org/fossify/notes/activities/WidgetConfigureActivity.kt @@ -49,6 +49,7 @@ class WidgetConfigureActivity : SimpleActivity() { super.onCreate(savedInstanceState) setResult(RESULT_CANCELED) setContentView(binding.root) + setupEdgeToEdge(padTopSystem = listOf(binding.root), padBottomSystem = listOf(binding.root)) initVariables() mWidgetId = intent.extras?.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID) ?: AppWidgetManager.INVALID_APPWIDGET_ID diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index c69607d48..0bb7b8d96 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -2,24 +2,30 @@ - + android:layout_height="wrap_content"> + + + + + android:orientation="vertical" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - + android:layout_height="wrap_content"> + + + + + android:scrollbars="none" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> Date: Sun, 26 Oct 2025 01:52:21 +0530 Subject: [PATCH 06/11] refactor: migrate away from deprecated onBackPressed() --- .../org/fossify/notes/activities/MainActivity.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt index df7c57576..f67d6c865 100644 --- a/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt @@ -341,8 +341,8 @@ class MainActivity : SimpleActivity() { } } - override fun onBackPressed() { - if (!config.autosaveNotes && mAdapter?.anyHasUnsavedChanges() == true) { + override fun onBackPressedCompat(): Boolean { + return if (!config.autosaveNotes && mAdapter?.anyHasUnsavedChanges() == true) { ConfirmationAdvancedDialog( activity = this, message = "", @@ -354,13 +354,15 @@ class MainActivity : SimpleActivity() { mAdapter?.saveAllFragmentTexts() } appLockManager.lock() - super.onBackPressed() + performDefaultBack() } + true } else if (isSearchActive) { closeSearch() + true } else { appLockManager.lock() - super.onBackPressed() + false } } From 8538e99712600648c371ec949a43c312cf40eb57 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 26 Oct 2025 18:30:01 +0530 Subject: [PATCH 07/11] fix: replace removeFirst()/removeLast() with removeAt() --- app/src/main/kotlin/org/fossify/notes/models/TextHistory.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/org/fossify/notes/models/TextHistory.kt b/app/src/main/kotlin/org/fossify/notes/models/TextHistory.kt index 152bbb0e8..706b580cb 100644 --- a/app/src/main/kotlin/org/fossify/notes/models/TextHistory.kt +++ b/app/src/main/kotlin/org/fossify/notes/models/TextHistory.kt @@ -26,7 +26,7 @@ class TextHistory { fun add(item: TextHistoryItem) { while (history.size > position) { - history.removeLast() + history.removeAt(history.lastIndex) } history.add(item) From 86feae04f0768b6ded09e7c400071a45e9830efe Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 26 Oct 2025 20:06:53 +0530 Subject: [PATCH 08/11] chore(deps): update org.fossify.commons to 5.5.0 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d3b21160a..334649386 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ androidx-documentfile = "1.1.0" #Room room = "2.8.2" #Fossify -commons = "6.0.0" +commons = "5.5.0" #Gradle gradlePlugins-agp = "8.11.1" #build From e0eebda624fce03a13974617f2cf35f7b4ccfebe Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 26 Oct 2025 20:41:59 +0530 Subject: [PATCH 09/11] docs: update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc23c737a..3d120cffc 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.5.0] - 2025-10-10 ### Changed - Updated translations From 2fdbad4c3a98db75caac218cfc05d95a9628db20 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 26 Oct 2025 21:13:32 +0530 Subject: [PATCH 10/11] build: bump detekt return count limit --- detekt.yml | 5 +++++ 1 file changed, 5 insertions(+) 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: From 41c86533d0a961abe05fe849714a5a5a2adbc4ba Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 26 Oct 2025 21:46:56 +0530 Subject: [PATCH 11/11] chore: update lint baselines --- app/detekt-baseline.xml | 2 - app/lint-baseline.xml | 225 +++++++++++++++++++++++----------------- 2 files changed, 129 insertions(+), 98 deletions(-) diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index 3475c07b7..7f6024218 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -78,8 +78,6 @@ NestedBlockDepth:MainActivity.kt$MainActivity$private fun checkIntents(intent: Intent) NestedBlockDepth:Note.kt$Note$fun getNoteStoredValue(context: Context): String? NestedBlockDepth:TasksFragment.kt$TasksFragment$private fun prepareTaskItems(): List<NoteItem> - ReturnCount:TasksFragment.kt$TasksFragment$private fun saveNote(callback: () -> Unit = {}) - ReturnCount:TextFragment.kt$TextFragment$fun saveText(force: Boolean, callback: ((note: Note) -> Unit)? = null) SwallowedException:MainActivity.kt$MainActivity$e: ActivityNotFoundException SwallowedException:MainActivity.kt$MainActivity$e: Exception SwallowedException:MainActivity.kt$MainActivity$e: NetworkErrorException diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index fb478b047..e778dc947 100644 --- a/app/lint-baseline.xml +++ b/app/lint-baseline.xml @@ -8,25 +8,14 @@ file="src/main/AndroidManifest.xml"/> - - - - @@ -80,7 +69,7 @@ errorLine1="distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip" errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -91,20 +80,42 @@ 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/Notes/gradle/libs.versions.toml" + line="14" + column="8"/> + + + + + + + + + + + + + + + + @@ -1496,7 +1529,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1507,7 +1540,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">