Closed
Conversation
- Add StoryViewController for full-screen story viewing with gestures - Add StoryBarView for horizontal story list in chat list header - Add story ring support to AvatarView (gradient for unread, gray for read) - Implement ReplyComponent.setStory() for story preview in replies - Add SETTING_FLAG_HIDE_STORIES setting with UI toggle - Add MessageStory support in TGMessageService - Respects hideStories setting throughout (except shared story messages) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- StoryComposeController for creating stories via camera/gallery - AddStoryItemView in story bar with gradient ring - StoryReplyInputView for replying to stories - Double-tap heart reactions via SetStoryReaction - checkCanPostStory() integration in ChatsController - ReplySent string and controller_storyCompose id 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fix status bar collision using RootFrameLayout.InsetsChangeListener - Fix horizontal swipe to navigate between users' stories - Fix touch handling to allow header/footer button clicks - Add story reactions (full picker and quick reactions row) - Add quick reactions settings toggle - Fix share button functionality - Fix "#400 story didn't open" error toast - Add delete/share options based on story permissions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Wrap debug logs in BuildConfig.DEBUG checks - Fix GetStoryInteractions query parameter (null -> empty string) - Fix album picker ID collision with R.id values - Implement proper ReportStory flow with options and text dialogs - Fix StoryContentView memory leak (add destroy() call) - Hide privacy settings and reply input for channel stories - Remove unused imports from story files - Add missing string resources for report dialog 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add snap-to-show/hide when scroll stops - Better top detection using layout manager - Fix checkCanPostStory timing with user data wait 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds complete forum topics functionality: - ForumTopicsController: Main topics list with search, create, edit, delete - ForumTopicView: Custom view for topic items with icons/avatars - ForumTopicTabsController: ViewPager tabs layout for topics - Topic message filtering using GetForumTopicHistory - Per-topic unread counters, mentions, and reactions - Topic notification settings (mute/unmute) - Topic typing indicators - Topic header in chat view - Navigation integration - Forum toggle in group settings - View as chat/topics toggle - Notification separation showing "Chat > Topic" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Added break statement after fall-through service message cases in ContentPreview.getContentPreview() to prevent them from falling through to the forum topic handlers. This fixes a bug where group photo changes and other service messages incorrectly showed "Topic created" in the chat list preview. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add forum layout toggle (tabs vs list) in ProfileController settings - Fix layout toggle not applying until re-entry (wasForumTabsChanged check) - Fix visual flash when entering forum tabs by using LoadingController placeholder - Add Group Info access from tabs mode for admins - Add permission checks for topic actions UI 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Move search loading indicator to ClearButton in search bar (spinner where X button is) - Fix topic filter dialog icon positioning (18dp left offset instead of 68dp) - Fix settings popup ripple effect (use ?android:attr/colorControlHighlight for theme-adaptive ripple) - Remove centered ProgressComponentView in favor of search bar spinner 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
…i, search in menu - ChatHeaderView: Add custom emoji support for forum topic icons - ForumTopicView: 3-line layout (title, sender, preview) matching chat list - ForumTopicsController: Add "View as tabs" option, fix draft updates - ForumTopicTabsController: Add "View as topics" option, move search to menu - TdlibUi: Fix viewAsTopics check for proper view mode switching - ShareController: Add forum topics support for sharing - Add topic list caching in Tdlib 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Updated scroll listener to use dynamic archive position instead of hardcoded values (0, 1) which don't account for story bar - Updated getLiveLocationPosition() to account for story bar offset - Archive scroll collapse/expand now works correctly with story bar 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fixed archive collapse offset overlapping with story bar by checking hasStoryBar() - Changed story bar to only add to adapter when content is available - Story bar now always VISIBLE when in adapter (adapter controls presence) - Added scroll to top when story bar is first added for visibility on app start - Fixed scroll listener positions to use dynamic archive position 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- StickerSmallView.setSticker() now handles isDefaultPremiumStar stickers - Shows premium star drawable for paid reactions instead of empty - Added proper error translation for "not enough stars" error - Added user-friendly error message string 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implemented proper TextMediaListener for custom emoji rendering: - ForumTopicView now implements Text.TextMediaListener - Added textMediaReceiver for loading custom emoji - Preview text with custom emoji now renders correctly 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Star reaction icon now respects bounds and scales correctly - ForumTopicView properly handles custom emoji in preview text 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Forums now skip preview mode on long-press in chat list. This prevents swipe-up from opening MessagesController instead of ForumTopicsController. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Implement separate notifications for each forum topic - Split notification groups by topic ID for forums - Display each topic as separate Android notification - Show topic name in notification title: "Chat › Topic" - Tap notification opens correct topic - Fix unread ticks in ForumTopicView - Use lastReadInboxMessageId for incoming messages - Use lastReadOutboxMessageId for outgoing messages - Add MessageListener to ForumTopicsController - Subscribe to message updates for real-time topic sync - Update topic lastMessage when new messages arrive - Handle message content changes and deletions - Resort topics when messages change 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added setting to show reactions as bubbles in direct messages (like groups) - Added setting to keep attach button visible while typing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…rt, layout fixes - Add separate settings for Camera, Attach, and Voice buttons while typing - Add caption support: input text becomes caption when sending media - Caption works with photos, gallery media, and voice messages - Fix button layout to use flex-like behavior (no gaps for hidden buttons) - Fix send button overlapping text with dynamic padding - Fix buttons not restoring when text is deleted - Add caption prefill for attach picker and camera flows 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…navigation - Replace emoji prefixes with icon-based indicators (mute/lock icons) - Fix text width calculation to prevent overlap with time/counters - Fix header margin to prevent title overlap with menu buttons - Forums with hasForumTabs now always open in tabs view - Fix "View as chat" navigation to prevent re-opening in tabs mode Based on fixes from https://github.com/logopek/reX/tree/musicProfile Co-Authored-By: logopek <logopek@users.noreply.github.com> Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When sending a message to a forum topic, the topic list wouldn't show the latest message preview after returning from the topic view. Root cause: The pending message has topicId=null, causing onNewMessage() to exit early. When the message succeeds, updateMessageSendSucceeded fires but ForumTopicsController didn't implement onMessageSendSucceeded(). Fix: Implement onMessageSendSucceeded() to route to onNewMessage() with the completed message that has topicId properly populated. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Cherry-picked Video Calls with Camera and Screen Sharing support. - Added CallInterface abstraction layer - Added NTgCallsInterface and TgCallsInterface implementations - Added VoIPFloatingLayout and VoIPTextureView for video display - Updated CallController with video button support - Updated TGCallService with NTgCalls/TgCalls selection based on BuildConfig.USE_NTGCALLS Based on commit 9513771 from Laky-64/Telegram-X PR #916 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add BLUETOOTH_CONNECT and BLUETOOTH_SCAN permissions for Android 12+ - Add USE_NTGCALLS BuildConfig flag (controlled by app.ntgcalls in local.properties) - Add useNTgCalls to ApplicationConfig and ConfigurationPlugin - Add conditional NTgCalls dependency (io.github.pytgcalls:ntgcalls:2.0.6) Note: The NTgCalls interface code from PR #916 requires API compatibility updates - the PR was written for a different version of the NTgCalls library with packages (media, p2p, devices, exceptions) that don't exist in the public Maven Central release. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Group Calls: - Add NTgCallsGroupInterface for group call handling via NTgCalls - Add GroupCallController UI with participant list, mute/camera/screen share controls - Integrate group call joining flow in TdlibUi - Add public methods for group call listener subscription in TdlibListeners - Add mic_off and screen_share icons Voice/Video Restrictions: - Add visual dimming for restricted voice/video button in VoiceVideoButtonView - Show restriction tooltip when tapping restricted mode in MessagesController Build: - Enable ARM64 debug variant for easier testing - Update CLAUDE.md with MantisBT integration instructions Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add forumTopic() and isForumTopicMuted() helper methods in Tdlib - Filter notifications from muted forum topics in TdlibNotificationHelper - Add isFromMutedForumTopic() check in TdlibNotification - Handle closed topics: block input for non-admins in MessagesController - Handle forum mode changes in ForumTopicTabsController Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add clearComposingText() to EditText to safely clear composing spans - Call clearComposingText() in InputView before programmatic text changes - Handle view parent removal in ViewPagerController when reusing cached controllers Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add hasBluetoothPermission() helper method to check BLUETOOTH_CONNECT - Initialize BluetoothAdapter only if permission is granted on API 31+ - Check permission before calling getProfileConnectionState() - Remove //noinspection MissingPermission suppression Fixes #23 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Cherry-picked from reX fork (logopek/reX commit f54f712) Users can now see personal notes on user profiles. Notes are stored by Telegram and synced across devices (using TdApi.UserFullInfo.note). - Added ProfileNote string - Added btn_profileNote ID - ProfileController: setProfileNote(), checkProfileNote() methods - Shows note in user profile info section Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add VoIPTextureView for local camera preview with floating layout - Add video grid container for participant video streams - Set up FrameCallback to receive video frames from NTgCallsGroupInterface - Add RemoteSourceChangeCallback to detect participant video state changes - Add VideoParticipantsAdapter for video grid layout - Clean up video resources on destroy Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add createVideoChat() and endVideoChat() to TdlibUi - Add public joinGroupCall() method to TdlibUi - Add canManageVideoChats() permission check to Tdlib - Add "Start Video Chat" / "Join Video Chat" options to group chat menu - Add raise hand toggle button to GroupCallController - Add end video chat confirmation dialog for admins (long-press leave) - Add new button IDs and string resources Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace joinGroupCall(int) with joinVideoChat(int) for chat-bound video chats - Use TdApi.JoinVideoChat instead of non-existent InputGroupCallId - Use groupCall.canBeManaged instead of chatId for permission check Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add invite button to GroupCallController - Get video chat invite link via TdApi.GetVideoChatInviteLink - Copy link to clipboard and show share dialog Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Cherry-picked from logopek/reX: e6d439d - Save user's preferred forum view (tabs vs topics list) - Respect saved preference when opening forums - Store preference per chat in TdlibSettingsManager Co-Authored-By: shikaatux <logopek@github.com> Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add tags bar below header in Saved Messages chat - Filter messages by tag with tap, clear with second tap - Long-press tag chip to edit label (Premium, max 12 chars) - Real-time tag updates via UpdateSavedMessagesTags listener - Tag mode display on message reactions (shows label instead of count) Files created: - data/TGSavedMessagesTag.java - Tag data wrapper - data/TGSavedMessagesTags.java - Tags container - telegram/SavedMessagesTagsListener.java - Update listener - widget/SavedMessagesTagsBarView.java - Filter bar UI - ui/SavedMessagesTagEditController.java - Label editor TDLib APIs: GetSavedMessagesTags, SetSavedMessagesTagLabel, SearchSavedMessages, UpdateSavedMessagesTags Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Cherry-picked from Laky-64/Telegram-X commit 223c39b - Playback speed slider in audio/video player - Speeds: 0.5x (50%), 0.75x, 1x, 1.25x, 1.5x, 2x, 2.5x - Visual speed indicator counter - Persists speed preference - Hold for more options, swipe for precise adjustment Co-Authored-By: Arseny271 <56611696+Arseny271@users.noreply.github.com> Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update * Add some tooltips * Fixes * Update TGPlayerController.java * Update * Update * Update Recorder * Voice recording pause * Update * Update * Round pause v1 * Update * Update * Update RecordAudioVideoController.java * Update themes * Update * Update RecordAudioVideoController.java * Update RecordAudioVideoController.java * Minor fixes --------- Co-authored-by: vkryl <6242627+vkryl@users.noreply.github.com>
* Quotes * Samsung keyboard fix * Emoji fix * Remove background, message layout fixes * Fix * Fixes * More fixes * Input filter fix * Update ThemeCustom.java * Fix * Color Updates * TextFormattingUpdate * Update Text.java * Update * Uodate * Update MessagesController.java * Fix * Add Copyright and remove unused code * Update * Fiz * [Experimental] NoClipEditText fix for actual Android versions. * Update
- Add TextSelectionHelper for text selection and quote creation - Add menu for text selection quote options - Implement quote callback in TGMessageText - Add replyInOtherChat and quoteInOtherChat functionality - Support text highlight for quoted fragments - Add quote-related IDs and strings
- Document feature branch workflow (start from main, merge to all-features-combined) - List all available feature branches with descriptions - Add branch hierarchy diagram Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
nothing