|
|
|
//
|
|
|
|
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
|
|
|
|
@interface OWSUnreadIndicator : NSObject
|
|
|
|
|
|
|
|
@property (nonatomic, readonly) BOOL hasMoreUnseenMessages;
|
|
|
|
|
|
|
|
@property (nonatomic, readonly) NSUInteger missingUnseenSafetyNumberChangeCount;
|
|
|
|
|
|
|
|
// The sortId of the oldest unseen message.
|
|
|
|
//
|
|
|
|
// Once we enter messages view, we mark all messages read, so we need
|
|
|
|
// a snapshot of what the first unread message was when we entered the
|
|
|
|
// view so that we can call ensureDynamicInteractionsForThread:...
|
|
|
|
// repeatedly. The unread indicator should continue to show up until
|
|
|
|
// it has been cleared, at which point hideUnreadMessagesIndicator is
|
|
|
|
// YES in ensureDynamicInteractionsForThread:...
|
|
|
|
@property (nonatomic, readonly) uint64_t firstUnseenSortId;
|
|
|
|
|
|
|
|
// The index of the unseen indicator, counting from the _end_ of the conversation
|
|
|
|
// history.
|
|
|
|
//
|
|
|
|
// This is used by MessageViewController to increase the
|
|
|
|
// range size of the mappings (the load window of the conversation)
|
|
|
|
// to include the unread indicator.
|
|
|
|
@property (nonatomic, readonly) NSInteger unreadIndicatorPosition;
|
|
|
|
|
|
|
|
- (instancetype)init NS_UNAVAILABLE;
|
|
|
|
|
|
|
|
- (instancetype)initWithFirstUnseenSortId:(uint64_t)firstUnseenSortId
|
|
|
|
hasMoreUnseenMessages:(BOOL)hasMoreUnseenMessages
|
|
|
|
missingUnseenSafetyNumberChangeCount:(NSUInteger)missingUnseenSafetyNumberChangeCount
|
|
|
|
unreadIndicatorPosition:(NSInteger)unreadIndicatorPosition NS_DESIGNATED_INITIALIZER;
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
NS_ASSUME_NONNULL_END
|