mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-05-14 12:10:36 +01:00
Align sync message tracking with iOS.
This commit is contained in:
committed by
Greyson Parrelli
parent
ce294dbc0b
commit
d05338cee0
@@ -50,6 +50,7 @@ class MiscellaneousValues internal constructor(store: KeyValueStore) : SignalSto
|
||||
private const val COMPLETED_COLLAPSED_EVENTS_MIGRATION = "misc.completed_collapsed_events_migration"
|
||||
private const val CAPTCHA_LAST_VIEWED_AT = "misc.captcha_last_viewed_at"
|
||||
private const val CALLING_ASSETS_VERSION = "misc.calling_assets_version"
|
||||
private const val LAST_SYNC_MESSAGE_SEEN_TIME_MS = "misc.last_sync_message_seen_time"
|
||||
}
|
||||
|
||||
public override fun onFirstEverAppLaunch() {
|
||||
@@ -105,6 +106,8 @@ class MiscellaneousValues internal constructor(store: KeyValueStore) : SignalSto
|
||||
|
||||
var preferredMainActivityAnchorIndex: Int by integerValue(PREFERRED_MAIN_ACTIVITY_ANCHOR_INDEX, -1)
|
||||
|
||||
var lastSyncMessageSeenTimeMs: Long by longValue(LAST_SYNC_MESSAGE_SEEN_TIME_MS, 0L)
|
||||
|
||||
fun lockChangeNumber() {
|
||||
putBoolean(CHANGE_NUMBER_LOCK, true)
|
||||
ChangeNumberConstraintObserver.onChange()
|
||||
|
||||
@@ -470,6 +470,7 @@ open class MessageContentProcessor(private val context: Context) {
|
||||
|
||||
content.syncMessage != null -> {
|
||||
SignalStore.account.isMultiDevice = true
|
||||
SignalStore.misc.lastSyncMessageSeenTimeMs = System.currentTimeMillis()
|
||||
|
||||
SyncMessageProcessor.process(
|
||||
context,
|
||||
|
||||
@@ -285,8 +285,6 @@ object SyncMessageProcessor {
|
||||
log(envelope.clientTimestamp!!, "Got a sent transcript while in reCAPTCHA mode. Assuming we're good to message again.")
|
||||
RateLimitUtil.retryAllRateLimitedMessages(context)
|
||||
}
|
||||
|
||||
AppDependencies.messageNotifier.setLastDesktopActivityTimestamp(sent.timestamp!!)
|
||||
} catch (e: MmsException) {
|
||||
throw StorageFailedException(e, metadata.sourceServiceId.toString(), metadata.sourceDeviceId)
|
||||
}
|
||||
@@ -1013,7 +1011,6 @@ object SyncMessageProcessor {
|
||||
AppDependencies
|
||||
.messageNotifier
|
||||
.apply {
|
||||
setLastDesktopActivityTimestamp(envelopeTimestamp)
|
||||
cancelDelayedNotifications()
|
||||
updateNotification(context)
|
||||
}
|
||||
@@ -1047,7 +1044,6 @@ object SyncMessageProcessor {
|
||||
SignalDatabase.messages.setOutgoingGiftsRevealed(toMarkViewed)
|
||||
|
||||
AppDependencies.messageNotifier.apply {
|
||||
setLastDesktopActivityTimestamp(envelopeTimestamp)
|
||||
cancelDelayedNotifications()
|
||||
updateNotification(context)
|
||||
}
|
||||
@@ -1076,7 +1072,6 @@ object SyncMessageProcessor {
|
||||
}
|
||||
|
||||
AppDependencies.messageNotifier.apply {
|
||||
setLastDesktopActivityTimestamp(envelopeTimestamp)
|
||||
cancelDelayedNotifications()
|
||||
updateNotification(context)
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ public interface MessageNotifier {
|
||||
void clearVisibleThread(@NonNull ConversationId conversationId);
|
||||
void setVisibleBubbleThread(@Nullable ConversationId conversationId);
|
||||
void clearVisibleBubbleThread();
|
||||
void setLastDesktopActivityTimestamp(long timestamp);
|
||||
void notifyMessageDeliveryFailed(@NonNull Context context, @NonNull Recipient recipient, @NonNull ConversationId conversationId);
|
||||
void notifyStoryDeliveryFailed(@NonNull Context context, @NonNull Recipient recipient, @NonNull ConversationId conversationId);
|
||||
void notifyProofRequired(@NonNull Context context, @NonNull Recipient recipient, @NonNull ConversationId conversationId);
|
||||
|
||||
-5
@@ -67,11 +67,6 @@ public class OptimizedMessageNotifier implements MessageNotifier {
|
||||
getNotifier().clearVisibleBubbleThread();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLastDesktopActivityTimestamp(long timestamp) {
|
||||
getNotifier().setLastDesktopActivityTimestamp(timestamp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyMessageDeliveryFailed(@NonNull Context context, @NonNull Recipient recipient, @NonNull ConversationId conversationId) {
|
||||
SignalDatabase.runPostSuccessfulTransaction(() -> {
|
||||
|
||||
+1
-7
@@ -49,8 +49,6 @@ class DefaultMessageNotifier(context: Application) : MessageNotifier {
|
||||
|
||||
@Volatile private var visibleBubbleThread: ConversationId? = null
|
||||
|
||||
@Volatile private var lastDesktopActivityTimestamp: Long = -1
|
||||
|
||||
@Volatile private var lastAudibleNotification: Long = -1
|
||||
|
||||
@Volatile private var lastScheduledReminder: Long = 0
|
||||
@@ -95,10 +93,6 @@ class DefaultMessageNotifier(context: Application) : MessageNotifier {
|
||||
setVisibleBubbleThread(null)
|
||||
}
|
||||
|
||||
override fun setLastDesktopActivityTimestamp(timestamp: Long) {
|
||||
lastDesktopActivityTimestamp = timestamp
|
||||
}
|
||||
|
||||
override fun notifyMessageDeliveryFailed(context: Context, recipient: Recipient, conversationId: ConversationId) {
|
||||
NotificationFactory.notifyMessageDeliveryFailed(context, recipient, conversationId, visibleThread.get(), visibleBubbleThread)
|
||||
}
|
||||
@@ -122,7 +116,7 @@ class DefaultMessageNotifier(context: Application) : MessageNotifier {
|
||||
|
||||
@WorkerThread
|
||||
override fun updateNotification(context: Context, conversationId: ConversationId) {
|
||||
if (System.currentTimeMillis() - lastDesktopActivityTimestamp < DESKTOP_ACTIVITY_PERIOD) {
|
||||
if (System.currentTimeMillis() - SignalStore.misc.lastSyncMessageSeenTimeMs < DESKTOP_ACTIVITY_PERIOD) {
|
||||
Log.i(TAG, "Scheduling delayed notification...")
|
||||
executor.enqueue(context, conversationId)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user