From ea93e7bda409c05684973bd1c00cd0f797d00cf8 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Tue, 29 Jul 2025 16:47:03 +0530 Subject: [PATCH 01/10] 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 0bbc9a19..c7fe0b8f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,8 +16,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 1d3be13374cef274a2d0895a270c0d6db5094afa Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sat, 18 Oct 2025 19:11:56 +0530 Subject: [PATCH 02/10] 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 c7fe0b8f..1db1eebe 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,8 +16,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 45478cbe..94d40dbf 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 4f4fb6681ee83896a7a428ca3cf26139c6ccd7e7 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Tue, 21 Oct 2025 15:29:25 +0530 Subject: [PATCH 03/10] refactor: update edge-to-edge implementation --- .../org/fossify/keyboard/activities/MainActivity.kt | 9 +++------ .../keyboard/activities/ManageClipboardItemsActivity.kt | 3 +-- .../org/fossify/keyboard/activities/SettingsActivity.kt | 9 +++------ 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt index 73d3fa49..f0b37343 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt @@ -25,7 +25,6 @@ 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) @@ -33,11 +32,9 @@ class MainActivity : SimpleActivity() { refreshMenuItems() binding.apply { - updateMaterialActivityViews( - mainCoordinator, - mainHolder, - useTransparentNavigation = false, - useTopSearchMenu = false + updateEdgeToEdge( + topAppBar = mainToolbar, + scrollingView = mainNestedScrollview, ) setupMaterialScrollListener(mainNestedScrollview, mainToolbar) diff --git a/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt b/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt index 1e385b5e..52f1ba2b 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt @@ -33,7 +33,6 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen private val binding by viewBinding(ActivityManageClipboardItemsBinding::inflate) override fun onCreate(savedInstanceState: Bundle?) { - isMaterialActivity = true super.onCreate(savedInstanceState) setContentView(binding.root) setupOptionsMenu() @@ -41,7 +40,7 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen updateClips() binding.apply { - updateMaterialActivityViews(clipboardCoordinator, clipboardItemsList, useTransparentNavigation = true, useTopSearchMenu = false) + updateEdgeToEdge(topAppBar = clipboardToolbar, scrollingView = clipboardItemsList) setupMaterialScrollListener(clipboardNestedScrollview, clipboardToolbar) clipboardItemsPlaceholder.text = "${getText(R.string.manage_clipboard_empty)}\n\n${getText(R.string.manage_clips)}" diff --git a/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt index f75d9e2a..3f571fad 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt @@ -36,16 +36,13 @@ class SettingsActivity : SimpleActivity() { private val binding by viewBinding(ActivitySettingsBinding::inflate) override fun onCreate(savedInstanceState: Bundle?) { - isMaterialActivity = true super.onCreate(savedInstanceState) setContentView(binding.root) binding.apply { - updateMaterialActivityViews( - mainCoordinatorLayout = settingsCoordinator, - nestedView = settingsHolder, - useTransparentNavigation = true, - useTopSearchMenu = false + updateEdgeToEdge( + topAppBar = settingsToolbar, + scrollingView = settingsNestedScrollview, ) setupMaterialScrollListener(settingsNestedScrollview, settingsToolbar) } From e5a98c596f2feaf7f997aa4fc99d065bfc4ddf89 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Tue, 21 Oct 2025 16:04:55 +0530 Subject: [PATCH 04/10] refactor: update edge-to-edge implementation --- .../main/kotlin/org/fossify/keyboard/activities/MainActivity.kt | 2 +- .../fossify/keyboard/activities/ManageClipboardItemsActivity.kt | 2 +- .../kotlin/org/fossify/keyboard/activities/SettingsActivity.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt index f0b37343..082bf79d 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt @@ -46,7 +46,7 @@ class MainActivity : SimpleActivity() { override fun onResume() { super.onResume() - setupToolbar(binding.mainToolbar) + setupTopAppBar(binding.mainToolbar) if (!isKeyboardEnabled()) { ConfirmationAdvancedDialog( activity = this, diff --git a/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt b/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt index 52f1ba2b..77418697 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt @@ -56,7 +56,7 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen override fun onResume() { super.onResume() - setupToolbar(binding.clipboardToolbar, NavigationIcon.Arrow) + setupTopAppBar(binding.clipboardToolbar, NavigationIcon.Arrow) } override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { diff --git a/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt index 3f571fad..9d6aa831 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt @@ -50,7 +50,7 @@ class SettingsActivity : SimpleActivity() { override fun onResume() { super.onResume() - setupToolbar(binding.settingsToolbar, NavigationIcon.Arrow) + setupTopAppBar(binding.settingsToolbar, NavigationIcon.Arrow) setupCustomizeColors() setupUseEnglish() From 2cdd736a4add3180bd964f618a7fe963fbf20842 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Tue, 21 Oct 2025 16:10:40 +0530 Subject: [PATCH 05/10] refactor: migrate away from deprecated onBackPressed() --- .../keyboard/activities/MainActivity.kt | 9 +++---- .../ManageClipboardItemsActivity.kt | 6 ++--- .../keyboard/activities/SettingsActivity.kt | 9 +++---- .../keyboard/services/SimpleKeyboardIME.kt | 2 +- app/src/main/res/layout/activity_main.xml | 23 +++++++++++------ .../activity_manage_clipboard_items.xml | 25 ++++++++++++------- app/src/main/res/layout/activity_settings.xml | 23 +++++++++++------ gradle/libs.versions.toml | 2 +- 8 files changed, 57 insertions(+), 42 deletions(-) diff --git a/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt index 082bf79d..ac52f9b8 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/activities/MainActivity.kt @@ -32,11 +32,8 @@ class MainActivity : SimpleActivity() { refreshMenuItems() binding.apply { - updateEdgeToEdge( - topAppBar = mainToolbar, - scrollingView = mainNestedScrollview, - ) - setupMaterialScrollListener(mainNestedScrollview, mainToolbar) + setupEdgeToEdge(padBottomSystem = listOf(mainNestedScrollview)) + setupMaterialScrollListener(binding.mainNestedScrollview, binding.mainAppbar) changeKeyboardHolder.setOnClickListener { inputMethodManager.showInputMethodPicker() @@ -46,7 +43,7 @@ class MainActivity : SimpleActivity() { override fun onResume() { super.onResume() - setupTopAppBar(binding.mainToolbar) + setupTopAppBar(binding.mainAppbar) if (!isKeyboardEnabled()) { ConfirmationAdvancedDialog( activity = this, diff --git a/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt b/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt index 77418697..34e22931 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/activities/ManageClipboardItemsActivity.kt @@ -40,8 +40,8 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen updateClips() binding.apply { - updateEdgeToEdge(topAppBar = clipboardToolbar, scrollingView = clipboardItemsList) - setupMaterialScrollListener(clipboardNestedScrollview, clipboardToolbar) + setupEdgeToEdge(padBottomSystem = listOf(clipboardItemsList)) + setupMaterialScrollListener(binding.clipboardItemsList, binding.clipboardAppbar) clipboardItemsPlaceholder.text = "${getText(R.string.manage_clipboard_empty)}\n\n${getText(R.string.manage_clips)}" clipboardItemsPlaceholder2.apply { @@ -56,7 +56,7 @@ class ManageClipboardItemsActivity : SimpleActivity(), RefreshRecyclerViewListen override fun onResume() { super.onResume() - setupTopAppBar(binding.clipboardToolbar, NavigationIcon.Arrow) + setupTopAppBar(binding.clipboardAppbar, NavigationIcon.Arrow) } override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { diff --git a/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt b/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt index 9d6aa831..be7267ce 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/activities/SettingsActivity.kt @@ -40,17 +40,14 @@ class SettingsActivity : SimpleActivity() { setContentView(binding.root) binding.apply { - updateEdgeToEdge( - topAppBar = settingsToolbar, - scrollingView = settingsNestedScrollview, - ) - setupMaterialScrollListener(settingsNestedScrollview, settingsToolbar) + setupEdgeToEdge(padBottomSystem = listOf(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/keyboard/services/SimpleKeyboardIME.kt b/app/src/main/kotlin/org/fossify/keyboard/services/SimpleKeyboardIME.kt index 6c54ead0..4c7c5649 100644 --- a/app/src/main/kotlin/org/fossify/keyboard/services/SimpleKeyboardIME.kt +++ b/app/src/main/kotlin/org/fossify/keyboard/services/SimpleKeyboardIME.kt @@ -561,7 +561,7 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared private fun updateBackgroundColors() { val backgroundColor = safeStorageContext.getKeyboardBackgroundColor() binding.keyboardHolder.setBackgroundColor(backgroundColor) - window.window?.updateNavigationBarColors(backgroundColor) + window.window?.setSystemBarsAppearance(backgroundColor) } private fun Bitmap.toIcon(): Icon { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a934c6fd..6d2de619 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.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"> - + android:layout_height="wrap_content"> + + + + + android:scrollbars="none" + 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 20:06:54 +0530 Subject: [PATCH 06/10] 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 9fe9f660..25f214e2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,7 +12,7 @@ detektCompose = "0.4.27" #Room room = "2.8.2" #Fossify -commons = "6.0.0" +commons = "5.5.0" #Gradle gradlePlugins-agp = "8.11.1" #build From de92383f9043aacdc4241ae0d2d6064db316b247 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 26 Oct 2025 20:42:01 +0530 Subject: [PATCH 07/10] docs: update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 504aa48e..83d42056 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-09-23 ### Added - German QWERTZ layout without dedicated umlaut keys ([#47]) From a79205270883b08d7269614f74c3fe23a6e655d4 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 26 Oct 2025 20:59:13 +0530 Subject: [PATCH 08/10] docs: update changelog --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83d42056..07dbad1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Changed - - Compatibility updates for Android 15 & 16 +### Fixed +- Fixed invisible numbers in the top row ([#100]) + ## [1.5.0] - 2025-09-23 ### Added - German QWERTZ layout without dedicated umlaut keys ([#47]) @@ -97,6 +99,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#47]: https://github.com/FossifyOrg/Keyboard/issues/47 [#78]: https://github.com/FossifyOrg/Keyboard/issues/78 +[#100]: https://github.com/FossifyOrg/Keyboard/issues/100 [#133]: https://github.com/FossifyOrg/Keyboard/issues/133 [#134]: https://github.com/FossifyOrg/Keyboard/issues/134 [#136]: https://github.com/FossifyOrg/Keyboard/issues/136 From 7d5425dac3045b4062a8da9b1e4edb6e80c0b8ef Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 26 Oct 2025 21:13:36 +0530 Subject: [PATCH 09/10] build: bump detekt return count limit --- detekt.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/detekt.yml b/detekt.yml index 6472c5a3..73ddc0c1 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 d73685f61958585aa415d6c89111c1a479038896 Mon Sep 17 00:00:00 2001 From: Naveen Singh Date: Sun, 26 Oct 2025 21:46:57 +0530 Subject: [PATCH 10/10] chore: update lint baselines --- app/detekt-baseline.xml | 6 --- app/lint-baseline.xml | 86 ++++++++++++++++++++++++++--------------- 2 files changed, 54 insertions(+), 38 deletions(-) diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml index 74a22ed2..7c17b114 100644 --- a/app/detekt-baseline.xml +++ b/app/detekt-baseline.xml @@ -61,7 +61,6 @@ MaxLineLength:ExportClipsDialog.kt$ExportClipsDialog$val title = String.format(activity.getString(R.string.file_already_exists_overwrite), newPath.getFilenameFromPath()) MaxLineLength:ManageClipboardItemsActivity.kt$ManageClipboardItemsActivity$clipboardItemsPlaceholder.text = "${getText(R.string.manage_clipboard_empty)}\n\n${getText(R.string.manage_clips)}" MaxLineLength:ManageClipboardItemsActivity.kt$ManageClipboardItemsActivity$if - MaxLineLength:ManageClipboardItemsActivity.kt$ManageClipboardItemsActivity$updateMaterialActivityViews(clipboardCoordinator, clipboardItemsList, useTransparentNavigation = true, useTopSearchMenu = false) MaxLineLength:ManageClipboardItemsActivity.kt$ManageClipboardItemsActivity$val msg = if (clipsImported > 0) R.string.importing_successful else R.string.no_new_entries_for_importing MaxLineLength:ManageClipboardItemsActivity.kt$ManageClipboardItemsActivity$} MaxLineLength:MyKeyboard.kt$MyKeyboard$* @@ -102,11 +101,6 @@ NestedBlockDepth:MyKeyboardView.kt$MyKeyboardView$private fun onLongPress(popupKey: MyKeyboard.Key, me: MotionEvent): Boolean NestedBlockDepth:MyKeyboardView.kt$MyKeyboardView$private fun onModifiedTouchEvent(me: MotionEvent): Boolean NestedBlockDepth:SimpleKeyboardIME.kt$SimpleKeyboardIME$override fun onKey(code: Int) - ReturnCount:EmojiHelper.kt$fun parseRawJsonSpecsFile(context: Context, path: String): HashMap<String, String> - ReturnCount:MyKeyboardView.kt$MyKeyboardView$private fun onLongPress(popupKey: MyKeyboard.Key, me: MotionEvent): Boolean - ReturnCount:MyKeyboardView.kt$MyKeyboardView$private fun onModifiedTouchEvent(me: MotionEvent): Boolean - ReturnCount:MyKeyboardView.kt$MyKeyboardView$private fun openPopupIfRequired(me: MotionEvent): Boolean - ReturnCount:SimpleKeyboardIME.kt$SimpleKeyboardIME$private fun getCountToDelete(inputConnection: InputConnection): Int SpreadOperator:MyKeyboardView.kt$MyKeyboardView$(*animations.toTypedArray()) SwallowedException:ManageClipboardItemsActivity.kt$ManageClipboardItemsActivity$e: ActivityNotFoundException SwallowedException:MyKeyboard.kt$MyKeyboard$e: Exception diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index 2d701178..852fcdd5 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"/> - - - - @@ -58,20 +47,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/Keyboard/gradle/libs.versions.toml" + line="13" + column="8"/> + + + + + + + + + + + + @@ -362,7 +384,7 @@