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.
- 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