From 7d91bf6549bab0069f8abaf58eaf9a59788e1ffc Mon Sep 17 00:00:00 2001 From: Potato Hatsue <1793913507@qq.com> Date: Sun, 12 Nov 2023 22:37:50 -0500 Subject: [PATCH 001/281] F-Droid CI: Don't use dynamic linking GHC --- app/org.fcitx.fcitx5.android.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/org.fcitx.fcitx5.android.yml b/app/org.fcitx.fcitx5.android.yml index 62fdba70e..eb2277a5b 100644 --- a/app/org.fcitx.fcitx5.android.yml +++ b/app/org.fcitx.fcitx5.android.yml @@ -44,7 +44,6 @@ Builds: - build-logic/convention/build build: - pushd $$fcitx5-android-prebuilder$$ - - cabal configure --disable-library-vanilla --enable-shared --enable-executable-dynamic --ghc-options=-dynamic - ABI=%abi ANDROID_NDK_ROOT=$$NDK$$ CMAKE_VERSION=3.22.1 ANDROID_PLATFORM=23 COMP_SPELL_DICT=/usr/lib/x86_64-linux-gnu/fcitx5/libexec/comp-spell-dict ./build-cabal -j spell-dict fmt libevent libintl-lite boost marisa opencc libime lua chinese-addons-data zstd From 377ac1a66caa322625a2757f6db0bc8651fba2bc Mon Sep 17 00:00:00 2001 From: Dmitry <87600810+gostsdmitry@users.noreply.github.com> Date: Tue, 14 Nov 2023 10:15:29 +0700 Subject: [PATCH 002/281] Update fastlane translation (#380) --- .../metadata/android/ru/full_description.txt | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/fastlane/metadata/android/ru/full_description.txt b/fastlane/metadata/android/ru/full_description.txt index 455ed0a6f..55f4e17d3 100644 --- a/fastlane/metadata/android/ru/full_description.txt +++ b/fastlane/metadata/android/ru/full_description.txt @@ -1,17 +1,27 @@ Поддерживаемые языки Функции Функции в разработке From 278c820ac4ab2f590ea39c97e1d2db0f0a44b8b4 Mon Sep 17 00:00:00 2001 From: Rocka Date: Fri, 17 Nov 2023 22:56:18 +0800 Subject: [PATCH 003/281] Fix detecting other input methods on Android 14 --- app/src/main/AndroidManifest.xml | 5 ++++- app/src/main/res/xml-v30/input_method.xml | 12 ------------ app/src/main/res/xml/input_method.xml | 5 ++++- 3 files changed, 8 insertions(+), 14 deletions(-) delete mode 100644 app/src/main/res/xml-v30/input_method.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7c16296c4..07167884d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,6 +21,9 @@ + + + diff --git a/app/src/main/res/xml-v30/input_method.xml b/app/src/main/res/xml-v30/input_method.xml deleted file mode 100644 index d84c68696..000000000 --- a/app/src/main/res/xml-v30/input_method.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/xml/input_method.xml b/app/src/main/res/xml/input_method.xml index 5bbf49e86..e10701f9b 100644 --- a/app/src/main/res/xml/input_method.xml +++ b/app/src/main/res/xml/input_method.xml @@ -1,7 +1,10 @@ + android:supportsInlineSuggestions="true" + android:supportsSwitchingToNextInputMethod="true" + tools:targetApi="30"> Date: Sun, 3 Dec 2023 14:26:08 +0800 Subject: [PATCH 004/281] Update fcitx5 submodules --- lib/fcitx5-chinese-addons/src/main/cpp/fcitx5-chinese-addons | 2 +- lib/fcitx5/src/main/cpp/fcitx5 | 2 +- lib/libime/src/main/cpp/libime | 2 +- plugin/anthy/src/main/cpp/fcitx5-anthy | 2 +- plugin/rime/src/main/cpp/fcitx5-rime | 2 +- plugin/unikey/src/main/cpp/fcitx5-unikey | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/fcitx5-chinese-addons/src/main/cpp/fcitx5-chinese-addons b/lib/fcitx5-chinese-addons/src/main/cpp/fcitx5-chinese-addons index 807be91e0..0f79e9be3 160000 --- a/lib/fcitx5-chinese-addons/src/main/cpp/fcitx5-chinese-addons +++ b/lib/fcitx5-chinese-addons/src/main/cpp/fcitx5-chinese-addons @@ -1 +1 @@ -Subproject commit 807be91e0fed18b919a2ba750038448163da400d +Subproject commit 0f79e9be3778f2c5dd06e094c845234e49f98ed2 diff --git a/lib/fcitx5/src/main/cpp/fcitx5 b/lib/fcitx5/src/main/cpp/fcitx5 index f1404e3f7..64ae9d6d0 160000 --- a/lib/fcitx5/src/main/cpp/fcitx5 +++ b/lib/fcitx5/src/main/cpp/fcitx5 @@ -1 +1 @@ -Subproject commit f1404e3f7b80bddaae951a36e1bc78b183a4d760 +Subproject commit 64ae9d6d0e070d1f5657e7bb964f507afe6d7d10 diff --git a/lib/libime/src/main/cpp/libime b/lib/libime/src/main/cpp/libime index 1045f2b94..59ae4a3ab 160000 --- a/lib/libime/src/main/cpp/libime +++ b/lib/libime/src/main/cpp/libime @@ -1 +1 @@ -Subproject commit 1045f2b94154d9d147cee90bdf8a25e1139206e4 +Subproject commit 59ae4a3ab4becdab164f29af07c502096c745b94 diff --git a/plugin/anthy/src/main/cpp/fcitx5-anthy b/plugin/anthy/src/main/cpp/fcitx5-anthy index 1658a6aeb..1172f0343 160000 --- a/plugin/anthy/src/main/cpp/fcitx5-anthy +++ b/plugin/anthy/src/main/cpp/fcitx5-anthy @@ -1 +1 @@ -Subproject commit 1658a6aebd9a1bf61c62c88ada70a2e9e8eb5c84 +Subproject commit 1172f034313fb085e5b1e79382ad4f8fd03704cc diff --git a/plugin/rime/src/main/cpp/fcitx5-rime b/plugin/rime/src/main/cpp/fcitx5-rime index c32335c6b..9272fe6b1 160000 --- a/plugin/rime/src/main/cpp/fcitx5-rime +++ b/plugin/rime/src/main/cpp/fcitx5-rime @@ -1 +1 @@ -Subproject commit c32335c6b17b11d18078ec9e8ad1422b082c2bc3 +Subproject commit 9272fe6b14c9d7753fa18f001642fcdc4d067bd5 diff --git a/plugin/unikey/src/main/cpp/fcitx5-unikey b/plugin/unikey/src/main/cpp/fcitx5-unikey index 1df3566d1..0a9f5645e 160000 --- a/plugin/unikey/src/main/cpp/fcitx5-unikey +++ b/plugin/unikey/src/main/cpp/fcitx5-unikey @@ -1 +1 @@ -Subproject commit 1df3566d1825f739bd58d0f041b6c46160ea0a52 +Subproject commit 0a9f5645ec979cd1cd44b9b78dadc1a21c24febf From cd529e0c0abd1f2438bc5218c5e1349d8574d36b Mon Sep 17 00:00:00 2001 From: Rocka Date: Sun, 3 Dec 2023 14:40:52 +0800 Subject: [PATCH 005/281] Remove client preedit workaround --- .../cpp/androidfrontend/androidfrontend.cpp | 9 --------- .../cpp/androidkeyboard/androidkeyboard.cpp | 20 ++++++++++--------- .../org/fcitx/fcitx5/android/core/Fcitx.kt | 3 --- 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/app/src/main/cpp/androidfrontend/androidfrontend.cpp b/app/src/main/cpp/androidfrontend/androidfrontend.cpp index 60ce1ae36..4fec1c9bf 100644 --- a/app/src/main/cpp/androidfrontend/androidfrontend.cpp +++ b/app/src/main/cpp/androidfrontend/androidfrontend.cpp @@ -60,16 +60,7 @@ class AndroidInputContext : public InputContextV2 { } void updateInputPanel() { - // Normally input method engine should check CapabilityFlag::Preedit before update clientPreedit, - // and fcitx5 won't trigger UpdatePreeditEvent when that flag is not present, in which case - // InputContext::updatePreeditImpl() won't be called. - // However on Android, androidkeyboard uses clientPreedit unconditionally in order to provide - // a more integrated experience, so we need to check clientPreedit update manually even if - // clientPreedit is not enabled. const InputPanel &ip = inputPanel(); - if (!isPreeditEnabled() && frontend_->instance()->inputMethod(this) == "keyboard-us") { - frontend_->updateClientPreedit(filterText(ip.clientPreedit())); - } frontend_->updateInputPanel( filterText(ip.preedit()), filterText(ip.auxUp()), diff --git a/app/src/main/cpp/androidkeyboard/androidkeyboard.cpp b/app/src/main/cpp/androidkeyboard/androidkeyboard.cpp index 414f85a4a..420807e9f 100644 --- a/app/src/main/cpp/androidkeyboard/androidkeyboard.cpp +++ b/app/src/main/cpp/androidkeyboard/androidkeyboard.cpp @@ -269,15 +269,17 @@ void AndroidKeyboardEngine::updateCandidate(const InputMethodEntry &entry, Input } void AndroidKeyboardEngine::updateUI(InputContext *inputContext) { - auto [preedit, cursor] = preeditWithCursor(inputContext); - Text clientPreedit(preedit, TextFormatFlag::Underline); - clientPreedit.setCursor(static_cast(cursor)); - inputContext->inputPanel().setClientPreedit(clientPreedit); - // we don't want preedit here ... -// if (!inputContext->capabilityFlags().test(CapabilityFlag::Preedit)) { -// inputContext->inputPanel().setPreedit(preedit); -// } - inputContext->updatePreedit(); + auto [text, cursor] = preeditWithCursor(inputContext); + if (inputContext->capabilityFlags().test(CapabilityFlag::Preedit)) { + Text clientPreedit(text, TextFormatFlag::Underline); + clientPreedit.setCursor(static_cast(cursor)); + inputContext->inputPanel().setClientPreedit(clientPreedit); + inputContext->updatePreedit(); + } else { + Text preedit(text); + preedit.setCursor(static_cast(cursor)); + inputContext->inputPanel().setPreedit(preedit); + } inputContext->updateUserInterface(UserInterfaceComponent::InputPanel); } diff --git a/app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt b/app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt index d47361431..d50bd081c 100644 --- a/app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt +++ b/app/src/main/java/org/fcitx/fcitx5/android/core/Fcitx.kt @@ -359,13 +359,10 @@ class Fcitx(private val context: Context) : FcitxAPI, FcitxLifecycleOwner { getFcitxGlobalConfig()?.get("cfg")?.apply { get("Behavior").apply { get("ShareInputState").value = "All" - get("PreeditEnabledByDefault").value = "False" } setFcitxGlobalConfig(this) } getFcitxAddonConfig("pinyin")?.get("cfg")?.apply { - get("PreeditInApplication").value = "False" - get("PreeditCursorPositionAtBeginning").value = "False" get("QuickPhraseKey").value = "" setFcitxAddonConfig("pinyin", this) } From beaef77e8872167d8b2b9c780d100b516b28b3d0 Mon Sep 17 00:00:00 2001 From: Rocka Date: Sun, 3 Dec 2023 16:17:02 +0800 Subject: [PATCH 006/281] Update dependencies targetSdk 34 --- app/build.gradle.kts | 1 + app/src/main/AndroidManifest.xml | 8 ++----- app/src/main/res/values-night/themes.xml | 4 ++-- app/src/main/res/values/themes.xml | 4 ++-- .../main/kotlin/AndroidAppConventionPlugin.kt | 1 + .../convention/src/main/kotlin/Versions.kt | 6 +++--- gradle/libs.versions.toml | 21 ++++++++++--------- lib/plugin-base/src/debug/AndroidManifest.xml | 2 +- .../src/main/AndroidManifest.xml | 2 +- 9 files changed, 24 insertions(+), 25 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fc6c1364d..b0b0dbae5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -114,6 +114,7 @@ dependencies { implementation(libs.androidx.room.runtime) implementation(libs.androidx.room.ktx) implementation(libs.androidx.room.paging) + implementation(libs.androidx.startup) implementation(libs.androidx.viewpager2) implementation(libs.material) implementation(libs.arrow) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 07167884d..7a5aecc0d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -134,7 +134,8 @@ + android:permission="${applicationId}.permission.IPC" + tools:ignore="SystemPermissionTypo"> @@ -158,11 +159,6 @@ android:exported="false" tools:ignore="MissingClass" tools:node="merge"> - - @android:color/transparent false @android:color/transparent - false + false - - - -