Don’t check for tooltip after every load
This commit is contained in:
parent
0b08f5b8da
commit
f9bc032c5b
@ -95,6 +95,7 @@ public class CVViewState: NSObject {
|
||||
|
||||
public var groupCallTooltip: GroupCallTooltip?
|
||||
public var groupCallTooltipTailReferenceView: UIView?
|
||||
public var didAlreadyShowGroupCallTooltipEnoughTimes: Bool
|
||||
public var hasIncrementedGroupCallTooltipShownCount = false
|
||||
public var groupCallBarButtonItem: UIBarButtonItem?
|
||||
|
||||
@ -151,9 +152,14 @@ public class CVViewState: NSObject {
|
||||
|
||||
// MARK: -
|
||||
|
||||
public required init(threadUniqueId: String, conversationStyle: ConversationStyle) {
|
||||
public required init(
|
||||
threadUniqueId: String,
|
||||
conversationStyle: ConversationStyle,
|
||||
didAlreadyShowGroupCallTooltipEnoughTimes: Bool
|
||||
) {
|
||||
self.threadUniqueId = threadUniqueId
|
||||
self.conversationStyle = conversationStyle
|
||||
self.didAlreadyShowGroupCallTooltipEnoughTimes = didAlreadyShowGroupCallTooltipEnoughTimes
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -117,7 +117,7 @@ public extension ConversationViewController {
|
||||
guard canCall, isGroupConversation else {
|
||||
return
|
||||
}
|
||||
if preferences.wasGroupCallTooltipShown() {
|
||||
if viewState.didAlreadyShowGroupCallTooltipEnoughTimes {
|
||||
return
|
||||
}
|
||||
|
||||
@ -126,7 +126,10 @@ public extension ConversationViewController {
|
||||
// as the navbar items change.
|
||||
if !hasIncrementedGroupCallTooltipShownCount {
|
||||
preferences.incrementGroupCallTooltipShownCount()
|
||||
self.hasIncrementedGroupCallTooltipShownCount = true
|
||||
viewState.didAlreadyShowGroupCallTooltipEnoughTimes = databaseStorage.read { tx in
|
||||
preferences.wasGroupCallTooltipShown(with: tx)
|
||||
}
|
||||
hasIncrementedGroupCallTooltipShownCount = true
|
||||
}
|
||||
|
||||
if conversationViewModel.groupCallInProgress {
|
||||
|
||||
@ -92,12 +92,14 @@ public final class ConversationViewController: OWSViewController {
|
||||
|
||||
let conversationStyle = ConversationViewController.buildInitialConversationStyle(for: thread, tx: tx)
|
||||
let conversationViewModel = ConversationViewModel.load(for: thread, tx: tx)
|
||||
let didAlreadyShowGroupCallTooltipEnoughTimes = preferences.wasGroupCallTooltipShown(with: tx)
|
||||
|
||||
return ConversationViewController(
|
||||
threadViewModel: threadViewModel,
|
||||
conversationViewModel: conversationViewModel,
|
||||
action: action,
|
||||
conversationStyle: conversationStyle,
|
||||
didAlreadyShowGroupCallTooltipEnoughTimes: didAlreadyShowGroupCallTooltipEnoughTimes,
|
||||
loadAroundMessageId: loadAroundMessageId,
|
||||
scrollToMessageId: scrollToMessageId,
|
||||
oldestUnreadMessage: oldestUnreadMessage
|
||||
@ -109,6 +111,7 @@ public final class ConversationViewController: OWSViewController {
|
||||
conversationViewModel: ConversationViewModel,
|
||||
action: ConversationViewAction,
|
||||
conversationStyle: ConversationStyle,
|
||||
didAlreadyShowGroupCallTooltipEnoughTimes: Bool,
|
||||
loadAroundMessageId: String?,
|
||||
scrollToMessageId: String?,
|
||||
oldestUnreadMessage: TSInteraction?
|
||||
@ -117,7 +120,8 @@ public final class ConversationViewController: OWSViewController {
|
||||
|
||||
self.viewState = CVViewState(
|
||||
threadUniqueId: threadViewModel.threadRecord.uniqueId,
|
||||
conversationStyle: conversationStyle
|
||||
conversationStyle: conversationStyle,
|
||||
didAlreadyShowGroupCallTooltipEnoughTimes: didAlreadyShowGroupCallTooltipEnoughTimes
|
||||
)
|
||||
self.loadCoordinator = CVLoadCoordinator(
|
||||
viewState: viewState,
|
||||
|
||||
@ -78,7 +78,7 @@ extern NSString *const OWSPreferencesCallLoggingDidChangeNotification;
|
||||
- (BOOL)wasViewOnceTooltipShown;
|
||||
- (void)setWasViewOnceTooltipShown;
|
||||
|
||||
- (BOOL)wasGroupCallTooltipShown;
|
||||
- (BOOL)wasGroupCallTooltipShownWithTransaction:(SDSAnyReadTransaction *)tx;
|
||||
- (void)incrementGroupCallTooltipShownCount;
|
||||
- (void)setWasGroupCallTooltipShown;
|
||||
|
||||
|
||||
@ -350,9 +350,9 @@ NSString *const OWSPreferencesKeyDeviceScale = @"OWSPreferencesKeyDeviceScale";
|
||||
[self setBool:YES forKey:OWSPreferencesKeyWasViewOnceTooltipShown];
|
||||
}
|
||||
|
||||
- (BOOL)wasGroupCallTooltipShown
|
||||
- (BOOL)wasGroupCallTooltipShownWithTransaction:(SDSAnyReadTransaction *)tx
|
||||
{
|
||||
return [self boolForKey:OWSPreferencesKeyWasGroupCallTooltipShown defaultValue:NO];
|
||||
return [self.keyValueStore getBool:OWSPreferencesKeyWasGroupCallTooltipShown defaultValue:NO transaction:tx];
|
||||
}
|
||||
|
||||
- (void)incrementGroupCallTooltipShownCount
|
||||
|
||||
Loading…
Reference in New Issue
Block a user