Common Telegram Classes
Reference for frequently used Telegram source classes and their locations for plugin development.
Links to commonly used Telegram classes
It is recommended to have a local copy of Telegram sources, opened in Android Studio.
LaunchActivity
Path: TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java
That's where app initialization happens. Custom links are handled here as well.
ProfileActivity
Path: TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java
User and channel profile fragment.
ChatActivity
Path: TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java
Chat rendering and functionality.
MessageObject
Path: TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java
Wrapper for TLRPC.Message
.
ChatMessageCell
Path: TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java
Handles message rendering.
AndroidUtilities
Path: TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java
Contains a lot of useful utilities.
MessagesController
Path: TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java
Contains all methods related to managing app state and Telegram requests.
MessagesStorage
Path: TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java
Manages local database state. You may use database
field to execute custom SQLite queries.
SendMessagesHelper
Path: TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java
Contains methods for sending all kind of messages, including files.
BulletinFactory
Path: TMessagesProj/src/main/java/org/telegram/ui/Components/BulletinFactory.java
Bulletins are small notification messages displayed on the bottom.
AlertDialog
Path: TMessagesProj/src/main/java/org/telegram/ui/ActionBar/AlertDialog.java
Alert dialogs are shown on top of current fragment. They support custom handlers on action buttons.
TLRPC (all Telegram request models)
Path: TMessagesProj/src/main/java/org/telegram/tgnet
Human-readable list: https://corefork.telegram.org/schema (not always up-to-date)