15 Commits

Author SHA1 Message Date
ichmagmaus 812 13a43b9068 Update Ghostgram features 2026-03-07 18:19:16 +01:00
kuromiplayer 32b0dddcd9 Merge pull request #1 from ichmagmaus111/ghostgram-update
Ghostgram update
2026-03-04 23:53:08 +01:00
ichmagmaus 812 1a3303b059 feat: custom ghost icon + move Ghostgram Settings under Кошелёк
- Generated ghost icon for Ghostgram Settings menu item
- Added GhostgramSettings.imageset (@1x/@2x/@3x PNG)
- Moved Ghostgram Settings from .advanced section (between Privacy &
  Chat Settings) into .myProfile section, placing it directly after
  'Мой профиль' (visually appears just below Кошелёк in the list)
- Replaced generic Appearance icon with new custom ghost icon
2026-03-04 23:46:44 +01:00
ichmagmaus 812 534dd03f41 fix: three critical bugs in scheduled send and account switcher
Bug 1 — Video recorder freeze with SendDelayManager enabled
When SendDelayManager is active, video notes (кружки) and media are
enqueued into Namespaces.Message.ScheduledLocal, not the main chat
history. This broke setupSendActionOnViewUpdate which expects the message
to appear in the regular history before triggering its callback (dismiss
recorder, collapse input). The callback never fired → recorder overlay
stayed on screen → app froze.

Fix: in requestVideoRecorder's completion closure, detect when
SendDelayManager.shared.isEnabled, immediately dismiss the recorder and
clear the interface state, bypassing the broken animation path.

Bug 2 — Scheduled messages remain visible after being sent
When AntiDeleteManager is enabled, the .DeleteMessages case in
AccountStateManagementUtils uses  to skip non-Cloud namespaces
(ScheduledCloud, ScheduledLocal). However after the loop no code
physically removed those skipped messages from Postbox — they stayed
in the scheduled list forever, appearing as 'planned' messages that
never disappeared.

Fix: collect non-Cloud IDs during the Anti-Delete loop and physically
delete them via _internal_deleteMessages after the loop.

Bug 3 — Account switcher avatar not loading
Race condition in avatar loading: resourceData was subscribed to first,
then fetchedMediaResource triggered the network fetch. The signal's
 callback fired before data arrived, calling buildButton(nil)
which discarded the real avatar.

Fix: trigger fetchedMediaResource first, then subscribe to resourceData
with filter { $0.complete } |> take(1) so the signal stays alive until
the download completes.
2026-03-04 23:26:03 +01:00
ichmagmaus 812 f033954db2 feat: новые функции, исправлены критические ошибки сборки и баги интерфейса, больше подписей в файлах 2026-03-04 22:06:16 +01:00
ichmagmaus 812 a614259289 Harden signing hygiene and guard chat init crash 2026-02-28 11:51:43 +01:00
ichmagmaus 812 019945f9da fix(ghostgram): fix Always Online + implement Ghost Mode mutual exclusion
Bugs fixed:
- Always Online had no effect after toggle — updatePresence was only called
  on app focus changes, not on settings changes. Fixed by subscribing to
  MiscSettingsManager notifications in AccountPresenceManagerImpl.

- Ghost Mode + Always Online conflict: if Ghost Mode was enabled, the early
  return in updatePresence completely blocked Always Online logic.

Changes:
- ManagedAccountPresence: priority chain Always Online > Ghost Mode > default.
  Subscribes to GhostMode/MiscSettings notifications, refreshes presence
  immediately on any change. 30s keep-alive timer for Always Online.
- GhostModeManager: enabling Ghost Mode auto-disables alwaysOnline via
  disableAlwaysOnlineForMutualExclusion(). No recursion via guard flag.
- MiscSettingsManager: enabling alwaysOnline auto-disables Ghost Mode via
  disableForMutualExclusion(). No recursion via guard flag.
- MiscController: subscribes to GhostModeManager notifications to refresh
  UI when Ghost Mode is auto-disabled by Always Online.
- GhostModeController: subscribes to MiscSettings notifications to refresh
  UI when Ghost Mode is auto-disabled by Always Online.
2026-02-23 23:17:25 +01:00
ichmagmaus 812 db53826061 chore: migrate to new version + fixed several critical bugs
- Migrated project to latest Telegram iOS base (v12.3.2+)
- Fixed circular dependency between GhostModeManager and MiscSettingsManager
- Fixed multiple Bazel build configuration errors (select() default conditions)
- Fixed duplicate type definitions in PeerInfoScreen
- Fixed swiftmodule directory resolution in build scripts
- Added Ghostgram Settings tab in main Settings menu with all 5 features
- Cleared sensitive credentials from config.json (template-only now)
- Excluded bazel-cache from version control
2026-02-23 23:04:32 +01:00
kuromiplayer 703e291bcb Update Telegram contact in README 2026-02-23 22:44:13 +01:00
ichmagmaus 812 9b41c14ef2 docs: restructure readme into main presentation and build guide 2026-01-19 12:28:46 +01:00
ichmagmaus111 dbe39aedc7 update 2026-01-19 12:09:42 +01:00
ichmagmaus 812 03f35f40b5 feat: add Ghostgram features
- Anti-Delete: save deleted messages locally
- Ghost Mode: hide online status, read receipts
- Voice Morpher: audio processing effects
- Device Spoof: spoof device info
- Custom GhostIcon app icon
- User Notes: personal notes for contacts
- Misc settings and controllers
- GPLv2 License
2026-01-19 12:01:00 +01:00
ichmagmaus 812 b61c8870fd chore: add config.json template with empty values 2026-01-19 11:59:44 +01:00
ichmagmaus 812 51056843d7 chore: update gitignore, remove provisioning profiles from tracking 2026-01-19 11:57:31 +01:00
Ilya Laktyushin 8344b97e03 Merge commit '7621e2f8dec938cf48181c8b10afc9b01f444e68' into beta 2025-12-06 02:17:48 +04:00