From 5ce9e09f7dd8985a3279570a1c5be8dbf0f80bea Mon Sep 17 00:00:00 2001 From: Helium314 Date: Thu, 15 Feb 2024 11:13:42 +0100 Subject: [PATCH] update readme and description --- README.md | 5 +++++ .../java/helium314/keyboard/latin/inputlogic/InputLogic.java | 3 +-- fastlane/metadata/android/en-US/full_description.txt | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3b9447d7..01ee3e24 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # HeliBoard HeliBoard is a privacy-conscious and customizable open-source keyboard, based on AOSP / OpenBoard. +Does not use internet permission, and thus is 100% offline. ## Table of Contents @@ -40,6 +41,10 @@ HeliBoard is a privacy-conscious and customizable open-source keyboard, based on * __No suggestions for some language__: Check [dictionaries repo](https://codeberg.org/Helium314/aosp-dictionaries) whether a dictionary is available. If there is one, download it and add it in the language settings for this language. * __No suggestions in some app / text field__: This app respects the [no suggestions flag](https://developer.android.com/reference/android/text/InputType#TYPE_TEXT_FLAG_NO_SUGGESTIONS) set by some input fields, i.e. the developer does not want you to see suggestions here. Best do in issue report for that app if you think this behavior is wrong. Alternatively you can enable the _always show suggestions_ setting that overrides the _no suggestions_ flag. * __How to enable glide typing__: There is no glide typing built into this app, but you can load compatible libraries: Go to advanced settings -> _load gesture typing library_ and point to a file. You can extract the file from GApps packages ("_swypelibs_"), or download one [here](https://github.com/erkserkserks/openboard/tree/master/app/src/main/jniLibs). Make sure to use the correct version (app will tell you in the dialog to load the library). +* __What is the _nouserlib_ version?__: The normal version (_release_) allows the user to provide a library for glide typing. Running code that isn't supplied with the app is _dynamic code loading_, which is a security risk. Android Studio warns about this: + > Dynamically loading code from locations other than the application's library directory or the Android platform's built-in library directories is dangerous, as there is an increased risk that the code could have been tampered with. Applications should use loadLibrary when possible, which provides increased assurance that libraries are loaded from one of these safer locations. Application developers should use the features of their development environment to place application native libraries into the lib directory of their compiled APKs. + + The app checks the SHA256 checksum of the library and warns the user if it doesn't match with known library versions. A mismatch indicates the library was modified, but may also occur if the user intentionally provides a different library than expected (e.g. a self-built variant). * (_to be expanded_...) ## Hidden Functionality diff --git a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java index 4829f099..1f548cbf 100644 --- a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java +++ b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java @@ -1253,13 +1253,12 @@ public final class InputLogic { // TODO: Add a new StatsUtils method onBackspaceWhenNoText() return; } - final int lengthToDelete = - Character.isSupplementaryCodePoint(codePointBeforeCursor) ? 2 : 1; if (StringUtils.mightBeEmoji(codePointBeforeCursor)) { // emoji length varies, so we'd need to find out length to delete correctly // the solution is not optimal, but a reasonable workaround for issues when trying to delete emojis sendDownUpKeyEvent(KeyEvent.KEYCODE_DEL); } else { + final int lengthToDelete = Character.isSupplementaryCodePoint(codePointBeforeCursor) ? 2 : 1; mConnection.deleteTextBeforeCursor(lengthToDelete); int totalDeletedLength = lengthToDelete; if (mDeleteCount > Constants.DELETE_ACCELERATE_AT) { diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt index d3ad0bde..7cd968c0 100644 --- a/fastlane/metadata/android/en-US/full_description.txt +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -1,6 +1,8 @@ HeliBoard is a privacy-conscious open-source keyboard, based on AOSP / OpenBoard. +Does not use internet permission, and thus is 100% offline. Features: + - Add your own dictionaries for suggestions and spell check - Customizable themes and background - Customizable layouts