Можливості entinyGram
Повна порівняльна матриця та детальний список усіх патчів і фіч.
FEATURES.md на GitHubПорівняння: entinyGram vs InuGram vs Stock Telegram
entinyGram побудований поверх патчсету InuGram і додає власний ексклюзивний шар. Таблиця складена напряму з FEATURES.md — без здогадок про інші форки.
| Функція / Можливість | entinyGram | 🐶 InuGram (база) | Stock Telegram |
|---|---|---|---|
| Ghost Mode: приховування receipts, статусу онлайн/друку, whitelist по чатах | 📡 Так | Ні | Ні |
| Збереження видалених повідомлень та історії редагувань локально, з diff-переглядом | 📡 Так | Ні | Ні |
| Обхід заборони форвардів/скріншотів у захищених чатах та історіях | 📡 Так | Ні | Ні |
| Збереження будь-яких Stories без Telegram Premium | 📡 Так | Ні | Ні |
| Підміна APP_ID 4 для обходу блокування прямих покупок у сторонніх клієнтах | 📡 Так | Ні | Н/З (сам офіційний застосунок) |
| Локальне розблокування UI Telegram Premium (клієнтське) | 📡 Так | Ні | Ні |
| Безкоштовний переклад чату без Premium (Google, DeepL, Yandex та інші) | 📡 Так | Ні | Ні |
| Безкоштовна AI-транскрипція голосових (Groq, Gemini, OpenAI, Cloudflare) | 📡 Так | Ні | Ні |
| Regex-фільтр контенту та приховування спонсорованих повідомлень | 📡 Так | Ні | Ні |
| App font stack + окремий шрифт для моноширинного тексту | 🐶 Так | Так | Ні |
| Classic UI Mode (повернення дизайну до версії 12.6) | 🐶 Так | Так | Ні |
| Видалення трекінг-параметрів (UTM, fbclid) з посилань | 🐶 Так | Так | Ні |
| Зняття ліміту виділення 100 повідомлень + вибір двома пальцями | 🐶 Так | Так | Ні |
| Приховування повідомлень від заблокованих користувачів | 🐶 Так | Так | Ні |
| 400+ виправлених багів проти стокового Telegram (креші, глюки, витоки памʼяті) | 🐶 Так | Так | Ні |
📡 = унікальна фіча entinyGram (не з InuGram). Джерело: FEATURES.md.
Повний список FEATURES.md
entinyGram features
non-exhaustive list of what this fork adds, tweaks or fixes vs stock telegram android. keep this updated as patches are added/removed.
most things are toggleable in Settings → entinyGram, with sensible opinionated defaults.
🐶 - Inugram-exclusive (as far as i know, as of writing) 📡 - entinyGram-exclusive
entinyGram additions
our own layer on top of the inugram patchset: restricted Telegram features, privacy tools, power-user controls, and experiments.
privacy & protection
- 📡 ghost mode (stealth):
- quick toggle in drawer header, drawer menu, and chats menu with quick-toggle locks 🔒 - inspired by AyuGram
- status indicator with ghost icon in dialogs list and active chat header (optional, can be hidden)
- optional launcher long-press shortcut to switch it on/off
- hide read receipts for messages, voice notes, and video messages
- read on send: mark incoming messages read only when replying
- mark as read locally: clear unread counter badges on open while keeping unread on server
- hide story views, online status, typing, recording, and upload indicators
- automatically go offline: re-send offline status shortly after sending
- per-chat overrides: read receipts (incl. voice listens) and typing set to default / always hide / never hide per chat, from the chat or profile menu or settings; old whitelist and ghost chats migrate automatically — inspired by Alexgram / XF
- apply to: choose whether global Ghost Mode covers private chats, groups and channels separately (e.g. keep channels normal)
- 📡 anti-deletion & edit history:
- save deleted messages (marked with 🗑️) and media to
Downloads/entinyGram/media/ - your own deletions are never preserved — only what the other side deleted becomes a ghost
- per-category controls for private chats, groups, channels, and bots
- delete permanently checkbox (pre-checked) in the delete confirmation for saved-deleted messages — unchecking hides the ghost but keeps the saved copy
- save edit history (marked with ✏️) with full formatting, media preservation, and text diff mode
- deleted-message styling: custom transparency, mark, and accent color with live preview
- local archive search: full-text search across saved deleted messages and edit history
- deleted archive: open a chat's deleted messages directly, or browse all chats by author
- storage manager: cache TTL and automatic expiration
- save deleted messages (marked with 🗑️) and media to
- 📡 self-destructing & expiring media:
- save view-once media: view-once photos, videos, video notes and voice notes still burn, but a copy is kept in the saved cache; with "show normally" on they can also be force-forwarded (re-uploaded as regular media)
- keep self-destruct content per-category: keep secret-chat media, text, view-once media and timed messages
- persistent media playback: expired voice notes and round videos remain playable inline
- 📡 save user info (beta): locally preserve phone country, registration date, and name/avatar change history
- 📡 presence logger: per-contact online/offline tracking with local history, notifications, and auto-cleanup
- 📡 force relay calls: route voice/video calls through Telegram relay servers to prevent P2P IP leaks
- 📡 censorship bypass (wip):
- WebSocket tunnel: disguises the connection as Telegram Web (
kws*.web.telegram.org), falls back to direct DC; no third-party servers - inspired by tg-ws-proxy (@Flowseal) and NimarkoGram - block direct connections: translation, AI, backup DNS and other extra requests go only through your SOCKS5 proxy or are blocked
- WebSocket tunnel: disguises the connection as Telegram Web (
- 📡 datacenter status: live ping and status check for Telegram DC1–DC5 with animated sticker, round-trip latency, current account DC badge, and leak protection gating - inspired by Nekogram / NagramX
- 📡 adblock & content filtering:
- hide sponsored messages: completely disables Telegram sponsored channel ads and video ads
- hide proxy sponsor chat: blocks the promoted chat/channel some MTProto proxies pin to the top of your chat list while connected
- regex content filter: hide or spoiler-cover messages matching custom regex rules, with per-chat scope, allowlists, and JSON export/import
restricted features
- 📡 allow screenshots and screen recording in protected windows, secret chats, expiring media, and protected stories
- 📡 hide screenshot notifications: taking a screenshot in a secret chat no longer alerts the other person
- 📡 copy text and select messages in protected chats when restricted forwarding bypass is enabled
- 📡 local Telegram Premium: unlock client-side premium UI and limits (badges, custom icons, emoji statuses, translation bar, reactions, animations, and transcription)
- 📡 local custom emoji: send Premium custom emoji without Premium via fallback links
- 📡 content protection & forward bypass:
- save any story: direct download of any story to gallery, bypassing restrictions
- bypass restricted forwarding: copy and forward messages/media from protected chats and channels
- forward as own message: download and re-send forwards without the "Forwarded from" header
- keep and share view-once media: re-send it to Telegram chats or pass it to Android apps
- 📡 whole-chat translation without Premium: real-time chat translation bar ungated for free accounts, with parallel message translation and permanent "Do Not Translate" list
- 📡 third-party translation providers: Google, DeepL, OpenAI-compatible LLM, Yandex, Bing, Azure, or MyMemory with entity preservation and automatic fallbacks
- 📡 auto-translate every chat: chat translation on by default everywhere with per-dialog exception memory - inspired by OwlGram
- 📡 LLM translation with conversation context: feeds recent chat messages as context for improved accuracy, gender, and tone, with temperature control
- 📡 translate before sending & input actions: 3-dots menu on input field with instant draft translation, link preview toggle, find & replace text dialog, and attachment picker, plus text selection translation
- 📡 translate in send preview: translates a draft with the configured provider before sending — inspired by NagramX
- 📡 free voice transcription: transcribe voice notes and video messages via Groq Whisper, Gemini Flash, OpenAI, or Cloudflare AI without Premium
- 📡 official-app emulation (APP_ID 4): direct purchases and premium checkout without official app blocks
- 📡 unlimited limits override: locally raise Telegram's pin, favorites, and folder ceilings without server sync reverts
- 📡 skip login code countdown: tap the countdown timer on the login screen to request a new code immediately - inspired by NiagramX
appearance & customization
- 📡 avatar corners: custom slider (0–28dp) with dynamic badge indicator, live interactive dialog preview, and unified corner radius toggle - ported from NagramXF
- 📡 standalone AMOLED theme: true-black theme selectable from regular theme list, independent of Monet - ported from NagramX Turbo
- 📡 theme switch recovery: clear interrupted transitions and refresh Monet palettes after system color changes
- 📡 icon packs & live preview: dedicated Icon Packs settings screen with real-time UI preview (Stock Telegram, Solar, VKUI, Phosphor Icons)
- 📡 iOS-style design - ported from exteraless, Cherrygram, and Nagram X Turbo:
- compact bottom navigation bar with evenly-spaced tabs
- tapping active Chats tab returns to the first folder before scrolling to top
- compact chat header pill hugging title and avatar, with optional avatar placement in the menu slot or left aligned
- iOS-style input bar: attachment on the left, emoji inside-right, glass capsule field with round button bubbles, and optional compact mode
- 📡 action button style: Accent, Neutral, or White for send, voice, and apply buttons across the app (in glass form on iOS bar, solid circle elsewhere) - ported from Nagram X Turbo (@temporaryna)
- 📡 header centering: center screen titles across the app and customize chat headers (compact pill, avatar position, live settings preview)
- 📡 compact pill & profile transition fixes: prevent text badge clipping, avatar menu-slot dots overlay, and profile open/close animation jitter
- 📡 auto marquee for long titles: auto-scroll long header titles, action bar titles, and profile names - inspired by auto_marquee plugin (@chestertech)
- 📡 show spoilers directly: skip tap-to-reveal on text, photos, and videos
- 📡 customizable bottom tabs (beta): reorder and toggle Contacts, Settings, Calls, Profile, Feed, and Search; show Search in the pill or as a separate round button, long-press it for Saved Messages, and optionally hide the top search — separate button layout ported from NagramXF
- 📡 recent chats quick-switcher: popup listing recently opened chats in the main menu with one-tap history clear - inspired by exteraless
- 📡 clear cache shortcut: quick entry in chats menu to open storage settings or clear local archive
- 📡 restart app shortcut: quick entry in the chats menu, off by default, with a confirmation prompt
- 📡 customizable settings screen: reorder and hide individual rows of the main Telegram settings list
- 📡 no accounts list in settings: hide the redundant accounts block from the main settings screen
- 📡 customizable My Profile info rows: reorder and toggle phone, bio, username, ID, and registration date rows on your profile
- 📡 wide channel posts: channel posts stretch to full available width with proportional album layout, with an adjustable side-padding slider
- 📡 feed: posts from all subscribed channels merged into one chronological timeline with an unread divider — channel-style Liquid Glass pill header with channel count subtitle, unread posts badge on bottom tab, reactions, per-folder feeds, channel list management, newest-on-top option, feed-local read tracking, scroll position memory, batched background timeline updates, and a choice of new-posts indicator: a "%d new" pill or a scroll-to-bottom button with an unread badge (same control as in regular chats) (inspired by exteraless)
- 📡 color-coded online dot: blue online, yellow/red after going offline when last-seen is visible; hidden activity stays dot-free - inspired by NagramX
- 📡 clock format: choose system, 12-hour, or 24-hour time throughout the app
- 📡 branded first-run intro: branded first slide during onboarding
- 📡 pill stack (beta): interactive pills in chats search bar (clock, weather, proxy, storage, telemetry, currency/crypto rates) with a searchable rate-pair editor over every currency the rate source offers; inactive with non-island global search - ported from exteraGram
profile & identity tools
- 📡 developer badges: display entinyGram and official badges in chat headers and profiles, synced daily via remote manifest
- 📡 mutual contact icon: icon in user lists and chats with auto-shifted role tags
- 📡 estimated registration date & DC: profile info card with fast copy and DC location resolution
- 📡 delete profile photos: one-tap delete all or selected profile photos from profile menu, photo viewer, or settings
- 📡 delete my messages: wipe every message you sent in a chat, group, or channel with one confirmation
- 📡 emoji picker in name and surname fields: built-in emoji selection button in account profile editor
- 📡 open by numeric ID: open user profiles by numeric Telegram ID via search bar, context menu, or settings tool
messages & media tools
- 📡 extended message details & JSON view: inspect raw message objects and properties
- 📡 url parsing improvements: support multi-component TLDs, subdomains with hyphens, and preserve links without
http(s):// - 📡 ai compose & tools: draft rewriting, translation, and formatting with configurable providers
- 📡 typing status spoof: loop a fake "typing…", "recording…" or "uploading…" indicator in any chat
- 📡 keep downloads running in background: prevent transfer cancellations on scroll/leave, with optional wake lock - ported from MaxExteraPlugins
- 📡 show poll results before you vote: reveal real vote percentages for open polls before voting (only once the server has sent results — quizzes and hide-until-close polls stay stock); also opens the voters dialog via "View votes"
- 📡 show small GIFs: compact 120dp thumbnails for animated GIFs in chat bubbles - ported from Nagram
- 📡 send as round video: crop any gallery video (up to 60s) to square and send it as a native video note
- 📡 round recorder zoom buttons: quick zoom presets (1×, 2×, 3×, 5×, 10×) during video note recording
- 📡 60 FPS round video messages: record smooth 60 FPS video notes with frame rate negotiation and audio/video sync protection
- 📡 round recorder exposure lock (AE lock): lock camera exposure during video note recording to prevent brightness flickers - inspired by Cherrygram
- 📡 round recorder exposure (EV) buttons: quick exposure presets (-2 to +2) during video note recording
- 📡 proxy management: delete failed proxies in one tap, on-demand "Ping All Proxies", and save without auto-connecting
- 📡 tap avatar to open profile: tapping a chat's avatar in the chat list opens their profile directly
- 📡 confirm before sending: optional confirmation before sending voice/video messages (also when sent straight from recording), stickers, or GIFs; stickers and GIFs open the stock long-press preview with its send menu instead of a custom dialog
- 📡 fast cold start & locale caching: binary cache for translations and startup optimization for inactive account slots
- 📡 trimmed APK size: dropped unused firebase-appindexing/datatransport and unnecessary transitives to cut binary bloat
- 📡 Forward Pro (Beta): edit text or captions before forwarding from message menu or share alert, albums stay grouped when re-sent as copy, with quick toggles for author, captions, silent send, and schedule (long-press a toggle for its hint; unstable, experimental) - inspired by Turbotel / NagramX
- 📡 instant mark reactions as read: long-press the unread-reactions side button to mark read immediately - inspired by exteraless
- 📡 calendar system: display dates in Gregorian, Hijri (lunar), or Persian / Solar Hijri (Jalali) systems
- 📡 local folders: once the server folder limit is reached, new folders are stored on this device only and never synced to the server
- 📡 folder icon picker: grid of clean vector icons per folder, replacing the emoji in folder tabs (with icons shown in the folder tabs display mode)
- 📡 separator after mention: customizable separator inserted after @mentions and name mentions in the input (comma, period, colon, or any custom text; bots opt-in) — inspired by exteraGram
- 📡 export chat (experimental): collect the whole history in background from the chat menu and save it as JSON, or as an HTML page with downloaded media in a plain folder — photos, videos, voice and video messages, stickers, GIFs and files, with per-type checkboxes and a size limit; the result lands in Downloads/entinyGram/Chat Export with view and show-folder actions
- 📡 UnifiedPush (experimental): get notifications through a UnifiedPush distributor like gCompat-UP, Sunup, Prism, or ntfy instead of Firebase, with distributor and rewrite gateway settings in Additional; works without Google Play - ported from Forkgram & Mercurygram
- 📡 fix stuck playback on pause: disable AudioTrack playback params that caused audio/video to keep playing after pause on MIUI and certain DSP hardware
debloat & premium noise
- 📡 profile & gifts:
- hide the Story / Gift / Live Stream & Video Chat buttons on profiles, and the gift button in a channel's bottom action bar
- hide "Send a Gift" (users and channels alike) and "Archived Stories" from the profile "⋮" menu
- hide Premium badge, collectible (NFT gift) status styling, Stars rating, and organization verification badge next to names
- hide the colorful peer-color profile background and the decorative animated pattern icons on profile headers
- hide the ring of gift icons around the avatar, and/or the whole Gifts tab in shared media (independent toggles)
- hide the Similar Channels/Bots tab in shared media
- hide the group emoji-pack promo hint
- 📡 chat gifts & upsells:
- hide the gift button in the message input field
- hide gift service messages (Stars/TON/Premium gifts) and giveaway messages from chat
- hide the Premium upsell shown when a caption exceeds the free length limit (the limit itself still applies)
- hide Premium lock badges on attach-menu tabs and "Unlock" buttons on locked emoji packs
- 📡 chat list & prompts:
- hide the gift-auctions promo banner and the "free up space" cache-cleanup card pinned above the chat list
- hide PSA promo chats (separate from the existing proxy-sponsor-chat toggle)
- hide the "similar channels" discovery card Telegram injects into chats after joining one
- disable the post-call rating prompt
- disable the contacts-permission and lockscreen (MIUI / Android 14+ full-screen-intent) permission nags shown on cold start
- 📡 hide channel share button: hide the small share/forward icon next to channel posts entirely (the normal forward action from the message menu still works)
the sections below contain the broader feature set: inugram functionality, features adapted from other telegram clients, bug fixes, and entinygram additions in their original context.
inuGram additions
appearance & general
- navigation drawer, like in older Telegram versions; can be used alongside or instead of the bottom tabs
- 🐶 an option to (ab)use predictive back to open the drawer
- monet (material you) theme support - based on NagramX, 🐶 improved. plus a quick switcher in appearance settings (light/dark/amoled/auto)
- 🐶 classic ui mode for folders bar, shared media tabs, global search and chat elements (reverts the >12.6 "liquid glass" look)
- icon replacement (solar pack by 480 Design - ported from NagramX; vkui pack by VK - ported from Catogram)
- notification icon: Telegram (default) or entinyGram
- show seconds in timestamps
- override Telegram's detected device performance class
- 🐶 customizable animation speed multiplier (incl. instant)
- join/creation date in group & channel profiles
- show linked channel in discussion group profile similar to personal channel
- hide own phone number from ui
- fonts: manage a list of fonts used in the media editor text tool; device system fonts can be toggled on/off. install fonts from .ttf/.otf/.ttc files right from the chats.
- extra meme-style outlined text style in the media editor text tool
- 🐶 app-font stack: pick a user-provided TTF/OTF/TTC family as the whole-app font, optionally with fallbacks (e.g. for other scripts)
- 🐶 separate monospace font: pick any roster font for code blocks (inline + pre), previewed live alongside the stack
- 🐶 hide fade views
- 🐶 old (pre-12.6) mention/reaction indicator
- 🐶 toggleable scrim blur
- toggle to disable glass glare
- 🐶 reduce menu motion: skip context menu stagger and reaction bar slide-in/scale animations
- material 3:
- switches
- fabs
- predictive back
- navigation animation
- lists & sections
- avatars (tonal on-container initials instead of white)
- profile action buttons
- 🐶 toggle to replace profile photo bottom blur with a plain gradient fade
- disable number rounding
- export/import settings to/from json file
- cloud sync of settings via web app storage api
- search and deeplinks for fork settings, incl.
tg://settings/...links tapped from inside a chat message - osmdroid-based map view (default) — pure-Java OpenStreetMap renderer with no native libraries, replacing the old MapLibre view to cut ~12MB of native code from the APK
- customizable map preview provider
- in-app updater - ported from Nekogram
- 🐶 crash report sheet: catches uncaught exceptions, offers to share the log on next launch, posts a tap-to-restart notification
- keep search query after picking a result in peer selection screens
dialogs list / main page
- bottom tabs: 🐶 compact mode, hide contacts tab, hide bar entirely
- bottom tabs: material design 3 style with a pill indicator behind the selected icon
- double-tap account tab to switch to next account
- long-tap "chats" tab to pick folder from menu
- folder tabs: display mode (titles / titles+icons / icons-only), optional indicator stroke style, move to bottom of the screen
- folder unread counter modes: hide / regular / exclude muted / 🐶 exclude muted non-dms
- hide "all chats" folder tab
- remove "Archived Chats" from the chat list entirely
- custom title text: Inugram / @username / first name / "Chats"
- 🐶 dialogs fab customization: main + secondary actions, hide-on-scroll, left-side
- 🐶 "create as supergroup" toggle in group creation
- 🐶 deeplink / username quick-open from global search
- open archive directly on pull-down (🐶 done right, without revealing the cell)
- mutual contact icon in contacts list
- customizable dialogs list pull-down action: reveal archive (stock), open archive directly (🐶 done right, without revealing the cell), open saved messages, open search, or disabled entirely. when the pull-down no longer leads to the archive, the archive row is hidden from the list and an "Archived Chats" entry appears in the drawer/overflow menu instead
- interactive chat preview (long-tap avatar): tappable bubbles, no tap-to-expand
- 🐶 community display modes: regular / open on avatar long-tap / invisible
- "select all" in the chat selection three-dot menu (selects all loaded chats in the current folder tab)
chats
- customizable sticker size - ported from Nekogram
- 🐶 remove extra bottom padding under stickers
- 🐶 full-quality sticker previews in sticker sheets & emoji panel (instead of blurry 90px thumbs; only on unmetered network or when already downloaded)
- show all recent stickers
- minimize sticker creator button in recent stickers
- sticker time overlay modes: show / 🐶 hide time / 🐶 hide on incoming / hide completely
- "Refresh" in the sticker/emoji pack menu
- compact edited indicator: pencil icon instead of the "edited" label
- toggleable message bubble tails
- 🐶 jump-to-discussion button from comments
- jump-to-beginning button in calendar popup - ported from Nekogram
- remember all clicked replies when jumping back via the down-button
- 🐶 keep bot draft messages at the bottom
- 🐶 long-press reply panel in "Replies" chat opens discussion group
- show a "Deleted message" placeholder for deleted messages
- hide pinned panel (📡 long-press close: until a new pin, or always in this chat)
- hide channel, group preview (🐶) and replies (🐶) bottom bar (mute/join/etc)
- send message to discussion group without joining
- 🐶 member count on private invite sheets (instead of "private group/channel"; like tdesktop)
- 🐶 search: media-type filter + "show only matches"
- tapping a hashtag in a public channel defaults to the "This Chat" tab
- 🐶 "from user" picker in search also finds users not in chat by name, username, or cached user ID (like tdesktop)
- static pinned reactions in the reaction bar
- 🐶 reachable reactions bar (moved to the bottom of message menu)
- 🐶 reachable "seen by" (moved to bottom of message menu)
- double-tap message actions (separate for incoming/outgoing/editable channel posts), 🐶 customizable double-tap delay
- hide keyboard on scroll
- always show go-to-bottom button (don't hide on scroll-down)
- web preview: replacements (e.g. twitter→fixupx)
- 🐶 strip tracking params (utm_*, fbclid, si, erid, …) from links before opening and/or when pasting — rules from AdGuard URL Tracking filter
- 🐶 web preview refetch from menu
- 🐶 disable web preview limit on twitter-like websites
- 🐶 spoiler web previews: when the preview-generating link is under a spoiler, cover the whole preview card too
- tap a web preview photo to open it in the photo viewer
- 🐶 "Preview" in the link long-tap menu: peek a t.me message link (public or private) as a chat preview at that exact message
- message details from menu (+ show json)
- per-message statistics from message menu
- remove single message's file from cache from the message menu
- "Repeat" in message menu - re-send the same message to the same chat
- "Save to Downloads" for stickers & custom emoji (both in chat and in egs/sheets)
- customizable message context menu - reorder and hide items + long-tap forward/reply items + quick actions row (ported from NagramX)
- wide channel posts - channel posts (and, separately, channel posts/forwards shown in the feed) stretch to the full available width instead of a narrow auto-sized bubble, with a live before/after preview in settings (ported from exteraless)
- customizable chat menu + extra actions:
- Recent actions
- Go to beginning
- Go to message by ID
- Delete my messages
- Statistics / Administrators / Permissions / Invite links (admin shortcuts)
- 🐶 disable custom wallpaper and theme per chat
- per-forum client-side topics layout override (tabs/list) from the profile menu
- read-only chat "admin" page for non-admins
- split media restriction toggles for stickers / gifs / games / inline
- show id in profile, show user json
- long-tap the name in profile to copy it
- long-tap a selected user chip (privacy exceptions, add members, etc.) to open their profile (channels open the chat instead)
- "Stop" button in a bot profile stops (blocks) the bot instead of offering to delete the chat
- 🐶 drag the pinned-music sheet by its header to scroll/expand the playlist
- long-tap inline callback button to copy text or callback data
- "select between messages" (🐶 done right)
- 🐶 lift 100-message selection cap (forwards/saves/deletes are auto-chunked)
- 🐶 two-finger swipe over messages to select/deselect them
- more bulk actions in message selection mode (save, translate, gallery, pin/unpin, no-quote forward)
- in-place message translation, with optional web preview translation, original-text appending and on-device source-language auto-detection (hides Translate when already in your language)
- instant view pages translator
- show original time/date in the forwarded header, with regular, icon-only label, and compact one-line modes
- show forward count next to the view count on channel posts
- long-tap forward bar (above input) to cycle between regular / without sender / without caption
- long-tap a mention in a message to insert a name-mention into the input with custom text
- 🐶 restrict/ban menu items the avatar long-tap menu
- hide messages from blocked users: with a spoiler or completely - partially ported from Nekogram
- also hide messages from a custom list of users/channels without blocking them (via settings picker or profile menu)
message input / formatting
- 🐶 customizable max input lines (and bumped default)
- 🐶 voice recorder moved into attachments drawer
- 🐶 camera placement in the attach panel: instant (stock), static, floating button or bottom tab. the last two free up the grid cell
- 🐶 custom formatting popup with a separate code block button
- 🐶 customizable text classifier (native / improved / off) - reduces false positive expansions
- show custom emoji after regular ones in
:smileemoji suggestion popup - "delete for both/all" default checkbox state
- hide "send as" picker (long-tap stickers button to reveal)
- round recorder:
- zoom slider below the video feed
- keep zoom on pinch release
- gentler exponential zoom curve (like in normal camera apps)
- toggle to disable dual-camera mode
photo viewer
- Ultra HDR and PQ/HLG photos with HDR-capable displays - based on NagramX
- "hide with spoiler" toggle
- "copy photo" / "copy frame" menu actions
- show dc + platform of the photo in menu
- seek bar for mp4 gifs
- always use the modern speed-control rewind on long-press
- mark public (fallback) / personal profile photos next to the date
admin / event log
- 🐶 inline diff for message edits
- 🐶 "ban member" confirmation
- 🐶 expanded message details
accounts
- passkey login
- qr login
- password autofill hints in login (for password managers)
- account limit raised to 8 (premium gating disabled)
- 🐶 customizable account order
- 🐶 launcher shortcut that asks which account to open
- 📡 option to hide recent/frequent chats from the app icon's long-press menu
- per-account passcodes, hidden accounts, panic code, hidden settings deeplink - ported from Nekogram
- 🐶 paranoia mode: pick chats/channels to hide everywhere; all secret chats hidden too; exit by typing a custom code in chat search
- optional whitelist mode: hide everything except the picked chats (service notifications stay visible)
- optionally hide the Inugram settings entirely when enabled
- optionally disguise as stock Telegram when enabled
- optionally silence all notifications while enabled
- optionally hide all other accounts while enabled
- optionally collapse folder tabs (show only All Chats) while enabled
- optionally hide your own stories (ring, profile tabs, archive) while enabled
- optional launcher long-press shortcut to enter it quickly (hidden while active)
- biometric confirmation before deleting/clearing a chat or logging out - inspired by Cherrygram
- optional biometric lock on Archived Chats — ask once per app session or every time you open the archive
- session list in Settings > Devices shows the real app name (entinyGram) instead of the registered api_id title ("Inugram")
behavior
- call confirmation
- HD call audio on Bluetooth
- 🐶 reaction confirmation in non-joined chats
- 🐶 internal link confirmation (tg://, t.me/...)
- support
tg://user?id=…links (opens the profile; user must be known locally) - 🐶 disable swipe-down to minimize the in-app browser (only the minimize button collapses it)
- predictive back mode selector
- disable pull-to-next-channel
- disable swipe-to-unarchive
- 🐶 disable swipe-to-hide the General topic in the forum topics list
- disable motion photos (rendering + detection, in picker and in messages)
- disable notification chat bubbles
- 🐶 disable cloud drafts upload
- 🐶 disable wallpaper parallax
- 🐶 disable scroll-snap in profile
- 🐶 reduce profile motion (skip various enter animations, disable avatar scale-on-scroll effect)
- 🐶 prefer "Media" tab in profile over Gifts/Posts
- 🐶 recyclerlistview instant-tap
- open bottom-tab menus early by swiping up; flat highlight (not ripple) on menu hover
- faster downloads/uploads
- auto-disable the configured proxy while a VPN is active
- send MP4 files attached through Files as playable videos without conversion
- sort attach panel albums by photo count instead of recency
- 🐶 "Minimize" option in the attach panel discard prompt to keep the selection (e.g. to choose a message to reply to)
- choose the media save folder (Inugram/Telegram) used for saved photos, videos, music and downloads
- original video quality option in quality picker, including audio removal without re-encoding video
- remember last used settings in polls + reasonable defaults
- strip tracking parameters from URLs (UTM, fbclid, etc.) on open and paste using AdGuard tracking rules
annoyances
- hide trending stickers/emoji in egs
- 🐶 hide ai features
- hide stories
- hide voice hint
- hide paid reaction upsell
- hide hashtag suggestions in chat input
- hide rich text editor button in chat input
- hide repost to story
- 🐶 hide bot commands and webview buttons
- hide intro greeting + non-clickable custom intro sticker
- 🐶 hide server-pushed suggestions
- disable phone number in chat title
- hide call button in chat title (still in overflow menu)
- hide reactions send animation
- 🐶 simple (non-bouncy) attach panel animation
- disable notification bubbles
- disable volume keys playing visible video with sound in chat
- disable quick share (long-tap share button → send to frequent contact without confirmation)
- disable auto-play when opening the pinned music player on a profile
🐶 bugfixes (vs stock)
- connection status title no longer gets stuck on "Updating..." when its transition animation is cancelled
- accelerated video playback no longer applies an unnecessary pitch shift; live speed-slider changes use Android's low-latency audio mixer path
- "Save to Downloads" copies uncached documents after downloading instead of requiring a second attempt
- cancelling a video download kept restarting it after streaming the video in PhotoViewer (the player's loader thread swallowed its shutdown interrupt, survived the viewer close, and re-requested the file on every cancel; also a file-reference refresh landing mid-cancel resurrected the operation into an uncancellable zombie)
- "Save to Downloads" preserves the original filename on Android 10+
- downloaded photos/videos no longer show up in the system gallery on devices whose scanner indexes app-private dirs (stock never wrote
.nomediainto the media cache dirs; only on Android 11+, where the gallery-visible copies live elsewhere) - gboard image paste no longer skips PhotoViewer
- reordering an attach-panel album preserves per-photo captions and no longer duplicates its album caption
- photo crop silently not applied to the sent image
- high-quality photo cropping in PhotoViewer (crop before downscaling)
- sticker creator output sent as photo when high-quality default is on
- non-square webm stickers rendered off-center in the emoji panel (precached frames were blitted top-left and scaled by width only)
- webm sticker permanently stuck blank until the app is restarted (an image load cancelled mid-flight published a decoder-less drawable into the animation cache, whose stream stayed cancelled and which never retried decoding)
- webm stickers played too fast (frame pacing was driven by the container's declared fps instead of frame timestamps, so variable-rate or mis-probed webm ran at up to 2x)
- recyclerlistview double-tap requires same view
- list ripple left behind when the pressed row moves because another row changed height (selector was only re-synced on scroll)
- link ripples in album captions work across the entire group
- link long-tap menu no longer draws the lifted link 2dp to the left of the actual text (the scrim was being nudged onto the popup's scale pivot even when it isn't morphing into a rewritten url)
- long-tap scrims (link / date / card / username / phone menus) block chat touches while open — the lifted text is pinned to screen coords captured on open, so scrolling, swipe-to-reply or swipe-back behind it detached it from its bubble
- dead zones in list rows where a hidden clickable child kept stale bounds from a previous binding (e.g. top-right corner of a member row in profile after a tagged member was recycled)
- share sheet search results unclickable near the top (the touch dead zone under the search field double-counted the status bar inset, swallowing taps on the first row of results)
- chat list crash while flinging when RecyclerView exposes a stale child without a ViewHolder
- dialogs list pull-to-reveal-archive glitches
- inline code in dialog previews no longer inherits chat-bubble colors
- chat previews no longer persist the scroll position, so opening the chat normally afterwards still starts where you left off
- big emoji jumping around in emoji-only messages when a visible reply preview shared its spans (stock bug: per-span draw-position cache fought over by both layouts), plus oversized animated emoji in reply previews (stock bug:
cloneSpanoverwrote the resized value with the old size) - pinned dialog reorder scrolling/glitching mid-drag in the archive (stock bug: async list diffing dispatched the move after the drag swap)
- forwards from users with hidden forward privacy: the optimistic message shows the anonymized name right away (when their profile is cached), and the server-confirmed hidden header is applied in place instead of showing the linked author until chat reopen
- shared media player visual glitches
- profile pinned-music sheet bugfixes
- shared media pager: fling mid-animation to chain tabs or reverse (was ignored until settled); at the edge tab the fling falls through to swipe-to-close
- shared media grid cells (the opened one's neighbour especially) going blank after opening a photo — the viewer hides the source cell's image receiver a frame or more after resolving it, and restores it by re-resolving by message id; if the grid recycled that cell onto another message in between, the wrong cell was blanked and the restore landed elsewhere, so it never came back. deferred hides now verify the cell still shows what they were resolved for, and a cell rebound to a different message drops any inherited hidden flag
- second copy of the photo showing over the shared media grid during the open/close transition (our own regression: stock's transition draws a list-space copy through a hole in the viewer's background, which is invisible while the main content is hidden — our keyboard fix keeps that content drawn, so the shared media provider now opts out of the second copy like ChatActivity does)
- shared media photo transition starting/landing ~2dp off (down, and right for left-column cells): the grid's place provider pre-added the cell's image offset to the window coords, which the photo viewer then adds again via
drawRegion— every other provider, including the sibling branches in the same method, passes the raw view position - image memory cache sized off
getMemoryClass()while the app runs withandroid:largeHeap— the cache was ~29MB instead of ~56MB, too small to hold the shared media grid and the photo viewer's full-screen bitmaps at once, so opening any photo evicted the whole grid and every cell flashed its blurred thumbnail - attach panel: better perf, safe close before fully open
- paid reaction animation respects litemode
- custom emoji reaction burst respects litemode (stock only gated the "around" animation of regular emoji)
- expired once-view/self-destruct media now reliably shows the "Expired video/photo" placeholder instead of sometimes getting stuck showing live media (stock bug: the refresh triggered when
SecretMediaViewercloses checked the media fields directly, which aren't cleared yet at that point — only a separateforceExpiredflag is) - reaction counter shift during long-tap menu
- reactions silently disappearing right after being sent (stale server read race)
- channel reactions: toggling "Enable Reactions" was silently discarded on back (unsaved-changes check only compared the emoji selection, never the enabled state), and re-enabling always saved the prefilled list as an explicit set instead of "All"
- rounded section backgrounds ignored the alpha of the fading container they lived in, so they stayed fully opaque during the animation and only popped away on the next unrelated redraw (e.g. toggling "Enable Reactions" in channel reactions)
- sticky date pill jump and color shift when replacing an inline date separator
- bubble jump when ime height changes mid send-animation
- out-of-bubble panels (reply/forward/name) on custom wallpapers jumping tint when the keyboard opens (wallpaper-sampling offset flipped by the action bar height via a stale keyboard-layout conditional)
- markdown
__/**/~~/||no longer parsed inside auto-detected links on send - "regular" formatting option with mixed-span selections
- applying a style over a mixed-span selection smearing one span (e.g. mono) across the whole range
- photo viewer ui respects litemode blur
- search-as-list box respects litemode blur
- lazy face detect (only on filters tab)
- lazy chromecast init in photo viewer
- stale video seekbar leaking onto photos in photo viewer
- fix photo zoom/video progress resetting on message edit
- photo viewer no longer dismissing the keyboard / jumping at end of close animation (12.8 regression)
- fix edge-to-edge for instant view
- missing action bar title/date and open/close animation when viewing a photo of a user who hid theirs from you (stock bug: profile photo locations carried no dc id)
- text spoilers jittering/blinking while scrolling on high-refresh displays (12.8 regression)
- revealed spoilers in album captions re-hiding themselves after a scroll (reveal flag was set on the drawing cell's message instead of the group's primary one)
- black screen after rotating the screen with a chat preview open
- round video recorder cancel crash when leaving chat
- missing
Emoji.replaceEmojicalls - background media loading cpu usage (experimental)
- animated photo spoilers respect power-saving setting
- shared media spoiler positioning
- nav stack lockup after rapid back swipes
- click-through area to the left/right of bottom bar tabs
- profile scroll jump when opening uncached user
- stale unread badges on global-search top peers
- stale unread mention pointer after reading mention on another device (mention button jumping to old message)
- folder pins silently missing when the pinned dialog isn't in the local dialogs cache (now fetched from server)
- folder tab unread counters slowly drifting to zero (badge disappearing while the list still shows unread chats) as chats got read
- photo/video gallery performance improvements
- edits (incl. crop) survive gallery refreshes and the source file being replaced by another app while its editor is open; also fixes fresh screenshots sometimes not appearing in the attach sheet or making it flash
- messages consisting of only 2 or 3 emojis are huge in chat search results
- admin logs scroll jumping when loading events
- fix glitch when quickly dismissing photo editor after cropping
- persist crop when rotating photo in photo editor
- chat preview no longer marks visible reactions/poll votes as read
- dialogs list briefly flashing over the lockscreen after ending/declining a call
- fix camera2api a/v sync issue in round messages
- forward bar showing stale message count/senders after deselecting messages in the forward options sheet
- forwarding with captions removed no longer blanks out text-only messages in the optimistic copy (stock only checked
media != null, but locally-sent text messages carrymessageMediaEmptysometimes) - cross-peer reply: clear stale quote so a leftover quote-reply target doesn't override the new one at send
- emoji suggestion panel popping up after sending a message (late
:keywordlookup callback ignored the input having been cleared) - phantom empty dialog rows after peeking a non-joined channel / discuss group
- expand emoji tabs when there's enough space to fit without scrolling
- "pause music on media" now lets external players auto-resume (transient focus instead of indefinite)
- "pause music on media" now also applies to videos in the photo viewer, with transient focus so external players auto-resume (stock never requests audio focus for them)
- reply box right padding when the sender-name line is wider than the message text line
- fix lingering webpage when quickly sending
- fix sponsored message media not respecting data saver
- fix non-joined channels history getting stuck in the past
- jumping to an uncached message no longer flashes and returns to the chat bottom
- expandable switch cell (e.g. admin rights groups) counter badge overlapping the switch on long titles
- fix stuck red snapshot box when the frame capture fails/times out on enter in pip
- heads-up notifications show only the new message instead of the whole group, on the correct channel (Private Chats/Groups/Channels) instead of "Internal notifications" (visible since android 16 forced grouping)
- fix npe checking admin/owner when channel admins not yet loaded
- comments/topic thread restored as plain group chat after activity recreation
- phantom message selection after back-gesture swipe over a reply header (leaked long-press timer)
- fix deeplinking to a non-primary album member sometimes mis-anchoring
- a bunch of stock memory/resource leaks (incl.
NativeByteBufferwrapper pool growing unbounded on write-heavy threads, reply-line sticker emoji never detaching and pinning closed chats via the global emoji cache, story viewer input/mention observers,BotLocationcaching an activity context) - correctly handle "Open in..." in ChatAttachAlert: open editor before sending + support multi-attach
- avatar of a bubble right below a topic separator (forum "All" tab) only clickable in its lower part
- opt out of android media resumption, so a phantom telegram player chip no longer reappears in quick settings after a reboot or once the app process is gone
- fix profile crash when a contact's note is removed server-side while the open animation is running (note row built from stale user info, bound against fresh)
- notifications for chats read on another device no longer linger forever when the app process was killed in between (stock only tracked posted notifications in memory)
- more stale notification fixes: reaction, "scheduled message sent", story and forum-topic notifications now clear when read/seen on another device while the app is connected (stock only cleared these via FCM pushes, which aren't delivered to online sessions, or on opening the chat locally); notification refresh is no longer skipped when unread counts happen to stay equal (forums, communities, muted chats)
- unchanged notifications are no longer re-posted on every update (stock re-notifies every chat each time anything changes, making notification bridges like Mi Fitness re-forward the whole stack to the wearable)
- crash long-pressing a sticker set while off-screen rows are cached (reorder update bound null item on cached/hidden holders)
- crash cutting out a sticker after the photo editor recycled the source image mid-segmentation
- crash after transferring channel ownership (admin sort comparator overflowed on 64-bit peer ids)
- "Save to Downloads" copies uncached documents after downloading instead of requiring a second attempt
- link ripples in album captions work across the entire group
- duplicate edit-info and profile-photo actions in the standalone self-profile overflow menu
- chat drifting a few px off the input when hiding the keyboard while a message animation runs (aosp recyclerview bug: end-anchored padding delta applied twice across pre+post layout)
- crash expanding/loading more votes in poll results (sections adapter diffed against an empty hash list on the first update, re-inserting every already-laid-out item)
- crash tapping the story privacy badge on a story from a user with no first name (e.g. deleted account)
- stop spamming doomed admin-list requests (
COMMUNITY_FILTER_INVALID) on every open of a community you're not an admin of - crash in the forward picker inside a community when the community's info updates (stock updates an action bar avatar view that picker mode never creates)
- fix bottom progress bar on video bubbles now following inline playback (autoplay & play-with-sound)
- correctly publish album name for streamed music
- permanently white/stale message bubbles on low-memory devices (stock bug:
MessageDrawablecommitted its radius/color cache keys even when the bitmap allocation for the bubble nine-patch failed, so the stale drawable was never rebuilt; the shadow nine-patch also recycled its old bitmap before allocating the new one, leaving a recycled bitmap in use) - unread reaction/poll vote badge stuck on a chat after reading some of them on another device (stock only persisted the dialog counter once it hit zero); counter now follows every single-message read, each read is acked to the server right away; the jump-to-reaction button no longer marks everything read when its offset overshoots
- group call recording timer showing a nonsense duration (the whole unix epoch, e.g.
496691:48:15) right after starting a recording: stock flips the localrecordingflag optimistically whilerecord_start_dateis still 0