Threaded > Bubble

This commit is contained in:
lumaa-dev 2024-09-15 15:15:46 +02:00
parent 49c409ce89
commit aa65d7d4b0
202 changed files with 417 additions and 750 deletions

2
.gitignore vendored
View File

@ -94,4 +94,4 @@ iOSInjectionProject/
Store/
# Secret
Threaded/Secret.plist
Bubble/Secret.plist

View File

@ -165,11 +165,11 @@
B9BF54072B6B6823004B24E7 /* KeychainSwift in Frameworks */ = {isa = PBXBuildFile; productRef = B9BF54062B6B6823004B24E7 /* KeychainSwift */; };
B9C20D0B2B921C78004DC9B3 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9C20D0A2B921C78004DC9B3 /* WidgetKit.framework */; };
B9C20D0D2B921C78004DC9B3 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9C20D0C2B921C78004DC9B3 /* SwiftUI.framework */; };
B9C20D102B921C78004DC9B3 /* ThreadedWidgetsBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C20D0F2B921C78004DC9B3 /* ThreadedWidgetsBundle.swift */; };
B9C20D102B921C78004DC9B3 /* BubbleWidgetsBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C20D0F2B921C78004DC9B3 /* BubbleWidgetsBundle.swift */; };
B9C20D122B921C78004DC9B3 /* FollowCountWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C20D112B921C78004DC9B3 /* FollowCountWidget.swift */; };
B9C20D142B921C78004DC9B3 /* AppIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C20D132B921C78004DC9B3 /* AppIntent.swift */; };
B9C20D162B921C7B004DC9B3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B9C20D152B921C7B004DC9B3 /* Assets.xcassets */; };
B9C20D1A2B921C7B004DC9B3 /* ThreadedWidgetsExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = B9C20D092B921C78004DC9B3 /* ThreadedWidgetsExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
B9C20D1A2B921C7B004DC9B3 /* BubbleWidgetsExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = B9C20D092B921C78004DC9B3 /* BubbleWidgetsExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
B9C20D342B9229EC004DC9B3 /* Client.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB949A2B2EF09A00D81C07 /* Client.swift */; };
B9C20D372B9229EC004DC9B3 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB94A12B2EF24A00D81C07 /* AppInfo.swift */; };
B9C20D3D2B9229EC004DC9B3 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB94872B2E223E00D81C07 /* Emoji.swift */; };
@ -183,13 +183,13 @@
B9D9C6C72B6A590F00C26A41 /* ProfilePicture.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9D9C6C62B6A590F00C26A41 /* ProfilePicture.swift */; };
B9DC69292B78D9A500E625B9 /* SearchResultView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9DC69282B78D9A500E625B9 /* SearchResultView.swift */; };
B9DC692D2B79362700E625B9 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9DC692C2B79362700E625B9 /* StoreKit.framework */; };
B9DC69302B79378400E625B9 /* ThreadedPlus.storekit in Resources */ = {isa = PBXBuildFile; fileRef = B9DC692F2B79378400E625B9 /* ThreadedPlus.storekit */; };
B9DC69302B79378400E625B9 /* BubblePlus.storekit in Resources */ = {isa = PBXBuildFile; fileRef = B9DC692F2B79378400E625B9 /* BubblePlus.storekit */; };
B9EBE8562B47256900FB594D /* PostAttachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9EBE8552B47256900FB594D /* PostAttachment.swift */; };
B9EBE8582B474FD600FB594D /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9EBE8572B474FD600FB594D /* AppDelegate.swift */; };
B9F8FA162B5D3AC30044DAB4 /* SafariView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9F8FA152B5D3AC30044DAB4 /* SafariView.swift */; };
B9FA6E752B82367B00D63E30 /* AttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FA6E742B82367B00D63E30 /* AttachmentView.swift */; };
B9FA6E772B82788A00D63E30 /* AccountRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FA6E762B82788A00D63E30 /* AccountRow.swift */; };
B9FB945B2B2DEECE00D81C07 /* ThreadedApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB945A2B2DEECE00D81C07 /* ThreadedApp.swift */; };
B9FB945B2B2DEECE00D81C07 /* BubbleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB945A2B2DEECE00D81C07 /* BubbleApp.swift */; };
B9FB945D2B2DEECE00D81C07 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB945C2B2DEECE00D81C07 /* ContentView.swift */; };
B9FB94612B2DEECF00D81C07 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B9FB94602B2DEECF00D81C07 /* Assets.xcassets */; };
B9FB94642B2DEECF00D81C07 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B9FB94632B2DEECF00D81C07 /* Preview Assets.xcassets */; };
@ -216,7 +216,7 @@
B9FB94AA2B2F009F00D81C07 /* AuthenticationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9FB94A92B2F009F00D81C07 /* AuthenticationServices.framework */; };
B9FB94AD2B2F009F00D81C07 /* AuthenticationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB94AC2B2F009F00D81C07 /* AuthenticationViewController.swift */; };
B9FB94B02B2F009F00D81C07 /* AuthenticationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B9FB94AE2B2F009F00D81C07 /* AuthenticationViewController.xib */; };
B9FB94B42B2F009F00D81C07 /* ThreadedAuthService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = B9FB94A72B2F009F00D81C07 /* ThreadedAuthService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
B9FB94B42B2F009F00D81C07 /* BubbleAuthService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = B9FB94A72B2F009F00D81C07 /* BubbleAuthService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
B9FB94BC2B2F035500D81C07 /* Tag.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB94BB2B2F035500D81C07 /* Tag.swift */; };
B9FD18982C55108F00A74A71 /* EditProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FD18972C55108F00A74A71 /* EditProfileView.swift */; };
B9FD189A2C57DE9200A74A71 /* IconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FD18992C57DE9200A74A71 /* IconView.swift */; };
@ -256,8 +256,8 @@
dstPath = "";
dstSubfolderSpec = 13;
files = (
B9FB94B42B2F009F00D81C07 /* ThreadedAuthService.appex in Embed Foundation Extensions */,
B9C20D1A2B921C7B004DC9B3 /* ThreadedWidgetsExtension.appex in Embed Foundation Extensions */,
B9FB94B42B2F009F00D81C07 /* BubbleAuthService.appex in Embed Foundation Extensions */,
B9C20D1A2B921C7B004DC9B3 /* BubbleWidgetsExtension.appex in Embed Foundation Extensions */,
);
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
@ -319,16 +319,16 @@
B9BED5152B5D5E6500C9B715 /* PostInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostInteractor.swift; sourceTree = "<group>"; };
B9BED5172B5D649C00C9B715 /* PostMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostMenu.swift; sourceTree = "<group>"; };
B9BED5192B5D662D00C9B715 /* ShareSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareSheetController.swift; sourceTree = "<group>"; };
B9C20D092B921C78004DC9B3 /* ThreadedWidgetsExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ThreadedWidgetsExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
B9C20D092B921C78004DC9B3 /* BubbleWidgetsExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = BubbleWidgetsExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
B9C20D0A2B921C78004DC9B3 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; };
B9C20D0C2B921C78004DC9B3 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; };
B9C20D0F2B921C78004DC9B3 /* ThreadedWidgetsBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadedWidgetsBundle.swift; sourceTree = "<group>"; };
B9C20D0F2B921C78004DC9B3 /* BubbleWidgetsBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BubbleWidgetsBundle.swift; sourceTree = "<group>"; };
B9C20D112B921C78004DC9B3 /* FollowCountWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FollowCountWidget.swift; sourceTree = "<group>"; };
B9C20D132B921C78004DC9B3 /* AppIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppIntent.swift; sourceTree = "<group>"; };
B9C20D152B921C7B004DC9B3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
B9C20D172B921C7B004DC9B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B9C20D582B923CDD004DC9B3 /* ThreadedWidgetsExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ThreadedWidgetsExtension.entitlements; sourceTree = "<group>"; };
B9C20D592B923D53004DC9B3 /* Threaded.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Threaded.entitlements; sourceTree = "<group>"; };
B9C20D582B923CDD004DC9B3 /* BubbleWidgetsExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = BubbleWidgetsExtension.entitlements; sourceTree = "<group>"; };
B9C20D592B923D53004DC9B3 /* Bubble.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Bubble.entitlements; sourceTree = "<group>"; };
B9C7F46B2C387D3B009C36DC /* WarningView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WarningView.swift; sourceTree = "<group>"; };
B9CC45B72B40A2D6001E4FA5 /* AboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutView.swift; sourceTree = "<group>"; };
B9CC45B92B40AA1E001E4FA5 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
@ -340,14 +340,14 @@
B9D9C6C62B6A590F00C26A41 /* ProfilePicture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfilePicture.swift; sourceTree = "<group>"; };
B9DC69282B78D9A500E625B9 /* SearchResultView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultView.swift; sourceTree = "<group>"; };
B9DC692C2B79362700E625B9 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
B9DC692F2B79378400E625B9 /* ThreadedPlus.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = ThreadedPlus.storekit; sourceTree = "<group>"; };
B9DC692F2B79378400E625B9 /* BubblePlus.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = BubblePlus.storekit; sourceTree = "<group>"; };
B9EBE8552B47256900FB594D /* PostAttachment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostAttachment.swift; sourceTree = "<group>"; };
B9EBE8572B474FD600FB594D /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
B9F8FA152B5D3AC30044DAB4 /* SafariView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariView.swift; sourceTree = "<group>"; };
B9FA6E742B82367B00D63E30 /* AttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentView.swift; sourceTree = "<group>"; };
B9FA6E762B82788A00D63E30 /* AccountRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountRow.swift; sourceTree = "<group>"; };
B9FB94572B2DEECE00D81C07 /* Threaded.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Threaded.app; sourceTree = BUILT_PRODUCTS_DIR; };
B9FB945A2B2DEECE00D81C07 /* ThreadedApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreadedApp.swift; sourceTree = "<group>"; };
B9FB94572B2DEECE00D81C07 /* Bubble.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Bubble.app; sourceTree = BUILT_PRODUCTS_DIR; };
B9FB945A2B2DEECE00D81C07 /* BubbleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BubbleApp.swift; sourceTree = "<group>"; };
B9FB945C2B2DEECE00D81C07 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
B9FB94602B2DEECF00D81C07 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
B9FB94632B2DEECF00D81C07 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
@ -371,7 +371,7 @@
B9FB949E2B2EF0F200D81C07 /* MastodonRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MastodonRequest.swift; sourceTree = "<group>"; };
B9FB94A02B2EF23100D81C07 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
B9FB94A12B2EF24A00D81C07 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = "<group>"; };
B9FB94A72B2F009F00D81C07 /* ThreadedAuthService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ThreadedAuthService.appex; sourceTree = BUILT_PRODUCTS_DIR; };
B9FB94A72B2F009F00D81C07 /* BubbleAuthService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = BubbleAuthService.appex; sourceTree = BUILT_PRODUCTS_DIR; };
B9FB94A92B2F009F00D81C07 /* AuthenticationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AuthenticationServices.framework; path = System/Library/Frameworks/AuthenticationServices.framework; sourceTree = SDKROOT; };
B9FB94AC2B2F009F00D81C07 /* AuthenticationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationViewController.swift; sourceTree = "<group>"; };
B9FB94AF2B2F009F00D81C07 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AuthenticationViewController.xib; sourceTree = "<group>"; };
@ -462,11 +462,11 @@
path = Post;
sourceTree = "<group>";
};
B9C20D0E2B921C78004DC9B3 /* ThreadedWidgets */ = {
B9C20D0E2B921C78004DC9B3 /* BubbleWidgets */ = {
isa = PBXGroup;
children = (
B9C20D582B923CDD004DC9B3 /* ThreadedWidgetsExtension.entitlements */,
B9C20D0F2B921C78004DC9B3 /* ThreadedWidgetsBundle.swift */,
B9C20D582B923CDD004DC9B3 /* BubbleWidgetsExtension.entitlements */,
B9C20D0F2B921C78004DC9B3 /* BubbleWidgetsBundle.swift */,
B9C20D112B921C78004DC9B3 /* FollowCountWidget.swift */,
B9B469AF2B9A275F00AD5585 /* FollowGoalWidget.swift */,
B9A80DDD2C67BFF800DE3D88 /* CreatePostWidget.swift */,
@ -475,7 +475,7 @@
B9C20D152B921C7B004DC9B3 /* Assets.xcassets */,
B9C20D172B921C7B004DC9B3 /* Info.plist */,
);
path = ThreadedWidgets;
path = BubbleWidgets;
sourceTree = "<group>";
};
B9D9C6BF2B6A56D500C26A41 /* Notifications */ = {
@ -490,7 +490,7 @@
B9DC692E2B79375B00E625B9 /* Store */ = {
isa = PBXGroup;
children = (
B9DC692F2B79378400E625B9 /* ThreadedPlus.storekit */,
B9DC692F2B79378400E625B9 /* BubblePlus.storekit */,
B95ED2362B87C9550055F5BD /* StoreKitTestCertificate.cer */,
);
path = Store;
@ -500,8 +500,8 @@
isa = PBXGroup;
children = (
B9CC45B92B40AA1E001E4FA5 /* README.md */,
B9FB94592B2DEECE00D81C07 /* Threaded */,
B9C20D0E2B921C78004DC9B3 /* ThreadedWidgets */,
B9FB94592B2DEECE00D81C07 /* Bubble */,
B9C20D0E2B921C78004DC9B3 /* BubbleWidgets */,
B9FB94AB2B2F009F00D81C07 /* AuthService */,
B9FB94A82B2F009F00D81C07 /* Frameworks */,
B97BCE292B3ED2C80044756D /* LICENSE */,
@ -513,20 +513,20 @@
B9FB94582B2DEECE00D81C07 /* Products */ = {
isa = PBXGroup;
children = (
B9FB94572B2DEECE00D81C07 /* Threaded.app */,
B9FB94A72B2F009F00D81C07 /* ThreadedAuthService.appex */,
B9C20D092B921C78004DC9B3 /* ThreadedWidgetsExtension.appex */,
B9FB94572B2DEECE00D81C07 /* Bubble.app */,
B9FB94A72B2F009F00D81C07 /* BubbleAuthService.appex */,
B9C20D092B921C78004DC9B3 /* BubbleWidgetsExtension.appex */,
);
name = Products;
sourceTree = "<group>";
};
B9FB94592B2DEECE00D81C07 /* Threaded */ = {
B9FB94592B2DEECE00D81C07 /* Bubble */ = {
isa = PBXGroup;
children = (
B9C20D592B923D53004DC9B3 /* Threaded.entitlements */,
B9C20D592B923D53004DC9B3 /* Bubble.entitlements */,
B9FB94A02B2EF23100D81C07 /* Info.plist */,
B9029FC12B81259400AA9B68 /* Secret.plist */,
B9FB945A2B2DEECE00D81C07 /* ThreadedApp.swift */,
B9FB945A2B2DEECE00D81C07 /* BubbleApp.swift */,
B9EBE8572B474FD600FB594D /* AppDelegate.swift */,
B9FB946E2B2DF3BB00D81C07 /* Components */,
B9FB946D2B2DF3B800D81C07 /* Views */,
@ -537,7 +537,7 @@
B9FB948F2B2E2B0E00D81C07 /* Localizable.xcstrings */,
B9CFC43A2B4F08C9004CFCB7 /* LaunchStoryboard.storyboard */,
);
path = Threaded;
path = Bubble;
sourceTree = "<group>";
};
B9FB94622B2DEECF00D81C07 /* Preview Content */ = {
@ -672,9 +672,9 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
B9C20D082B921C78004DC9B3 /* ThreadedWidgetsExtension */ = {
B9C20D082B921C78004DC9B3 /* BubbleWidgetsExtension */ = {
isa = PBXNativeTarget;
buildConfigurationList = B9C20D1D2B921C7B004DC9B3 /* Build configuration list for PBXNativeTarget "ThreadedWidgetsExtension" */;
buildConfigurationList = B9C20D1D2B921C7B004DC9B3 /* Build configuration list for PBXNativeTarget "BubbleWidgetsExtension" */;
buildPhases = (
B9C20D052B921C78004DC9B3 /* Sources */,
B9C20D062B921C78004DC9B3 /* Frameworks */,
@ -684,7 +684,7 @@
);
dependencies = (
);
name = ThreadedWidgetsExtension;
name = BubbleWidgetsExtension;
packageProductDependencies = (
B9A80E842C67C7C300DE3D88 /* SwiftSoup */,
B9A80E862C67C7C300DE3D88 /* Nuke */,
@ -698,12 +698,12 @@
B9A80E962C67C7C300DE3D88 /* RevenueCatUI */,
);
productName = ThreadedWidgetsExtension;
productReference = B9C20D092B921C78004DC9B3 /* ThreadedWidgetsExtension.appex */;
productReference = B9C20D092B921C78004DC9B3 /* BubbleWidgetsExtension.appex */;
productType = "com.apple.product-type.app-extension";
};
B9FB94562B2DEECE00D81C07 /* Threaded */ = {
B9FB94562B2DEECE00D81C07 /* Bubble */ = {
isa = PBXNativeTarget;
buildConfigurationList = B9FB94672B2DEECF00D81C07 /* Build configuration list for PBXNativeTarget "Threaded" */;
buildConfigurationList = B9FB94672B2DEECF00D81C07 /* Build configuration list for PBXNativeTarget "Bubble" */;
buildPhases = (
B9FB94532B2DEECE00D81C07 /* Sources */,
B9FB94542B2DEECE00D81C07 /* Frameworks */,
@ -717,7 +717,7 @@
B9FB94B32B2F009F00D81C07 /* PBXTargetDependency */,
B9C20D192B921C7B004DC9B3 /* PBXTargetDependency */,
);
name = Threaded;
name = Bubble;
packageProductDependencies = (
B9FB94832B2E20AF00D81C07 /* SwiftSoup */,
B93B676C2B42C94F000892E9 /* Nuke */,
@ -730,12 +730,12 @@
B95ED2342B8707D60055F5BD /* RevenueCatUI */,
);
productName = Threaded;
productReference = B9FB94572B2DEECE00D81C07 /* Threaded.app */;
productReference = B9FB94572B2DEECE00D81C07 /* Bubble.app */;
productType = "com.apple.product-type.application";
};
B9FB94A62B2F009F00D81C07 /* ThreadedAuthService */ = {
B9FB94A62B2F009F00D81C07 /* BubbleAuthService */ = {
isa = PBXNativeTarget;
buildConfigurationList = B9FB94B52B2F009F00D81C07 /* Build configuration list for PBXNativeTarget "ThreadedAuthService" */;
buildConfigurationList = B9FB94B52B2F009F00D81C07 /* Build configuration list for PBXNativeTarget "BubbleAuthService" */;
buildPhases = (
B9FB94A32B2F009F00D81C07 /* Sources */,
B9FB94A42B2F009F00D81C07 /* Frameworks */,
@ -745,9 +745,9 @@
);
dependencies = (
);
name = ThreadedAuthService;
name = BubbleAuthService;
productName = AuthService;
productReference = B9FB94A72B2F009F00D81C07 /* ThreadedAuthService.appex */;
productReference = B9FB94A72B2F009F00D81C07 /* BubbleAuthService.appex */;
productType = "com.apple.product-type.app-extension";
};
/* End PBXNativeTarget section */
@ -771,7 +771,7 @@
};
};
};
buildConfigurationList = B9FB94522B2DEECE00D81C07 /* Build configuration list for PBXProject "Threaded" */;
buildConfigurationList = B9FB94522B2DEECE00D81C07 /* Build configuration list for PBXProject "Bubble" */;
compatibilityVersion = "Xcode 14.0";
developmentRegion = en;
hasScannedForEncodings = 0;
@ -792,9 +792,9 @@
projectDirPath = "";
projectRoot = "";
targets = (
B9FB94562B2DEECE00D81C07 /* Threaded */,
B9C20D082B921C78004DC9B3 /* ThreadedWidgetsExtension */,
B9FB94A62B2F009F00D81C07 /* ThreadedAuthService */,
B9FB94562B2DEECE00D81C07 /* Bubble */,
B9C20D082B921C78004DC9B3 /* BubbleWidgetsExtension */,
B9FB94A62B2F009F00D81C07 /* BubbleAuthService */,
);
};
/* End PBXProject section */
@ -814,7 +814,7 @@
buildActionMask = 2147483647;
files = (
B97BCE282B3ED2A80044756D /* .gitignore in Resources */,
B9DC69302B79378400E625B9 /* ThreadedPlus.storekit in Resources */,
B9DC69302B79378400E625B9 /* BubblePlus.storekit in Resources */,
B9FB94642B2DEECF00D81C07 /* Preview Assets.xcassets in Resources */,
B9FB94612B2DEECF00D81C07 /* Assets.xcassets in Resources */,
B9029FC22B81259400AA9B68 /* Secret.plist in Resources */,
@ -842,7 +842,7 @@
files = (
B9C20D122B921C78004DC9B3 /* FollowCountWidget.swift in Sources */,
B9A80DDE2C67BFF800DE3D88 /* CreatePostWidget.swift in Sources */,
B9C20D102B921C78004DC9B3 /* ThreadedWidgetsBundle.swift in Sources */,
B9C20D102B921C78004DC9B3 /* BubbleWidgetsBundle.swift in Sources */,
B90DEB1F2C822C2700D06121 /* StatusDraft.swift in Sources */,
B90DEB232C822ED400D06121 /* PostDraftView.swift in Sources */,
B9A80DE02C67C2D000DE3D88 /* Navigator.swift in Sources */,
@ -975,7 +975,7 @@
B94CF7652C8DE9AB00DFFF8F /* PlusNecessaryView.swift in Sources */,
B934EA242BAB5E7F001F4345 /* RestrictedView.swift in Sources */,
B9FB94722B2DF49700D81C07 /* ConnectView.swift in Sources */,
B9FB945B2B2DEECE00D81C07 /* ThreadedApp.swift in Sources */,
B9FB945B2B2DEECE00D81C07 /* BubbleApp.swift in Sources */,
B9FB94862B2E211200D81C07 /* Account+Elms.swift in Sources */,
B9A80DDF2C67C27B00DE3D88 /* AppIntent.swift in Sources */,
B97491E32B6E96700098BC48 /* SymbolWidth.swift in Sources */,
@ -1038,12 +1038,12 @@
/* Begin PBXTargetDependency section */
B9C20D192B921C7B004DC9B3 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = B9C20D082B921C78004DC9B3 /* ThreadedWidgetsExtension */;
target = B9C20D082B921C78004DC9B3 /* BubbleWidgetsExtension */;
targetProxy = B9C20D182B921C7B004DC9B3 /* PBXContainerItemProxy */;
};
B9FB94B32B2F009F00D81C07 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = B9FB94A62B2F009F00D81C07 /* ThreadedAuthService */;
target = B9FB94A62B2F009F00D81C07 /* BubbleAuthService */;
targetProxy = B9FB94B22B2F009F00D81C07 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
@ -1065,13 +1065,13 @@
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = ThreadedWidgets/ThreadedWidgetsExtension.entitlements;
CODE_SIGN_ENTITLEMENTS = BubbleWidgets/BubbleWidgetsExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 702;
DEVELOPMENT_TEAM = HB5P3BML86;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = ThreadedWidgets/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = ThreadedWidgets;
INFOPLIST_FILE = BubbleWidgets/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Bubble;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
LD_RUNPATH_SEARCH_PATHS = (
@ -1100,13 +1100,13 @@
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = ThreadedWidgets/ThreadedWidgetsExtension.entitlements;
CODE_SIGN_ENTITLEMENTS = BubbleWidgets/BubbleWidgetsExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 702;
DEVELOPMENT_TEAM = HB5P3BML86;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = ThreadedWidgets/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = ThreadedWidgets;
INFOPLIST_FILE = BubbleWidgets/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Bubble;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
LD_RUNPATH_SEARCH_PATHS = (
@ -1263,17 +1263,17 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = Threaded/Threaded.entitlements;
CODE_SIGN_ENTITLEMENTS = Bubble/Bubble.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 702;
DEVELOPMENT_ASSET_PATHS = "\"Threaded/Preview Content\"";
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = HB5P3BML86;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Threaded/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Threaded;
INFOPLIST_FILE = Bubble/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Bubble;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Threaded allows you to save images you see in posts";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Bubble allows you to save images you see in posts";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchStoryboard.storyboard;
@ -1305,17 +1305,17 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_ENTITLEMENTS = Threaded/Threaded.entitlements;
CODE_SIGN_ENTITLEMENTS = Bubble/Bubble.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 702;
DEVELOPMENT_ASSET_PATHS = "\"Threaded/Preview Content\"";
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = HB5P3BML86;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = Threaded/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Threaded;
INFOPLIST_FILE = Bubble/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Bubble;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Threaded allows you to save images you see in posts";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Bubble allows you to save images you see in posts";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchStoryboard.storyboard;
@ -1402,7 +1402,7 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
B9C20D1D2B921C7B004DC9B3 /* Build configuration list for PBXNativeTarget "ThreadedWidgetsExtension" */ = {
B9C20D1D2B921C7B004DC9B3 /* Build configuration list for PBXNativeTarget "BubbleWidgetsExtension" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B9C20D1B2B921C7B004DC9B3 /* Debug */,
@ -1411,7 +1411,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B9FB94522B2DEECE00D81C07 /* Build configuration list for PBXProject "Threaded" */ = {
B9FB94522B2DEECE00D81C07 /* Build configuration list for PBXProject "Bubble" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B9FB94652B2DEECF00D81C07 /* Debug */,
@ -1420,7 +1420,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B9FB94672B2DEECF00D81C07 /* Build configuration list for PBXNativeTarget "Threaded" */ = {
B9FB94672B2DEECF00D81C07 /* Build configuration list for PBXNativeTarget "Bubble" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B9FB94682B2DEECF00D81C07 /* Debug */,
@ -1429,7 +1429,7 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B9FB94B52B2F009F00D81C07 /* Build configuration list for PBXNativeTarget "ThreadedAuthService" */ = {
B9FB94B52B2F009F00D81C07 /* Build configuration list for PBXNativeTarget "BubbleAuthService" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B9FB94B62B2F009F00D81C07 /* Debug */,

View File

@ -15,9 +15,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@ -45,13 +45,13 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<StoreKitConfigurationFileReference
identifier = "../../Threaded/Store/ThreadedPlus.storekit">
identifier = "../../Bubble/Store/BubblePlus.storekit">
</StoreKitConfigurationFileReference>
</LaunchAction>
<ProfileAction
@ -65,9 +65,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>

View File

@ -16,9 +16,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94A62B2F009F00D81C07"
BuildableName = "ThreadedAuthService.appex"
BlueprintName = "ThreadedAuthService"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "BubbleAuthService.appex"
BlueprintName = "BubbleAuthService"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
@ -30,9 +30,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@ -61,9 +61,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
@ -80,9 +80,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>

View File

@ -18,7 +18,7 @@
BlueprintIdentifier = "B9B469B62B9A7E6800AD5585"
BuildableName = "Threaded.app"
BlueprintName = "ThreadedWatch Watch App"
ReferencedContainer = "container:Threaded.xcodeproj">
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
@ -30,9 +30,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@ -61,7 +61,7 @@
BlueprintIdentifier = "B9B469B62B9A7E6800AD5585"
BuildableName = "Threaded.app"
BlueprintName = "ThreadedWatch Watch App"
ReferencedContainer = "container:Threaded.xcodeproj">
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<LocationScenarioReference
@ -82,7 +82,7 @@
BlueprintIdentifier = "B9B469B62B9A7E6800AD5585"
BuildableName = "Threaded.app"
BlueprintName = "ThreadedWatch Watch App"
ReferencedContainer = "container:Threaded.xcodeproj">
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<MacroExpansion>
@ -91,7 +91,7 @@
BlueprintIdentifier = "B9B469B62B9A7E6800AD5585"
BuildableName = "Threaded.app"
BlueprintName = "ThreadedWatch Watch App"
ReferencedContainer = "container:Threaded.xcodeproj">
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>

View File

@ -17,9 +17,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9C20D082B921C78004DC9B3"
BuildableName = "ThreadedWidgetsExtension.appex"
BlueprintName = "ThreadedWidgetsExtension"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "BubbleWidgetsExtension.appex"
BlueprintName = "BubbleWidgetsExtension"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
@ -31,9 +31,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@ -63,18 +63,18 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9C20D082B921C78004DC9B3"
BuildableName = "ThreadedWidgetsExtension.appex"
BlueprintName = "ThreadedWidgetsExtension"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "BubbleWidgetsExtension.appex"
BlueprintName = "BubbleWidgetsExtension"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</RemoteRunnable>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</MacroExpansion>
<EnvironmentVariables>
@ -108,9 +108,9 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B9FB94562B2DEECE00D81C07"
BuildableName = "Threaded.app"
BlueprintName = "Threaded"
ReferencedContainer = "container:Threaded.xcodeproj">
BuildableName = "Bubble.app"
BlueprintName = "Bubble"
ReferencedContainer = "container:Bubble.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>

View File

@ -65,7 +65,7 @@ public class AppDelegate: NSObject, UIWindowSceneDelegate, Sendable, UIApplicati
/// This function returns a fake "true" value every time whatever the customer info is
static func hasPlus() -> Bool {
self.premium = false
self.premium = true
return true
}

View File

@ -1,7 +1,7 @@
{
"images" : [
{
"filename" : "AppIcon-White.png",
"filename" : "HeroIcon_white_x1024.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
@ -13,7 +13,7 @@
"value" : "dark"
}
],
"filename" : "AppIcon.png",
"filename" : "HeroIcon_black_x1024.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
@ -25,7 +25,7 @@
"value" : "tinted"
}
],
"filename" : "AppIcon 1.png",
"filename" : "HeroIcon_black_x1024 1.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 KiB

View File

@ -1,7 +1,7 @@
{
"images" : [
{
"filename" : "AppIcon-White.png",
"filename" : "HeroIcon_trans_wh.png",
"idiom" : "universal"
},
{
@ -11,7 +11,7 @@
"value" : "dark"
}
],
"filename" : "AppIcon.png",
"filename" : "HeroIcon_trans_bl.png",
"idiom" : "universal"
}
],

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

View File

@ -1,7 +1,7 @@
{
"images" : [
{
"filename" : "PlusIcon_black.png",
"filename" : "HeroPlus_trans_wh.png",
"idiom" : "universal"
},
{
@ -11,7 +11,7 @@
"value" : "dark"
}
],
"filename" : "PlusIcon_white.png",
"filename" : "HeroPlus_trans_bl.png",
"idiom" : "universal"
}
],

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

View File

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 116 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

View File

@ -5,7 +5,7 @@ import TipKit
import RevenueCat
@main
struct ThreadedApp: App {
struct BubbleApp: App {
init() {
guard let plist = AppDelegate.readSecret() else { fatalError("Missing Secret.plist file") }
@ -18,7 +18,7 @@ struct ThreadedApp: App {
}
}
ThreadedShortcuts.updateAppShortcutParameters() //might not work?
BubbleShortcuts.updateAppShortcutParameters() //might not work?
}
var body: some Scene {
@ -29,7 +29,7 @@ struct ThreadedApp: App {
HapticManager.prepareHaptics()
}
.task {
#if DEBUG
#if targetEnvironment(simulator)
Tips.showAllTipsForTesting()
UserDefaults.standard.set("ABC", forKey: "lastVersion")
#endif

View File

@ -13,7 +13,7 @@ struct PlusNecessaryView: View {
VStack(spacing: 7.5) {
if let feature = lockedFeature {
HStack {
Text("shop.threaded-plus.with")
Text("shop.bubble-plus.with")
.foregroundStyle(Color.black)
.font(.callout.width(.expanded).weight(.bold))
@ -50,11 +50,11 @@ struct PlusNecessaryView: View {
.frame(width: 50, height: 50)
.padding(.vertical)
Text("shop.threaded-plus.required")
Text("shop.bubble-plus.required")
.font(.title2.bold())
.lineLimit(1)
Text("shop.threaded-plus.required.description")
Text("shop.bubble-plus.required.description")
.foregroundStyle(Color.gray)
.font(.callout)
.lineLimit(2, reservesSpace: true)
@ -66,7 +66,7 @@ struct PlusNecessaryView: View {
UniversalNavigator.static.presentedCover = .shop
} label: {
Label {
Text("shop.threaded-plus.learn")
Text("shop.bubble-plus.learn")
} icon: {
Image("HeroPlus")
.resizable()

View File

@ -4,10 +4,10 @@ import Foundation
public enum AppInfo {
public static let scopes = "read write follow push"
public static let scheme = "threadedapp://"
public static let clientName = "ThreadedApp"
public static let scheme = "bubbleapp://"
public static let clientName = "BubbleApp"
public static let defaultServer = "mastodon.social"
public static let website = "https://apps.lumaa.fr/app/threaded"
public static let website = "https://apps.lumaa.fr/app/bubble"
}
extension AppInfo {

View File

@ -10,10 +10,10 @@
<key>CFBundleURLIconFile</key>
<string></string>
<key>CFBundleURLName</key>
<string>threadedapp</string>
<string>bubbleapp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>threadedapp</string>
<string>bubbleapp</string>
</array>
</dict>
</array>

View File

@ -66,13 +66,13 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "About Threaded"
"value" : "About Bubble"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "À propos de Threaded"
"value" : "À propos de Bubble"
}
}
}
@ -82,13 +82,13 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Threaded is a very simple Mastodon client, that is meant to look like the newest social media Threads made by Meta Platforms. It integrates perfectly with your Mastodon account, and matches the Threads vibe, while having Mastodon-only features.\n\nThreaded is a 100% free, made in France using SwiftUI, [open-source](https://github.com/lumaa-dev/ThreadedApp), and doesn't violate [your privacy](https://apps.lumaa.fr/legal/privacy).\n\nThreaded is not related or affiliated to Meta Platforms."
"value" : "Bubble is a very simple Mastodon client, that is meant to look like the newest social media Threads made by Meta Platforms. It integrates perfectly with your Mastodon account, and matches the Threads vibe, while having Mastodon-only features.\n\nBubble is a 100% free, made in France using SwiftUI, [open-source](https://github.com/lumaa-dev/BubbleApp), and doesn't violate [your privacy](https://apps.lumaa.fr/legal/privacy).\n\nBubble is not related or affiliated to Meta Platforms."
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Threaded is a very simple Mastodon client, that is meant to look like the newest social media Threads made by Meta Platforms. It integrates perfectly with your Mastodon account, and matches the Threads vibe, while having Mastodon-only features.\n\nThreaded is a 100% free, made in France using SwiftUI, [open-source](https://github.com/lumaa-dev/ThreadedApp), and doesn't violate [your privacy](https://apps.lumaa.fr/legal/privacy).\n\nThreaded is not related or affiliated to Meta Platforms."
"value" : "Bubble is a very simple Mastodon client, that is meant to look like the newest social media Threads made by Meta Platforms. It integrates perfectly with your Mastodon account, and matches the Threads vibe, while having Mastodon-only features.\n\nBubble is a 100% free, made in France using SwiftUI, [open-source](https://github.com/lumaa-dev/BubbleApp), and doesn't violate [your privacy](https://apps.lumaa.fr/legal/privacy).\n\nBubble is not related or affiliated to Meta Platforms."
}
}
}
@ -98,13 +98,13 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Threaded uses third-party open-source libraries and code:\n- [IceCubesApp](https://github.com/dimillian/IceCubesApp)\n- [SwiftSoup](https://github.com/scinfu/SwiftSoup)\n- [Nuke](https://github.com/kean/Nuke)\n- [EmojiText](https://github.com/divadretlaw/EmojiText)\n- [KeychainSwift](https://github.com/evgenyneu/keychain-swift)\n\nSpecial thanks to:\n- [@damon@social.wedistribute.org](https://social.wedistribute.org/@damon)\n- Beezus\n- Beta testers on TestFlight"
"value" : "Bubble uses third-party open-source libraries and code:\n- [IceCubesApp](https://github.com/dimillian/IceCubesApp)\n- [SwiftSoup](https://github.com/scinfu/SwiftSoup)\n- [Nuke](https://github.com/kean/Nuke)\n- [EmojiText](https://github.com/divadretlaw/EmojiText)\n- [KeychainSwift](https://github.com/evgenyneu/keychain-swift)\n\nSpecial thanks to:\n- [@damon@social.wedistribute.org](https://social.wedistribute.org/@damon)\n- Beezus\n- Beta testers on TestFlight"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Threaded uses third-party open-source libraries and code:\n- [IceCubesApp](https://github.com/dimillian/IceCubesApp)\n- [SwiftSoup](https://github.com/scinfu/SwiftSoup)\n- [Nuke](https://github.com/kean/Nuke)\n- [EmojiText](https://github.com/divadretlaw/EmojiText)\n- [KeychainSwift](https://github.com/evgenyneu/keychain-swift)\n\nSpecial thanks to:\n- [@damon@social.wedistribute.org](https://social.wedistribute.org/@damon)\n- Beezus\n- Beta testers on TestFlight"
"value" : "Bubble uses third-party open-source libraries and code:\n- [IceCubesApp](https://github.com/dimillian/IceCubesApp)\n- [SwiftSoup](https://github.com/scinfu/SwiftSoup)\n- [Nuke](https://github.com/kean/Nuke)\n- [EmojiText](https://github.com/divadretlaw/EmojiText)\n- [KeychainSwift](https://github.com/evgenyneu/keychain-swift)\n\nSpecial thanks to:\n- [@damon@social.wedistribute.org](https://social.wedistribute.org/@damon)\n- Beezus\n- Beta testers on TestFlight"
}
}
}
@ -130,13 +130,13 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "ThreadedApp v%@"
"value" : "BubbleApp v%@"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "ThreadedApp v%@"
"value" : "BubbleApp v%@"
}
}
}
@ -722,13 +722,13 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Threaded Developer"
"value" : "Bubble Developer"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Développeur de Threaded"
"value" : "Développeur de Bubble"
}
}
}
@ -1210,13 +1210,13 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Inside Threaded"
"value" : "Inside Bubble"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Par Threaded"
"value" : "Par Bubble"
}
}
}