Skip to content

feat: Add Kaomoji Support with Dedicated Palette Toggle, Emotion Categories, and Recent History - #677

Open
prince-0408 wants to merge 3 commits into
scribe-org:mainfrom
prince-0408:feat/kaomoji-support
Open

feat: Add Kaomoji Support with Dedicated Palette Toggle, Emotion Categories, and Recent History#677
prince-0408 wants to merge 3 commits into
scribe-org:mainfrom
prince-0408:feat/kaomoji-support

Conversation

@prince-0408

Copy link
Copy Markdown
Collaborator

Closes #676

Summary

This PR introduces full Kaomoji support into Scribe-Android, featuring a side-by-side top bar toggle button group, 8 emotion-filtered categories, 80+ curated Kaomojis, and automatic Recent History persistence.


Files Modified & Created

New Files Created

  • app/src/main/assets/kaomoji_spec.txt: Added 80+ curated Kaomojis across 8 categories (Joy, Love, Cool, Sad, Angry, Surprised, Shrug, Animals).
  • app/src/main/java/be/scri/helpers/KaomojiHelper.kt: Created KaomojiData model, asset file parser, and saveRecentKaomoji/getRecentKaomojis SharedPreferences history helpers.
  • app/src/main/res/drawable/ic_emoji_kaomoji.xml: Created vector drawable for Kaomoji category icon.
  • app/src/main/res/drawable/kaomoji_chip_background.xml: Created rounded pill selector background for active/inactive category text chips.
  • app/src/main/res/layout/item_kaomoji.xml: Created layout for individual Kaomoji cells in RecyclerView.
  • app/src/test/kotlin/be/scri/helpers/KaomojiHelperTest.kt: Added unit tests for Kaomoji data model, asset parsing, and category mapping.

Existing Files Modified

  • app/src/main/res/layout/input_method_view.xml: Added side-by-side top bar toggle group (top_bar_emoji_toggle & top_bar_kaomoji_toggle) and wrapped category strip in a HorizontalScrollView.
  • app/src/keyboards/java/be/scri/helpers/ui/KeyboardUIManager.kt: Implemented palette mode switching, strict per-category Kaomoji filtering, and recent history integration.
  • app/src/main/java/be/scri/helpers/EmojiAdapter.kt: Extended adapter to support Item.Kaomoji and KaomojiViewHolder.
  • app/src/main/java/be/scri/helpers/EmojiHelper.kt: Added category icon mapping for Kaomoji categories.
  • app/src/keyboards/java/be/scri/helpers/english/ENInterfaceVariables.kt: Added English header string constants (Joy, Love, Cool, Sad, Angry, Surprised, Shrug, Animals, Recent).
  • app/src/keyboards/java/be/scri/helpers/KeyboardLanguageMappingConstants.kt: Mapped Kaomoji category keys to header string constants.
  • app/src/main/java/be/scri/helpers/KeyboardBase.kt: Fixed "conjugate_mode_type" preference default to "none" to preserve standard keyboard height (R.dimen.key_height).
  • app/src/keyboards/java/be/scri/services/GeneralKeyboardIME.kt: Fixed saveConjugateModeType signature and callers to avoid overriding standard keyboard height during normal typing.
  • app/src/keyboards/java/be/scri/helpers/KeyHandler.kt: Reset conjugate mode to "none" when selection completes.
  • app/src/main/res/drawable/ic_emoji_vector.xml: Restored single-path outlined smiley vector matching ic_emoji_smileys.xml so the bottom row emoji key renders cleanly.

Feature Highlights

  1. Side-by-Side Top Bar Toggles:

    • [😃 Emoji Icon] and [(^_^) Kaomoji Badge] sit side-by-side next to the back arrow <- for seamless one-tap switching.
  2. Strict Category Filtering:

    • Tapping any category chip (Joy, Love, Cool, Sad, Angry, Surprised, Shrug, Animals) filters the grid to display only Kaomojis for that category (no section titles inside the grid).
  3. Recent History Persistence:

    • Selected Kaomojis are automatically saved to SharedPreferences and accessible via the Recent category chip.

Preview

Kaomojis Feature Screenshot

@andrewtavis

Copy link
Copy Markdown
Member

Hey @prince-0408 👋 We'll discuss this and get back to you on it, but I'm not sure if we'll bring this in before the MVP release.

@prince-0408

prince-0408 commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator Author

Hey @prince-0408 👋 We'll discuss this and get back to you on it, but I'm not sure if we'll bring this in before the MVP release.

No problem @andrewtavis, by the way, thank you for the heads-up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Kaomoji Support with Dedicated Palette Toggle, Emotion Categories, and Recent History

2 participants