Merge remote-tracking branch 'oxen/master' into unstable

pull/3044/head
Audric Ackermann 4 months ago
commit f402a14ab8

@ -2,7 +2,7 @@
"name": "session-desktop",
"productName": "Session",
"description": "Private messaging from your desktop",
"version": "1.11.8",
"version": "1.12.0",
"license": "GPL-3.0",
"author": {
"name": "Oxen Labs",

@ -187,6 +187,7 @@ export const TimerNotification = (props: PropsForExpirationTimer) => {
const textToRender = useTextToRender(props);
const isGroupOrCommunity = useSelectedIsGroupOrCommunity();
const isGroupV2 = useSelectedIsGroupV2();
// renderOff is true when the update is put to off, or when we have a legacy group control message (as they are not expiring at all)
const renderOffIcon = props.disabled || (isGroupOrCommunity && !isGroupV2);
if (!textToRender || textToRender.length === 0) {

@ -13,7 +13,7 @@ import {
useSelectedConversationKey,
useSelectedExpireTimer,
useSelectedIsGroupOrCommunity,
useSelectedWeAreAdmin
useSelectedWeAreAdmin,
} from '../../../../../state/selectors/selectedConversation';
import { ReleasedFeatures } from '../../../../../util/releaseFeature';
import { Flex } from '../../../../basic/Flex';

@ -882,15 +882,23 @@ export class ConversationModel extends Backbone.Model<ConversationAttributes> {
expirationMode = 'off';
expireTimer = 0;
}
const shouldAddExpireUpdateMsgPrivate = this.isPrivate() && !fromConfigMessage;
const isLegacyGroup = this.isClosedGroup() && !PubKey.isClosedGroupV3(this.id);
/**
* it's ugly, but we want to add a message for legacy groups only when
* - not coming from a config message
* - effectively changes the setting
* - ignores a off setting for a legacy group (as we can get a setting from restored from configMessage, and a newgroup can still be in the swarm when linking a device
*/
const shouldAddExpireUpdateMsgGroup =
isLegacyGroup &&
!fromConfigMessage &&
(expirationMode !== this.get('expirationMode') || expireTimer !== this.get('expireTimer')) &&
expirationMode !== 'off';
const shouldAddExpireUpdateMessage =
(this.isPrivate() && !fromConfigMessage) ||
(this.isClosedGroup() &&
!PubKey.isClosedGroupV3(this.id) &&
!fromConfigMessage &&
expirationMode !== this.get('expirationMode') &&
expireTimer !== this.get('expireTimer') &&
expirationMode !== 'off' &&
expireTimer !== 0);
shouldAddExpireUpdateMsgPrivate || shouldAddExpireUpdateMsgGroup;
// When we add a disappearing messages notification to the conversation, we want it
// to be above the message that initiated that change, hence the subtraction.

@ -71,11 +71,6 @@ export const REACT_LIMIT = 6;
export const MAX_USERNAME_BYTES = 64;
export const FEATURE_RELEASE_TIMESTAMPS = {
// TODO update to agreed value between platforms for `disappearing_messages`
DISAPPEARING_MESSAGES_V2: 1706778000000, // unix 01/02/2024 09:00
// TODO DO NOT MERGE Remove after QA
// NOTE for testing purposes only
// DISAPPEARING_MESSAGES_V2: 1677488400000, // unix 27/02/2023 09:00
DISAPPEARING_MESSAGES_V2: 1710284400000, // 13/03/2024 10:00 Melbourne time
USER_CONFIG: 1690761600000, // Monday July 31st at 10am Melbourne time
};

@ -1,4 +1,5 @@
import { SignalService } from '../../../../protobuf';
import { TTL_DEFAULT } from '../../../constants';
import { PubKey } from '../../../types';
import { StringUtils } from '../../../utils';
import { DataMessage } from '../DataMessage';
@ -60,4 +61,11 @@ export class ExpirationTimerUpdateMessage extends DataMessage {
return data;
}
public ttl(): number {
if (this.groupId) {
return TTL_DEFAULT.CONTENT_MESSAGE;
}
return super.ttl();
}
}

@ -100,10 +100,10 @@ async function checkIsUserConfigFeatureReleased() {
}
async function checkIsDisappearMessageV2FeatureReleased() {
return true;
// ((await checkIsFeatureReleased('disappearing_messages')) ||
// !!process.env.MULTI?.toLocaleLowerCase().includes('disappear_v2') // FIXME to remove after QA
// );
return (
(await checkIsFeatureReleased('disappearing_messages')) ||
!!process.env.MULTI?.toLocaleLowerCase().includes('disappear_v2')
); // FIXME to remove after QA
}
function isUserConfigFeatureReleasedCached(): boolean {
@ -112,11 +112,10 @@ function isUserConfigFeatureReleasedCached(): boolean {
// NOTE Make sure to call checkIsDisappearMessageV2FeatureReleased at least once and then use this. It's mostly used in components that are rendered where we don't want to do async calls
function isDisappearMessageV2FeatureReleasedCached(): boolean {
return true;
// return (
// !!isDisappearingMessageFeatureReleased ||
// !!process.env.MULTI?.toLocaleLowerCase().includes('disappear_v2') // FIXME to remove after QA
// );
return (
!!isDisappearingMessageFeatureReleased ||
!!process.env.MULTI?.toLocaleLowerCase().includes('disappear_v2') // FIXME to remove after QA
);
}
export const ReleasedFeatures = {

Loading…
Cancel
Save