mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-27 11:45:21 +00:00
UI: show Tor system messages only in geohash channels (not mesh)
- Gate "starting tor..." and readiness/timeout messages to geohash view - Add helper addGeohashOnlySystemMessage() to avoid posting to mesh timeline - Persist system messages in geohash backing store via addPublicSystemMessage()
This commit is contained in:
@@ -1064,7 +1064,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.3.3;
|
MARKETING_VERSION = 1.3.4;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.bitchat.ShareExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.bitchat.ShareExtension;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
@@ -1095,7 +1095,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.3.3;
|
MARKETING_VERSION = 1.3.4;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.bitchat;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.bitchat;
|
||||||
PRODUCT_NAME = bitchat;
|
PRODUCT_NAME = bitchat;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -1150,7 +1150,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.3.3;
|
MARKETING_VERSION = 1.3.4;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.bitchat;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.bitchat;
|
||||||
PRODUCT_NAME = bitchat;
|
PRODUCT_NAME = bitchat;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -1364,7 +1364,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.3.3;
|
MARKETING_VERSION = 1.3.4;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = chat.bitchat.ShareExtension;
|
PRODUCT_BUNDLE_IDENTIFIER = chat.bitchat.ShareExtension;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
|
|||||||
@@ -530,23 +530,23 @@ class ChatViewModel: ObservableObject, BitchatDelegate {
|
|||||||
// Start mesh service immediately
|
// Start mesh service immediately
|
||||||
meshService.startServices()
|
meshService.startServices()
|
||||||
|
|
||||||
// Announce Tor status to the chat timeline as early as possible
|
// Announce Tor status (geohash-only; do not show in mesh chat)
|
||||||
if TorManager.shared.torEnforced && !torStatusAnnounced {
|
if TorManager.shared.torEnforced && !torStatusAnnounced {
|
||||||
torStatusAnnounced = true
|
torStatusAnnounced = true
|
||||||
addPublicSystemMessage("starting tor...")
|
addGeohashOnlySystemMessage("starting tor...")
|
||||||
// Suppress incremental Tor progress messages; only show initial start and readiness.
|
// Suppress incremental Tor progress messages; only show initial start and readiness.
|
||||||
torProgressCancellable = nil
|
torProgressCancellable = nil
|
||||||
Task.detached {
|
Task.detached {
|
||||||
let ready = await TorManager.shared.awaitReady()
|
let ready = await TorManager.shared.awaitReady()
|
||||||
Task { @MainActor [weak self] in
|
Task { @MainActor [weak self] in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
if ready { self.addPublicSystemMessage("tor started. routing all chats via tor for privacy.") }
|
if ready { self.addGeohashOnlySystemMessage("tor started. routing all chats via tor for privacy.") }
|
||||||
else { self.addPublicSystemMessage("still waiting for tor to start...") }
|
else { self.addGeohashOnlySystemMessage("still waiting for tor to start...") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if !TorManager.shared.torEnforced && !torStatusAnnounced {
|
} else if !TorManager.shared.torEnforced && !torStatusAnnounced {
|
||||||
torStatusAnnounced = true
|
torStatusAnnounced = true
|
||||||
addPublicSystemMessage("development build: tor bypass enabled.")
|
addGeohashOnlySystemMessage("development build: tor bypass enabled.")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize Nostr services
|
// Initialize Nostr services
|
||||||
@@ -4919,6 +4919,14 @@ class ChatViewModel: ObservableObject, BitchatDelegate {
|
|||||||
}
|
}
|
||||||
objectWillChange.send()
|
objectWillChange.send()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Add a system message only if viewing a geohash location channel (never post to mesh).
|
||||||
|
@MainActor
|
||||||
|
func addGeohashOnlySystemMessage(_ content: String) {
|
||||||
|
if case .location = activeChannel {
|
||||||
|
addPublicSystemMessage(content)
|
||||||
|
}
|
||||||
|
}
|
||||||
// Send a public message without adding a local user echo.
|
// Send a public message without adding a local user echo.
|
||||||
// Used for emotes where we want a local system-style confirmation instead.
|
// Used for emotes where we want a local system-style confirmation instead.
|
||||||
@MainActor
|
@MainActor
|
||||||
|
|||||||
Reference in New Issue
Block a user