Skip to content

Commit 0989952

Browse files
authored
Merge pull request #543 from session-foundation/dev
Release 2.14.2
2 parents 5236470 + ba184ac commit 0989952

File tree

69 files changed

+2944
-3278
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+2944
-3278
lines changed

.drone.jsonnet

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ local clean_up_old_test_sims_on_commit_trigger = {
8080
'echo "Explicitly running unit tests on \'App_Store_Release\' configuration to ensure optimisation behaviour is consistent"',
8181
'echo "If tests fail inconsistently from local builds this is likely the difference"',
8282
'echo ""',
83-
'NSUnbufferedIO=YES set -o pipefail && xcodebuild test -project Session.xcodeproj -scheme Session -derivedDataPath ./build/derivedData -resultBundlePath ./build/artifacts/testResults.xcresult -parallelizeTargets -configuration "App_Store_Release" -destination "platform=iOS Simulator,id=$(<./build/artifacts/sim_uuid)" -parallel-testing-enabled NO -test-timeouts-enabled YES -maximum-test-execution-time-allowance 10 -collect-test-diagnostics never ENABLE_TESTABILITY=YES 2>&1 | xcbeautify --is-ci',
83+
'NSUnbufferedIO=YES xcodebuild test -project Session.xcodeproj -scheme Session -derivedDataPath ./build/derivedData -resultBundlePath ./build/artifacts/testResults.xcresult -parallelizeTargets -configuration "App_Store_Release" -destination "platform=iOS Simulator,id=$(<./build/artifacts/sim_uuid)" -parallel-testing-enabled NO -test-timeouts-enabled YES -maximum-test-execution-time-allowance 10 -collect-test-diagnostics never ENABLE_TESTABILITY=YES 2>&1 | xcbeautify --is-ci',
8484
],
8585
depends_on: [
8686
'Reset SPM Cache if Needed',
@@ -100,12 +100,24 @@ local clean_up_old_test_sims_on_commit_trigger = {
100100
},
101101
},
102102
{
103-
name: 'Unit Test Summary',
103+
name: 'Check for Build/Test Failures',
104104
commands: [
105+
'echo "Checking for build errors or test failures in xcresult bundle..."',
105106
'xcresultparser --output-format cli --failed-tests-only ./build/artifacts/testResults.xcresult'
106107
],
107108
depends_on: ['Build and Run Tests']
108109
},
110+
{
111+
name: 'Log Failed Test Summary',
112+
commands: [
113+
'echo "--- FAILED TESTS ---"',
114+
'xcresultparser --output-format cli --failed-tests-only ./build/artifacts/testResults.xcresult'
115+
],
116+
depends_on: ['Check for Build/Test Failures'],
117+
when: {
118+
status: ['failure'], // Only run this on failure
119+
},
120+
},
109121
{
110122
name: 'Convert xcresult to xml',
111123
commands: [
@@ -146,7 +158,7 @@ local clean_up_old_test_sims_on_commit_trigger = {
146158
name: 'Build',
147159
commands: [
148160
'mkdir build',
149-
'NSUnbufferedIO=YES set -o pipefail && xcodebuild archive -project Session.xcodeproj -scheme Session -derivedDataPath ./build/derivedData -parallelizeTargets -configuration "App_Store_Release" -sdk iphonesimulator -archivePath ./build/Session_sim.xcarchive -destination "generic/platform=iOS Simulator" | xcbeautify --is-ci',
161+
'NSUnbufferedIO=YES && xcodebuild archive -project Session.xcodeproj -scheme Session -derivedDataPath ./build/derivedData -parallelizeTargets -configuration "App_Store_Release" -sdk iphonesimulator -archivePath ./build/Session_sim.xcarchive -destination "generic/platform=iOS Simulator" | xcbeautify --is-ci',
150162
],
151163
depends_on: [
152164
'Reset SPM Cache if Needed',

Session.xcodeproj/project.pbxproj

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@
189189
947D7FE92D51837200E8E413 /* Text+CopyButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 947D7FE62D51837200E8E413 /* Text+CopyButton.swift */; };
190190
9499E6032DDD9BF900091434 /* ExpandableLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9499E6022DDD9BEE00091434 /* ExpandableLabel.swift */; };
191191
9499E68B2DF92F4E00091434 /* ThreadNotificationSettingsViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9499E68A2DF92F3B00091434 /* ThreadNotificationSettingsViewModelSpec.swift */; };
192-
94A6B9DB2DD6BF7C00DB4B44 /* Constants+URLs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A6B9DA2DD6BF6E00DB4B44 /* Constants+URLs.swift */; };
192+
94A6B9DB2DD6BF7C00DB4B44 /* Constants+Apple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A6B9DA2DD6BF6E00DB4B44 /* Constants+Apple.swift */; };
193193
94AAB14B2E1E198200A6FA18 /* Modal+SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94AAB14A2E1E197800A6FA18 /* Modal+SwiftUI.swift */; };
194194
94AAB14D2E1F39B500A6FA18 /* ProCTAModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94AAB14C2E1F39AB00A6FA18 /* ProCTAModal.swift */; };
195195
94AAB14F2E1F6CC100A6FA18 /* SessionProBadge+SwiftUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94AAB14E2E1F6CB300A6FA18 /* SessionProBadge+SwiftUI.swift */; };
@@ -761,6 +761,8 @@
761761
FD6DA9D22D0160F10092085A /* Lucide in Frameworks */ = {isa = PBXBuildFile; productRef = FD6DA9D12D0160F10092085A /* Lucide */; };
762762
FD6DF00B2ACFE40D0084BA4C /* _005_AddSnodeReveivedMessageInfoPrimaryKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD6DF00A2ACFE40D0084BA4C /* _005_AddSnodeReveivedMessageInfoPrimaryKey.swift */; };
763763
FD6E4C8A2A1AEE4700C7C243 /* LegacyUnsubscribeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD6E4C892A1AEE4700C7C243 /* LegacyUnsubscribeRequest.swift */; };
764+
FD6F5B5E2E657A24009A8D01 /* CancellationAwareAsyncStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD6F5B5D2E657A24009A8D01 /* CancellationAwareAsyncStream.swift */; };
765+
FD6F5B602E657A33009A8D01 /* StreamLifecycleManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD6F5B5F2E657A32009A8D01 /* StreamLifecycleManager.swift */; };
764766
FD705A92278D051200F16121 /* ReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD705A91278D051200F16121 /* ReusableView.swift */; };
765767
FD70F25C2DC1F184003729B7 /* _026_MessageDeduplicationTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD70F25B2DC1F176003729B7 /* _026_MessageDeduplicationTable.swift */; };
766768
FD7115EB28C5D78E00B47552 /* ThreadSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD7115EA28C5D78E00B47552 /* ThreadSettingsViewModel.swift */; };
@@ -1158,6 +1160,8 @@
11581160
FDFE75B42ABD46B600655640 /* MockUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD83B9D127D59495005E1583 /* MockUserDefaults.swift */; };
11591161
FDFE75B52ABD46B700655640 /* MockUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD83B9D127D59495005E1583 /* MockUserDefaults.swift */; };
11601162
FDFF9FDF2A787F57005E0628 /* JSONEncoder+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFF9FDE2A787F57005E0628 /* JSONEncoder+Utilities.swift */; };
1163+
FED288F32E4C28CF00C31171 /* AppReviewPromptDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = FED288F22E4C28CF00C31171 /* AppReviewPromptDialog.swift */; };
1164+
FED288F82E4C3BE100C31171 /* AppReviewPromptModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FED288F72E4C3BE100C31171 /* AppReviewPromptModel.swift */; };
11611165
/* End PBXBuildFile section */
11621166

11631167
/* Begin PBXContainerItemProxy section */
@@ -1563,7 +1567,7 @@
15631567
947D7FE62D51837200E8E413 /* Text+CopyButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Text+CopyButton.swift"; sourceTree = "<group>"; };
15641568
9499E6022DDD9BEE00091434 /* ExpandableLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpandableLabel.swift; sourceTree = "<group>"; };
15651569
9499E68A2DF92F3B00091434 /* ThreadNotificationSettingsViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadNotificationSettingsViewModelSpec.swift; sourceTree = "<group>"; };
1566-
94A6B9DA2DD6BF6E00DB4B44 /* Constants+URLs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Constants+URLs.swift"; sourceTree = "<group>"; };
1570+
94A6B9DA2DD6BF6E00DB4B44 /* Constants+Apple.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Constants+Apple.swift"; sourceTree = "<group>"; };
15671571
94AAB14A2E1E197800A6FA18 /* Modal+SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Modal+SwiftUI.swift"; sourceTree = "<group>"; };
15681572
94AAB14C2E1F39AB00A6FA18 /* ProCTAModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProCTAModal.swift; sourceTree = "<group>"; };
15691573
94AAB14E2E1F6CB300A6FA18 /* SessionProBadge+SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SessionProBadge+SwiftUI.swift"; sourceTree = "<group>"; };
@@ -2054,6 +2058,8 @@
20542058
FD6C67232CF6E72900B350A7 /* NoopSessionCallManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoopSessionCallManager.swift; sourceTree = "<group>"; };
20552059
FD6DF00A2ACFE40D0084BA4C /* _005_AddSnodeReveivedMessageInfoPrimaryKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = _005_AddSnodeReveivedMessageInfoPrimaryKey.swift; sourceTree = "<group>"; };
20562060
FD6E4C892A1AEE4700C7C243 /* LegacyUnsubscribeRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyUnsubscribeRequest.swift; sourceTree = "<group>"; };
2061+
FD6F5B5D2E657A24009A8D01 /* CancellationAwareAsyncStream.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CancellationAwareAsyncStream.swift; sourceTree = "<group>"; };
2062+
FD6F5B5F2E657A32009A8D01 /* StreamLifecycleManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StreamLifecycleManager.swift; sourceTree = "<group>"; };
20572063
FD705A91278D051200F16121 /* ReusableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReusableView.swift; sourceTree = "<group>"; };
20582064
FD70F25B2DC1F176003729B7 /* _026_MessageDeduplicationTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = _026_MessageDeduplicationTable.swift; sourceTree = "<group>"; };
20592065
FD7115EA28C5D78E00B47552 /* ThreadSettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadSettingsViewModel.swift; sourceTree = "<group>"; };
@@ -2430,6 +2436,8 @@
24302436
FDFDE129282D056B0098B17F /* MediaZoomAnimationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaZoomAnimationController.swift; sourceTree = "<group>"; };
24312437
FDFE75B02ABD2D2400655640 /* _016_MakeBrokenProfileTimestampsNullable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = _016_MakeBrokenProfileTimestampsNullable.swift; sourceTree = "<group>"; };
24322438
FDFF9FDE2A787F57005E0628 /* JSONEncoder+Utilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSONEncoder+Utilities.swift"; sourceTree = "<group>"; };
2439+
FED288F22E4C28CF00C31171 /* AppReviewPromptDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppReviewPromptDialog.swift; sourceTree = "<group>"; };
2440+
FED288F72E4C3BE100C31171 /* AppReviewPromptModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppReviewPromptModel.swift; sourceTree = "<group>"; };
24332441
/* End PBXFileReference section */
24342442

24352443
/* Begin PBXFrameworksBuildPhase section */
@@ -3300,7 +3308,7 @@
33003308
children = (
33013309
FD37E9C428A1C701003AE748 /* Themes */,
33023310
947AD68F2C8968FF000B2730 /* Constants.swift */,
3303-
94A6B9DA2DD6BF6E00DB4B44 /* Constants+URLs.swift */,
3311+
94A6B9DA2DD6BF6E00DB4B44 /* Constants+Apple.swift */,
33043312
B8BB82BD2394D4CE00BA5194 /* Fonts.swift */,
33053313
FDF848F029406A30007DCAE5 /* Format.swift */,
33063314
FD37E9C228A1C6F3003AE748 /* ThemeManager.swift */,
@@ -3430,6 +3438,7 @@
34303438
C360968E25AD16E8008B62B2 /* Home */ = {
34313439
isa = PBXGroup;
34323440
children = (
3441+
FED288EF2E4C239800C31171 /* App Review */,
34333442
7B8C44C328B49DA900FBE25F /* New Conversation */,
34343443
7B93D06827CF173D00811CB6 /* Message Requests */,
34353444
7BAF54CA27ACCEEC003D12F8 /* GlobalSearch */,
@@ -4181,10 +4190,12 @@
41814190
FDE755042C9BB4ED002A2623 /* Bencode.swift */,
41824191
FDE755032C9BB4ED002A2623 /* BencodeDecoder.swift */,
41834192
FD2272D32C34ECE1004D8A6C /* BencodeEncoder.swift */,
4193+
FD6F5B5D2E657A24009A8D01 /* CancellationAwareAsyncStream.swift */,
41844194
FDB11A5A2DD1900B00BEF49F /* CurrentValueAsyncStream.swift */,
41854195
FD3FAB682AF1ADCA00DC5421 /* FileManager.swift */,
41864196
FD6A38F02C2A66B100762359 /* KeychainStorage.swift */,
41874197
FD78EA032DDEC3C000D55B50 /* MultiTaskManager.swift */,
4198+
FD6F5B5F2E657A32009A8D01 /* StreamLifecycleManager.swift */,
41884199
FD2272E92C351CA7004D8A6C /* Threading.swift */,
41894200
FDAA16752AC28A3B00DDBF77 /* UserDefaultsType.swift */,
41904201
);
@@ -5127,6 +5138,23 @@
51275138
path = Transitions;
51285139
sourceTree = "<group>";
51295140
};
5141+
FED288EF2E4C239800C31171 /* App Review */ = {
5142+
isa = PBXGroup;
5143+
children = (
5144+
FED288F42E4C3B5A00C31171 /* View */,
5145+
FED288F72E4C3BE100C31171 /* AppReviewPromptModel.swift */,
5146+
);
5147+
path = "App Review";
5148+
sourceTree = "<group>";
5149+
};
5150+
FED288F42E4C3B5A00C31171 /* View */ = {
5151+
isa = PBXGroup;
5152+
children = (
5153+
FED288F22E4C28CF00C31171 /* AppReviewPromptDialog.swift */,
5154+
);
5155+
path = View;
5156+
sourceTree = "<group>";
5157+
};
51305158
/* End PBXGroup section */
51315159

51325160
/* Begin PBXHeadersBuildPhase section */
@@ -6131,7 +6159,7 @@
61316159
94AAB14B2E1E198200A6FA18 /* Modal+SwiftUI.swift in Sources */,
61326160
94AAB1532E1F8AE200A6FA18 /* ShineButton.swift in Sources */,
61336161
FD37E9D728A20B5D003AE748 /* UIColor+Utilities.swift in Sources */,
6134-
94A6B9DB2DD6BF7C00DB4B44 /* Constants+URLs.swift in Sources */,
6162+
94A6B9DB2DD6BF7C00DB4B44 /* Constants+Apple.swift in Sources */,
61356163
FD37E9C328A1C6F3003AE748 /* ThemeManager.swift in Sources */,
61366164
FD8A5B0A2DBF246A004C689B /* Constants.swift in Sources */,
61376165
C331FF9A2558FA6B00070591 /* Values.swift in Sources */,
@@ -6412,11 +6440,13 @@
64126440
FD74434A2D07CA9F00862443 /* Codable+Utilities.swift in Sources */,
64136441
FD0559562E026E1B00DC48CE /* ObservingDatabase.swift in Sources */,
64146442
FD74434B2D07CA9F00862443 /* CGFloat+Utilities.swift in Sources */,
6443+
FD6F5B602E657A33009A8D01 /* StreamLifecycleManager.swift in Sources */,
64156444
FD52CB632E13B61700A4DA70 /* ObservableKey.swift in Sources */,
64166445
FD74434C2D07CA9F00862443 /* CGSize+Utilities.swift in Sources */,
64176446
FD74434D2D07CA9F00862443 /* CGPoint+Utilities.swift in Sources */,
64186447
FD74434E2D07CA9F00862443 /* CGRect+Utilities.swift in Sources */,
64196448
FDC289472C881A3800020BC2 /* MutableIdentifiable.swift in Sources */,
6449+
FD6F5B5E2E657A24009A8D01 /* CancellationAwareAsyncStream.swift in Sources */,
64206450
C300A60D2554B31900555489 /* Logging.swift in Sources */,
64216451
FD9004162818B46700ABAAF6 /* JobRunnerError.swift in Sources */,
64226452
FDE7551C2C9BC169002A2623 /* UIBezierPath+Utilities.swift in Sources */,
@@ -6722,6 +6752,7 @@
67226752
FDB3DA842E1CA22400148F8D /* UIActivityViewController+Utilities.swift in Sources */,
67236753
FDCDB8E02811007F00352A0C /* HomeViewModel.swift in Sources */,
67246754
FDE754F82C9BB0B0002A2623 /* UserNotificationConfig.swift in Sources */,
6755+
FED288F32E4C28CF00C31171 /* AppReviewPromptDialog.swift in Sources */,
67256756
7B0EFDF62755CC5400FFAAE7 /* CallMissedTipsModal.swift in Sources */,
67266757
C374EEF425DB31D40073A857 /* VoiceMessageRecordingView.swift in Sources */,
67276758
7B1581E6271FD2A100848B49 /* VideoPreviewVC.swift in Sources */,
@@ -6917,6 +6948,7 @@
69176948
B8EB20F02640F7F000773E52 /* OpenGroupInvitationView.swift in Sources */,
69186949
C328254025CA55880062D0A7 /* ContextMenuVC.swift in Sources */,
69196950
9409433E2C7EB81800D9D2E0 /* WebRTCSession+Constants.swift in Sources */,
6951+
FED288F82E4C3BE100C31171 /* AppReviewPromptModel.swift in Sources */,
69206952
FDE754B12C9B96B4002A2623 /* TurnServerInfo.swift in Sources */,
69216953
7BD687D12A5D0D1200D8E455 /* MessageInfoScreen.swift in Sources */,
69226954
B8269D2925C7A4B400488AB4 /* InputView.swift in Sources */,
@@ -8156,7 +8188,7 @@
81568188
CODE_SIGN_IDENTITY = "iPhone Developer";
81578189
COMPILE_LIB_SESSION = "";
81588190
COPY_PHASE_STRIP = NO;
8159-
CURRENT_PROJECT_VERSION = 625;
8191+
CURRENT_PROJECT_VERSION = 626;
81608192
ENABLE_BITCODE = NO;
81618193
ENABLE_STRICT_OBJC_MSGSEND = YES;
81628194
ENABLE_TESTABILITY = YES;
@@ -8196,7 +8228,7 @@
81968228
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
81978229
LIB_SESSION_SOURCE_DIR = "${SRCROOT}/../LibSession-Util";
81988230
LOCALIZED_STRING_SWIFTUI_SUPPORT = NO;
8199-
MARKETING_VERSION = 2.14.1;
8231+
MARKETING_VERSION = 2.14.2;
82008232
ONLY_ACTIVE_ARCH = YES;
82018233
OTHER_CFLAGS = "-Werror=protocol";
82028234
OTHER_SWIFT_FLAGS = "-D DEBUG -Xfrontend -warn-long-expression-type-checking=100";
@@ -8237,7 +8269,7 @@
82378269
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
82388270
CODE_SIGN_IDENTITY = "iPhone Distribution";
82398271
COMPILE_LIB_SESSION = "";
8240-
CURRENT_PROJECT_VERSION = 625;
8272+
CURRENT_PROJECT_VERSION = 626;
82418273
ENABLE_BITCODE = NO;
82428274
ENABLE_MODULE_VERIFIER = YES;
82438275
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -8272,7 +8304,7 @@
82728304
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
82738305
LIB_SESSION_SOURCE_DIR = "${SRCROOT}/../LibSession-Util";
82748306
LOCALIZED_STRING_SWIFTUI_SUPPORT = NO;
8275-
MARKETING_VERSION = 2.14.1;
8307+
MARKETING_VERSION = 2.14.2;
82768308
ONLY_ACTIVE_ARCH = NO;
82778309
OTHER_CFLAGS = (
82788310
"-DNS_BLOCK_ASSERTIONS=1",
@@ -8718,7 +8750,7 @@
87188750
CODE_SIGN_IDENTITY = "iPhone Developer";
87198751
COMPILE_LIB_SESSION = YES;
87208752
COPY_PHASE_STRIP = NO;
8721-
CURRENT_PROJECT_VERSION = 625;
8753+
CURRENT_PROJECT_VERSION = 626;
87228754
ENABLE_BITCODE = NO;
87238755
ENABLE_STRICT_OBJC_MSGSEND = YES;
87248756
ENABLE_TESTABILITY = YES;
@@ -8757,7 +8789,7 @@
87578789
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
87588790
LIB_SESSION_SOURCE_DIR = "${SRCROOT}/../LibSession-Util";
87598791
LOCALIZED_STRING_SWIFTUI_SUPPORT = NO;
8760-
MARKETING_VERSION = 2.14.1;
8792+
MARKETING_VERSION = 2.14.2;
87618793
ONLY_ACTIVE_ARCH = YES;
87628794
OTHER_CFLAGS = (
87638795
"-fobjc-arc-exceptions",
@@ -9305,7 +9337,7 @@
93059337
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
93069338
CODE_SIGN_IDENTITY = "iPhone Distribution";
93079339
COMPILE_LIB_SESSION = YES;
9308-
CURRENT_PROJECT_VERSION = 625;
9340+
CURRENT_PROJECT_VERSION = 626;
93099341
ENABLE_BITCODE = NO;
93109342
ENABLE_STRICT_OBJC_MSGSEND = YES;
93119343
GCC_NO_COMMON_BLOCKS = YES;
@@ -9338,7 +9370,7 @@
93389370
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
93399371
LIB_SESSION_SOURCE_DIR = "${SRCROOT}/../LibSession-Util";
93409372
LOCALIZED_STRING_SWIFTUI_SUPPORT = NO;
9341-
MARKETING_VERSION = 2.14.1;
9373+
MARKETING_VERSION = 2.14.2;
93429374
ONLY_ACTIVE_ARCH = NO;
93439375
OTHER_CFLAGS = (
93449376
"-DNS_BLOCK_ASSERTIONS=1",

Session/Conversations/Context Menu/ContextMenuVC+ActionView.swift

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,10 @@ extension ContextMenuVC {
119119
}
120120

121121
private func setUpSubtitle() {
122-
guard
123-
let expiresInSeconds = self.action.expirationInfo?.expiresInSeconds,
124-
let expiresStartedAtMs = self.action.expirationInfo?.expiresStartedAtMs
122+
guard
123+
let expirationInfo = self.action.expirationInfo,
124+
let expiresStartedAtMs = expirationInfo.expiresStartedAtMs,
125+
let expiresInSeconds = expirationInfo.expiresInSeconds
125126
else {
126127
subtitleLabel.isHidden = true
127128
subtitleWidthConstraint.isActive = false
@@ -130,10 +131,12 @@ extension ContextMenuVC {
130131

131132
subtitleLabel.isHidden = false
132133
subtitleWidthConstraint.isActive = true
134+
133135
// To prevent a negative timer
134-
let timeToExpireInSeconds: TimeInterval = max(0, (expiresStartedAtMs + expiresInSeconds * 1000 - dependencies[cache: .snodeAPI].currentOffsetTimestampMs()) / 1000)
136+
let timeToExpireInSeconds = max(0, (expiresStartedAtMs + expiresInSeconds * 1000 - dependencies[cache: .snodeAPI].currentOffsetTimestampMs()) / 1000)
137+
135138
subtitleLabel.text = "disappearingMessagesCountdownBigMobile"
136-
.put(key: "time_large", value: timeToExpireInSeconds.formatted(format: .twoUnits))
139+
.put(key: "time_large", value: timeToExpireInSeconds.formatted(format: .twoUnits, minimumUnit: .second))
137140
.localized()
138141

139142
timer = Timer.scheduledTimerOnMainThread(withTimeInterval: 1, repeats: true, using: dependencies, block: { [weak self, dependencies] _ in

0 commit comments

Comments
 (0)