Compare commits

..

6 Commits

Author SHA1 Message Date
Jules Aguillon
e013128142 Release 1.32.1 (50)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-07-09 00:24:29 +02:00
Jules Aguillon
898956256a Workaround Godot editor not implementing setSelection() (#1033)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
This was tested against:

    org.godotengine.editor.v3
    org.godotengine.editor.v4
2025-07-06 23:18:58 +02:00
Jules Aguillon
8cb9b30461 Fix crash with unexpected value in NumberLayout pref (#1036) 2025-07-06 21:57:41 +02:00
solokot
309fba4766 Update Russian translation (#1035)
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
2025-07-05 12:45:51 +02:00
Jules Aguillon
d1dfc80df6 ci: Disable translation check
Some checks failed
Make Apk CI / Build-Apk (push) Has been cancelled
Check layouts / check_layout.output (push) Has been cancelled
Check layouts / Generated files (push) Has been cancelled
The translation check is creating conflicts with changes done on Weblate
and is superfluous.
2025-07-02 23:15:33 +02:00
Joey Schaff
5c4964e438 Add a missing comma in /res/values/strings.xml (#1026) 2025-07-02 23:13:12 +02:00
7 changed files with 32 additions and 41 deletions

View File

@@ -1,16 +0,0 @@
name: Check translations
on:
workflow_dispatch:
push:
pull_request:
jobs:
check-translations:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- run: python3 sync_translations.py
- name: "Check that strings files are uptodate, otherwise run 'python3 sync_translations.py'"
run: git add -N . && git diff --exit-code

View File

@@ -173,13 +173,13 @@ Remove the `<!--` and `-->` parts and change the text.
### Adding a translation
The preferred method for translating the app is to use Weblate:
https://hosted.weblate.org/engage/unexpected-keyboard/
The `res/values-<language_tag>/strings.xml` file must be created by copying the
default translation in `res/values/strings.xml`, which contain the structure of
the file and the English strings.
To check that `strings.xml` is formatted correctly, run
`python sync_translations.py`. This will modify your files.
Store descriptions in `fastlane/metadata/android/` are updated automatically.
Translating changelogs is not useful.

View File

@@ -16,8 +16,8 @@ android {
applicationId "juloo.keyboard2"
minSdk 21
targetSdkVersion 35
versionCode 49
versionName "1.32.0"
versionCode 50
versionName "1.32.1"
}
sourceSets {

View File

@@ -0,0 +1 @@
Bug fixes

View File

@@ -5,9 +5,9 @@
<string name="short_description">Легкая клавиатура для пользователей, заботящихся о конфиденциальности.</string>
<string name="store_description">Главная особенность клавиатуры — это возможность легко напечатать любой ASCII-символ жестами в углы клавиш.\n\nПриложение изначально было разработано для использования с Termux.\nНа данный момент оно также удобно в повседневном использовании.\n\nПриложение не содержит рекламы, не осуществляет никаких запросов в сеть и имеет открытый исходный код.</string>
<string name="pref_portrait">В портретном режиме</string>
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
<string name="pref_portrait_unfolded">В развернутом портретном режиме</string>
<string name="pref_landscape">В ландшафтном режиме</string>
<!-- <string name="pref_landscape_unfolded">In landscape mode unfolded</string> -->
<string name="pref_landscape_unfolded">В развернутом ландшафтном режиме</string>
<string name="pref_category_layout">Расположение</string>
<string name="pref_label_brightness">Изменить яркость клавиатуры</string>
<string name="pref_keyboard_opacity">Изменить прозрачность фона</string>
@@ -19,9 +19,9 @@
<string name="pref_layouts_item">Раскладка %1$d: %2$s</string>
<string name="pref_layouts_remove_custom">Удалить раскладку</string>
<string name="pref_custom_layout_title">Пользовательская раскладка</string>
<!-- <string name="pref_show_number_row_no_number_row">No number row</string> -->
<!-- <string name="pref_show_number_row_no_symbols">Number row without symbols</string> -->
<!-- <string name="pref_show_number_row_symbols">Number row with symbols</string> -->
<string name="pref_show_number_row_no_number_row">Без ряда цифр</string>
<string name="pref_show_number_row_no_symbols">Ряд цифр без символов</string>
<string name="pref_show_number_row_symbols">Ряд цифр с символами</string>
<string name="pref_show_numpad_title">Показывать цифровой блок</string>
<string name="pref_show_numpad_never">Никогда</string>
<string name="pref_show_numpad_landscape">Только в ландшафтном режиме</string>
@@ -49,10 +49,10 @@
<string name="pref_switch_input_immediate_summary">Поведение клавиши переключения клавиатуры</string>
<string name="pref_vibrate_custom">Настройка вибрации</string>
<string name="pref_vibrate_duration_title">Интенсивность вибрации</string>
<!-- <string name="pref_number_entry_title">Layout when typing numbers, dates and phone numbers</string> -->
<!-- <string name="pref_number_entry_layout_pin">PIN Entry</string> -->
<!-- <string name="pref_number_entry_layout_number">Number pane</string> -->
<!-- <string name="pref_number_entry_layout_normal">Use the main layout</string> -->
<string name="pref_number_entry_title">Раскладка для ввода цифр, дат и телефонных номеров</string>
<string name="pref_number_entry_layout_pin">Ввод PIN-кодов</string>
<string name="pref_number_entry_layout_number">Цифровая панель</string>
<string name="pref_number_entry_layout_normal">Основная раскладка</string>
<string name="pref_category_style">Стиль</string>
<string name="pref_margin_bottom_title">Нижняя граница поля</string>
<string name="pref_keyboard_height_title">Высота клавиатуры</string>
@@ -127,12 +127,12 @@
<string name="key_descr_zwnj">Разделитель нулевой ширины</string>
<string name="key_descr_nbsp">Неразрывный пробел</string>
<string name="key_descr_nnbsp">Узкий неразрывный пробел</string>
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
<!-- <string name="key_descr_gesture">Gesture</string> -->
<string name="key_descr_delete_word">Удалить слово</string>
<string name="key_descr_forward_delete_word">Удалить слово справа</string>
<string name="key_descr_gesture">Жест</string>
<string name="clipboard_history_heading">Недавно скопированный текст</string>
<string name="clipboard_pin_heading">Закреплено</string>
<string name="clipboard_remove_confirm">Удалить этот буфер обмена?</string>
<string name="clipboard_remove_confirmed">Да</string>
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
<string name="toast_no_voice_input">Приложение для голосового ввода не установлено</string>
</resources>

View File

@@ -49,7 +49,7 @@
<string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string>
<string name="pref_vibrate_custom">Custom vibration</string>
<string name="pref_vibrate_duration_title">Vibration intensity</string>
<string name="pref_number_entry_title">Layout when typing numbers, dates and phone numbers</string>
<string name="pref_number_entry_title">Layout when typing numbers, dates, and phone numbers</string>
<string name="pref_number_entry_layout_pin">PIN Entry</string>
<string name="pref_number_entry_layout_number">Number pane</string>
<string name="pref_number_entry_layout_normal">Use the main layout</string>

View File

@@ -41,12 +41,7 @@ public final class KeyEventHandler
public void started(EditorInfo info)
{
_autocap.started(info, _recv.getCurrentInputConnection());
// Workaround a bug in Acode, which answers to [getExtractedText] but do
// not react to [setSelection] while returning [true].
// Note: Using & to workaround a bug in Acode, which sets several
// variations at once.
_move_cursor_force_fallback = (info.inputType & InputType.TYPE_MASK_VARIATION &
InputType.TYPE_TEXT_VARIATION_PASSWORD) != 0;
_move_cursor_force_fallback = should_move_cursor_force_fallback(info);
}
/** Selection has been updated. */
@@ -473,6 +468,17 @@ public final class KeyEventHandler
return (conn.getSelectedText(0) != null);
}
/** Workaround some apps which answers to [getExtractedText] but do not react
to [setSelection] while returning [true]. */
boolean should_move_cursor_force_fallback(EditorInfo info)
{
// This catch Acode: which sets several variations at once.
if ((info.inputType & InputType.TYPE_MASK_VARIATION & InputType.TYPE_TEXT_VARIATION_PASSWORD) != 0)
return true;
// Godot editor: Doesn't handle setSelection() but returns true.
return info.packageName.startsWith("org.godotengine.editor");
}
public static interface IReceiver
{
public void handle_event_key(KeyValue.Event ev);