Signal-iOS/Signal/src/ViewControllers/ThreadSettings/ConversationInternalViewController.swift
2021-11-02 14:26:04 -03:00

112 lines
4.7 KiB
Swift

//
// Copyright (c) 2021 Open Whisper Systems. All rights reserved.
//
import Foundation
@objc
public class ConversationInternalViewController: OWSTableViewController2 {
private let thread: TSThread
init(thread: TSThread) {
self.thread = thread
super.init()
}
// MARK: -
public override func viewDidLoad() {
super.viewDidLoad()
title = "Internal"
updateTableContents()
}
private func updateTableContents() {
AssertIsOnMainThread()
let contents = OWSTableContents()
let section = OWSTableSection()
let thread = self.thread
self.databaseStorage.read { transaction in
let isThreadInProfileWhitelist = Self.profileManager.isThread(inProfileWhitelist: thread,
transaction: transaction)
section.add(.label(withText: String(format: "Whitelisted: %@",
isThreadInProfileWhitelist ? "Yes" : "No")))
if let contactThread = thread as? TSContactThread {
let address = contactThread.contactAddress
section.add(.copyableItem(label: "UUID",
value: address.uuid?.uuidString,
accessibilityIdentifier: "uuid"))
section.add(.copyableItem(label: "Phone Number",
value: address.phoneNumber,
accessibilityIdentifier: "phoneNumber"))
let profileKey = profileManager.profileKeyData(for: address, transaction: transaction)
section.add(.copyableItem(label: "Profile Key",
value: profileKey?.hexadecimalString,
accessibilityIdentifier: "profile_key"))
let identityKey = identityManager.recipientIdentity(for: address,
transaction: transaction)?.identityKey
section.add(.copyableItem(label: "Identity Key",
value: identityKey?.hexadecimalString,
accessibilityIdentifier: "identity_key"))
var capabilities = [String]()
if GroupManager.doesUserHaveGroupsV2Capability(address: address,
transaction: transaction) {
capabilities.append("gv2")
}
if GroupManager.doesUserHaveGroupsV2MigrationCapability(address: address,
transaction: transaction) {
capabilities.append("migration")
}
if GroupManager.doesUserHaveAnnouncementOnlyGroupsCapability(address: address,
transaction: transaction) {
capabilities.append("announcementGroup")
}
if GroupManager.doesUserHaveSenderKeyCapability(address: address,
transaction: transaction) {
capabilities.append("senderKey")
}
section.add(.label(withText: String(format: "Capabilities: %@",
capabilities.joined(separator: ", "))))
let arePaymentsEnabled = paymentsHelper.arePaymentsEnabled(for: address,
transaction: transaction)
section.add(.label(withText: String(format: "Payments Enabled: %@",
arePaymentsEnabled ? "Yes" : "No")))
} else if let groupThread = thread as? TSGroupThread {
section.add(.copyableItem(label: "Group id",
value: groupThread.groupId.hexadecimalString,
accessibilityIdentifier: "group_id"))
} else {
owsFailDebug("Invalid thread.")
}
section.add(.copyableItem(label: "thread.uniqueId",
value: thread.uniqueId,
accessibilityIdentifier: "thread.uniqueId"))
}
contents.addSection(section)
self.contents = contents
}
// MARK: - Helpers
public override func themeDidChange() {
super.themeDidChange()
updateTableContents()
}
}