65 lines
2.6 KiB
Swift
65 lines
2.6 KiB
Swift
//
|
|
// Copyright 2017 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
import SignalServiceKit
|
|
import SignalUI
|
|
|
|
#if USE_DEBUG_UI
|
|
|
|
class DebugUIProfile: DebugUIPage, Dependencies {
|
|
|
|
let name = "Profile"
|
|
|
|
func section(thread aThread: TSThread?) -> OWSTableSection? {
|
|
let sectionItems = [
|
|
OWSTableItem(title: "Clear Profile Whitelist") {
|
|
Self.profileManagerImpl.clearProfileWhitelist()
|
|
},
|
|
OWSTableItem(title: "Log Profile Whitelist") {
|
|
Self.profileManagerImpl.logProfileWhitelist()
|
|
},
|
|
OWSTableItem(title: "Log Profile Key") {
|
|
let localProfileKey = Self.profileManagerImpl.localProfileKey()
|
|
Logger.info("localProfileKey: \(localProfileKey.keyData.hexadecimalString)")
|
|
},
|
|
OWSTableItem(title: "Regenerate Profile/ProfileKey") {
|
|
Self.profileManagerImpl.debug_regenerateLocalProfileWithSneakyTransaction()
|
|
},
|
|
OWSTableItem(title: "Send Profile Key Message") { [weak self] in
|
|
guard let self else { return }
|
|
guard let aThread = aThread else {
|
|
owsFailDebug("Missing thread.")
|
|
return
|
|
}
|
|
|
|
let message = Self.databaseStorage.read { OWSProfileKeyMessage(thread: aThread, transaction: $0) }
|
|
Task {
|
|
do {
|
|
let preparedMessage = PreparedOutgoingMessage.preprepared(transientMessageWithoutAttachments: message)
|
|
try await self.messageSender.sendMessage(preparedMessage)
|
|
Logger.info("Successfully sent profile key message to thread: \(String(describing: aThread))")
|
|
} catch {
|
|
owsFailDebug("Failed to send profile key message to thread: \(String(describing: aThread))")
|
|
}
|
|
}
|
|
},
|
|
OWSTableItem(title: "Re-upload Profile") {
|
|
Self.profileManagerImpl.reuploadLocalProfile(authedAccount: .implicit())
|
|
},
|
|
OWSTableItem(title: "Fetch Local Profile") {
|
|
Task {
|
|
let profileFetcher = SSKEnvironment.shared.profileFetcherRef
|
|
let localAci = DependenciesBridge.shared.tsAccountManager.localIdentifiersWithMaybeSneakyTransaction!.aci
|
|
_ = try? await profileFetcher.fetchProfile(for: localAci)
|
|
}
|
|
}
|
|
].compactMap { $0 }
|
|
|
|
return OWSTableSection(title: "Profile", items: sectionItems)
|
|
}
|
|
}
|
|
|
|
#endif
|