mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 22:45:19 +00:00
Arti's dormant/wake FFI functions are no-op stubs that don't actually implement dormant mode. The app was wasting 2.5-12 seconds trying to wake from a dormant state that doesn't exist before falling back to a full restart. This change: - Removes wakeFromDormant() call and function - Simplifies goDormantOnBackground() to just mark state as not ready - Goes straight to restartArti() on foreground, eliminating the delay Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
65 lines
2.1 KiB
Swift
65 lines
2.1 KiB
Swift
//
|
|
// ChatViewModel+Tor.swift
|
|
// bitchat
|
|
//
|
|
// Tor lifecycle handling for ChatViewModel
|
|
//
|
|
|
|
import Foundation
|
|
import Combine
|
|
import Tor
|
|
|
|
extension ChatViewModel {
|
|
|
|
// MARK: - Tor notifications
|
|
|
|
@objc func handleTorWillStart() {
|
|
Task { @MainActor in
|
|
if !self.torStatusAnnounced && TorManager.shared.torEnforced {
|
|
self.torStatusAnnounced = true
|
|
// Post only in geohash channels (queue if not active)
|
|
self.addGeohashOnlySystemMessage(
|
|
String(localized: "system.tor.starting", comment: "System message when Tor is starting")
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
@objc func handleTorWillRestart() {
|
|
Task { @MainActor in
|
|
self.torRestartPending = true
|
|
// Post only in geohash channels (queue if not active)
|
|
self.addGeohashOnlySystemMessage(
|
|
String(localized: "system.tor.restarting", comment: "System message when Tor is restarting")
|
|
)
|
|
}
|
|
}
|
|
|
|
@objc func handleTorDidBecomeReady() {
|
|
Task { @MainActor in
|
|
// Only announce "restarted" if we actually restarted this session
|
|
if self.torRestartPending {
|
|
// Post only in geohash channels (queue if not active)
|
|
self.addGeohashOnlySystemMessage(
|
|
String(localized: "system.tor.restarted", comment: "System message when Tor has restarted")
|
|
)
|
|
self.torRestartPending = false
|
|
} else if TorManager.shared.torEnforced && !self.torInitialReadyAnnounced {
|
|
// Initial start completed
|
|
self.addGeohashOnlySystemMessage(
|
|
String(localized: "system.tor.started", comment: "System message when Tor has started")
|
|
)
|
|
self.torInitialReadyAnnounced = true
|
|
}
|
|
}
|
|
}
|
|
|
|
@objc func handleTorPreferenceChanged(_ notification: Notification) {
|
|
Task { @MainActor in
|
|
self.torStatusAnnounced = false
|
|
self.torInitialReadyAnnounced = false
|
|
self.torRestartPending = false
|
|
}
|
|
}
|
|
}
|