Skip to content

feat(emoji): add setting to render high-resolution system emojis in chats - #2256

Open
igotlinux wants to merge 1 commit into
session-foundation:devfrom
igotlinux:feature/system-emoji-support
Open

igotlinux wants to merge 1 commit into
session-foundation:devfrom
igotlinux:feature/system-emoji-support

Conversation

@igotlinux

@igotlinux igotlinux commented Nov 11, 2026 •

Copy link
Copy Markdown

First time contributor checklist

  • I have tested my contribution on these devices:
  • Android Emulator (Pixel, Android 14 / API 34), playDebug
  • Android Physical Device, playDebug
  • My contribution is fully baked and ready to be merged as is
  • I ensure that all the open issues my contribution fixes are mentioned in the commit message of my first commit using the Fixes #1234 syntax (Fixes Low-res emojis #53)

Description

Fixes #53

Note on #1053: I noticed #1053 previously attempted a larger emoji pipeline rewrite but has experienced merge conflicts on dev. This PR proposes a lightweight, non-breaking user preference toggle ("Use System Emojis") that immediately delivers crisp emojis on modern devices without requiring assets removal or breaking backward compatibility.

Session currently uses a legacy 66x66px bitmap spritesheet pipeline (EmojiProvider / EmojiTextView) inherited from older Signal code. On modern high-DPI screens, these small bitmap tiles appear blurry and pixelated when scaled up.

This PR adds a "Use System Emojis" toggle in Settings → Chats (enabled by default) that allows messages to render sharp, high-resolution vector emojis using the device's native emoji font rather than the low-resolution spritesheets.

Changes:

  • Added USE_SYSTEM_EMOJI key and getter/setter preferences in TextSecurePreferences.kt (defaults to true).
  • Updated EmojiTextView.java to check isUseSystemEmojiEnabled() before parsing/replacing emoji spans; when enabled, it skips the bitmap spritesheet replacement and renders the native Unicode characters.
  • Added preference toggle in ChatsPreferenceScreen.kt and state handling in ChatsPreferenceViewModel.kt.

Testing:

  • Verified in Android Studio with assemblePlayDebug and testPlayDebugUnitTest (all tests pass).
  • Toggled on/off in Settings → Chats and verified emoji sharpness in conversation views.

@igotlinux
igotlinux force-pushed the feature/system-emoji-support branch from 08c3b58 to e97e27c Compare November 11, 2026 15:19
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.

Low-res emojis

1 participant