diff --git a/IceCubesApp.xcodeproj/project.pbxproj b/IceCubesApp.xcodeproj/project.pbxproj index 0e943823..1cb2b65f 100644 --- a/IceCubesApp.xcodeproj/project.pbxproj +++ b/IceCubesApp.xcodeproj/project.pbxproj @@ -92,6 +92,8 @@ 9F8B92122BF77DBE003D37A2 /* AccountWidgetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F8B920E2BF77DB4003D37A2 /* AccountWidgetConfiguration.swift */; }; 9F8B92132BF77DBE003D37A2 /* AccountWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F8B92102BF77DBB003D37A2 /* AccountWidget.swift */; }; 9F8B92162BF77F0B003D37A2 /* AccountWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F8B92142BF77F05003D37A2 /* AccountWidgetView.swift */; }; + 9F9191562C6DDE1F001C89E7 /* WishlistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F9191552C6DDE1C001C89E7 /* WishlistView.swift */; }; + 9F9191592C6DDF20001C89E7 /* WishKit in Frameworks */ = {isa = PBXBuildFile; productRef = 9F9191582C6DDF20001C89E7 /* WishKit */; }; 9FA6FD6229C04A8800E2312C /* TranslationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FA6FD6129C04A8800E2312C /* TranslationSettingsView.swift */; }; 9FAD858B29743F7400496AB1 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FAD858A29743F7400496AB1 /* ShareViewController.swift */; }; 9FAD858E29743F7400496AB1 /* (null) in Resources */ = {isa = PBXBuildFile; }; @@ -281,6 +283,7 @@ 9F8B920E2BF77DB4003D37A2 /* AccountWidgetConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountWidgetConfiguration.swift; sourceTree = ""; }; 9F8B92102BF77DBB003D37A2 /* AccountWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountWidget.swift; sourceTree = ""; }; 9F8B92142BF77F05003D37A2 /* AccountWidgetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountWidgetView.swift; sourceTree = ""; }; + 9F9191552C6DDE1C001C89E7 /* WishlistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WishlistView.swift; sourceTree = ""; }; 9FA6FD6129C04A8800E2312C /* TranslationSettingsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TranslationSettingsView.swift; sourceTree = ""; }; 9FAD858829743F7400496AB1 /* IceCubesShareExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = IceCubesShareExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 9FAD858A29743F7400496AB1 /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = ""; }; @@ -396,6 +399,7 @@ 9F5E581929545BE700A53960 /* Env in Frameworks */, DA0B24FB2A6876D50045BDD7 /* SFSafeSymbols in Frameworks */, 9FE6A42E2BD043A90055D388 /* RevenueCat in Frameworks */, + 9F9191592C6DDF20001C89E7 /* WishKit in Frameworks */, 9F295540292B6C3400E0E81B /* Timeline in Frameworks */, 9F35DB4A29506FA100B3281A /* Notifications in Frameworks */, 9FC2A38B2B49D19A00DFD1C1 /* StatusKit in Frameworks */, @@ -655,6 +659,7 @@ 9FE151A4293C90EA00E9683D /* Settings */ = { isa = PBXGroup; children = ( + 9F9191552C6DDE1C001C89E7 /* WishlistView.swift */, 069709A9298C9AD7006E4CB5 /* AboutView.swift */, 9F7D939929805DBD00EE6B7A /* AccountSettingView.swift */, 9F2B92F9295DA7D700DE16D0 /* AddAccountsView.swift */, @@ -850,6 +855,7 @@ 9FC2A38A2B49D19A00DFD1C1 /* StatusKit */, 9FE4CCAA2B4C848A00DA5F13 /* GiphyUISDK */, 9FE6A42D2BD043A90055D388 /* RevenueCat */, + 9F9191582C6DDF20001C89E7 /* WishKit */, ); productName = IceCubesApp; productReference = 9FBFE639292A715500C250E9 /* Ice Cubes.app */; @@ -935,6 +941,7 @@ DA0B24F92A6876D40045BDD7 /* XCRemoteSwiftPackageReference "SFSafeSymbols" */, 9FE4CCA92B4C848A00DA5F13 /* XCRemoteSwiftPackageReference "giphy-ios-sdk" */, 9FE6A42C2BD043A80055D388 /* XCRemoteSwiftPackageReference "purchases-ios" */, + 9F9191572C6DDF20001C89E7 /* XCRemoteSwiftPackageReference "wishkit-ios" */, ); productRefGroup = 9FBFE63A292A715500C250E9 /* Products */; projectDirPath = ""; @@ -1092,6 +1099,7 @@ 9F7788ED2BE78D75004E6BEF /* TimelineFilterEntity.swift in Sources */, 9F37BDE32BE393A7007F28AD /* AppShortcuts.swift in Sources */, 9F654BEF299AC45B00D27FA5 /* ReportView.swift in Sources */, + 9F9191562C6DDE1F001C89E7 /* WishlistView.swift in Sources */, D08A9C3529956CFA00204A4A /* SwipeActionsSettingsView.swift in Sources */, 9F7335F22967608F00AFF0BA /* AddRemoteTimelineView.swift in Sources */, 9F7788E82BE65533004E6BEF /* AppAccountEntity.swift in Sources */, @@ -1753,6 +1761,14 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + 9F9191572C6DDF20001C89E7 /* XCRemoteSwiftPackageReference "wishkit-ios" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/wishkit/wishkit-ios.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 4.1.1; + }; + }; 9FAE4ACC29379A5A00772766 /* XCRemoteSwiftPackageReference "keychain-swift" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/evgenyneu/keychain-swift"; @@ -1857,6 +1873,11 @@ isa = XCSwiftPackageProductDependency; productName = AppAccount; }; + 9F9191582C6DDF20001C89E7 /* WishKit */ = { + isa = XCSwiftPackageProductDependency; + package = 9F9191572C6DDF20001C89E7 /* XCRemoteSwiftPackageReference "wishkit-ios" */; + productName = WishKit; + }; 9FAD8599297440CB00496AB1 /* KeychainSwift */ = { isa = XCSwiftPackageProductDependency; package = 9FAE4ACC29379A5A00772766 /* XCRemoteSwiftPackageReference "keychain-swift" */; diff --git a/IceCubesApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/IceCubesApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 3224e7d0..3d58514e 100644 --- a/IceCubesApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/IceCubesApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -144,6 +144,24 @@ "version" : "1.2.0" } }, + { + "identity" : "wishkit-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/wishkit/wishkit-ios.git", + "state" : { + "revision" : "3e1943861d3ba6acceb253b089c1df54521133b8", + "version" : "4.1.1" + } + }, + { + "identity" : "wishkit-ios-shared", + "kind" : "remoteSourceControl", + "location" : "https://github.com/wishkit/wishkit-ios-shared.git", + "state" : { + "revision" : "118c9c482e4ad57c65d664283516425b98616483", + "version" : "1.4.3" + } + }, { "identity" : "wrappinghstack", "kind" : "remoteSourceControl", diff --git a/IceCubesApp/App/Main/IceCubesApp.swift b/IceCubesApp/App/Main/IceCubesApp.swift index 83cbef7e..231919f7 100644 --- a/IceCubesApp/App/Main/IceCubesApp.swift +++ b/IceCubesApp/App/Main/IceCubesApp.swift @@ -10,6 +10,7 @@ import RevenueCat import StatusKit import SwiftUI import Timeline +import WishKit @main struct IceCubesApp: App { @@ -89,6 +90,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { PushNotificationsService.shared.setAccounts(accounts: AppAccountsManager.shared.pushAccounts) Telemetry.setup() Telemetry.signal("app.launched") + WishKit.configure(with: "AF21AE07-3BA9-4FE2-BFB1-59A3B3941730") return true } diff --git a/IceCubesApp/App/Tabs/Settings/SettingsTab.swift b/IceCubesApp/App/Tabs/Settings/SettingsTab.swift index d166eef2..18ee2a05 100644 --- a/IceCubesApp/App/Tabs/Settings/SettingsTab.swift +++ b/IceCubesApp/App/Tabs/Settings/SettingsTab.swift @@ -295,9 +295,17 @@ struct SettingsTabs: View { .tint(theme.labelColor) } - NavigationLink(destination: AboutView()) { + NavigationLink { + AboutView() + } label: { Label("settings.app.about", systemImage: "info.circle") } + + NavigationLink { + WishlistView() + } label: { + Label("Feature Requests", systemImage: "list.bullet.rectangle.portrait") + } } header: { Text("settings.section.app") diff --git a/IceCubesApp/App/Tabs/Settings/WishlistView.swift b/IceCubesApp/App/Tabs/Settings/WishlistView.swift new file mode 100644 index 00000000..164f7db2 --- /dev/null +++ b/IceCubesApp/App/Tabs/Settings/WishlistView.swift @@ -0,0 +1,8 @@ +import SwiftUI +import WishKit + +struct WishlistView: View { + var body: some View { + WishKit.view + } +} diff --git a/IceCubesApp/Resources/Localization/Localizable.xcstrings b/IceCubesApp/Resources/Localization/Localizable.xcstrings index dd38fee4..40aea416 100644 --- a/IceCubesApp/Resources/Localization/Localizable.xcstrings +++ b/IceCubesApp/Resources/Localization/Localizable.xcstrings @@ -29098,6 +29098,9 @@ } } } + }, + "Feature Requests" : { + }, "Federated Timeline" : { "localizations" : { @@ -83500,4 +83503,4 @@ } }, "version" : "1.0" -} +} \ No newline at end of file diff --git a/Packages/Env/Package.swift b/Packages/Env/Package.swift index 0ffd5dd6..c322a3d2 100644 --- a/Packages/Env/Package.swift +++ b/Packages/Env/Package.swift @@ -20,7 +20,7 @@ let package = Package( .package(name: "Models", path: "../Models"), .package(name: "Network", path: "../Network"), .package(url: "https://github.com/evgenyneu/keychain-swift", branch: "master"), - .package(url: "https://github.com/TelemetryDeck/SwiftSDK", from: "2.3.0") + .package(url: "https://github.com/TelemetryDeck/SwiftSDK", from: "2.3.0"), ], targets: [ .target(