Feature: Colon to Emoji Functionality#601
Feature: Colon to Emoji Functionality#601LJSigersmith wants to merge 12 commits intoscribe-org:mainfrom
Conversation
…wise find emojis by prefix. Show blank slots when no matches instead of words.
Thank you for the pull request! 💙🩵The Scribe-Android team will do our best to address your contribution as soon as we can. The following are some important points:
Note Scribe uses Conventional Comments in reviews to make sure that communication is as clear as possible. |
Maintainer ChecklistThe following is a checklist for maintainers to make sure this process goes as well as possible. Feel free to address the points below yourself in further commits if you realize that actions are needed :)
|
There was a problem hiding this comment.
First PR Commit Check
- The commit messages for the remote branch should be checked to make sure the contributor's email is set up correctly so that they receive credit for their contribution
- The contributor's name and icon in remote commits should be the same as what appears in the PR
- If there's a mismatch, the contributor needs to make sure that the email they use for GitHub matches what they have for
git config user.emailin their local Scribe-Android repo (can be set withgit config --global user.email "GITHUB_EMAIL")
|
Hey @LJSigersmith , thanks for the PR! I am currently reviewing and I will drop my initial thoughts. |
DeleMike
left a comment
There was a problem hiding this comment.
Thanks for the PR @LJSigersmith, this will raise the keyboard to a new level.🎉✨
I noticed a few things:
-
The screenshot you posted, the app currently does not behave in the same manner. I tried to do ":Heart" but all the emoji suggestion bars were empty. I'm guessing you reverted
-
I did not need to type "space + colon", once I typed in "colon(:)", the emoji bar showed up. I am not sure if this is an issue.
-
Can you explain how this file will help in the process of fetching all emojis and using them effectively in the app, please?
-
You write this "If no keywords match, empty slots are displayed rather than falling back to word buttons.", I believe we can show the user a default set of emojis.
-
I also believe this PR will be partially blocked as we do not have this data coming from Scribe-Server. What do you think @andrewtavis ?
Please also review @angrezichatterbox, thanks.
|
Thanks for the feedback @DeleMike,
|
Contributor checklist
Description
Implements emoji colon mode: an emoji suggestion mode triggered by typing
:(space + colon) in the keyboard. This allows users to search for emojis by keyword prefix directly from the suggestion bar without interrupting their typing flow.Typing a space followed by
:activates emoji colon mode (emojiColonModeOnflag inGeneralKeyboardIME). While active:input_method_view.xml.😀 ❤️ 👍 😂 🎉 ✨ 🔥 👋 😊) is shown immediately on the bare:before any letters are typed.emoji_keywordstable using the newfindEmojisForPrefix()function, which finds all keywords starting with the typed prefix and collects their associated emojis.:that triggered the mode and commits the emoji.:exits emoji colon mode and restores normal suggestions.Files changed
GeneralKeyboardIME.ktemojiColonModeOnstate,findEmojisForPrefix(), and colon mode restoration after closing command menus.KeyHandler.kt:trigger, toggles colon mode on/off on space or colon deletion, suppresses word suggestion flicker during colon mode, and restores emoji suggestions after mode changes.SuggestionHandler.kt:, and shows blank slots on no match.KeyboardUIManager.ktEmojiUtils.ktCOMMON_EMOJISconstant and colon-mode branch ininsertEmojithat deletes back to the triggering:before committing the selected emoji.input_method_view.xmlBackend dependencies
Emoji colon mode requires
emoji_keywordsdata to be available in the language pack. Getting this working locally required some work in theScribe-DataandScribe-Serverrepos.data_to_sqlite.pyinsertion loop that overflows theemoji_keywordstable columns, so the data actually reaches the SQLite output.emoji_keywordsmust be added toDATA_TYPESinupdate_data.sh, and the underscore must be preserved throughgenerateMariaTableName(currently strips it toemojikeywords). Dependencies for PyICU must also be added.Emoji colon mode on tablet:

Emoji colon mode on phone:

Related issue
:) to emoji functionality to the Android keyboard app #590