diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.kt b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.kt index 68d3cf0e75..50b3495b66 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/MiscellaneousValues.kt @@ -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() diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.kt index 07b2576f8c..b699e8b26d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.kt @@ -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, diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt index 595f21be9e..7c3c226b5c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt @@ -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) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/MessageNotifier.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/MessageNotifier.java index 60fd42f9ec..edce4fce20 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/MessageNotifier.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/MessageNotifier.java @@ -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); diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java index 87ad2a2f02..c3b1577708 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/OptimizedMessageNotifier.java @@ -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(() -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/DefaultMessageNotifier.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/DefaultMessageNotifier.kt index 5d8acb2f28..1594730e64 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/DefaultMessageNotifier.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/DefaultMessageNotifier.kt @@ -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 {