AyuGram4A: Modified Telegram client with privacy features
Fork of exteraGram with message history preservation, ghost mode, and privacy-focused features.
Learn more about AyuGram4A
AyuGram4A is a modified Android Telegram client based on exteraGram with additional privacy and message management features. The application saves message history persistently rather than just caching it, allowing users to retain deleted or edited messages even after cache clearing. It implements a ghost mode system that hides online status from other users and includes message filtering capabilities. The client integrates with AyuSync, a synchronization service for syncing read states and message history across devices.
Persistent Message History
Saves deleted and edited messages permanently to local storage rather than temporary cache. Messages remain accessible even after cache clearing or app reinstallation.
Full Ghost Mode
Hides online status and read receipts from other users while maintaining normal messaging functionality. Provides granular control over visibility settings.
AyuSync Integration
Synchronizes message history and read states across multiple devices through a dedicated backend service. Supports both official servers and self-hosted instances.
public class AyuMessageUtils {
private static final String TAG = "AyuMessageUtils";
private SQLiteDatabase database;
public AyuMessageUtils(Context context) {
AyuDatabaseHelper helper = new AyuDatabaseHelper(context);
this.database = helper.getWritableDatabase();
}
public void saveDeletedMessage(TLRPC.Message message, long chatId) {
ContentValues values = new ContentValues();
values.put("message_id", message.id);
values.put("chat_id", chatId);
values.put("message_text", message.message);
values.put("date", message.date);
values.put("from_id", message.from_id != null ? message.from_id.user_id : 0);
values.put("deleted_date", System.currentTimeMillis() / 1000);
database.insert("deleted_messages", null, values);
if (BuildVars.LOGS_ENABLED) {
FileLog.d(TAG + ": Saved deleted message " + message.id + " from chat " + chatId);
}
}
public ArrayList<TLRPC.Message> getDeletedMessages(long chatId) {
ArrayList<TLRPC.Message> messages = new ArrayList<>();
Cursor cursor = database.query("deleted_messages", null, "chat_id = ?",
new String[]{String.valueOf(chatId)}, null, null, "date DESC");
while (cursor.moveToNext()) {
TLRPC.Message message = new TLRPC.TL_message();
message.id = cursor.getInt(cursor.getColumnIndex("message_id"));
message.message = cursor.getString(cursor.getColumnIndex("message_text"));
message.date = cursor.getInt(cursor.getColumnIndex("date"));
messages.add(message);
}
cursor.close();
return messages;
}
}Top in Mobile & Desktop
Related Repositories
Discover similar tools and frameworks used by developers
src.next
Archived Chromium fork for Android with extension support.
RustDesk
Cross-platform remote desktop in Rust with self-hosted capabilities, alternative to TeamViewer.
ViMusic
Android YouTube Music client with Jetpack Compose, background playback, and offline caching.
Signal Android
Open-source Android messaging app with end-to-end encryption for texts, voice, and video calls.
React Native SVG
Native SVG rendering for React Native applications.