Skip to content

Commit 55eedec

Browse files
authored
Merge pull request #1078 from DimensionDev/ios/2025070601
0.4.0
2 parents 8d00b32 + e009619 commit 55eedec

Some content is hidden

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

45 files changed

+1869
-2929
lines changed

iosApp/iosApp.xcodeproj/project.pbxproj

Lines changed: 19 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,8 @@
2323
06B851552B6B926D00DFA075 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 06B851542B6B926D00DFA075 /* Localizable.xcstrings */; };
2424
640236062DF6B62200C0D558 /* SwiftUIIntrospect in Frameworks */ = {isa = PBXBuildFile; productRef = 640236052DF6B62200C0D558 /* SwiftUIIntrospect */; };
2525
6404FB1E2DE45EB700D0A053 /* EmojiText in Frameworks */ = {isa = PBXBuildFile; productRef = 6404FB1D2DE45EB700D0A053 /* EmojiText */; };
26-
641DA51E2DF80F54008FD9BF /* MarkdownParser in Frameworks */ = {isa = PBXBuildFile; productRef = 641DA51D2DF80F54008FD9BF /* MarkdownParser */; };
27-
641DA5202DF80F54008FD9BF /* MarkdownView in Frameworks */ = {isa = PBXBuildFile; productRef = 641DA51F2DF80F54008FD9BF /* MarkdownView */; };
2826
642DED2D2DBF6965006B944C /* FontAwesomeSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 642DED2C2DBF6965006B944C /* FontAwesomeSwiftUI */; };
27+
6447DE922E192773005E08AE /* WaterfallGrid in Frameworks */ = {isa = PBXBuildFile; productRef = 6447DE912E192773005E08AE /* WaterfallGrid */; };
2928
644C84F82D535D0B00E92D0D /* JXPagingView in Frameworks */ = {isa = PBXBuildFile; productRef = 644C84F72D535D0B00E92D0D /* JXPagingView */; };
3029
64541A902DA3CE5A001208C7 /* Tiercel in Frameworks */ = {isa = PBXBuildFile; productRef = 64541A8F2DA3CE5A001208C7 /* Tiercel */; };
3130
645CC8672DC9FEF600B8CBF6 /* WishKit in Frameworks */ = {isa = PBXBuildFile; productRef = 645CC8662DC9FEF600B8CBF6 /* WishKit */; };
@@ -76,9 +75,6 @@
7675
6423385A2DF07E900022CB96 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = {
7776
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
7877
membershipExceptions = (
79-
Page/Compose/Timeline/TimelineStatus/CommonTimelineStatusComponent.bak,
80-
Page/Home/View/SwiftUI/TimelineViewSwiftUI/TimelineViewSwiftUI_bak.swift.bak,
81-
Page/Home/View/SwiftUI/TimelineViewSwiftUI/TimelineViewSwiftUI.bak,
8278
Page/Home/View/UIKit/HomeTabController.swift.bak,
8379
Page/Home/View/UIKit/HomeTabScreen.swift.bak,
8480
);
@@ -91,9 +87,6 @@
9187
isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet;
9288
buildPhase = 7555FF77242A565900829871 /* Sources */;
9389
membershipExceptions = (
94-
Page/Compose/Timeline/TimelineStatus/CommonTimelineStatusComponent.bak,
95-
Page/Home/View/SwiftUI/TimelineViewSwiftUI/TimelineViewSwiftUI_bak.swift.bak,
96-
Page/Home/View/SwiftUI/TimelineViewSwiftUI/TimelineViewSwiftUI.bak,
9790
Page/Home/View/UIKit/HomeTabController.swift.bak,
9891
Page/Home/View/UIKit/HomeTabScreen.swift.bak,
9992
);
@@ -116,7 +109,6 @@
116109
64541A902DA3CE5A001208C7 /* Tiercel in Frameworks */,
117110
64E877CC2D0842C5003559B9 /* Fuzi in Frameworks */,
118111
646CABC52DAE876C00B9EA6F /* ExyteChat in Frameworks */,
119-
641DA5202DF80F54008FD9BF /* MarkdownView in Frameworks */,
120112
64E208712CF8458A001C64EF /* FLAnimatedImage in Frameworks */,
121113
642DED2D2DBF6965006B944C /* FontAwesomeSwiftUI in Frameworks */,
122114
0690507B2CAE634C007FC957 /* Awesome in Frameworks */,
@@ -133,6 +125,7 @@
133125
64B780542D9D3B7F00955C56 /* TagCloud in Frameworks */,
134126
06244DED2B75F21E00884683 /* AVKit.framework in Frameworks */,
135127
64E2087A2CF84670001C64EF /* Generated in Frameworks */,
128+
6447DE922E192773005E08AE /* WaterfallGrid in Frameworks */,
136129
64BA00252D1AD84D0053F205 /* JXPhotoBrowser in Frameworks */,
137130
6404FB1E2DE45EB700D0A053 /* EmojiText in Frameworks */,
138131
06B8514B2B6B228600DFA075 /* FirebaseAnalytics in Frameworks */,
@@ -145,7 +138,6 @@
145138
64E877C92D0842AA003559B9 /* SwiftSoup in Frameworks */,
146139
64E208772CF84612001C64EF /* JXPhotoBrowser in Frameworks */,
147140
066AD0472B3ACDC1006F28F4 /* DequeModule in Frameworks */,
148-
641DA51E2DF80F54008FD9BF /* MarkdownParser in Frameworks */,
149141
648EE5BD2D8D71EA00A457AA /* SwiftfulRouting in Frameworks */,
150142
);
151143
runOnlyForDeploymentPostprocessing = 0;
@@ -303,8 +295,7 @@
303295
645CC8662DC9FEF600B8CBF6 /* WishKit */,
304296
6404FB1D2DE45EB700D0A053 /* EmojiText */,
305297
640236052DF6B62200C0D558 /* SwiftUIIntrospect */,
306-
641DA51D2DF80F54008FD9BF /* MarkdownParser */,
307-
641DA51F2DF80F54008FD9BF /* MarkdownView */,
298+
6447DE912E192773005E08AE /* WaterfallGrid */,
308299
);
309300
productName = iosApp;
310301
productReference = 7555FF7B242A565900829871 /* Flare.app */;
@@ -363,7 +354,7 @@
363354
645CC8652DC9FEF600B8CBF6 /* XCRemoteSwiftPackageReference "wishkit-ios" */,
364355
6404FB1C2DE45EB700D0A053 /* XCRemoteSwiftPackageReference "EmojiText" */,
365356
640236042DF6B62200C0D558 /* XCRemoteSwiftPackageReference "swiftui-introspect" */,
366-
641DA51C2DF80F53008FD9BF /* XCRemoteSwiftPackageReference "MarkdownView" */,
357+
6447DE902E192773005E08AE /* XCRemoteSwiftPackageReference "WaterfallGrid" */,
367358
);
368359
preferredProjectObjectVersion = 50;
369360
productRefGroup = 7555FF7C242A565900829871 /* Products */;
@@ -605,7 +596,7 @@
605596
CODE_SIGN_IDENTITY = "Apple Development";
606597
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
607598
CODE_SIGN_STYLE = Automatic;
608-
CURRENT_PROJECT_VERSION = 2025062301;
599+
CURRENT_PROJECT_VERSION = 2025070701;
609600
DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\"";
610601
DEVELOPMENT_TEAM = 7LFDZ96332;
611602
ENABLE_PREVIEWS = YES;
@@ -623,7 +614,7 @@
623614
"@executable_path/Frameworks",
624615
);
625616
MACOSX_DEPLOYMENT_TARGET = 15.0;
626-
MARKETING_VERSION = 0.3.1;
617+
MARKETING_VERSION = 0.4.0;
627618
OTHER_LDFLAGS = (
628619
"$(inherited)",
629620
"-lsqlite3",
@@ -653,7 +644,7 @@
653644
CODE_SIGN_IDENTITY = "Apple Development";
654645
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
655646
CODE_SIGN_STYLE = Automatic;
656-
CURRENT_PROJECT_VERSION = 2025062301;
647+
CURRENT_PROJECT_VERSION = 2025070701;
657648
DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\"";
658649
DEVELOPMENT_TEAM = 7LFDZ96332;
659650
ENABLE_PREVIEWS = YES;
@@ -671,7 +662,7 @@
671662
"@executable_path/Frameworks",
672663
);
673664
MACOSX_DEPLOYMENT_TARGET = 15.0;
674-
MARKETING_VERSION = 0.3.1;
665+
MARKETING_VERSION = 0.4.0;
675666
OTHER_LDFLAGS = (
676667
"$(inherited)",
677668
"-lsqlite3",
@@ -779,20 +770,20 @@
779770
version = 4.2.1;
780771
};
781772
};
782-
641DA51C2DF80F53008FD9BF /* XCRemoteSwiftPackageReference "MarkdownView" */ = {
773+
642DED2B2DBF6965006B944C /* XCRemoteSwiftPackageReference "FontAwesomeSwiftUI" */ = {
783774
isa = XCRemoteSwiftPackageReference;
784-
repositoryURL = "https://github.com/Lakr233/MarkdownView";
775+
repositoryURL = "https://github.com/onmyway133/FontAwesomeSwiftUI";
785776
requirement = {
786777
kind = upToNextMajorVersion;
787-
minimumVersion = 2.0.9;
778+
minimumVersion = 1.0.5;
788779
};
789780
};
790-
642DED2B2DBF6965006B944C /* XCRemoteSwiftPackageReference "FontAwesomeSwiftUI" */ = {
781+
6447DE902E192773005E08AE /* XCRemoteSwiftPackageReference "WaterfallGrid" */ = {
791782
isa = XCRemoteSwiftPackageReference;
792-
repositoryURL = "https://github.com/onmyway133/FontAwesomeSwiftUI";
783+
repositoryURL = "https://github.com/paololeonardi/WaterfallGrid.git";
793784
requirement = {
794785
kind = upToNextMajorVersion;
795-
minimumVersion = 1.0.5;
786+
minimumVersion = 1.1.0;
796787
};
797788
};
798789
644C84F62D535D0B00E92D0D /* XCRemoteSwiftPackageReference "JXPagingView" */ = {
@@ -987,21 +978,16 @@
987978
package = 6404FB1C2DE45EB700D0A053 /* XCRemoteSwiftPackageReference "EmojiText" */;
988979
productName = EmojiText;
989980
};
990-
641DA51D2DF80F54008FD9BF /* MarkdownParser */ = {
991-
isa = XCSwiftPackageProductDependency;
992-
package = 641DA51C2DF80F53008FD9BF /* XCRemoteSwiftPackageReference "MarkdownView" */;
993-
productName = MarkdownParser;
994-
};
995-
641DA51F2DF80F54008FD9BF /* MarkdownView */ = {
996-
isa = XCSwiftPackageProductDependency;
997-
package = 641DA51C2DF80F53008FD9BF /* XCRemoteSwiftPackageReference "MarkdownView" */;
998-
productName = MarkdownView;
999-
};
1000981
642DED2C2DBF6965006B944C /* FontAwesomeSwiftUI */ = {
1001982
isa = XCSwiftPackageProductDependency;
1002983
package = 642DED2B2DBF6965006B944C /* XCRemoteSwiftPackageReference "FontAwesomeSwiftUI" */;
1003984
productName = FontAwesomeSwiftUI;
1004985
};
986+
6447DE912E192773005E08AE /* WaterfallGrid */ = {
987+
isa = XCSwiftPackageProductDependency;
988+
package = 6447DE902E192773005E08AE /* XCRemoteSwiftPackageReference "WaterfallGrid" */;
989+
productName = WaterfallGrid;
990+
};
1005991
644C84F72D535D0B00E92D0D /* JXPagingView */ = {
1006992
isa = XCSwiftPackageProductDependency;
1007993
package = 644C84F62D535D0B00E92D0D /* XCRemoteSwiftPackageReference "JXPagingView" */;

iosApp/iosApp/FlareApp.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ struct FlareApp: SwiftUI.App {
3232
_ = DownloadManager.shared
3333

3434
// 🚀 120fps优化配置
35-
FrameRateOptimizer.configureForApp()
35+
// FrameRateOptimizer.configureForApp()
3636
}
3737

3838
var body: some Scene {
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import shared
2+
import SwiftUI
3+
import WaterfallGrid
4+
5+
extension TimelineItem {
6+
func createMicroBlogKey(from item: TimelineItem) -> MicroBlogKey {
7+
let host = extractHostFromPlatformType(item.platformType)
8+
return MicroBlogKey(id: item.id, host: host)
9+
}
10+
11+
func extractHostFromPlatformType(_ platformType: String) -> String {
12+
switch platformType.lowercased() {
13+
case "mastodon":
14+
"mastodon.social"
15+
case "bluesky":
16+
"bsky.app"
17+
case "misskey":
18+
"misskey.io"
19+
case "xqt", "twitter":
20+
"x.com"
21+
case "vvo":
22+
"weibo.com"
23+
default:
24+
"unknown.host"
25+
}
26+
}
27+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import shared
2+
import SwiftUI
3+
import WaterfallGrid
4+
5+
extension User {
6+
/// 从User创建MicroBlogKey
7+
func createMicroBlogKey(from user: User) -> MicroBlogKey {
8+
// User.key已经是String格式的ID,需要推断host
9+
let host = extractHostFromHandle(user.handle)
10+
return MicroBlogKey(id: user.key, host: host)
11+
}
12+
13+
/// 从用户handle提取host信息
14+
func extractHostFromHandle(_ handle: String) -> String {
15+
// handle格式通常是 @username@host 或 @username
16+
if handle.contains("@") {
17+
let components = handle.components(separatedBy: "@")
18+
if components.count >= 3 {
19+
// @username@host 格式
20+
return components[2]
21+
} else if components.count == 2 {
22+
// @username 格式,需要根据其他信息推断
23+
return "mastodon.social" // 默认值
24+
}
25+
}
26+
return "unknown.host"
27+
}
28+
}

iosApp/iosApp/UI/Page/Compose/Text/FlareText.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ public struct FlareText: View {
3939
MarkdownRenderer()
4040
case .flareText:
4141
FlareTextRenderer()
42-
case .textViewMarkdown:
43-
TextViewMarkdownRenderer()
42+
// case .textViewMarkdown:
43+
// TextViewMarkdownRenderer()
4444
case .emojiText:
4545
EmojiTextRenderer()
4646
}
@@ -87,14 +87,14 @@ public struct FlareText: View {
8787
}
8888
}
8989

90-
@ViewBuilder
91-
private func TextViewMarkdownRenderer() -> some View {
92-
TextViewMarkdown(
93-
markdownText: markdownText,
94-
style: style,
95-
fontScale: theme.fontSizeScale
96-
)
97-
}
90+
// @ViewBuilder
91+
// private func TextViewMarkdownRenderer() -> some View {
92+
// TextViewMarkdown(
93+
// markdownText: markdownText,
94+
// style: style,
95+
// fontScale: theme.fontSizeScale
96+
// )
97+
// }
9898

9999
@ViewBuilder
100100
private func EmojiTextRenderer() -> some View {

0 commit comments

Comments
 (0)