бейдж упоминаний в чат-листе, прямая навигация по @mention, тап на аватарку → профиль, RequestChats на UIKit

This commit is contained in:
2026-04-12 21:40:32 +05:00
parent 86a400b543
commit 30f333ef90
77 changed files with 6346 additions and 1362 deletions

View File

@@ -16,6 +16,11 @@
853F29A02F4B63D20092AD05 /* P256K in Frameworks */ = {isa = PBXBuildFile; productRef = 853F29A12F4B63D20092AD05 /* P256K */; };
85E887F72F6DC9460032774C /* GRDB in Frameworks */ = {isa = PBXBuildFile; productRef = D1DB00022F8C00010092AD05 /* GRDB */; };
A1B2C3D4E5F60718293A4B5C /* DeliveryReliabilityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D4E5F60718293A4B5D /* DeliveryReliabilityTests.swift */; };
A8D200012F9000010092AD05 /* VoiceRecordingParityMathTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8D200112F9000010092AD05 /* VoiceRecordingParityMathTests.swift */; };
A8D200022F9000010092AD05 /* VoiceRecordingParityCheckerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8D200122F9000010092AD05 /* VoiceRecordingParityCheckerTests.swift */; };
A8D200032F9000010092AD05 /* RosettaUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8D200132F9000010092AD05 /* RosettaUITests.swift */; };
A8D200042F9000010092AD05 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 272B862BE4D99E7DD751CC3E /* Foundation.framework */; };
B1C2D3E4F506172839405162 /* SlidingWindowTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1C2D3E4F506172839405163 /* SlidingWindowTests.swift */; };
B7F1C2D34A5E67890ABCDEF1 /* CryptoParityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9A1B2C3D4E5F60718293A4B /* CryptoParityTests.swift */; };
C8E2D3F45B6A78901BCDEF12 /* MessageDecodeHardeningTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF1B2C3D4E5F60718293A4B /* MessageDecodeHardeningTests.swift */; };
CC5AD9236E3B3BA95A0C29EC /* DBTestSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D3AF08B754B66DE17AF486D /* DBTestSupport.swift */; };
@@ -109,6 +114,11 @@
93685A4F330DCD1B63EF121F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A182B0EDE5C68E7C6F1FB6D1 /* RosettaNotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = RosettaNotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; };
A1B2C3D4E5F60718293A4B5D /* DeliveryReliabilityTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DeliveryReliabilityTests.swift; sourceTree = "<group>"; };
A8D200112F9000010092AD05 /* VoiceRecordingParityMathTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = VoiceRecordingParityMathTests.swift; sourceTree = "<group>"; };
A8D200122F9000010092AD05 /* VoiceRecordingParityCheckerTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = VoiceRecordingParityCheckerTests.swift; sourceTree = "<group>"; };
A8D200132F9000010092AD05 /* RosettaUITests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RosettaUITests.swift; sourceTree = "<group>"; };
A8D200142F9000010092AD05 /* RosettaUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RosettaUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
B1C2D3E4F506172839405163 /* SlidingWindowTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SlidingWindowTests.swift; sourceTree = "<group>"; };
C9FC5C4F7E26FAFEC47C1D51 /* BehaviorParityFixtureTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BehaviorParityFixtureTests.swift; sourceTree = "<group>"; };
D9A1B2C3D4E5F60718293A4B /* CryptoParityTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CryptoParityTests.swift; sourceTree = "<group>"; };
DBAA4AD95B61886B5A22EF0D /* MigrationHarnessTests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MigrationHarnessTests.swift; sourceTree = "<group>"; };
@@ -154,6 +164,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
A8D200322F9000010092AD05 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A8D200042F9000010092AD05 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B2C595701A2879A2FD49DDEF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -188,6 +206,9 @@
F0A1B2C3D4E5F60718293A42 /* PushNotificationPacketTests.swift */,
7F4769EEC8ABADB3AA98D3A5 /* SchemaParityTests.swift */,
2B3C4D5E6F708192A3B4C5D6 /* SearchParityTests.swift */,
A8D200112F9000010092AD05 /* VoiceRecordingParityMathTests.swift */,
A8D200122F9000010092AD05 /* VoiceRecordingParityCheckerTests.swift */,
B1C2D3E4F506172839405163 /* SlidingWindowTests.swift */,
);
path = RosettaTests;
sourceTree = "<group>";
@@ -208,6 +229,7 @@
95676C1A4D239B1FF9E73782 /* Frameworks */,
BA35C0165A0371B32DD8B4C0 /* RosettaNotificationService */,
0D5BD0581AA976925F688CDA /* RosettaTests */,
A8D200212F9000010092AD05 /* RosettaUITests */,
LA000000C2F8D22220092AD05 /* RosettaLiveActivityWidget */,
);
sourceTree = "<group>";
@@ -219,6 +241,7 @@
A182B0EDE5C68E7C6F1FB6D1 /* RosettaNotificationService.appex */,
LA00000022F8D22220092AD05 /* RosettaLiveActivityWidget.appex */,
75BA8A97FE297E450BB1452E /* RosettaTests.xctest */,
A8D200142F9000010092AD05 /* RosettaUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -232,6 +255,14 @@
name = Frameworks;
sourceTree = "<group>";
};
A8D200212F9000010092AD05 /* RosettaUITests */ = {
isa = PBXGroup;
children = (
A8D200132F9000010092AD05 /* RosettaUITests.swift */,
);
path = RosettaUITests;
sourceTree = "<group>";
};
BA35C0165A0371B32DD8B4C0 /* RosettaNotificationService */ = {
isa = PBXGroup;
children = (
@@ -304,6 +335,24 @@
productReference = 853F29622F4B50410092AD05 /* Rosetta.app */;
productType = "com.apple.product-type.application";
};
A8D200412F9000010092AD05 /* RosettaUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = A8D200712F9000010092AD05 /* Build configuration list for PBXNativeTarget "RosettaUITests" */;
buildPhases = (
A8D200312F9000010092AD05 /* Sources */,
A8D200322F9000010092AD05 /* Frameworks */,
A8D200332F9000010092AD05 /* Resources */,
);
buildRules = (
);
dependencies = (
A8D200512F9000010092AD05 /* PBXTargetDependency */,
);
name = RosettaUITests;
productName = RosettaUITests;
productReference = A8D200142F9000010092AD05 /* RosettaUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
E47730762E9823BA2D02A197 /* RosettaNotificationService */ = {
isa = PBXNativeTarget;
buildConfigurationList = B5D2E60ADEB8AE2E8F7615C6 /* Build configuration list for PBXNativeTarget "RosettaNotificationService" */;
@@ -351,6 +400,9 @@
853F29612F4B50410092AD05 = {
CreatedOnToolsVersion = 26.2;
};
A8D200412F9000010092AD05 = {
CreatedOnToolsVersion = 26.2;
};
E47730762E9823BA2D02A197 = {
CreatedOnToolsVersion = 26.2;
};
@@ -383,6 +435,7 @@
E47730762E9823BA2D02A197 /* RosettaNotificationService */,
LA00000012F8D22220092AD05 /* RosettaLiveActivityWidget */,
219188CF4FCBF8E8CF11BEC2 /* RosettaTests */,
A8D200412F9000010092AD05 /* RosettaUITests */,
);
};
/* End PBXProject section */
@@ -402,6 +455,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
A8D200332F9000010092AD05 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
F9F9B9BDE87DB35631992F35 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -443,6 +503,9 @@
F0B1C2D3E4F5061728394A42 /* PushNotificationPacketTests.swift in Sources */,
D60B2E657D691F256B5B7FD4 /* SchemaParityTests.swift in Sources */,
4D5E6F708192A3B4C5D6E7F8 /* SearchParityTests.swift in Sources */,
A8D200012F9000010092AD05 /* VoiceRecordingParityMathTests.swift in Sources */,
A8D200022F9000010092AD05 /* VoiceRecordingParityCheckerTests.swift in Sources */,
B1C2D3E4F506172839405162 /* SlidingWindowTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -454,6 +517,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
A8D200312F9000010092AD05 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A8D200032F9000010092AD05 /* RosettaUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
LA00000032F8D22220092AD05 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -478,6 +549,12 @@
target = 853F29612F4B50410092AD05 /* Rosetta */;
targetProxy = D1E9D598009C8306B116CA87 /* PBXContainerItemProxy */;
};
A8D200512F9000010092AD05 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = Rosetta;
target = 853F29612F4B50410092AD05 /* Rosetta */;
targetProxy = D1E9D598009C8306B116CA87 /* PBXContainerItemProxy */;
};
LA000000A2F8D22220092AD05 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = LA00000012F8D22220092AD05 /* RosettaLiveActivityWidget */;
@@ -759,6 +836,37 @@
};
name = Debug;
};
A8D200612F9000010092AD05 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = QN8Z263QGX;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
PRODUCT_BUNDLE_IDENTIFIER = com.rosetta.devUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TEST_TARGET_NAME = Rosetta;
};
name = Debug;
};
A8D200622F9000010092AD05 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = QN8Z263QGX;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
PRODUCT_BUNDLE_IDENTIFIER = com.rosetta.devUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
TEST_TARGET_NAME = Rosetta;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
C19929D9466573F31997B2C0 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -861,6 +969,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
A8D200712F9000010092AD05 /* Build configuration list for PBXNativeTarget "RosettaUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
A8D200612F9000010092AD05 /* Debug */,
A8D200622F9000010092AD05 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
B5D2E60ADEB8AE2E8F7615C6 /* Build configuration list for PBXNativeTarget "RosettaNotificationService" */ = {
isa = XCConfigurationList;
buildConfigurations = (

View File

@@ -12,9 +12,14 @@
<key>RosettaLiveActivityWidget.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
<integer>3</integer>
</dict>
<key>RosettaNotificationService.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>RosettaUITests.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>2</integer>