fix: outdated banner showing and updating on messages properly

pull/1313/head
0x330a 6 months ago
parent 1ada072884
commit 106305f118
No known key found for this signature in database
GPG Key ID: 267811D6E6A2698C

@ -537,6 +537,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
updatePlaceholder() updatePlaceholder()
viewModel.recipient?.let { viewModel.recipient?.let {
maybeUpdateToolbar(recipient = it) maybeUpdateToolbar(recipient = it)
setUpOutdatedClientBanner()
} }
} }
@ -697,12 +698,14 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
private fun setUpOutdatedClientBanner() { private fun setUpOutdatedClientBanner() {
val legacyRecipient = viewModel.legacyBannerRecipient(this) val legacyRecipient = viewModel.legacyBannerRecipient(this)
if (ExpirationConfiguration.isNewConfigEnabled &&
legacyRecipient != null val shouldShowLegacy = ExpirationConfiguration.isNewConfigEnabled &&
) { legacyRecipient != null
binding?.outdatedBanner?.isVisible = shouldShowLegacy
if (shouldShowLegacy) {
binding?.outdatedBannerTextView?.text = binding?.outdatedBannerTextView?.text =
resources.getString(R.string.activity_conversation_outdated_client_banner_text, legacyRecipient.name) resources.getString(R.string.activity_conversation_outdated_client_banner_text, legacyRecipient!!.name)
binding?.outdatedBanner?.isVisible = true
} }
} }

@ -30,7 +30,6 @@ import org.session.libsession.messaging.jobs.MessageSendJob
import org.session.libsession.messaging.jobs.RetrieveProfileAvatarJob import org.session.libsession.messaging.jobs.RetrieveProfileAvatarJob
import org.session.libsession.messaging.messages.Destination import org.session.libsession.messaging.messages.Destination
import org.session.libsession.messaging.messages.ExpirationConfiguration import org.session.libsession.messaging.messages.ExpirationConfiguration
import org.session.libsession.messaging.messages.ExpirationConfiguration.Companion.isNewConfigEnabled
import org.session.libsession.messaging.messages.Message import org.session.libsession.messaging.messages.Message
import org.session.libsession.messaging.messages.control.ConfigurationMessage import org.session.libsession.messaging.messages.control.ConfigurationMessage
import org.session.libsession.messaging.messages.control.MessageRequestResponse import org.session.libsession.messaging.messages.control.MessageRequestResponse
@ -1733,6 +1732,11 @@ open class Storage(
if (currentConfig != null && currentConfig.updatedTimestampMs >= config.updatedTimestampMs) return if (currentConfig != null && currentConfig.updatedTimestampMs >= config.updatedTimestampMs) return
val expiryMode = config.expiryMode val expiryMode = config.expiryMode
if (expiryMode == ExpiryMode.NONE) {
// Clear the legacy recipients on updating config to be none
DatabaseComponent.get(context).lokiAPIDatabase().setLastLegacySenderAddress(recipient.address.serialize(), null)
}
if (recipient.isClosedGroupRecipient) { if (recipient.isClosedGroupRecipient) {
val userGroups = configFactory.userGroups ?: return val userGroups = configFactory.userGroups ?: return
val groupPublicKey = GroupUtil.addressToGroupSessionId(recipient.address) val groupPublicKey = GroupUtil.addressToGroupSessionId(recipient.address)

@ -335,6 +335,17 @@ fun MessageReceiver.handleVisibleMessage(
if (userPublicKey != messageSender && !isUserBlindedSender) { if (userPublicKey != messageSender && !isUserBlindedSender) {
storage.setBlocksCommunityMessageRequests(recipient, message.blocksMessageRequests) storage.setBlocksCommunityMessageRequests(recipient, message.blocksMessageRequests)
} }
// update the disappearing / legacy banner for the sender
val disappearingState = when {
proto.dataMessage.expireTimer > 0 && !proto.hasExpirationType() -> Recipient.DisappearingState.LEGACY
else -> Recipient.DisappearingState.UPDATED
}
storage.updateDisappearingState(
messageSender,
threadID,
disappearingState
)
} }
// Parse quote if needed // Parse quote if needed
var quoteModel: QuoteModel? = null var quoteModel: QuoteModel? = null

Loading…
Cancel
Save