From 7d3403aab49553e4c8b7a2b9017a5bf3e245cb54 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Sun, 24 May 2026 13:04:51 -0700 Subject: [PATCH 01/23] feat(demo): add SwiftUI example app --- .../demo/OneSignalSwiftUIExample.entitlements | 8 + .../App/OneSignalSwiftUIExampleApp.swift | 143 ++++ .../AccentColor.colorset/Contents.json | 38 ++ .../AppIcon.appiconset/Contents.json | 13 + .../Assets.xcassets/Contents.json | 6 + .../demo/OneSignalSwiftUIExample/Info.plist | 58 ++ .../Models/AppModels.swift | 230 +++++++ .../Services/LiveActivityController.swift | 166 +++++ .../Services/NotificationSender.swift | 187 ++++++ .../Services/OneSignalService.swift | 204 ++++++ .../Services/TooltipService.swift | 169 +++++ .../Services/UserFetchService.swift | 98 +++ .../ViewModels/OneSignalViewModel.swift | 612 ++++++++++++++++++ .../Views/Components/ActionButton.swift | 106 +++ .../Views/Components/AddItemSheet.swift | 104 +++ .../Components/CustomNotificationSheet.swift | 79 +++ .../Views/Components/KeyValueRow.swift | 57 ++ .../Views/Components/ListWidgets.swift | 148 +++++ .../Components/MultiPairInputSheet.swift | 110 ++++ .../Views/Components/OutcomeSheet.swift | 104 +++ .../Views/Components/RemoveMultiSheet.swift | 96 +++ .../Views/Components/SectionCard.swift | 122 ++++ .../Views/Components/ToastView.swift | 81 +++ .../Views/Components/ToggleRow.swift | 72 +++ .../Views/Components/TooltipSheet.swift | 71 ++ .../Views/Components/TrackEventSheet.swift | 107 +++ .../Views/ContentView.swift | 158 +++++ .../Views/Sections/AliasesSection.swift | 58 ++ .../Views/Sections/AppSection.swift | 68 ++ .../Views/Sections/CustomEventsSection.swift | 44 ++ .../Views/Sections/EmailsSection.swift | 51 ++ .../Views/Sections/InAppSection.swift | 51 ++ .../Views/Sections/LiveActivitySection.swift | 134 ++++ .../Views/Sections/LocationSection.swift | 54 ++ .../Views/Sections/OutcomesSection.swift | 44 ++ .../Views/Sections/PushSection.swift | 70 ++ .../Views/Sections/SendIamSection.swift | 51 ++ .../Views/Sections/SendPushSection.swift | 61 ++ .../Views/Sections/SmsSection.swift | 51 ++ .../Views/Sections/TagsSection.swift | 66 ++ .../Views/Sections/TriggersSection.swift | 74 +++ .../Views/Sections/UserSection.swift | 68 ++ examples/demo/README.md | 106 +++ 43 files changed, 4398 insertions(+) create mode 100644 examples/demo/OneSignalSwiftUIExample.entitlements create mode 100644 examples/demo/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 examples/demo/OneSignalSwiftUIExample/Assets.xcassets/Contents.json create mode 100644 examples/demo/OneSignalSwiftUIExample/Info.plist create mode 100644 examples/demo/OneSignalSwiftUIExample/Models/AppModels.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Services/LiveActivityController.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Services/NotificationSender.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Services/OneSignalService.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Services/TooltipService.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Services/UserFetchService.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/ActionButton.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/ListWidgets.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/MultiPairInputSheet.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/OutcomeSheet.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/SectionCard.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/ToastView.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/ToggleRow.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/TooltipSheet.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/ContentView.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/AliasesSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/AppSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/CustomEventsSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/EmailsSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/InAppSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/OutcomesSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/PushSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/SendIamSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/SendPushSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/SmsSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/TriggersSection.swift create mode 100644 examples/demo/OneSignalSwiftUIExample/Views/Sections/UserSection.swift create mode 100644 examples/demo/README.md diff --git a/examples/demo/OneSignalSwiftUIExample.entitlements b/examples/demo/OneSignalSwiftUIExample.entitlements new file mode 100644 index 000000000..903def2af --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample.entitlements @@ -0,0 +1,8 @@ + + + + + aps-environment + development + + diff --git a/examples/demo/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift b/examples/demo/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift new file mode 100644 index 000000000..e626e5653 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift @@ -0,0 +1,143 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI +import OneSignalFramework +import OneSignalInAppMessages +import OneSignalLiveActivities +import OneSignalLocation + +@main +struct OneSignalSwiftUIExampleApp: App { + @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate + @StateObject private var viewModel = OneSignalViewModel() + + var body: some Scene { + WindowGroup { + ContentView() + .environmentObject(viewModel) + } + } +} + +// MARK: - App Delegate + +class AppDelegate: NSObject, UIApplicationDelegate { + + func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil + ) -> Bool { + // Initialize OneSignal + OneSignalService.shared.initialize(launchOptions: launchOptions) + + // Set up notification lifecycle listeners + setupNotificationListeners() + + // Set up in-app message listeners + setupInAppMessageListeners() + + // Set up Live Activities (iOS 16.1+) + if #available(iOS 16.1, *) { + LiveActivityController.setup() + } + + return true + } + + private func setupNotificationListeners() { + // Foreground notification display + OneSignal.Notifications.addForegroundLifecycleListener(NotificationLifecycleHandler.shared) + + // Notification click handling + OneSignal.Notifications.addClickListener(NotificationClickHandler.shared) + } + + private func setupInAppMessageListeners() { + // In-app message lifecycle + OneSignal.InAppMessages.addLifecycleListener(InAppMessageLifecycleHandler.shared) + + // In-app message click handling + OneSignal.InAppMessages.addClickListener(InAppMessageClickHandler.shared) + + // Start with IAM paused + OneSignal.InAppMessages.paused = true + } +} + +// MARK: - Notification Handlers + +class NotificationLifecycleHandler: NSObject, OSNotificationLifecycleListener { + static let shared = NotificationLifecycleHandler() + + func onWillDisplay(event: OSNotificationWillDisplayEvent) { + print("[OneSignal] Notification will display: \(event.notification.title ?? "No title")") + // Optionally modify display behavior + // event.preventDefault() // Prevent automatic display + // event.notification.display() // Manually display later + } +} + +class NotificationClickHandler: NSObject, OSNotificationClickListener { + static let shared = NotificationClickHandler() + + func onClick(event: OSNotificationClickEvent) { + print("[OneSignal] Notification clicked: \(event.notification.title ?? "No title")") + // Handle notification click - navigate to specific screen, etc. + } +} + +// MARK: - In-App Message Handlers + +class InAppMessageLifecycleHandler: NSObject, OSInAppMessageLifecycleListener { + static let shared = InAppMessageLifecycleHandler() + + func onWillDisplay(event: OSInAppMessageWillDisplayEvent) { + print("[OneSignal] IAM will display: \(event.message.messageId)") + } + + func onDidDisplay(event: OSInAppMessageDidDisplayEvent) { + print("[OneSignal] IAM did display: \(event.message.messageId)") + } + + func onWillDismiss(event: OSInAppMessageWillDismissEvent) { + print("[OneSignal] IAM will dismiss: \(event.message.messageId)") + } + + func onDidDismiss(event: OSInAppMessageDidDismissEvent) { + print("[OneSignal] IAM did dismiss: \(event.message.messageId)") + } +} + +class InAppMessageClickHandler: NSObject, OSInAppMessageClickListener { + static let shared = InAppMessageClickHandler() + + func onClick(event: OSInAppMessageClickEvent) { + print("[OneSignal] IAM clicked: \(event.result.actionId ?? "No action ID")") + // Handle IAM click - navigate, track event, etc. + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json b/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 000000000..2c54006ed --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x4D", + "green" : "0x4B", + "red" : "0xE5" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x6D", + "green" : "0x6B", + "red" : "0xF5" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..13613e3ee --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/Contents.json b/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Info.plist b/examples/demo/OneSignalSwiftUIExample/Info.plist new file mode 100644 index 000000000..aba8d06a4 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Info.plist @@ -0,0 +1,58 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + OneSignal SwiftUI + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + NSLocationWhenInUseUsageDescription + This app uses your location to personalize notifications and content. + NSLocationAlwaysAndWhenInUseUsageDescription + This app uses your location to personalize notifications and content even when the app is in the background. + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + UIBackgroundModes + + remote-notification + + UILaunchScreen + + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/examples/demo/OneSignalSwiftUIExample/Models/AppModels.swift b/examples/demo/OneSignalSwiftUIExample/Models/AppModels.swift new file mode 100644 index 000000000..301f4a8ce --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Models/AppModels.swift @@ -0,0 +1,230 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import Foundation +import UIKit + +// MARK: - Key-Value Item + +/// Generic key-value pair used for aliases, tags, and triggers +struct KeyValueItem: Identifiable, Equatable { + let id = UUID() + let key: String + let value: String +} + +// MARK: - Notification Type + +/// Push notification samples that can be sent from the demo +enum NotificationType: String, CaseIterable, Identifiable { + case simple = "Simple" + case withImage = "With Image" + case withSound = "With Sound" + + var id: String { rawValue } +} + +// MARK: - In-App Message Type + +/// Sample in-app message layouts triggered by the iam_type trigger +enum InAppMessageType: String, CaseIterable, Identifiable { + case topBanner = "Top Banner" + case bottomBanner = "Bottom Banner" + case centerModal = "Center Modal" + case fullScreen = "Full Screen" + + var id: String { rawValue } + + /// Trigger value the OneSignal IAM rules listen for + var triggerValue: String { + switch self { + case .topBanner: return "top_banner" + case .bottomBanner: return "bottom_banner" + case .centerModal: return "center_modal" + case .fullScreen: return "full_screen" + } + } + + var iconName: String { + switch self { + case .topBanner: return "arrow.up.to.line" + case .bottomBanner: return "arrow.down.to.line" + case .centerModal: return "square" + case .fullScreen: return "arrow.up.left.and.arrow.down.right" + } + } +} + +// MARK: - Add Item Type + +/// Single-input add dialog flavors +enum AddItemType { + case alias + case email + case sms + case tag + case trigger + case externalUserId + + var title: String { + switch self { + case .alias: return "Add Alias" + case .email: return "Add Email" + case .sms: return "Add SMS" + case .tag: return "Add Tag" + case .trigger: return "Add Trigger" + case .externalUserId: return "Login User" + } + } + + var requiresKeyValue: Bool { + switch self { + case .alias, .tag, .trigger: return true + case .email, .sms, .externalUserId: return false + } + } + + var keyPlaceholder: String { + switch self { + case .alias: return "Label" + case .tag, .trigger: return "Key" + default: return "Key" + } + } + + var valuePlaceholder: String { + switch self { + case .alias: return "ID" + case .email: return "Email Address" + case .sms: return "Phone Number" + case .tag, .trigger: return "Value" + case .externalUserId: return "External User Id" + } + } + + var keyboardType: UIKeyboardType { + switch self { + case .email: return .emailAddress + case .sms: return .phonePad + default: return .default + } + } + + var confirmLabel: String { + switch self { + case .externalUserId: return "Login" + default: return "Add" + } + } + + /// Stable accessibility id prefix shared with the rest of the demo + var accessibilityKey: String { + switch self { + case .alias: return "alias" + case .email: return "email" + case .sms: return "sms" + case .tag: return "tag" + case .trigger: return "trigger" + case .externalUserId: return "login_user_id" + } + } +} + +// MARK: - Multi-Add Item Type + +/// Multi-pair add dialog flavors (Add Multiple Aliases / Tags / Triggers) +enum MultiAddItemType: String { + case aliases = "Add Multiple Aliases" + case tags = "Add Multiple Tags" + case triggers = "Add Multiple Triggers" + + var keyPlaceholder: String { + switch self { + case .aliases: return "Label" + case .tags, .triggers: return "Key" + } + } + + var valuePlaceholder: String { + switch self { + case .aliases: return "ID" + case .tags, .triggers: return "Value" + } + } +} + +// MARK: - Remove Multi Item Type + +/// Multi-select remove dialog flavors +enum RemoveMultiItemType: String { + case tags = "Remove Tags" + case triggers = "Remove Triggers" +} + +// MARK: - Outcome Mode + +/// Variants supported by the Send Outcome dialog +enum OutcomeMode: String, CaseIterable, Identifiable { + case normal = "Normal Outcome" + case unique = "Unique Outcome" + case value = "Outcome with Value" + + var id: String { rawValue } + + var accessibilityKey: String { + switch self { + case .normal: return "normal" + case .unique: return "unique" + case .value: return "value" + } + } +} + +// MARK: - Tooltip Models + +/// Tooltip content fetched from sdk-shared (or bundled fallback) +struct TooltipData { + let title: String + let description: String + let options: [TooltipOption]? +} + +struct TooltipOption { + let name: String + let description: String +} + +// MARK: - User Data + +/// User payload returned from the OneSignal /users API +struct UserData { + let aliases: [String: String] + let tags: [String: String] + let emails: [String] + let smsNumbers: [String] + let externalId: String? +} diff --git a/examples/demo/OneSignalSwiftUIExample/Services/LiveActivityController.swift b/examples/demo/OneSignalSwiftUIExample/Services/LiveActivityController.swift new file mode 100644 index 000000000..1d21e1780 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Services/LiveActivityController.swift @@ -0,0 +1,166 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import Foundation +import OneSignalFramework +import OneSignalLiveActivities + +/// Order tracking phases used by the Live Activity demo +enum LiveActivityStatus: String, CaseIterable, Identifiable { + case preparing + case onTheWay = "on_the_way" + case delivered + + var id: String { rawValue } + + var displayName: String { + switch self { + case .preparing: return "Preparing" + case .onTheWay: return "On The Way" + case .delivered: return "Delivered" + } + } + + var message: String { + switch self { + case .preparing: return "Your order is being prepared" + case .onTheWay: return "Driver is heading your way" + case .delivered: return "Order delivered!" + } + } + + var estimatedTime: String { + switch self { + case .preparing: return "15 min" + case .onTheWay: return "10 min" + case .delivered: return "" + } + } + + /// Returns the next status in the preparing → on_the_way → delivered → preparing cycle + var next: LiveActivityStatus { + switch self { + case .preparing: return .onTheWay + case .onTheWay: return .delivered + case .delivered: return .preparing + } + } +} + +/// Wraps the OneSignal Live Activities SDK and the REST API endpoints used to update / end activities +enum LiveActivityController { + + @available(iOS 16.1, *) + static func setup() { + OneSignal.LiveActivities.setupDefault() + } + + @available(iOS 16.1, *) + static func start( + activityId: String, + orderNumber: String, + status: LiveActivityStatus + ) { + let attributes: [String: Any] = [ + "orderNumber": orderNumber + ] + let content: [String: Any] = [ + "status": status.rawValue, + "message": status.message, + "estimatedTime": status.estimatedTime + ] + OneSignal.LiveActivities.startDefault( + activityId, + attributes: attributes, + content: content + ) + } + + static func update(appId: String, activityId: String, status: LiveActivityStatus) async -> Bool { + let payload: [String: Any] = [ + "event": "update", + "name": "Live Activity Update", + "priority": 10, + "event_updates": [ + "data": [ + "status": status.rawValue, + "message": status.message, + "estimatedTime": status.estimatedTime + ] + ] + ] + return await postLiveActivity(appId: appId, activityId: activityId, payload: payload) + } + + static func end(appId: String, activityId: String) async -> Bool { + let payload: [String: Any] = [ + "event": "end", + "name": "End Live Activity", + "priority": 10, + "dismissal_date": Int(Date().timeIntervalSince1970), + "event_updates": [ + "message": "Ended Live Activity" + ] + ] + return await postLiveActivity(appId: appId, activityId: activityId, payload: payload) + } + + // The Live Activity API key is read from a Secrets.plist bundled with the demo. Without + // a key the request returns 401 - we surface that as a failed result so the UI can react. + private static var apiKey: String? { + guard let url = Bundle.main.url(forResource: "Secrets", withExtension: "plist"), + let data = try? Data(contentsOf: url), + let plist = try? PropertyListSerialization.propertyList(from: data, options: [], format: nil) as? [String: Any], + let key = plist["ONESIGNAL_API_KEY"] as? String, + !key.isEmpty else { + return nil + } + return key + } + + static var hasApiKey: Bool { apiKey != nil } + + private static func postLiveActivity(appId: String, activityId: String, payload: [String: Any]) async -> Bool { + guard let key = apiKey else { return false } + let urlString = "https://api.onesignal.com/apps/\(appId)/live_activities/\(activityId)/notifications" + guard let url = URL(string: urlString) else { return false } + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.setValue("Key \(key)", forHTTPHeaderField: "Authorization") + request.httpBody = try? JSONSerialization.data(withJSONObject: payload, options: []) + + do { + let (_, response) = try await URLSession.shared.data(for: request) + guard let http = response as? HTTPURLResponse else { return false } + return (200..<300).contains(http.statusCode) + } catch { + return false + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Services/NotificationSender.swift b/examples/demo/OneSignalSwiftUIExample/Services/NotificationSender.swift new file mode 100644 index 000000000..6705d36d1 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Services/NotificationSender.swift @@ -0,0 +1,187 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import Foundation + +/// Posts to the OneSignal /notifications REST endpoint to send sample push payloads +final class NotificationSender { + static let shared = NotificationSender() + private init() {} + + enum SendError: Error, LocalizedError { + case noSubscriptionId + case requestFailed(String) + case transient(String) + + var errorDescription: String? { + switch self { + case .noSubscriptionId: return "No push subscription" + case .requestFailed(let msg): return msg + case .transient(let msg): return msg + } + } + } + + private let endpoint = URL(string: "https://onesignal.com/api/v1/notifications")! + private let maxAttempts = 5 + + func sendNotification( + _ type: NotificationType, + appId: String, + subscriptionId: String, + completion: @escaping (Result) -> Void + ) { + var headings = "Simple Notification" + var contents = "This is a simple push notification" + var extra: [String: Any] = [:] + + switch type { + case .simple: + break + case .withImage: + headings = "Image Notification" + contents = "This notification includes an image" + let url = "https://media.onesignal.com/automated_push_templates/ratings_template.png" + extra["big_picture"] = url + extra["ios_attachments"] = ["image": url] + case .withSound: + headings = "Sound Notification" + contents = "This notification plays a custom sound" + extra["ios_sound"] = "default" + } + + post( + appId: appId, + subscriptionId: subscriptionId, + heading: headings, + content: contents, + extra: extra, + attempt: 1, + completion: completion + ) + } + + func sendCustomNotification( + title: String, + body: String, + appId: String, + subscriptionId: String, + completion: @escaping (Result) -> Void + ) { + post( + appId: appId, + subscriptionId: subscriptionId, + heading: title, + content: body, + extra: [:], + attempt: 1, + completion: completion + ) + } + + private func post( + appId: String, + subscriptionId: String, + heading: String, + content: String, + extra: [String: Any], + attempt: Int, + completion: @escaping (Result) -> Void + ) { + var payload: [String: Any] = [ + "app_id": appId, + "include_subscription_ids": [subscriptionId], + "headings": ["en": heading], + "contents": ["en": content] + ] + payload.merge(extra) { _, new in new } + + guard let body = try? JSONSerialization.data(withJSONObject: payload, options: []) else { + completion(.failure(SendError.requestFailed("Could not encode payload"))) + return + } + + var request = URLRequest(url: endpoint) + request.httpMethod = "POST" + request.httpBody = body + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + request.setValue("application/vnd.onesignal.v1+json", forHTTPHeaderField: "Accept") + + URLSession.shared.dataTask(with: request) { [weak self] data, response, error in + guard let self = self else { return } + if let error = error { + completion(.failure(SendError.requestFailed(error.localizedDescription))) + return + } + guard let http = response as? HTTPURLResponse else { + completion(.failure(SendError.requestFailed("Unexpected response"))) + return + } + guard (200..<300).contains(http.statusCode) else { + let text = data.flatMap { String(data: $0, encoding: .utf8) } ?? "HTTP \(http.statusCode)" + completion(.failure(SendError.requestFailed(text))) + return + } + + // Treat 200 with empty id / errors / zero recipients as a transient backend race + // (subscription not yet indexed) and retry with exponential backoff. + if let data = data, + let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + self.isTransientFailure(json) { + if attempt < self.maxAttempts { + let delay = UInt64(2_000_000_000) * UInt64(1 << (attempt - 1)) + Task { + try? await Task.sleep(nanoseconds: delay) + self.post( + appId: appId, + subscriptionId: subscriptionId, + heading: heading, + content: content, + extra: extra, + attempt: attempt + 1, + completion: completion + ) + } + return + } + completion(.failure(SendError.transient(String(describing: json)))) + return + } + + completion(.success(())) + }.resume() + } + + private func isTransientFailure(_ json: [String: Any]) -> Bool { + let id = json["id"] as? String ?? "" + if id.isEmpty { return true } + if let recipients = json["recipients"] as? Int, recipients == 0 { return true } + if let errorsDict = json["errors"] as? [String: Any], !errorsDict.isEmpty { return true } + if let errorsArr = json["errors"] as? [Any], !errorsArr.isEmpty { return true } + return false + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Services/OneSignalService.swift b/examples/demo/OneSignalSwiftUIExample/Services/OneSignalService.swift new file mode 100644 index 000000000..9ed23bf43 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Services/OneSignalService.swift @@ -0,0 +1,204 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import Foundation +import OneSignalFramework +import OneSignalInAppMessages +import OneSignalLocation + +/// Thin wrapper that funnels demo calls through a single OneSignal entry point +final class OneSignalService { + + static let shared = OneSignalService() + + private init() {} + + // MARK: - App ID + + private let appIdKey = "OneSignalAppId" + private let defaultAppId = "77e32082-ea27-42e3-a898-c72e141824ef" + + var appId: String { + get { UserDefaults.standard.string(forKey: appIdKey) ?? defaultAppId } + set { UserDefaults.standard.set(newValue, forKey: appIdKey) } + } + + // MARK: - Initialization + + func initialize(launchOptions: [UIApplication.LaunchOptionsKey: Any]?) { + OneSignal.Debug.setLogLevel(.LL_VERBOSE) + OneSignal.initialize(appId, withLaunchOptions: launchOptions) + } + + // MARK: - Identity + + var onesignalId: String? { OneSignal.User.onesignalId } + var externalId: String? { OneSignal.User.externalId } + + // MARK: - Consent + + var consentRequired: Bool { + get { OneSignal.privacyConsentRequired } + set { OneSignal.setConsentRequired(newValue) } + } + + var consentGiven: Bool { + get { OneSignal.privacyConsentGiven } + set { OneSignal.setConsentGiven(newValue) } + } + + // MARK: - User + + func login(externalId: String) { OneSignal.login(externalId) } + func logout() { OneSignal.logout() } + + // MARK: - Aliases + + func addAlias(label: String, id: String) { OneSignal.User.addAlias(label: label, id: id) } + func addAliases(_ aliases: [String: String]) { OneSignal.User.addAliases(aliases) } + func removeAlias(_ label: String) { OneSignal.User.removeAlias(label) } + func removeAliases(_ labels: [String]) { OneSignal.User.removeAliases(labels) } + + // MARK: - Push Subscription + + var pushSubscriptionId: String? { OneSignal.User.pushSubscription.id } + var isPushEnabled: Bool { OneSignal.User.pushSubscription.optedIn } + var hasNotificationPermission: Bool { OneSignal.Notifications.permission } + + func optInPush() { OneSignal.User.pushSubscription.optIn() } + func optOutPush() { OneSignal.User.pushSubscription.optOut() } + + func requestPushPermission(completion: @escaping (Bool) -> Void) { + OneSignal.Notifications.requestPermission({ accepted in + completion(accepted) + }, fallbackToSettings: true) + } + + // MARK: - Email + + func addEmail(_ email: String) { OneSignal.User.addEmail(email) } + func removeEmail(_ email: String) { OneSignal.User.removeEmail(email) } + + // MARK: - SMS + + func addSms(_ number: String) { OneSignal.User.addSms(number) } + func removeSms(_ number: String) { OneSignal.User.removeSms(number) } + + // MARK: - Tags + + func addTag(key: String, value: String) { OneSignal.User.addTag(key: key, value: value) } + func addTags(_ tags: [String: String]) { OneSignal.User.addTags(tags) } + func removeTag(_ key: String) { OneSignal.User.removeTag(key) } + func removeTags(_ keys: [String]) { OneSignal.User.removeTags(keys) } + func getTags() -> [String: String] { OneSignal.User.getTags() } + + // MARK: - Outcomes + + func sendOutcome(_ name: String) { OneSignal.Session.addOutcome(name) } + func sendOutcome(_ name: String, value: NSNumber) { OneSignal.Session.addOutcome(name, value: value) } + func sendUniqueOutcome(_ name: String) { OneSignal.Session.addUniqueOutcome(name) } + + // MARK: - In-App Messages + + var isInAppMessagesPaused: Bool { + get { OneSignal.InAppMessages.paused } + set { OneSignal.InAppMessages.paused = newValue } + } + + func addTrigger(key: String, value: String) { + OneSignal.InAppMessages.addTrigger(key, withValue: value) + } + + func addTriggers(_ triggers: [String: String]) { + OneSignal.InAppMessages.addTriggers(triggers) + } + + func removeTrigger(_ key: String) { + OneSignal.InAppMessages.removeTrigger(key) + } + + func removeTriggers(_ keys: [String]) { + OneSignal.InAppMessages.removeTriggers(keys) + } + + func clearTriggers() { + OneSignal.InAppMessages.clearTriggers() + } + + // MARK: - Location + + var isLocationShared: Bool { + get { OneSignal.Location.isShared } + set { OneSignal.Location.isShared = newValue } + } + + func requestLocationPermission() { + OneSignal.Location.requestPermission() + } + + // MARK: - Notifications + + func clearAllNotifications() { + OneSignal.Notifications.clearAll() + } + + // MARK: - Custom Events + + func trackEvent(name: String, properties: [String: Any]?) { + OneSignal.User.trackEvent(name: name, properties: properties) + } + + // MARK: - Observers + + func addPushSubscriptionObserver(_ observer: OSPushSubscriptionObserver) { + OneSignal.User.pushSubscription.addObserver(observer) + } + + func addUserObserver(_ observer: OSUserStateObserver) { + OneSignal.User.addObserver(observer) + } + + func addPermissionObserver(_ observer: OSNotificationPermissionObserver) { + OneSignal.Notifications.addPermissionObserver(observer) + } + + func addNotificationClickListener(_ listener: OSNotificationClickListener) { + OneSignal.Notifications.addClickListener(listener) + } + + func addNotificationLifecycleListener(_ listener: OSNotificationLifecycleListener) { + OneSignal.Notifications.addForegroundLifecycleListener(listener) + } + + func addInAppMessageClickListener(_ listener: OSInAppMessageClickListener) { + OneSignal.InAppMessages.addClickListener(listener) + } + + func addInAppMessageLifecycleListener(_ listener: OSInAppMessageLifecycleListener) { + OneSignal.InAppMessages.addLifecycleListener(listener) + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Services/TooltipService.swift b/examples/demo/OneSignalSwiftUIExample/Services/TooltipService.swift new file mode 100644 index 000000000..b568e1b29 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Services/TooltipService.swift @@ -0,0 +1,169 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import Foundation + +/// Loads tooltip content shared with the other OneSignal demo apps +final class TooltipService { + static let shared = TooltipService() + + private static let remoteURL = URL( + string: "https://raw.githubusercontent.com/OneSignal/sdk-shared/main/demo/tooltip_content.json" + )! + + private var cache: [String: TooltipData] = [:] + private var loaded = false + + private init() { + cache = TooltipService.bundledFallback() + } + + func loadIfNeeded() { + guard !loaded else { return } + loaded = true + + Task.detached { [weak self] in + guard let self = self else { return } + guard let (data, response) = try? await URLSession.shared.data(from: TooltipService.remoteURL), + let http = response as? HTTPURLResponse, + (200..<300).contains(http.statusCode), + let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { + return + } + var parsed: [String: TooltipData] = [:] + for (key, value) in json { + guard let dict = value as? [String: Any], + let title = dict["title"] as? String, + let description = dict["description"] as? String else { + continue + } + let options: [TooltipOption]? + if let rawOptions = dict["options"] as? [[String: Any]] { + options = rawOptions.compactMap { entry -> TooltipOption? in + guard let name = entry["name"] as? String, + let optDescription = entry["description"] as? String else { return nil } + return TooltipOption(name: name, description: optDescription) + } + } else { + options = nil + } + parsed[key] = TooltipData(title: title, description: description, options: options) + } + await MainActor.run { + if !parsed.isEmpty { + self.cache = parsed + } + } + } + } + + func tooltip(for key: String) -> TooltipData? { + cache[key] + } + + /// Minimal fallback content (keys match the sdk-shared tooltip JSON) so info icons + /// still work without network. `app` and `user` are demo-only and not in sdk-shared. + private static func bundledFallback() -> [String: TooltipData] { + [ + "app": TooltipData( + title: "App", + description: "Your OneSignal App ID and consent settings.", + options: nil + ), + "user": TooltipData( + title: "User", + description: "External User Id is your own identifier for the current user. Login/logout to associate the device with a user.", + options: nil + ), + "push": TooltipData( + title: "Push Subscription", + description: "The push subscription for this device. Enables push notifications, in-app messages, and Live Activities.", + options: nil + ), + "sendPushNotification": TooltipData( + title: "Send Push Notification", + description: "Test push notifications by sending them to this device via the OneSignal REST API.", + options: nil + ), + "inAppMessaging": TooltipData( + title: "In-App Messaging", + description: "Display targeted messages inside your app. Pause IAM display while testing.", + options: nil + ), + "sendInAppMessage": TooltipData( + title: "Send In-App Message", + description: "Adds an iam_type trigger that your dashboard IAM rules can listen for.", + options: nil + ), + "aliases": TooltipData( + title: "Aliases", + description: "Custom label/id pairs that let you reference users by your own identifiers.", + options: nil + ), + "emails": TooltipData( + title: "Email Subscriptions", + description: "Email addresses associated with this user.", + options: nil + ), + "sms": TooltipData( + title: "SMS Subscriptions", + description: "Phone numbers associated with this user.", + options: nil + ), + "tags": TooltipData( + title: "Tags", + description: "Key-value string pairs attached to the user for segmentation and personalization.", + options: nil + ), + "outcomes": TooltipData( + title: "Outcomes", + description: "Track user actions attributed to push notifications.", + options: nil + ), + "triggers": TooltipData( + title: "Triggers", + description: "Device-local key-value pairs that control when in-app messages display.", + options: nil + ), + "customEvents": TooltipData( + title: "Custom Events", + description: "Send custom events with optional properties to trigger Journeys.", + options: nil + ), + "location": TooltipData( + title: "Location", + description: "Share device location for location-based segmentation.", + options: nil + ), + "liveActivities": TooltipData( + title: "Live Activities", + description: "Display real-time updates on the iOS Lock Screen and Dynamic Island.", + options: nil + ) + ] + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Services/UserFetchService.swift b/examples/demo/OneSignalSwiftUIExample/Services/UserFetchService.swift new file mode 100644 index 000000000..836559eaa --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Services/UserFetchService.swift @@ -0,0 +1,98 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import Foundation + +/// Reads the OneSignal /users API to hydrate aliases / tags / channels in the demo +final class UserFetchService { + static let shared = UserFetchService() + private init() {} + + func fetchUser(appId: String, onesignalId: String) async -> UserData? { + let urlString = "https://api.onesignal.com/apps/\(appId)/users/by/onesignal_id/\(onesignalId)" + guard let url = URL(string: urlString) else { return nil } + + var request = URLRequest(url: url) + request.httpMethod = "GET" + + do { + let (data, response) = try await URLSession.shared.data(for: request) + guard let http = response as? HTTPURLResponse, (200..<300).contains(http.statusCode) else { + return nil + } + guard let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] else { + return nil + } + return parse(json) + } catch { + return nil + } + } + + private func parse(_ json: [String: Any]) -> UserData { + let identity = json["identity"] as? [String: Any] ?? [:] + let properties = json["properties"] as? [String: Any] ?? [:] + let subscriptions = json["subscriptions"] as? [[String: Any]] ?? [] + + var aliases: [String: String] = [:] + for (key, value) in identity { + guard key != "external_id", key != "onesignal_id" else { continue } + if let stringValue = value as? String { + aliases[key] = stringValue + } + } + + var tags: [String: String] = [:] + if let rawTags = properties["tags"] as? [String: Any] { + for (key, value) in rawTags { + if let stringValue = value as? String { + tags[key] = stringValue + } + } + } + + var emails: [String] = [] + var smsNumbers: [String] = [] + for sub in subscriptions { + let type = sub["type"] as? String ?? "" + let token = sub["token"] as? String ?? "" + guard !token.isEmpty else { continue } + if type == "Email" { emails.append(token) } + if type == "SMS" { smsNumbers.append(token) } + } + + let externalId = identity["external_id"] as? String + + return UserData( + aliases: aliases, + tags: tags, + emails: emails, + smsNumbers: smsNumbers, + externalId: externalId + ) + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift b/examples/demo/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift new file mode 100644 index 000000000..98d57da60 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift @@ -0,0 +1,612 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import Foundation +import Combine +import OneSignalFramework + +/// ViewModel that backs every section of the demo +@MainActor +final class OneSignalViewModel: ObservableObject { + + // MARK: - App / Consent + + @Published var appId: String + @Published var consentRequired: Bool = UserDefaults.standard.bool(forKey: "CachedConsentRequired") + @Published var consentGiven: Bool = UserDefaults.standard.bool(forKey: "CachedPrivacyConsent") + + // MARK: - Identity + + @Published var externalUserId: String? + @Published var aliases: [KeyValueItem] = [] + + // MARK: - Push + + @Published var pushSubscriptionId: String? + @Published var isPushEnabled: Bool = false + @Published var hasNotificationPermission: Bool = false + + // MARK: - Channels + + @Published var emails: [String] = [] + @Published var smsNumbers: [String] = [] + + // MARK: - Tags / Triggers + + @Published var tags: [KeyValueItem] = [] + @Published var triggers: [KeyValueItem] = [] + + // MARK: - In-App / Location + + @Published var isInAppMessagesPaused: Bool = true + @Published var isLocationShared: Bool = false + + // MARK: - UI State + + @Published var isLoading: Bool = false + @Published var toastMessage: String? + + @Published var showingAddSheet: Bool = false + @Published var addItemType: AddItemType = .email + + @Published var showingMultiAddSheet: Bool = false + @Published var multiAddType: MultiAddItemType = .tags + + @Published var showingRemoveMultiSheet: Bool = false + @Published var removeMultiType: RemoveMultiItemType = .tags + + @Published var showingOutcomeSheet: Bool = false + @Published var showingCustomNotificationSheet: Bool = false + @Published var showingTrackEventSheet: Bool = false + + @Published var activeTooltip: TooltipData? + + // MARK: - Computed + + var isLoggedIn: Bool { + guard let id = externalUserId else { return false } + return !id.isEmpty + } + + var loginButtonTitle: String { isLoggedIn ? "SWITCH USER" : "LOGIN USER" } + + var removeMultiItems: [KeyValueItem] { + switch removeMultiType { + case .tags: return tags + case .triggers: return triggers + } + } + + // MARK: - Private + + private let service: OneSignalService + private var observers = Observers() + + // MARK: - Init + + init(service: OneSignalService = .shared) { + self.service = service + self.appId = service.appId + self.consentRequired = service.consentRequired + self.consentGiven = service.consentGiven + self.externalUserId = service.externalId + self.hasNotificationPermission = service.hasNotificationPermission + refreshState() + setupObservers() + + TooltipService.shared.loadIfNeeded() + + if service.onesignalId != nil { + Task { await fetchUserDataFromApi() } + } + } + + // MARK: - State sync + + func refreshState() { + pushSubscriptionId = service.pushSubscriptionId + isPushEnabled = service.isPushEnabled + isInAppMessagesPaused = service.isInAppMessagesPaused + isLocationShared = service.isLocationShared + hasNotificationPermission = service.hasNotificationPermission + externalUserId = service.externalId + + let sdkTags = service.getTags() + tags = sdkTags.map { KeyValueItem(key: $0.key, value: $0.value) } + } + + func fetchUserDataFromApi() async { + guard let onesignalId = service.onesignalId else { return } + isLoading = true + defer { isLoading = false } + + if let userData = await UserFetchService.shared.fetchUser(appId: appId, onesignalId: onesignalId) { + aliases = userData.aliases.map { KeyValueItem(key: $0.key, value: $0.value) } + tags = userData.tags.map { KeyValueItem(key: $0.key, value: $0.value) } + emails = userData.emails + smsNumbers = userData.smsNumbers + if let extId = userData.externalId, !extId.isEmpty { + externalUserId = extId + } + } + try? await Task.sleep(nanoseconds: 100_000_000) + } + + // MARK: - Consent + + func setConsentRequired(_ required: Bool) { + consentRequired = required + service.consentRequired = required + UserDefaults.standard.set(required, forKey: "CachedConsentRequired") + if !required { + consentGiven = true + service.consentGiven = true + UserDefaults.standard.set(true, forKey: "CachedPrivacyConsent") + } + showToast(required ? "Consent required enabled" : "Consent required disabled") + } + + func setConsentGiven(_ granted: Bool) { + consentGiven = granted + service.consentGiven = granted + UserDefaults.standard.set(granted, forKey: "CachedPrivacyConsent") + showToast(granted ? "Consent given" : "Consent revoked") + } + + // MARK: - User + + func login(externalId: String) { + let trimmed = externalId.trimmingCharacters(in: .whitespacesAndNewlines) + guard !trimmed.isEmpty else { return } + isLoading = true + service.login(externalId: trimmed) + externalUserId = trimmed + clearUserData() + showToast("Logged in as \(trimmed)") + } + + func logout() { + service.logout() + externalUserId = nil + clearUserData() + showToast("Logged out") + } + + private func clearUserData() { + aliases.removeAll() + emails.removeAll() + smsNumbers.removeAll() + tags.removeAll() + triggers.removeAll() + } + + // MARK: - Aliases + + func addAlias(label: String, id: String) { + service.addAlias(label: label, id: id) + aliases.removeAll { $0.key == label } + aliases.append(KeyValueItem(key: label, value: id)) + showToast("Alias added") + } + + func addAliases(_ pairs: [(String, String)]) { + let dict = Dictionary(pairs, uniquingKeysWith: { _, last in last }) + service.addAliases(dict) + for (key, value) in pairs { + aliases.removeAll { $0.key == key } + aliases.append(KeyValueItem(key: key, value: value)) + } + showToast("\(pairs.count) alias(es) added") + } + + func removeAlias(_ item: KeyValueItem) { + service.removeAlias(item.key) + aliases.removeAll { $0.id == item.id } + showToast("Alias removed") + } + + // MARK: - Push + + func setPushEnabled(_ enabled: Bool) { + if enabled { + service.optInPush() + isPushEnabled = true + showToast("Push enabled") + } else { + service.optOutPush() + isPushEnabled = false + showToast("Push disabled") + } + } + + func promptPushPermission() { + service.requestPushPermission { [weak self] accepted in + Task { @MainActor in + self?.hasNotificationPermission = accepted + self?.isPushEnabled = accepted + self?.showToast(accepted ? "Push permission granted" : "Push permission denied") + } + } + } + + // MARK: - Email + + func addEmail(_ email: String) { + service.addEmail(email) + if !emails.contains(email) { emails.append(email) } + showToast("Email added") + } + + func removeEmail(_ email: String) { + service.removeEmail(email) + emails.removeAll { $0 == email } + showToast("Email removed") + } + + // MARK: - SMS + + func addSms(_ number: String) { + service.addSms(number) + if !smsNumbers.contains(number) { smsNumbers.append(number) } + showToast("SMS added") + } + + func removeSms(_ number: String) { + service.removeSms(number) + smsNumbers.removeAll { $0 == number } + showToast("SMS removed") + } + + // MARK: - Tags + + func addTag(key: String, value: String) { + service.addTag(key: key, value: value) + tags.removeAll { $0.key == key } + tags.append(KeyValueItem(key: key, value: value)) + showToast("Tag added") + } + + func addTags(_ pairs: [(String, String)]) { + let dict = Dictionary(pairs, uniquingKeysWith: { _, last in last }) + service.addTags(dict) + for (key, value) in pairs { + tags.removeAll { $0.key == key } + tags.append(KeyValueItem(key: key, value: value)) + } + showToast("\(pairs.count) tag(s) added") + } + + func removeTag(_ item: KeyValueItem) { + service.removeTag(item.key) + tags.removeAll { $0.id == item.id } + showToast("Tag removed") + } + + func removeSelectedTags(_ keys: [String]) { + guard !keys.isEmpty else { return } + service.removeTags(keys) + tags.removeAll { keys.contains($0.key) } + showToast("\(keys.count) tag(s) removed") + } + + // MARK: - Outcomes + + func sendOutcome(_ name: String) { + service.sendOutcome(name) + showToast("Outcome sent: \(name)") + } + + func sendUniqueOutcome(_ name: String) { + service.sendUniqueOutcome(name) + showToast("Unique outcome sent: \(name)") + } + + func sendOutcome(_ name: String, value: Double) { + service.sendOutcome(name, value: NSNumber(value: value)) + showToast("Outcome sent: \(name) = \(value)") + } + + // MARK: - In-App + + func setIamPaused(_ paused: Bool) { + isInAppMessagesPaused = paused + service.isInAppMessagesPaused = paused + showToast(paused ? "In-app messages paused" : "In-app messages resumed") + } + + func sendIamTrigger(_ type: InAppMessageType) { + service.addTrigger(key: "iam_type", value: type.triggerValue) + triggers.removeAll { $0.key == "iam_type" } + triggers.append(KeyValueItem(key: "iam_type", value: type.triggerValue)) + showToast("Sent IAM trigger: \(type.rawValue)") + } + + // MARK: - Triggers + + func addTrigger(key: String, value: String) { + service.addTrigger(key: key, value: value) + triggers.removeAll { $0.key == key } + triggers.append(KeyValueItem(key: key, value: value)) + showToast("Trigger added") + } + + func addTriggers(_ pairs: [(String, String)]) { + let dict = Dictionary(pairs, uniquingKeysWith: { _, last in last }) + service.addTriggers(dict) + for (key, value) in pairs { + triggers.removeAll { $0.key == key } + triggers.append(KeyValueItem(key: key, value: value)) + } + showToast("\(pairs.count) trigger(s) added") + } + + func removeTrigger(_ item: KeyValueItem) { + service.removeTrigger(item.key) + triggers.removeAll { $0.id == item.id } + showToast("Trigger removed") + } + + func removeSelectedTriggers(_ keys: [String]) { + guard !keys.isEmpty else { return } + service.removeTriggers(keys) + triggers.removeAll { keys.contains($0.key) } + showToast("\(keys.count) trigger(s) removed") + } + + func clearTriggers() { + service.clearTriggers() + triggers.removeAll() + showToast("All triggers cleared") + } + + // MARK: - Custom Events + + func trackEvent(name: String, properties: [String: Any]?) { + service.trackEvent(name: name, properties: properties) + showToast("Event tracked: \(name)") + } + + // MARK: - Location + + func setLocationShared(_ shared: Bool) { + isLocationShared = shared + service.isLocationShared = shared + showToast(shared ? "Location sharing enabled" : "Location sharing disabled") + } + + func promptLocation() { + service.requestLocationPermission() + showToast("Location permission requested") + } + + func checkLocationShared() { + let shared = service.isLocationShared + showToast("Location shared: \(shared)") + } + + // MARK: - Notifications + + func clearAllNotifications() { + service.clearAllNotifications() + showToast("All notifications cleared") + } + + func sendNotification(_ type: NotificationType) { + guard let subscriptionId = service.pushSubscriptionId, !subscriptionId.isEmpty else { + showToast("No push subscription") + return + } + showToast("Sending \(type.rawValue) notification...") + NotificationSender.shared.sendNotification(type, appId: appId, subscriptionId: subscriptionId) { [weak self] result in + Task { @MainActor in + switch result { + case .success: + self?.showToast("\(type.rawValue) sent!") + case .failure(let error): + self?.showToast("Send failed: \(error.localizedDescription)") + } + } + } + } + + func sendCustomNotification(title: String, body: String) { + guard let subscriptionId = service.pushSubscriptionId, !subscriptionId.isEmpty else { + showToast("No push subscription") + return + } + NotificationSender.shared.sendCustomNotification(title: title, body: body, appId: appId, subscriptionId: subscriptionId) { [weak self] result in + Task { @MainActor in + switch result { + case .success: + self?.showToast("Custom notification sent") + case .failure(let error): + self?.showToast("Send failed: \(error.localizedDescription)") + } + } + } + } + + // MARK: - Live Activities + + func startLiveActivity(activityId: String, orderNumber: String, status: LiveActivityStatus) { + let trimmedId = activityId.trimmingCharacters(in: .whitespacesAndNewlines) + guard !trimmedId.isEmpty else { + showToast("Activity ID required") + return + } + if #available(iOS 16.1, *) { + LiveActivityController.start( + activityId: trimmedId, + orderNumber: orderNumber, + status: status + ) + showToast("Live Activity '\(trimmedId)' started") + } else { + showToast("Live Activities require iOS 16.1+") + } + } + + func updateLiveActivity(activityId: String, status: LiveActivityStatus) { + let trimmedId = activityId.trimmingCharacters(in: .whitespacesAndNewlines) + guard !trimmedId.isEmpty else { return } + showToast("Updating Live Activity...") + Task { + let success = await LiveActivityController.update( + appId: appId, + activityId: trimmedId, + status: status + ) + await MainActor.run { + showToast(success ? "Live Activity updated" : "Update failed") + } + } + } + + func endLiveActivity(activityId: String) { + let trimmedId = activityId.trimmingCharacters(in: .whitespacesAndNewlines) + guard !trimmedId.isEmpty else { return } + showToast("Ending Live Activity...") + Task { + let success = await LiveActivityController.end( + appId: appId, + activityId: trimmedId + ) + await MainActor.run { + showToast(success ? "Live Activity ended" : "End failed") + } + } + } + + // MARK: - Tooltips + + func showTooltip(for key: String) { + if let tooltip = TooltipService.shared.tooltip(for: key) { + activeTooltip = tooltip + } + } + + func dismissTooltip() { + activeTooltip = nil + } + + // MARK: - Sheet handling + + func showAddSheet(for type: AddItemType) { + addItemType = type + showingAddSheet = true + } + + func showMultiAddSheet(for type: MultiAddItemType) { + multiAddType = type + showingMultiAddSheet = true + } + + func showRemoveMultiSheet(for type: RemoveMultiItemType) { + removeMultiType = type + showingRemoveMultiSheet = true + } + + func handleAddItem(key: String, value: String) { + switch addItemType { + case .alias: + addAlias(label: key, id: value) + case .email: + addEmail(value) + case .sms: + addSms(value) + case .tag: + addTag(key: key, value: value) + case .trigger: + addTrigger(key: key, value: value) + case .externalUserId: + login(externalId: value) + } + showingAddSheet = false + } + + func handleMultiAdd(_ pairs: [(String, String)]) { + switch multiAddType { + case .aliases: addAliases(pairs) + case .tags: addTags(pairs) + case .triggers: addTriggers(pairs) + } + showingMultiAddSheet = false + } + + func handleRemoveMulti(_ keys: [String]) { + switch removeMultiType { + case .tags: removeSelectedTags(keys) + case .triggers: removeSelectedTriggers(keys) + } + showingRemoveMultiSheet = false + } + + // MARK: - Toast + + func showToast(_ message: String) { + toastMessage = message + Task { + try? await Task.sleep(nanoseconds: 2_000_000_000) + if toastMessage == message { toastMessage = nil } + } + } + + // MARK: - Observers + + private func setupObservers() { + observers.viewModel = self + service.addPushSubscriptionObserver(observers) + service.addUserObserver(observers) + service.addPermissionObserver(observers) + } +} + +// MARK: - Observer Bridge + +private final class Observers: NSObject, OSPushSubscriptionObserver, OSUserStateObserver, OSNotificationPermissionObserver { + weak var viewModel: OneSignalViewModel? + + func onPushSubscriptionDidChange(state: OSPushSubscriptionChangedState) { + Task { @MainActor in + viewModel?.pushSubscriptionId = state.current.id + viewModel?.isPushEnabled = state.current.optedIn + } + } + + func onUserStateDidChange(state: OSUserChangedState) { + Task { @MainActor in + await viewModel?.fetchUserDataFromApi() + } + } + + func onNotificationPermissionDidChange(_ permission: Bool) { + Task { @MainActor in + viewModel?.hasNotificationPermission = permission + viewModel?.isPushEnabled = OneSignal.User.pushSubscription.optedIn + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/ActionButton.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/ActionButton.swift new file mode 100644 index 000000000..b54132aac --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/ActionButton.swift @@ -0,0 +1,106 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Visual treatment of an action button +enum ActionButtonStyle { + case filled + case outline +} + +/// Standard wide button used by sections (mirrors the Capacitor demo's ActionButton) +struct ActionButton: View { + let title: String + let style: ActionButtonStyle + let icon: Image? + let isDisabled: Bool + let accessibilityID: String + let action: () -> Void + + init( + _ title: String, + style: ActionButtonStyle = .filled, + icon: Image? = nil, + isDisabled: Bool = false, + accessibilityID: String, + action: @escaping () -> Void + ) { + self.title = title + self.style = style + self.icon = icon + self.isDisabled = isDisabled + self.accessibilityID = accessibilityID + self.action = action + } + + var body: some View { + Button(action: action) { + HStack(spacing: 8) { + if let icon = icon { + icon + } + Text(title) + .fontWeight(.semibold) + .lineLimit(1) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 12) + .background(backgroundColor) + .foregroundColor(foregroundColor) + .overlay(border) + .cornerRadius(10) + } + .buttonStyle(.plain) + .disabled(isDisabled) + .opacity(isDisabled ? 0.5 : 1) + .padding(.top, 4) + .accessibilityIdentifier(accessibilityID) + } + + private var backgroundColor: Color { + switch style { + case .filled: return Color.accentColor + case .outline: return Color.clear + } + } + + private var foregroundColor: Color { + switch style { + case .filled: return .white + case .outline: return Color.accentColor + } + } + + @ViewBuilder + private var border: some View { + if case .outline = style { + RoundedRectangle(cornerRadius: 10) + .strokeBorder(Color.accentColor, lineWidth: 1) + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift new file mode 100644 index 000000000..e569dc254 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift @@ -0,0 +1,104 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Reusable sheet for adding items with one or two text fields +struct AddItemSheet: View { + let itemType: AddItemType + let onAdd: (String, String) -> Void + let onCancel: () -> Void + + @State private var keyText: String = "" + @State private var valueText: String = "" + @FocusState private var focusedField: Field? + + private enum Field { case key, value } + + var body: some View { + NavigationStack { + Form { + if itemType.requiresKeyValue { + Section { + TextField(itemType.keyPlaceholder, text: $keyText) + .focused($focusedField, equals: .key) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .accessibilityIdentifier("\(itemType.accessibilityKey)_key_input") + + TextField(itemType.valuePlaceholder, text: $valueText) + .focused($focusedField, equals: .value) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .keyboardType(itemType.keyboardType) + .accessibilityIdentifier("\(itemType.accessibilityKey)_value_input") + } + } else { + Section { + TextField(itemType.valuePlaceholder, text: $valueText) + .focused($focusedField, equals: .value) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .keyboardType(itemType.keyboardType) + .accessibilityIdentifier("\(itemType.accessibilityKey)_input") + } + } + } + .navigationTitle(itemType.title) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button("Cancel", action: onCancel) + .accessibilityIdentifier("singleinput_cancel_button") + } + ToolbarItem(placement: .confirmationAction) { + Button(itemType.confirmLabel) { + onAdd( + keyText.trimmingCharacters(in: .whitespaces), + valueText.trimmingCharacters(in: .whitespaces) + ) + } + .disabled(!isValid) + .accessibilityIdentifier("singleinput_confirm_button") + } + } + .onAppear { + focusedField = itemType.requiresKeyValue ? .key : .value + } + } + .presentationDetents([.medium]) + .presentationDragIndicator(.visible) + } + + private var isValid: Bool { + if itemType.requiresKeyValue { + return !keyText.trimmingCharacters(in: .whitespaces).isEmpty && + !valueText.trimmingCharacters(in: .whitespaces).isEmpty + } + return !valueText.trimmingCharacters(in: .whitespaces).isEmpty + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift new file mode 100644 index 000000000..34ee16c42 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift @@ -0,0 +1,79 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Sheet for composing a custom push notification (title + body) +struct CustomNotificationSheet: View { + let onSend: (String, String) -> Void + let onCancel: () -> Void + + @State private var titleText: String = "" + @State private var bodyText: String = "" + + var body: some View { + NavigationStack { + Form { + Section { + TextField("Title", text: $titleText) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .accessibilityIdentifier("custom_notification_title_input") + TextField("Body", text: $bodyText) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .accessibilityIdentifier("custom_notification_body_input") + } + } + .navigationTitle("Custom Notification") + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button("Cancel", action: onCancel) + .accessibilityIdentifier("custom_notification_cancel_button") + } + ToolbarItem(placement: .confirmationAction) { + Button("Send") { + onSend( + titleText.trimmingCharacters(in: .whitespaces), + bodyText.trimmingCharacters(in: .whitespaces) + ) + } + .disabled(!isValid) + .accessibilityIdentifier("custom_notification_send_button") + } + } + } + .presentationDetents([.medium]) + .presentationDragIndicator(.visible) + } + + private var isValid: Bool { + !titleText.trimmingCharacters(in: .whitespaces).isEmpty && + !bodyText.trimmingCharacters(in: .whitespaces).isEmpty + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift new file mode 100644 index 000000000..6238b805e --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift @@ -0,0 +1,57 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Single label/value horizontal row used inside the App / User / Push info cards +struct InfoRow: View { + let label: String + let value: String + let valueAccessibilityID: String? + let isMonospaced: Bool + + init(label: String, value: String, valueAccessibilityID: String? = nil, isMonospaced: Bool = false) { + self.label = label + self.value = value + self.valueAccessibilityID = valueAccessibilityID + self.isMonospaced = isMonospaced + } + + var body: some View { + HStack { + Text(label) + .foregroundColor(.secondary) + Spacer() + Text(value) + .font(isMonospaced ? .system(.body, design: .monospaced) : .body) + .foregroundColor(.primary) + .lineLimit(1) + .truncationMode(.middle) + .accessibilityIdentifier(valueAccessibilityID ?? "") + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/ListWidgets.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/ListWidgets.swift new file mode 100644 index 000000000..ce9c1cc54 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/ListWidgets.swift @@ -0,0 +1,148 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// List of pair items (key + value with optional remove button) +struct PairList: View { + let items: [KeyValueItem] + let emptyText: String + let sectionKey: String + let onRemove: ((String) -> Void)? + + init( + items: [KeyValueItem], + emptyText: String, + sectionKey: String, + onRemove: ((String) -> Void)? = nil + ) { + self.items = items + self.emptyText = emptyText + self.sectionKey = sectionKey + self.onRemove = onRemove + } + + var body: some View { + Group { + if items.isEmpty { + Text(emptyText) + .foregroundColor(.secondary) + .font(.subheadline) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.vertical, 12) + .background(Color(.systemBackground)) + .cornerRadius(8) + .accessibilityIdentifier("\(sectionKey)_empty") + } else { + VStack(spacing: 0) { + ForEach(items.indices, id: \.self) { index in + let item = items[index] + HStack(alignment: .center) { + VStack(alignment: .leading, spacing: 2) { + Text(item.key) + .font(.caption) + .foregroundColor(.secondary) + .accessibilityIdentifier("\(sectionKey)_pair_key_\(item.key)") + Text(item.value) + .font(.body) + .accessibilityIdentifier("\(sectionKey)_pair_value_\(item.key)") + } + Spacer() + if let onRemove = onRemove { + Button { + onRemove(item.key) + } label: { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.secondary) + } + .buttonStyle(.plain) + .accessibilityIdentifier("\(sectionKey)_remove_\(item.key)") + } + } + .padding(12) + if index < items.count - 1 { + Divider().padding(.leading, 12) + } + } + } + .background(Color(.systemBackground)) + .cornerRadius(8) + } + } + } +} + +/// List of single-string items with optional remove button (emails, sms numbers) +struct SingleList: View { + let items: [String] + let emptyText: String + let sectionKey: String + let onRemove: ((String) -> Void)? + + var body: some View { + Group { + if items.isEmpty { + Text(emptyText) + .foregroundColor(.secondary) + .font(.subheadline) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.vertical, 12) + .background(Color(.systemBackground)) + .cornerRadius(8) + .accessibilityIdentifier("\(sectionKey)_empty") + } else { + VStack(spacing: 0) { + ForEach(items.indices, id: \.self) { index in + let item = items[index] + HStack { + Text(item) + .font(.body) + .accessibilityIdentifier("\(sectionKey)_value_\(item)") + Spacer() + if let onRemove = onRemove { + Button { + onRemove(item) + } label: { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.secondary) + } + .buttonStyle(.plain) + .accessibilityIdentifier("\(sectionKey)_remove_\(item)") + } + } + .padding(12) + if index < items.count - 1 { + Divider().padding(.leading, 12) + } + } + } + .background(Color(.systemBackground)) + .cornerRadius(8) + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/MultiPairInputSheet.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/MultiPairInputSheet.swift new file mode 100644 index 000000000..94fe426ff --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/MultiPairInputSheet.swift @@ -0,0 +1,110 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Sheet that adds multiple key/value pairs at once (Add Multiple Aliases / Tags / Triggers) +struct MultiPairInputSheet: View { + let type: MultiAddItemType + let onAdd: ([(String, String)]) -> Void + let onCancel: () -> Void + + @State private var rows: [Row] = [Row()] + + struct Row: Identifiable { + let id = UUID() + var key: String = "" + var value: String = "" + } + + var body: some View { + NavigationStack { + Form { + ForEach(rows.indices, id: \.self) { index in + Section { + TextField(type.keyPlaceholder, text: $rows[index].key) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .accessibilityIdentifier("multipair_key_\(index)") + TextField(type.valuePlaceholder, text: $rows[index].value) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .accessibilityIdentifier("multipair_value_\(index)") + if rows.count > 1 { + Button(role: .destructive) { + rows.remove(at: index) + } label: { + Label("Remove Row", systemImage: "minus.circle") + } + .accessibilityIdentifier("multipair_remove_row_\(index)") + } + } + } + + Section { + Button { + rows.append(Row()) + } label: { + Label("Add Row", systemImage: "plus.circle") + } + .accessibilityIdentifier("multipair_add_row_button") + } + } + .navigationTitle(type.rawValue) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button("Cancel", action: onCancel) + .accessibilityIdentifier("multipair_cancel_button") + } + ToolbarItem(placement: .confirmationAction) { + Button("Add All") { + let pairs = rows.compactMap { row -> (String, String)? in + let key = row.key.trimmingCharacters(in: .whitespaces) + let value = row.value.trimmingCharacters(in: .whitespaces) + guard !key.isEmpty, !value.isEmpty else { return nil } + return (key, value) + } + onAdd(pairs) + } + .disabled(!isValid) + .accessibilityIdentifier("multipair_confirm_button") + } + } + } + .presentationDetents([.large]) + .presentationDragIndicator(.visible) + } + + private var isValid: Bool { + guard !rows.isEmpty else { return false } + return rows.allSatisfy { row in + !row.key.trimmingCharacters(in: .whitespaces).isEmpty && + !row.value.trimmingCharacters(in: .whitespaces).isEmpty + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/OutcomeSheet.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/OutcomeSheet.swift new file mode 100644 index 000000000..9cee736da --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/OutcomeSheet.swift @@ -0,0 +1,104 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Sheet for sending an outcome (normal, unique, or with value) +struct OutcomeSheet: View { + let onSend: (String, OutcomeMode, Double?) -> Void + let onCancel: () -> Void + + @State private var mode: OutcomeMode = .normal + @State private var name: String = "" + @State private var valueText: String = "" + + var body: some View { + NavigationStack { + Form { + Section("Type") { + ForEach(OutcomeMode.allCases) { option in + Button { + mode = option + } label: { + HStack { + Image(systemName: mode == option ? "largecircle.fill.circle" : "circle") + .foregroundColor(.accentColor) + Text(option.rawValue) + .foregroundColor(.primary) + Spacer() + } + } + .accessibilityIdentifier("outcome_type_\(option.accessibilityKey)_radio") + } + } + + Section { + TextField("Outcome Name", text: $name) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .accessibilityIdentifier("outcome_name_input") + } + + if mode == .value { + Section { + TextField("Outcome Value", text: $valueText) + .keyboardType(.decimalPad) + .accessibilityIdentifier("outcome_value_input") + } + } + } + .navigationTitle("Send Outcome") + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button("Cancel", action: onCancel) + .accessibilityIdentifier("outcome_cancel_button") + } + ToolbarItem(placement: .confirmationAction) { + Button("Send") { + let trimmed = name.trimmingCharacters(in: .whitespaces) + let value: Double? = mode == .value ? Double(valueText) : nil + onSend(trimmed, mode, value) + } + .disabled(!isValid) + .accessibilityIdentifier("outcome_send_button") + } + } + } + .presentationDetents([.medium, .large]) + .presentationDragIndicator(.visible) + } + + private var isValid: Bool { + let trimmedName = name.trimmingCharacters(in: .whitespaces) + guard !trimmedName.isEmpty else { return false } + if mode == .value { + return Double(valueText) != nil + } + return true + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift new file mode 100644 index 000000000..47babe200 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift @@ -0,0 +1,96 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Sheet that lets the user pick multiple keys to remove (Remove Tags / Remove Triggers) +struct RemoveMultiSheet: View { + let type: RemoveMultiItemType + let items: [KeyValueItem] + let onRemove: ([String]) -> Void + let onCancel: () -> Void + + @State private var selected: Set = [] + + var body: some View { + NavigationStack { + Group { + if items.isEmpty { + VStack(spacing: 12) { + Image(systemName: "tray") + .font(.largeTitle) + .foregroundColor(.secondary) + Text("Nothing to remove") + .foregroundColor(.secondary) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + .accessibilityIdentifier("remove_multi_empty") + } else { + Form { + ForEach(items) { item in + Toggle(isOn: Binding( + get: { selected.contains(item.key) }, + set: { isOn in + if isOn { + selected.insert(item.key) + } else { + selected.remove(item.key) + } + } + )) { + VStack(alignment: .leading) { + Text(item.key) + Text(item.value) + .font(.caption) + .foregroundColor(.secondary) + } + } + .accessibilityIdentifier("remove_checkbox_\(item.key)") + } + } + } + } + .navigationTitle(type.rawValue) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button("Cancel", action: onCancel) + .accessibilityIdentifier("multiselect_cancel_button") + } + ToolbarItem(placement: .confirmationAction) { + Button("Remove (\(selected.count))") { + onRemove(Array(selected)) + } + .disabled(selected.isEmpty) + .accessibilityIdentifier("multiselect_confirm_button") + } + } + } + .presentationDetents([.medium, .large]) + .presentationDragIndicator(.visible) + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/SectionCard.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/SectionCard.swift new file mode 100644 index 000000000..28ce109c8 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/SectionCard.swift @@ -0,0 +1,122 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Card with a section title (ALL CAPS) and optional info icon. Mirrors the Capacitor SectionCard. +struct SectionCard: View { + let title: String + let sectionKey: String + let onInfoTap: (() -> Void)? + @ViewBuilder let content: () -> Content + + init( + title: String, + sectionKey: String, + onInfoTap: (() -> Void)? = nil, + @ViewBuilder content: @escaping () -> Content + ) { + self.title = title + self.sectionKey = sectionKey + self.onInfoTap = onInfoTap + self.content = content + } + + var body: some View { + VStack(alignment: .leading, spacing: 10) { + HStack { + Text(title.uppercased()) + .font(.subheadline.weight(.bold)) + .kerning(0.5) + .foregroundColor(.secondary) + Spacer() + if let onInfoTap = onInfoTap { + Button(action: onInfoTap) { + Image(systemName: "info.circle") + .imageScale(.medium) + .foregroundColor(.accentColor) + } + .buttonStyle(.plain) + .accessibilityIdentifier("\(sectionKey)_info_icon") + } + } + + content() + } + .padding(16) + .background(Color(.secondarySystemGroupedBackground)) + .cornerRadius(12) + .padding(.vertical, 6) + .accessibilityIdentifier("\(sectionKey)_section") + } +} + +/// Generic value card used at the top of sections (App ID, Push ID, Status, etc.) +struct ValueCard: View { + struct Row { + let label: String + let value: String + let valueAccessibilityID: String? + let monospaced: Bool + + init(label: String, value: String, valueAccessibilityID: String? = nil, monospaced: Bool = false) { + self.label = label + self.value = value + self.valueAccessibilityID = valueAccessibilityID + self.monospaced = monospaced + } + } + + let rows: [Row] + + var body: some View { + VStack(spacing: 0) { + ForEach(rows.indices, id: \.self) { index in + let row = rows[index] + HStack { + Text(row.label) + .foregroundColor(.secondary) + Spacer() + Text(row.value) + .font(row.monospaced ? .system(.footnote, design: .monospaced) : .body) + .foregroundColor(.primary) + .lineLimit(1) + .truncationMode(.middle) + .accessibilityIdentifier(row.valueAccessibilityID ?? "") + } + .padding(.vertical, 12) + .padding(.horizontal, 12) + + if index < rows.count - 1 { + Divider().padding(.leading, 12) + } + } + } + .background(Color(.systemBackground)) + .cornerRadius(8) + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/ToastView.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/ToastView.swift new file mode 100644 index 000000000..9c3845699 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/ToastView.swift @@ -0,0 +1,81 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// A toast notification view that appears at the bottom of the screen +struct ToastView: View { + let message: String + + var body: some View { + Text(message) + .font(.subheadline) + .foregroundColor(.white) + .padding(.horizontal, 16) + .padding(.vertical, 12) + .background(Color.black.opacity(0.8)) + .cornerRadius(8) + .shadow(radius: 4) + .accessibilityIdentifier("snackbar_toast") + } +} + +/// A view modifier that overlays a toast message +struct ToastModifier: ViewModifier { + @Binding var message: String? + + func body(content: Content) -> some View { + ZStack { + content + + if let message = message { + VStack { + Spacer() + ToastView(message: message) + .padding(.bottom, 32) + .transition(.move(edge: .bottom).combined(with: .opacity)) + } + .animation(.easeInOut(duration: 0.3), value: message) + } + } + } +} + +extension View { + /// Adds a toast overlay to the view + func toast(message: Binding) -> some View { + modifier(ToastModifier(message: message)) + } +} + +#Preview { + VStack { + Text("Content") + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + .toast(message: .constant("This is a toast message")) +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/ToggleRow.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/ToggleRow.swift new file mode 100644 index 000000000..a03665fba --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/ToggleRow.swift @@ -0,0 +1,72 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Bordered toggle row with label + supporting subtitle (matches the Capacitor ToggleRow) +struct ToggleRow: View { + let label: String + let description: String? + let isOn: Binding + let isDisabled: Bool + let accessibilityID: String + + init( + label: String, + description: String? = nil, + isOn: Binding, + isDisabled: Bool = false, + accessibilityID: String + ) { + self.label = label + self.description = description + self.isOn = isOn + self.isDisabled = isDisabled + self.accessibilityID = accessibilityID + } + + var body: some View { + HStack(alignment: .center) { + VStack(alignment: .leading, spacing: 2) { + Text(label) + if let description = description { + Text(description) + .font(.caption) + .foregroundColor(.secondary) + } + } + Spacer() + Toggle("", isOn: isOn) + .labelsHidden() + .disabled(isDisabled) + .accessibilityIdentifier(accessibilityID) + } + .padding(12) + .background(Color(.systemBackground)) + .cornerRadius(8) + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/TooltipSheet.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/TooltipSheet.swift new file mode 100644 index 000000000..c4c6b0d1a --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/TooltipSheet.swift @@ -0,0 +1,71 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Simple info sheet shown when the user taps a section's info icon +struct TooltipSheet: View { + let tooltip: TooltipData + let onClose: () -> Void + + var body: some View { + NavigationStack { + ScrollView { + VStack(alignment: .leading, spacing: 16) { + Text(tooltip.description) + .font(.body) + .accessibilityIdentifier("tooltip_description") + + if let options = tooltip.options, !options.isEmpty { + Divider() + ForEach(options, id: \.name) { option in + VStack(alignment: .leading, spacing: 4) { + Text(option.name) + .font(.subheadline.weight(.semibold)) + Text(option.description) + .font(.body) + .foregroundColor(.secondary) + } + } + } + } + .padding() + } + .navigationTitle(tooltip.title) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .confirmationAction) { + Button("OK", action: onClose) + .accessibilityIdentifier("tooltip_ok_button") + } + } + } + .presentationDetents([.medium, .large]) + .presentationDragIndicator(.visible) + .accessibilityIdentifier("tooltip_sheet") + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift b/examples/demo/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift new file mode 100644 index 000000000..e5fa0a5af --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift @@ -0,0 +1,107 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Sheet that captures an event name plus an optional JSON properties payload +struct TrackEventSheet: View { + let onTrack: (String, [String: Any]?) -> Void + let onCancel: () -> Void + + @State private var name: String = "" + @State private var propertiesText: String = "" + @State private var error: String? + + var body: some View { + NavigationStack { + Form { + Section { + TextField("Event Name", text: $name) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .accessibilityIdentifier("event_name_input") + } + + Section("Properties (JSON, optional)") { + TextEditor(text: $propertiesText) + .frame(minHeight: 120) + .font(.system(.body, design: .monospaced)) + .autocorrectionDisabled() + .accessibilityIdentifier("event_properties_input") + + if let error = error { + Text(error) + .font(.caption) + .foregroundColor(.red) + .accessibilityIdentifier("event_properties_error") + } + } + } + .navigationTitle("Track Event") + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button("Cancel", action: onCancel) + .accessibilityIdentifier("event_cancel_button") + } + ToolbarItem(placement: .confirmationAction) { + Button("Track") { submit() } + .disabled(!isValid) + .accessibilityIdentifier("event_track_button") + } + } + } + .presentationDetents([.medium, .large]) + .presentationDragIndicator(.visible) + } + + private var isValid: Bool { + !name.trimmingCharacters(in: .whitespaces).isEmpty + } + + private func submit() { + let trimmedName = name.trimmingCharacters(in: .whitespaces) + let trimmedProps = propertiesText.trimmingCharacters(in: .whitespaces) + + if trimmedProps.isEmpty { + onTrack(trimmedName, nil) + return + } + + guard let data = trimmedProps.data(using: .utf8), + let json = try? JSONSerialization.jsonObject(with: data) else { + error = "Properties must be valid JSON" + return + } + guard let dict = json as? [String: Any] else { + error = "Properties must be a JSON object" + return + } + error = nil + onTrack(trimmedName, dict) + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/ContentView.swift b/examples/demo/OneSignalSwiftUIExample/Views/ContentView.swift new file mode 100644 index 000000000..284ec57c8 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/ContentView.swift @@ -0,0 +1,158 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Root view composing every section in the same order as the Capacitor demo +/// and wiring the modal sheets to the view-model state. +struct ContentView: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + NavigationStack { + ScrollView { + VStack(spacing: 4) { + AppSection() + UserSection() + PushSection() + SendPushSection() + InAppSection() + SendIamSection() + AliasesSection() + EmailsSection() + SmsSection() + TagsSection() + OutcomesSection() + TriggersSection() + CustomEventsSection() + LocationSection() + LiveActivitySection() + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + .accessibilityIdentifier("main_scroll_view") + } + .background(Color(.systemGroupedBackground).ignoresSafeArea()) + .navigationTitle("OneSignal") + .navigationBarTitleDisplayMode(.inline) + .toolbar { toolbarContent } + } + .sheet(isPresented: $viewModel.showingAddSheet) { + AddItemSheet( + itemType: viewModel.addItemType, + onAdd: { key, value in viewModel.handleAddItem(key: key, value: value) }, + onCancel: { viewModel.showingAddSheet = false } + ) + } + .sheet(isPresented: $viewModel.showingMultiAddSheet) { + MultiPairInputSheet( + type: viewModel.multiAddType, + onAdd: { pairs in viewModel.handleMultiAdd(pairs) }, + onCancel: { viewModel.showingMultiAddSheet = false } + ) + } + .sheet(isPresented: $viewModel.showingRemoveMultiSheet) { + RemoveMultiSheet( + type: viewModel.removeMultiType, + items: viewModel.removeMultiItems, + onRemove: { keys in viewModel.handleRemoveMulti(keys) }, + onCancel: { viewModel.showingRemoveMultiSheet = false } + ) + } + .sheet(isPresented: $viewModel.showingOutcomeSheet) { + OutcomeSheet( + onSend: { name, mode, value in + switch mode { + case .normal: + viewModel.sendOutcome(name) + case .unique: + viewModel.sendUniqueOutcome(name) + case .value: + if let value = value { + viewModel.sendOutcome(name, value: value) + } + } + viewModel.showingOutcomeSheet = false + }, + onCancel: { viewModel.showingOutcomeSheet = false } + ) + } + .sheet(isPresented: $viewModel.showingCustomNotificationSheet) { + CustomNotificationSheet( + onSend: { title, body in + viewModel.sendCustomNotification(title: title, body: body) + viewModel.showingCustomNotificationSheet = false + }, + onCancel: { viewModel.showingCustomNotificationSheet = false } + ) + } + .sheet(isPresented: $viewModel.showingTrackEventSheet) { + TrackEventSheet( + onTrack: { name, properties in + viewModel.trackEvent(name: name, properties: properties) + viewModel.showingTrackEventSheet = false + }, + onCancel: { viewModel.showingTrackEventSheet = false } + ) + } + .sheet( + isPresented: Binding( + get: { viewModel.activeTooltip != nil }, + set: { isPresented in if !isPresented { viewModel.dismissTooltip() } } + ) + ) { + if let tooltip = viewModel.activeTooltip { + TooltipSheet(tooltip: tooltip, onClose: { viewModel.dismissTooltip() }) + } + } + .toast(message: $viewModel.toastMessage) + } + + @ToolbarContentBuilder + private var toolbarContent: some ToolbarContent { + ToolbarItem(placement: .navigationBarTrailing) { + Button { + Task { + await viewModel.fetchUserDataFromApi() + viewModel.refreshState() + } + } label: { + if viewModel.isLoading { + ProgressView() + } else { + Image(systemName: "arrow.clockwise") + } + } + .accessibilityIdentifier("refresh_button") + } + } +} + +#Preview { + ContentView() + .environmentObject(OneSignalViewModel()) +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/AliasesSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/AliasesSection.swift new file mode 100644 index 000000000..1e64f36d9 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/AliasesSection.swift @@ -0,0 +1,58 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +struct AliasesSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "ALIASES", + sectionKey: "aliases", + onInfoTap: { viewModel.showTooltip(for: "aliases") } + ) { + PairList( + items: viewModel.aliases, + emptyText: "No Aliases Added", + sectionKey: "aliases", + onRemove: { key in + if let item = viewModel.aliases.first(where: { $0.key == key }) { + viewModel.removeAlias(item) + } + } + ) + + ActionButton("ADD", accessibilityID: "add_alias_button") { + viewModel.showAddSheet(for: .alias) + } + ActionButton("ADD MULTIPLE", accessibilityID: "add_multiple_aliases_button") { + viewModel.showMultiAddSheet(for: .aliases) + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/AppSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/AppSection.swift new file mode 100644 index 000000000..2b772ae91 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/AppSection.swift @@ -0,0 +1,68 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// App ID display + consent toggles, mirroring the Capacitor AppSection +struct AppSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard(title: "APP", sectionKey: "app") { + ValueCard(rows: [ + ValueCard.Row( + label: "App ID", + value: viewModel.appId, + valueAccessibilityID: "app_id_value", + monospaced: true + ) + ]) + + ToggleRow( + label: "Consent Required", + description: "Require consent before SDK processes data", + isOn: Binding( + get: { viewModel.consentRequired }, + set: { viewModel.setConsentRequired($0) } + ), + accessibilityID: "consent_required_toggle" + ) + + if viewModel.consentRequired { + ToggleRow( + label: "Privacy Consent", + description: "Consent given for data collection", + isOn: Binding( + get: { viewModel.consentGiven }, + set: { viewModel.setConsentGiven($0) } + ), + accessibilityID: "privacy_consent_toggle" + ) + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/CustomEventsSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/CustomEventsSection.swift new file mode 100644 index 000000000..547df9ef3 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/CustomEventsSection.swift @@ -0,0 +1,44 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +struct CustomEventsSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "CUSTOM EVENTS", + sectionKey: "custom_events", + onInfoTap: { viewModel.showTooltip(for: "customEvents") } + ) { + ActionButton("TRACK EVENT", accessibilityID: "track_event_button") { + viewModel.showingTrackEventSheet = true + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/EmailsSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/EmailsSection.swift new file mode 100644 index 000000000..619779282 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/EmailsSection.swift @@ -0,0 +1,51 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +struct EmailsSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "EMAILS", + sectionKey: "emails", + onInfoTap: { viewModel.showTooltip(for: "emails") } + ) { + SingleList( + items: viewModel.emails, + emptyText: "No emails added", + sectionKey: "emails", + onRemove: { viewModel.removeEmail($0) } + ) + + ActionButton("ADD EMAIL", accessibilityID: "add_email_button") { + viewModel.showAddSheet(for: .email) + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/InAppSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/InAppSection.swift new file mode 100644 index 000000000..84aa00ee4 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/InAppSection.swift @@ -0,0 +1,51 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// In-app messaging pause toggle +struct InAppSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "IN-APP MESSAGING", + sectionKey: "iam", + onInfoTap: { viewModel.showTooltip(for: "inAppMessaging") } + ) { + ToggleRow( + label: "Pause In-App Messages", + description: "Toggle in-app message display", + isOn: Binding( + get: { viewModel.isInAppMessagesPaused }, + set: { viewModel.setIamPaused($0) } + ), + accessibilityID: "pause_iam_toggle" + ) + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift new file mode 100644 index 000000000..558f2b270 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift @@ -0,0 +1,134 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Live Activities (iOS 16.1+) section with activity ID + order # inputs and status cycler. +/// Mirrors the Capacitor demo's LiveActivitySection. +struct LiveActivitySection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + @State private var activityId: String = "order-1" + @State private var orderNumber: String = "ORD-1234" + @State private var statusIndex: Int = 0 + + private let statuses: [LiveActivityStatus] = [.preparing, .onTheWay, .delivered] + + var body: some View { + SectionCard( + title: "LIVE ACTIVITIES", + sectionKey: "live_activities", + onInfoTap: { viewModel.showTooltip(for: "liveActivities") } + ) { + inputCard + + ActionButton( + "START LIVE ACTIVITY", + isDisabled: trimmedActivityId.isEmpty, + accessibilityID: "start_live_activity_button" + ) { + statusIndex = 0 + viewModel.startLiveActivity( + activityId: trimmedActivityId, + orderNumber: orderNumber.trimmingCharacters(in: .whitespacesAndNewlines), + status: statuses[0] + ) + } + + ActionButton( + updateButtonTitle, + isDisabled: trimmedActivityId.isEmpty || !LiveActivityController.hasApiKey, + accessibilityID: "update_live_activity_button" + ) { + let nextIndex = (statusIndex + 1) % statuses.count + viewModel.updateLiveActivity( + activityId: trimmedActivityId, + status: statuses[nextIndex] + ) + statusIndex = nextIndex + } + + ActionButton( + "END LIVE ACTIVITY", + style: .outline, + isDisabled: trimmedActivityId.isEmpty || !LiveActivityController.hasApiKey, + accessibilityID: "end_live_activity_button" + ) { + viewModel.endLiveActivity(activityId: trimmedActivityId) + } + + if !LiveActivityController.hasApiKey { + Text("Set ONESIGNAL_API_KEY in Secrets.plist to enable update & end") + .font(.caption) + .foregroundColor(.secondary) + .accessibilityIdentifier("live_activities_hint") + } + } + } + + private var trimmedActivityId: String { + activityId.trimmingCharacters(in: .whitespacesAndNewlines) + } + + private var nextStatus: LiveActivityStatus { + statuses[(statusIndex + 1) % statuses.count] + } + + private var updateButtonTitle: String { + "UPDATE → \(nextStatus.displayName.uppercased())" + } + + private var inputCard: some View { + VStack(spacing: 0) { + HStack { + Text("Activity ID").foregroundColor(.secondary) + Spacer() + TextField("Activity ID", text: $activityId) + .multilineTextAlignment(.trailing) + .autocorrectionDisabled() + .textInputAutocapitalization(.never) + .accessibilityIdentifier("live_activity_id_input") + } + .padding(12) + + Divider().padding(.leading, 12) + + HStack { + Text("Order #").foregroundColor(.secondary) + Spacer() + TextField("Order #", text: $orderNumber) + .multilineTextAlignment(.trailing) + .autocorrectionDisabled() + .textInputAutocapitalization(.never) + .accessibilityIdentifier("live_activity_order_number") + } + .padding(12) + } + .background(Color(.systemBackground)) + .cornerRadius(8) + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift new file mode 100644 index 000000000..bccc2ce5f --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift @@ -0,0 +1,54 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +struct LocationSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "LOCATION", + sectionKey: "location", + onInfoTap: { viewModel.showTooltip(for: "location") } + ) { + ToggleRow( + label: "Location Shared", + description: "Share device location with OneSignal", + isOn: Binding( + get: { viewModel.isLocationShared }, + set: { viewModel.setLocationShared($0) } + ), + accessibilityID: "location_shared_toggle" + ) + + ActionButton("REQUEST PERMISSION", accessibilityID: "request_location_button") { + viewModel.promptLocation() + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/OutcomesSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/OutcomesSection.swift new file mode 100644 index 000000000..933414b13 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/OutcomesSection.swift @@ -0,0 +1,44 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +struct OutcomesSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "OUTCOME EVENTS", + sectionKey: "outcomes", + onInfoTap: { viewModel.showTooltip(for: "outcomes") } + ) { + ActionButton("SEND OUTCOME", accessibilityID: "send_outcome_button") { + viewModel.showingOutcomeSheet = true + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/PushSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/PushSection.swift new file mode 100644 index 000000000..cff400ef5 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/PushSection.swift @@ -0,0 +1,70 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Push subscription ID, opt-in toggle, and prompt-for-permission CTA +struct PushSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "PUSH", + sectionKey: "push", + onInfoTap: { viewModel.showTooltip(for: "push") } + ) { + ValueCard(rows: [ + ValueCard.Row( + label: "Push ID", + value: viewModel.pushSubscriptionId ?? "—", + valueAccessibilityID: "push_id_value", + monospaced: true + ) + ]) + + ToggleRow( + label: "Push Enabled", + description: nil, + isOn: Binding( + get: { viewModel.isPushEnabled }, + set: { viewModel.setPushEnabled($0) } + ), + isDisabled: !viewModel.hasNotificationPermission, + accessibilityID: "push_enabled_toggle" + ) + + if !viewModel.hasNotificationPermission { + ActionButton( + "PROMPT PUSH", + accessibilityID: "prompt_push_button" + ) { + viewModel.promptPushPermission() + } + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/SendIamSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/SendIamSection.swift new file mode 100644 index 000000000..48a21349c --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/SendIamSection.swift @@ -0,0 +1,51 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Buttons that add an `iam_type` trigger so dashboard IAM rules can fire +struct SendIamSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "SEND IN-APP MESSAGE", + sectionKey: "send_iam", + onInfoTap: { viewModel.showTooltip(for: "sendInAppMessage") } + ) { + ForEach(InAppMessageType.allCases) { type in + ActionButton( + type.rawValue.uppercased(), + icon: Image(systemName: type.iconName), + accessibilityID: "send_iam_\(type.triggerValue)_button" + ) { + viewModel.sendIamTrigger(type) + } + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/SendPushSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/SendPushSection.swift new file mode 100644 index 000000000..9bb1d1725 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/SendPushSection.swift @@ -0,0 +1,61 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Buttons that fire test pushes via the OneSignal REST API +struct SendPushSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "SEND PUSH NOTIFICATION", + sectionKey: "send_push", + onInfoTap: { viewModel.showTooltip(for: "sendPushNotification") } + ) { + ActionButton("SIMPLE", accessibilityID: "send_simple_button") { + viewModel.sendNotification(.simple) + } + ActionButton("WITH IMAGE", accessibilityID: "send_image_button") { + viewModel.sendNotification(.withImage) + } + ActionButton("WITH SOUND", accessibilityID: "send_sound_button") { + viewModel.sendNotification(.withSound) + } + ActionButton("CUSTOM", accessibilityID: "send_custom_button") { + viewModel.showingCustomNotificationSheet = true + } + ActionButton( + "CLEAR ALL", + style: .outline, + accessibilityID: "clear_all_button" + ) { + viewModel.clearAllNotifications() + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/SmsSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/SmsSection.swift new file mode 100644 index 000000000..3a7c9a05b --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/SmsSection.swift @@ -0,0 +1,51 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +struct SmsSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "SMS", + sectionKey: "sms", + onInfoTap: { viewModel.showTooltip(for: "sms") } + ) { + SingleList( + items: viewModel.smsNumbers, + emptyText: "No SMS added", + sectionKey: "sms", + onRemove: { viewModel.removeSms($0) } + ) + + ActionButton("ADD SMS", accessibilityID: "add_sms_button") { + viewModel.showAddSheet(for: .sms) + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift new file mode 100644 index 000000000..7dc88ff9e --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift @@ -0,0 +1,66 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +struct TagsSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "TAGS", + sectionKey: "tags", + onInfoTap: { viewModel.showTooltip(for: "tags") } + ) { + PairList( + items: viewModel.tags, + emptyText: "No tags added", + sectionKey: "tags", + onRemove: { key in + if let item = viewModel.tags.first(where: { $0.key == key }) { + viewModel.removeTag(item) + } + } + ) + + ActionButton("ADD", accessibilityID: "add_tag_button") { + viewModel.showAddSheet(for: .tag) + } + ActionButton("ADD MULTIPLE", accessibilityID: "add_multiple_tags_button") { + viewModel.showMultiAddSheet(for: .tags) + } + ActionButton( + "REMOVE SELECTED", + style: .outline, + isDisabled: viewModel.tags.isEmpty, + accessibilityID: "remove_tags_button" + ) { + viewModel.showRemoveMultiSheet(for: .tags) + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/TriggersSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/TriggersSection.swift new file mode 100644 index 000000000..d07ee14df --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/TriggersSection.swift @@ -0,0 +1,74 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +struct TriggersSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard( + title: "TRIGGERS", + sectionKey: "triggers", + onInfoTap: { viewModel.showTooltip(for: "triggers") } + ) { + PairList( + items: viewModel.triggers, + emptyText: "No triggers added", + sectionKey: "triggers", + onRemove: { key in + if let item = viewModel.triggers.first(where: { $0.key == key }) { + viewModel.removeTrigger(item) + } + } + ) + + ActionButton("ADD", accessibilityID: "add_trigger_button") { + viewModel.showAddSheet(for: .trigger) + } + ActionButton("ADD MULTIPLE", accessibilityID: "add_multiple_triggers_button") { + viewModel.showMultiAddSheet(for: .triggers) + } + if !viewModel.triggers.isEmpty { + ActionButton( + "REMOVE SELECTED", + style: .outline, + accessibilityID: "remove_triggers_button" + ) { + viewModel.showRemoveMultiSheet(for: .triggers) + } + ActionButton( + "CLEAR ALL", + style: .outline, + accessibilityID: "clear_triggers_button" + ) { + viewModel.clearTriggers() + } + } + } + } +} diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/UserSection.swift b/examples/demo/OneSignalSwiftUIExample/Views/Sections/UserSection.swift new file mode 100644 index 000000000..49804a3e1 --- /dev/null +++ b/examples/demo/OneSignalSwiftUIExample/Views/Sections/UserSection.swift @@ -0,0 +1,68 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Login/logout + status display, mirroring the Capacitor UserSection +struct UserSection: View { + @EnvironmentObject var viewModel: OneSignalViewModel + + var body: some View { + SectionCard(title: "USER", sectionKey: "user") { + ValueCard(rows: [ + ValueCard.Row( + label: "Status", + value: viewModel.isLoggedIn ? "Logged In" : "Anonymous", + valueAccessibilityID: "user_status_value" + ), + ValueCard.Row( + label: "External ID", + value: viewModel.externalUserId ?? "—", + valueAccessibilityID: "user_external_id_value", + monospaced: true + ) + ]) + + ActionButton( + viewModel.loginButtonTitle, + accessibilityID: "login_user_button" + ) { + viewModel.showAddSheet(for: .externalUserId) + } + + if viewModel.isLoggedIn { + ActionButton( + "LOGOUT USER", + style: .outline, + accessibilityID: "logout_user_button" + ) { + viewModel.logout() + } + } + } + } +} diff --git a/examples/demo/README.md b/examples/demo/README.md new file mode 100644 index 000000000..2d6ace7d7 --- /dev/null +++ b/examples/demo/README.md @@ -0,0 +1,106 @@ +# OneSignal SwiftUI Example App + +A SwiftUI demo app that exercises every public surface of the OneSignal iOS SDK and mirrors the layout, naming, and behavior of the OneSignal Capacitor demo so the same end-to-end test suite (`@onesignal/sdk-shared`) can drive both apps. + +## Features + +The demo covers all major OneSignal SDK capabilities: + +- **App / Consent**: App ID display, `consent_required` and `privacy_consent` toggles +- **User**: Login / logout with external user ID +- **Push Subscription**: Push subscription ID, opt-in toggle, prompt for permission +- **Send Push Notification**: Simple / image / sound / custom notifications via the OneSignal REST API +- **In-App Messaging**: Pause / resume IAM display, send IAM trigger to surface dashboard messages +- **Aliases / Emails / SMS / Tags**: Add (single or multiple), remove (single or selected) +- **Outcomes**: Send normal / unique / value outcomes +- **Triggers**: Add (single or multiple), remove (single or selected), clear all +- **Custom Events**: Track event with optional JSON properties +- **Location**: Location sharing toggle, request permission +- **Live Activities** (iOS 16.1+): Start / update / end an activity, status cycler + +Section headers use ALL CAPS and an info icon (where Capacitor has one) that opens a tooltip sheet with descriptions sourced from `https://github.com/OneSignal/sdk-shared` (with a bundled fallback). + +Every interactive element exposes an `accessibilityIdentifier` matching the Capacitor demo's `data-testid` so the shared E2E tests can target it. + +## Architecture + +``` +OneSignalSwiftUIExample/ +├── App/ +│ └── OneSignalSwiftUIExampleApp.swift # @main + AppDelegate, SDK + Live Activities setup +├── Views/ +│ ├── ContentView.swift # Composes sections + sheets in Capacitor demo order +│ ├── Sections/ # AppSection, UserSection, PushSection, ... +│ └── Components/ # SectionCard, ActionButton, ToggleRow, +│ # AddItemSheet, MultiPairInputSheet, RemoveMultiSheet, +│ # OutcomeSheet, CustomNotificationSheet, TrackEventSheet, +│ # TooltipSheet, ToastView, ListWidgets, KeyValueRow +├── ViewModels/ +│ └── OneSignalViewModel.swift # Single ObservableObject backing every section +├── Models/ +│ └── AppModels.swift # KeyValueItem, NotificationType, InAppMessageType, +│ # AddItemType, MultiAddItemType, RemoveMultiItemType, +│ # OutcomeMode, TooltipData, UserData +├── Services/ +│ ├── OneSignalService.swift # Thin wrapper over OneSignal.* APIs +│ ├── NotificationSender.swift # Posts to /notifications with retry on transient failures +│ ├── UserFetchService.swift # Hydrates aliases / tags / channels via /users +│ ├── TooltipService.swift # Loads tooltip JSON from sdk-shared (with fallback) +│ └── LiveActivityController.swift # Wraps OneSignal.LiveActivities + REST update / end +└── Assets.xcassets/ +``` + +## Setup Instructions + +### 1. Create the Xcode project + +1. Open Xcode and create a new **iOS App** (Interface: SwiftUI, Language: Swift, Storage: None) +2. Save the project as `OneSignalSwiftUIExample` inside `examples/demo/` +3. Delete the auto-generated `ContentView.swift` and `OneSignalSwiftUIExampleApp.swift` +4. Drag the `App/`, `Views/`, `ViewModels/`, `Models/`, `Services/`, and `Assets.xcassets/` folders from this repo into your project, with **Copy items if needed unchecked** + +### 2. Add OneSignal SDK dependencies + +Use Swift Package Manager: + +1. **File → Add Package Dependencies…** +2. Enter `https://github.com/OneSignal/OneSignal-iOS-SDK`, select 5.0.0+ +3. Add these packages to the main app target: + - `OneSignalFramework` + - `OneSignalInAppMessages` + - `OneSignalLiveActivities` + - `OneSignalLocation` + +### 3. Configure capabilities + +In **Signing & Capabilities** add: + +- **Push Notifications** +- **Background Modes** → Remote notifications +- **Live Activities** (iOS 16.1+): set `NSSupportsLiveActivities = YES` in Info.plist + +### 4. Update App ID + +`Services/OneSignalService.swift` ships with a placeholder. Either edit `defaultAppId` or override it at runtime via `UserDefaults` (key `OneSignalAppId`). + +### 5. (Optional) Live Activities REST API key + +To exercise **Update** / **End** of Live Activities, add a `Secrets.plist` file to the bundle with key `ONESIGNAL_API_KEY` set to a OneSignal REST API key for your app. Without a key the section disables those buttons and shows a hint. + +## Running the App + +1. Select a simulator or device +2. Build and run (⌘R) +3. Grant notification permissions when prompted +4. Explore each section + +## Requirements + +- iOS 15.0+ (Live Activities require iOS 16.1+) +- Xcode 15.0+ +- Swift 5.9+ +- OneSignal iOS SDK 5.0+ + +## License + +Modified MIT License — see the repository LICENSE file. From 796c56db6d1943c608cd683b49aa87dfb8f9dd1d Mon Sep 17 00:00:00 2001 From: Fadi George Date: Sun, 24 May 2026 13:08:24 -0700 Subject: [PATCH 02/23] chore(demo): remove SwiftUI example app --- .../OneSignalSwiftUIExample.entitlements | 8 - .../App/OneSignalSwiftUIExampleApp.swift | 137 ------- .../AccentColor.colorset/Contents.json | 38 -- .../AppIcon.appiconset/Contents.json | 13 - .../Assets.xcassets/Contents.json | 6 - .../OneSignalSwiftUIExample/Info.plist | 58 --- .../Models/AppModels.swift | 145 -------- .../Services/OneSignalService.swift | 236 ------------ .../ViewModels/OneSignalViewModel.swift | 350 ------------------ .../Views/Components/AddItemSheet.swift | 126 ------- .../Views/Components/KeyValueRow.swift | 158 -------- .../Views/Components/NotificationGrid.swift | 137 ------- .../Views/Components/ToastView.swift | 80 ---- .../Views/ContentView.swift | 75 ---- .../Views/Sections/AppInfoSection.swift | 69 ---- .../Views/Sections/LocationSection.swift | 69 ---- .../Views/Sections/MessagingSection.swift | 179 --------- .../Views/Sections/NotificationSection.swift | 60 --- .../Views/Sections/SubscriptionSection.swift | 116 ------ .../Views/Sections/TagsSection.swift | 67 ---- .../Views/Sections/UserSection.swift | 103 ------ OneSignalSwiftUIExample/README.md | 136 ------- 22 files changed, 2366 deletions(-) delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample.entitlements delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/Contents.json delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Info.plist delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Models/AppModels.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/OneSignalService.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/NotificationGrid.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/ToastView.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/ContentView.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/AppInfoSection.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/MessagingSection.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NotificationSection.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/SubscriptionSection.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift delete mode 100644 OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/UserSection.swift delete mode 100644 OneSignalSwiftUIExample/README.md diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample.entitlements b/OneSignalSwiftUIExample/OneSignalSwiftUIExample.entitlements deleted file mode 100644 index 903def2af..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - aps-environment - development - - diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift deleted file mode 100644 index 891c6a1ca..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift +++ /dev/null @@ -1,137 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI -import OneSignalFramework -import OneSignalInAppMessages -import OneSignalLocation - -@main -struct OneSignalSwiftUIExampleApp: App { - @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate - @StateObject private var viewModel = OneSignalViewModel() - - var body: some Scene { - WindowGroup { - ContentView() - .environmentObject(viewModel) - } - } -} - -// MARK: - App Delegate - -class AppDelegate: NSObject, UIApplicationDelegate { - - func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil - ) -> Bool { - // Initialize OneSignal - OneSignalService.shared.initialize(launchOptions: launchOptions) - - // Set up notification lifecycle listeners - setupNotificationListeners() - - // Set up in-app message listeners - setupInAppMessageListeners() - - return true - } - - private func setupNotificationListeners() { - // Foreground notification display - OneSignal.Notifications.addForegroundLifecycleListener(NotificationLifecycleHandler.shared) - - // Notification click handling - OneSignal.Notifications.addClickListener(NotificationClickHandler.shared) - } - - private func setupInAppMessageListeners() { - // In-app message lifecycle - OneSignal.InAppMessages.addLifecycleListener(InAppMessageLifecycleHandler.shared) - - // In-app message click handling - OneSignal.InAppMessages.addClickListener(InAppMessageClickHandler.shared) - - // Start with IAM paused - OneSignal.InAppMessages.paused = true - } -} - -// MARK: - Notification Handlers - -class NotificationLifecycleHandler: NSObject, OSNotificationLifecycleListener { - static let shared = NotificationLifecycleHandler() - - func onWillDisplay(event: OSNotificationWillDisplayEvent) { - print("[OneSignal] Notification will display: \(event.notification.title ?? "No title")") - // Optionally modify display behavior - // event.preventDefault() // Prevent automatic display - // event.notification.display() // Manually display later - } -} - -class NotificationClickHandler: NSObject, OSNotificationClickListener { - static let shared = NotificationClickHandler() - - func onClick(event: OSNotificationClickEvent) { - print("[OneSignal] Notification clicked: \(event.notification.title ?? "No title")") - // Handle notification click - navigate to specific screen, etc. - } -} - -// MARK: - In-App Message Handlers - -class InAppMessageLifecycleHandler: NSObject, OSInAppMessageLifecycleListener { - static let shared = InAppMessageLifecycleHandler() - - func onWillDisplay(event: OSInAppMessageWillDisplayEvent) { - print("[OneSignal] IAM will display: \(event.message.messageId)") - } - - func onDidDisplay(event: OSInAppMessageDidDisplayEvent) { - print("[OneSignal] IAM did display: \(event.message.messageId)") - } - - func onWillDismiss(event: OSInAppMessageWillDismissEvent) { - print("[OneSignal] IAM will dismiss: \(event.message.messageId)") - } - - func onDidDismiss(event: OSInAppMessageDidDismissEvent) { - print("[OneSignal] IAM did dismiss: \(event.message.messageId)") - } -} - -class InAppMessageClickHandler: NSObject, OSInAppMessageClickListener { - static let shared = InAppMessageClickHandler() - - func onClick(event: OSInAppMessageClickEvent) { - print("[OneSignal] IAM clicked: \(event.result.actionId ?? "No action ID")") - // Handle IAM click - navigate, track event, etc. - } -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index 2c54006ed..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x4D", - "green" : "0x4B", - "red" : "0xE5" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x6D", - "green" : "0x6B", - "red" : "0xF5" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 13613e3ee..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "platform" : "ios", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/Contents.json b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/Contents.json deleted file mode 100644 index 73c00596a..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Info.plist b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Info.plist deleted file mode 100644 index aba8d06a4..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Info.plist +++ /dev/null @@ -1,58 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - OneSignal SwiftUI - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSLocationWhenInUseUsageDescription - This app uses your location to personalize notifications and content. - NSLocationAlwaysAndWhenInUseUsageDescription - This app uses your location to personalize notifications and content even when the app is in the background. - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - - UIBackgroundModes - - remote-notification - - UILaunchScreen - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Models/AppModels.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Models/AppModels.swift deleted file mode 100644 index 85a9bfc37..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Models/AppModels.swift +++ /dev/null @@ -1,145 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation - -// MARK: - Key-Value Item - -/// A generic key-value pair used for aliases, tags, and triggers -struct KeyValueItem: Identifiable, Equatable { - let id = UUID() - let key: String - let value: String -} - -// MARK: - Notification Type - -/// Types of test push notifications that can be sent -enum NotificationType: String, CaseIterable, Identifiable { - case general = "General" - case greetings = "Greetings" - case promotions = "Promotions" - case breakingNews = "Breaking News" - case abandonedCart = "Abandoned Cart" - case newPost = "New Post" - case reEngagement = "Re-Engagement" - case rating = "Rating" - - var id: String { rawValue } - - var iconName: String { - switch self { - case .general: return "bell.fill" - case .greetings: return "hand.wave.fill" - case .promotions: return "tag.fill" - case .breakingNews: return "newspaper.fill" - case .abandonedCart: return "cart.fill" - case .newPost: return "photo.fill" - case .reEngagement: return "hand.tap.fill" - case .rating: return "star.fill" - } - } -} - -// MARK: - In-App Message Type - -/// Types of in-app messages that can be displayed -enum InAppMessageType: String, CaseIterable, Identifiable { - case topBanner = "Top Banner" - case bottomBanner = "Bottom Banner" - case centerModal = "Center Modal" - case fullScreen = "Full Screen" - - var id: String { rawValue } - - var iconName: String { - switch self { - case .topBanner: return "rectangle.topthird.inset.filled" - case .bottomBanner: return "rectangle.bottomthird.inset.filled" - case .centerModal: return "rectangle.center.inset.filled" - case .fullScreen: return "rectangle.inset.filled" - } - } -} - -// MARK: - Add Item Type - -/// Types of items that can be added via the add sheet -enum AddItemType { - case alias - case email - case sms - case tag - case trigger - case externalUserId - - var title: String { - switch self { - case .alias: return "Add Alias" - case .email: return "Add Email" - case .sms: return "Add SMS" - case .tag: return "Add Tag" - case .trigger: return "Add Trigger" - case .externalUserId: return "Login User" - } - } - - var requiresKeyValue: Bool { - switch self { - case .alias, .tag, .trigger: return true - case .email, .sms, .externalUserId: return false - } - } - - var keyPlaceholder: String { - switch self { - case .alias: return "Alias Label" - case .tag: return "Tag Key" - case .trigger: return "Trigger Key" - default: return "Key" - } - } - - var valuePlaceholder: String { - switch self { - case .alias: return "Alias ID" - case .email: return "email@example.com" - case .sms: return "+1234567890" - case .tag: return "Tag Value" - case .trigger: return "Trigger Value" - case .externalUserId: return "External User ID" - } - } - - var keyboardType: UIKeyboardType { - switch self { - case .email: return .emailAddress - case .sms: return .phonePad - default: return .default - } - } -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/OneSignalService.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/OneSignalService.swift deleted file mode 100644 index 5684a2a34..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/OneSignalService.swift +++ /dev/null @@ -1,236 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation -import OneSignalFramework -import OneSignalInAppMessages -import OneSignalLocation - -/// Service layer that wraps OneSignal SDK calls -final class OneSignalService { - - // MARK: - Singleton - - static let shared = OneSignalService() - - private init() {} - - // MARK: - App ID - - private let appIdKey = "OneSignalAppId" - private let defaultAppId = "77e32082-ea27-42e3-a898-c72e141824ef" - - var appId: String { - get { - UserDefaults.standard.string(forKey: appIdKey) ?? defaultAppId - } - set { - UserDefaults.standard.set(newValue, forKey: appIdKey) - } - } - - // MARK: - Initialization - - func initialize(launchOptions: [UIApplication.LaunchOptionsKey: Any]?) { - OneSignal.Debug.setLogLevel(.LL_VERBOSE) - OneSignal.initialize(appId, withLaunchOptions: launchOptions) - } - - // MARK: - Consent - - var consentRequired: Bool { - get { OneSignal.privacyConsentRequired } - set { OneSignal.setConsentRequired(newValue) } - } - - var consentGiven: Bool { - get { OneSignal.privacyConsentGiven } - set { OneSignal.setConsentGiven(newValue) } - } - - func revokeConsent() { - OneSignal.setConsentGiven(false) - } - - // MARK: - User Management - - func login(externalId: String) { - OneSignal.login(externalId) - } - - func logout() { - OneSignal.logout() - } - - // MARK: - Aliases - - func addAlias(label: String, id: String) { - OneSignal.User.addAlias(label, id: id) - } - - func removeAlias(_ label: String) { - OneSignal.User.removeAlias(label) - } - - // MARK: - Push Subscription - - var pushSubscriptionId: String? { - OneSignal.User.pushSubscription.id - } - - var isPushEnabled: Bool { - OneSignal.User.pushSubscription.optedIn - } - - func optInPush() { - OneSignal.User.pushSubscription.optIn() - } - - func optOutPush() { - OneSignal.User.pushSubscription.optOut() - } - - func requestPushPermission(completion: @escaping (Bool) -> Void) { - OneSignal.Notifications.requestPermission({ accepted in - completion(accepted) - }, fallbackToSettings: true) - } - - // MARK: - Email - - func addEmail(_ email: String) { - OneSignal.User.addEmail(email) - } - - func removeEmail(_ email: String) { - OneSignal.User.removeEmail(email) - } - - // MARK: - SMS - - func addSms(_ number: String) { - OneSignal.User.addSms(number) - } - - func removeSms(_ number: String) { - OneSignal.User.removeSms(number) - } - - // MARK: - Tags - - func addTag(key: String, value: String) { - OneSignal.User.addTag(key: key, value: value) - } - - func removeTag(_ key: String) { - OneSignal.User.removeTag(key) - } - - func getTags() -> [String: String] { - OneSignal.User.getTags() - } - - // MARK: - Outcomes - - func sendOutcome(_ name: String) { - OneSignal.Session.addOutcome(name) - } - - func sendOutcome(_ name: String, value: NSNumber) { - OneSignal.Session.addOutcome(name, value: value) - } - - func sendUniqueOutcome(_ name: String) { - OneSignal.Session.addUniqueOutcome(name) - } - - // MARK: - In-App Messages - - var isInAppMessagesPaused: Bool { - get { OneSignal.InAppMessages.paused } - set { OneSignal.InAppMessages.paused = newValue } - } - - func addTrigger(key: String, value: String) { - OneSignal.InAppMessages.addTrigger(key, withValue: value) - } - - func removeTrigger(_ key: String) { - OneSignal.InAppMessages.removeTrigger(key) - } - - // MARK: - Location - - var isLocationShared: Bool { - get { OneSignal.Location.isShared } - set { OneSignal.Location.isShared = newValue } - } - - func requestLocationPermission() { - OneSignal.Location.requestPermission() - } - - // MARK: - Notifications - - func clearAllNotifications() { - OneSignal.Notifications.clearAll() - } - - var hasNotificationPermission: Bool { - OneSignal.Notifications.permission - } - - // MARK: - Observers - - func addPushSubscriptionObserver(_ observer: OSPushSubscriptionObserver) { - OneSignal.User.pushSubscription.addObserver(observer) - } - - func addUserObserver(_ observer: OSUserStateObserver) { - OneSignal.User.addObserver(observer) - } - - func addPermissionObserver(_ observer: OSNotificationPermissionObserver) { - OneSignal.Notifications.addPermissionObserver(observer) - } - - func addNotificationClickListener(_ listener: OSNotificationClickListener) { - OneSignal.Notifications.addClickListener(listener) - } - - func addNotificationLifecycleListener(_ listener: OSNotificationLifecycleListener) { - OneSignal.Notifications.addForegroundLifecycleListener(listener) - } - - func addInAppMessageClickListener(_ listener: OSInAppMessageClickListener) { - OneSignal.InAppMessages.addClickListener(listener) - } - - func addInAppMessageLifecycleListener(_ listener: OSInAppMessageLifecycleListener) { - OneSignal.InAppMessages.addLifecycleListener(listener) - } -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift deleted file mode 100644 index 7e8e8dae9..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift +++ /dev/null @@ -1,350 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation -import Combine -import OneSignalFramework -import OneSignalInAppMessages -import OneSignalLocation - -/// Main ViewModel managing all OneSignal SDK state and interactions -@MainActor -final class OneSignalViewModel: ObservableObject { - - // MARK: - Published Properties - - // App Info - @Published var appId: String - - // User - @Published var externalUserId: String? - @Published var aliases: [KeyValueItem] = [] - - // Push Subscription - @Published var pushSubscriptionId: String? - @Published var isPushEnabled: Bool = false - - // Email & SMS - @Published var emails: [String] = [] - @Published var smsNumbers: [String] = [] - - // Tags - @Published var tags: [KeyValueItem] = [] - - // In-App Messaging - @Published var isInAppMessagesPaused: Bool = true - @Published var triggers: [KeyValueItem] = [] - - // Location - @Published var isLocationShared: Bool = false - - // UI State - @Published var showingAddSheet: Bool = false - @Published var addItemType: AddItemType = .email - @Published var toastMessage: String? - - // MARK: - Private Properties - - private let service: OneSignalService - private var observers = Observers() - - // MARK: - Initialization - - init(service: OneSignalService = .shared) { - self.service = service - self.appId = service.appId - - // Initial state sync - refreshState() - - // Set up observers - setupObservers() - } - - // MARK: - State Management - - func refreshState() { - pushSubscriptionId = service.pushSubscriptionId - isPushEnabled = service.isPushEnabled - isInAppMessagesPaused = service.isInAppMessagesPaused - isLocationShared = service.isLocationShared - - // Sync tags from SDK - let sdkTags = service.getTags() - tags = sdkTags.map { KeyValueItem(key: $0.key, value: $0.value) } - } - - // MARK: - Consent - - func revokeConsent() { - service.revokeConsent() - showToast("Consent revoked") - } - - // MARK: - User Management - - func login(externalId: String) { - service.login(externalId: externalId) - externalUserId = externalId - showToast("Logged in as \(externalId)") - } - - func logout() { - service.logout() - externalUserId = nil - aliases.removeAll() - emails.removeAll() - smsNumbers.removeAll() - tags.removeAll() - triggers.removeAll() - showToast("Logged out") - } - - // MARK: - Aliases - - func addAlias(label: String, id: String) { - service.addAlias(label: label, id: id) - aliases.append(KeyValueItem(key: label, value: id)) - showToast("Alias added") - } - - func removeAlias(_ item: KeyValueItem) { - service.removeAlias(item.key) - aliases.removeAll { $0.id == item.id } - showToast("Alias removed") - } - - // MARK: - Push Subscription - - func togglePushEnabled() { - if isPushEnabled { - service.optOutPush() - isPushEnabled = false - showToast("Push disabled") - } else { - service.optInPush() - isPushEnabled = true - showToast("Push enabled") - } - } - - func requestPushPermission() { - service.requestPushPermission { [weak self] accepted in - Task { @MainActor in - self?.isPushEnabled = accepted - self?.showToast(accepted ? "Push permission granted" : "Push permission denied") - } - } - } - - // MARK: - Email - - func addEmail(_ email: String) { - service.addEmail(email) - emails.append(email) - showToast("Email added") - } - - func removeEmail(_ email: String) { - service.removeEmail(email) - emails.removeAll { $0 == email } - showToast("Email removed") - } - - // MARK: - SMS - - func addSms(_ number: String) { - service.addSms(number) - smsNumbers.append(number) - showToast("SMS added") - } - - func removeSms(_ number: String) { - service.removeSms(number) - smsNumbers.removeAll { $0 == number } - showToast("SMS removed") - } - - // MARK: - Tags - - func addTag(key: String, value: String) { - service.addTag(key: key, value: value) - // Remove existing tag with same key if present - tags.removeAll { $0.key == key } - tags.append(KeyValueItem(key: key, value: value)) - showToast("Tag added") - } - - func removeTag(_ item: KeyValueItem) { - service.removeTag(item.key) - tags.removeAll { $0.id == item.id } - showToast("Tag removed") - } - - // MARK: - Outcomes - - func sendOutcome(_ name: String) { - service.sendOutcome(name) - showToast("Outcome '\(name)' sent") - } - - func sendOutcome(_ name: String, value: Double) { - service.sendOutcome(name, value: NSNumber(value: value)) - showToast("Outcome '\(name)' with value \(value) sent") - } - - func sendUniqueOutcome(_ name: String) { - service.sendUniqueOutcome(name) - showToast("Unique outcome '\(name)' sent") - } - - // MARK: - In-App Messaging - - func toggleInAppMessagesPaused() { - isInAppMessagesPaused.toggle() - service.isInAppMessagesPaused = isInAppMessagesPaused - showToast(isInAppMessagesPaused ? "In-app messages paused" : "In-app messages resumed") - } - - func addTrigger(key: String, value: String) { - service.addTrigger(key: key, value: value) - // Remove existing trigger with same key if present - triggers.removeAll { $0.key == key } - triggers.append(KeyValueItem(key: key, value: value)) - showToast("Trigger added") - } - - func removeTrigger(_ item: KeyValueItem) { - service.removeTrigger(item.key) - triggers.removeAll { $0.id == item.id } - showToast("Trigger removed") - } - - // MARK: - Location - - func toggleLocationShared() { - isLocationShared.toggle() - service.isLocationShared = isLocationShared - showToast(isLocationShared ? "Location sharing enabled" : "Location sharing disabled") - } - - func promptLocation() { - service.requestLocationPermission() - showToast("Location permission requested") - } - - // MARK: - Notifications - - func clearAllNotifications() { - service.clearAllNotifications() - showToast("All notifications cleared") - } - - func sendTestNotification(_ type: NotificationType) { - // In a real app, this would trigger a notification via your backend - // For demo purposes, we just show a toast - showToast("Test '\(type.rawValue)' notification triggered") - } - - func sendTestInAppMessage(_ type: InAppMessageType) { - // In a real app, this would trigger an IAM via your backend - // For demo purposes, we just show a toast - showToast("Test '\(type.rawValue)' in-app message triggered") - } - - // MARK: - Add Sheet - - func showAddSheet(for type: AddItemType) { - addItemType = type - showingAddSheet = true - } - - func handleAddItem(key: String, value: String) { - switch addItemType { - case .alias: - addAlias(label: key, id: value) - case .email: - addEmail(value) - case .sms: - addSms(value) - case .tag: - addTag(key: key, value: value) - case .trigger: - addTrigger(key: key, value: value) - case .externalUserId: - login(externalId: value) - } - showingAddSheet = false - } - - // MARK: - Toast - - private func showToast(_ message: String) { - toastMessage = message - - // Auto-dismiss after 2 seconds - Task { - try? await Task.sleep(nanoseconds: 2_000_000_000) - toastMessage = nil - } - } - - // MARK: - Observers - - private func setupObservers() { - observers.viewModel = self - service.addPushSubscriptionObserver(observers) - service.addUserObserver(observers) - service.addPermissionObserver(observers) - } -} - -// MARK: - Observer Classes - -private class Observers: NSObject, OSPushSubscriptionObserver, OSUserStateObserver, OSNotificationPermissionObserver { - weak var viewModel: OneSignalViewModel? - - func onPushSubscriptionDidChange(state: OSPushSubscriptionChangedState) { - Task { @MainActor in - viewModel?.pushSubscriptionId = state.current.id - viewModel?.isPushEnabled = state.current.optedIn - } - } - - func onUserStateDidChange(state: OSUserChangedState) { - Task { @MainActor in - // User state changed - could refresh aliases, etc. - print("User state changed: \(state.jsonRepresentation())") - } - } - - func onNotificationPermissionDidChange(_ permission: Bool) { - Task { @MainActor in - viewModel?.isPushEnabled = permission && (viewModel?.isPushEnabled ?? false) - } - } -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift deleted file mode 100644 index ed1c621d6..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift +++ /dev/null @@ -1,126 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A reusable sheet for adding items with one or two text fields -struct AddItemSheet: View { - let itemType: AddItemType - let onAdd: (String, String) -> Void - let onCancel: () -> Void - - @State private var keyText: String = "" - @State private var valueText: String = "" - @FocusState private var focusedField: Field? - - private enum Field { - case key, value - } - - var body: some View { - NavigationStack { - Form { - if itemType.requiresKeyValue { - Section { - TextField(itemType.keyPlaceholder, text: $keyText) - .focused($focusedField, equals: .key) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - - TextField(itemType.valuePlaceholder, text: $valueText) - .focused($focusedField, equals: .value) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .keyboardType(itemType.keyboardType) - } - } else { - Section { - TextField(itemType.valuePlaceholder, text: $valueText) - .focused($focusedField, equals: .value) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .keyboardType(itemType.keyboardType) - } - } - } - .navigationTitle(itemType.title) - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .cancellationAction) { - Button("Cancel") { - onCancel() - } - } - - ToolbarItem(placement: .confirmationAction) { - Button(itemType == .externalUserId ? "Login" : "Add") { - onAdd(keyText, valueText) - } - .disabled(!isValid) - } - } - .onAppear { - focusedField = itemType.requiresKeyValue ? .key : .value - } - } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) - } - - private var isValid: Bool { - if itemType.requiresKeyValue { - return !keyText.trimmingCharacters(in: .whitespaces).isEmpty && - !valueText.trimmingCharacters(in: .whitespaces).isEmpty - } else { - return !valueText.trimmingCharacters(in: .whitespaces).isEmpty - } - } -} - -#Preview("Add Alias") { - AddItemSheet( - itemType: .alias, - onAdd: { key, value in print("Add: \(key) = \(value)") }, - onCancel: { print("Cancel") } - ) -} - -#Preview("Add Email") { - AddItemSheet( - itemType: .email, - onAdd: { _, value in print("Add: \(value)") }, - onCancel: { print("Cancel") } - ) -} - -#Preview("Login User") { - AddItemSheet( - itemType: .externalUserId, - onAdd: { _, value in print("Login: \(value)") }, - onCancel: { print("Cancel") } - ) -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift deleted file mode 100644 index af50dc8b2..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift +++ /dev/null @@ -1,158 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A row displaying a key-value pair with optional delete action -struct KeyValueRow: View { - let item: KeyValueItem - let onDelete: (() -> Void)? - - init(item: KeyValueItem, onDelete: (() -> Void)? = nil) { - self.item = item - self.onDelete = onDelete - } - - var body: some View { - HStack { - VStack(alignment: .leading, spacing: 2) { - Text(item.key) - .font(.subheadline) - .foregroundColor(.secondary) - Text(item.value) - .font(.body) - } - - Spacer() - - if let onDelete = onDelete { - Button(action: onDelete) { - Image(systemName: "trash") - .foregroundColor(.red) - } - .buttonStyle(.borderless) - } - } - .contentShape(Rectangle()) - } -} - -/// A row displaying a single value with optional delete action -struct SingleValueRow: View { - let value: String - let onDelete: (() -> Void)? - - init(value: String, onDelete: (() -> Void)? = nil) { - self.value = value - self.onDelete = onDelete - } - - var body: some View { - HStack { - Text(value) - .font(.body) - - Spacer() - - if let onDelete = onDelete { - Button(action: onDelete) { - Image(systemName: "trash") - .foregroundColor(.red) - } - .buttonStyle(.borderless) - } - } - .contentShape(Rectangle()) - } -} - -/// A row displaying a label and value in a horizontal layout -struct InfoRow: View { - let label: String - let value: String - let isMonospaced: Bool - - init(label: String, value: String, isMonospaced: Bool = false) { - self.label = label - self.value = value - self.isMonospaced = isMonospaced - } - - var body: some View { - HStack { - Text(label) - .foregroundColor(.secondary) - Spacer() - Text(value) - .font(isMonospaced ? .system(.body, design: .monospaced) : .body) - .foregroundColor(.primary) - .lineLimit(1) - .truncationMode(.middle) - } - } -} - -/// A placeholder row for empty lists -struct EmptyListRow: View { - let message: String - - var body: some View { - Text(message) - .foregroundColor(.secondary) - .font(.subheadline) - .frame(maxWidth: .infinity, alignment: .center) - .padding(.vertical, 8) - } -} - -#Preview { - List { - Section("Key-Value Items") { - KeyValueRow( - item: KeyValueItem(key: "external_id", value: "user_123"), - onDelete: {} - ) - KeyValueRow( - item: KeyValueItem(key: "subscription_tier", value: "premium") - ) - } - - Section("Single Values") { - SingleValueRow(value: "user@example.com", onDelete: {}) - SingleValueRow(value: "+1234567890") - } - - Section("Info Rows") { - InfoRow(label: "App ID", value: "77e32082-ea27-42e3-a898-c72e141824ef", isMonospaced: true) - InfoRow(label: "Status", value: "Active") - } - - Section("Empty") { - EmptyListRow(message: "No items added") - } - } -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/NotificationGrid.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/NotificationGrid.swift deleted file mode 100644 index 9a54202eb..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/NotificationGrid.swift +++ /dev/null @@ -1,137 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A grid of notification type buttons -struct NotificationTypeGrid: View { - let onSelect: (NotificationType) -> Void - - private let columns = [ - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12) - ] - - var body: some View { - LazyVGrid(columns: columns, spacing: 12) { - ForEach(NotificationType.allCases) { type in - NotificationTypeButton(type: type) { - onSelect(type) - } - } - } - .padding(.vertical, 8) - } -} - -/// A grid of in-app message type buttons -struct InAppMessageTypeGrid: View { - let onSelect: (InAppMessageType) -> Void - - private let columns = [ - GridItem(.flexible(), spacing: 12), - GridItem(.flexible(), spacing: 12) - ] - - var body: some View { - LazyVGrid(columns: columns, spacing: 12) { - ForEach(InAppMessageType.allCases) { type in - InAppMessageTypeButton(type: type) { - onSelect(type) - } - } - } - .padding(.vertical, 8) - } -} - -/// A button for a notification type with icon and label -struct NotificationTypeButton: View { - let type: NotificationType - let action: () -> Void - - var body: some View { - Button(action: action) { - VStack(spacing: 8) { - Image(systemName: type.iconName) - .font(.title2) - Text(type.rawValue) - .font(.caption) - .multilineTextAlignment(.center) - } - .frame(maxWidth: .infinity) - .padding(.vertical, 16) - .background(Color.accentColor) - .foregroundColor(.white) - .cornerRadius(12) - } - .buttonStyle(.plain) - } -} - -/// A button for an in-app message type with icon and label -struct InAppMessageTypeButton: View { - let type: InAppMessageType - let action: () -> Void - - var body: some View { - Button(action: action) { - VStack(spacing: 8) { - Image(systemName: type.iconName) - .font(.title2) - Text(type.rawValue) - .font(.caption) - .multilineTextAlignment(.center) - } - .frame(maxWidth: .infinity) - .padding(.vertical, 16) - .background(Color.accentColor) - .foregroundColor(.white) - .cornerRadius(12) - } - .buttonStyle(.plain) - } -} - -#Preview { - ScrollView { - VStack(alignment: .leading, spacing: 20) { - Text("Send Push Notification") - .font(.headline) - NotificationTypeGrid(onSelect: { type in - print("Selected: \(type.rawValue)") - }) - - Text("Send In-App Message") - .font(.headline) - InAppMessageTypeGrid(onSelect: { type in - print("Selected: \(type.rawValue)") - }) - } - .padding() - } -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/ToastView.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/ToastView.swift deleted file mode 100644 index eede3ce4d..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/ToastView.swift +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A toast notification view that appears at the bottom of the screen -struct ToastView: View { - let message: String - - var body: some View { - Text(message) - .font(.subheadline) - .foregroundColor(.white) - .padding(.horizontal, 16) - .padding(.vertical, 12) - .background(Color.black.opacity(0.8)) - .cornerRadius(8) - .shadow(radius: 4) - } -} - -/// A view modifier that overlays a toast message -struct ToastModifier: ViewModifier { - @Binding var message: String? - - func body(content: Content) -> some View { - ZStack { - content - - if let message = message { - VStack { - Spacer() - ToastView(message: message) - .padding(.bottom, 32) - .transition(.move(edge: .bottom).combined(with: .opacity)) - } - .animation(.easeInOut(duration: 0.3), value: message) - } - } - } -} - -extension View { - /// Adds a toast overlay to the view - func toast(message: Binding) -> some View { - modifier(ToastModifier(message: message)) - } -} - -#Preview { - VStack { - Text("Content") - } - .frame(maxWidth: .infinity, maxHeight: .infinity) - .toast(message: .constant("This is a toast message")) -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/ContentView.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/ContentView.swift deleted file mode 100644 index 80a7db871..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/ContentView.swift +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Main content view composing all sections -struct ContentView: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - NavigationStack { - List { - AppInfoSection() - UserSection() - SubscriptionSection() - TagsSection() - MessagingSection() - LocationSection() - NotificationSection() - } - .listStyle(.insetGrouped) - .navigationTitle("OneSignal") - .toolbar { - ToolbarItem(placement: .navigationBarTrailing) { - Button { - viewModel.refreshState() - } label: { - Image(systemName: "arrow.clockwise") - } - } - } - .sheet(isPresented: $viewModel.showingAddSheet) { - AddItemSheet( - itemType: viewModel.addItemType, - onAdd: { key, value in - viewModel.handleAddItem(key: key, value: value) - }, - onCancel: { - viewModel.showingAddSheet = false - } - ) - } - } - .toast(message: $viewModel.toastMessage) - } -} - -#Preview { - ContentView() - .environmentObject(OneSignalViewModel()) -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/AppInfoSection.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/AppInfoSection.swift deleted file mode 100644 index 4bab9ebc2..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/AppInfoSection.swift +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section displaying app information and consent management -struct AppInfoSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - Section { - // App ID - VStack(alignment: .leading, spacing: 4) { - Text("App ID") - .font(.caption) - .foregroundColor(.secondary) - Text(viewModel.appId) - .font(.system(.footnote, design: .monospaced)) - .textSelection(.enabled) - } - .padding(.vertical, 4) - - // Revoke Consent Button - Button(role: .destructive) { - viewModel.revokeConsent() - } label: { - HStack { - Spacer() - Text("Revoke Consent") - .fontWeight(.medium) - Spacer() - } - } - } header: { - Text("App") - } - } -} - -#Preview { - List { - AppInfoSection() - } - .environmentObject(OneSignalViewModel()) -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift deleted file mode 100644 index 2d89f9077..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for location sharing and permissions -struct LocationSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - Section { - Toggle(isOn: Binding( - get: { viewModel.isLocationShared }, - set: { _ in viewModel.toggleLocationShared() } - )) { - VStack(alignment: .leading, spacing: 2) { - Text("Location Shared") - Text("Location will be shared from device") - .font(.caption) - .foregroundColor(.secondary) - } - } - - Button { - viewModel.promptLocation() - } label: { - HStack { - Spacer() - Text("Prompt Location") - .fontWeight(.medium) - Spacer() - } - } - } header: { - Text("Location") - } - } -} - -#Preview { - List { - LocationSection() - } - .environmentObject(OneSignalViewModel()) -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/MessagingSection.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/MessagingSection.swift deleted file mode 100644 index ef21501a0..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/MessagingSection.swift +++ /dev/null @@ -1,179 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for outcomes, in-app messaging, and triggers -struct MessagingSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - @State private var showingOutcomeSheet = false - @State private var outcomeName = "" - @State private var outcomeValue = "" - - var body: some View { - // Outcome Events Section - Section { - Button { - showingOutcomeSheet = true - } label: { - HStack { - Spacer() - Text("Send Outcome") - .fontWeight(.medium) - Spacer() - } - } - } header: { - Text("Outcome Events") - } - - // In-App Messaging Section - Section { - Toggle(isOn: Binding( - get: { viewModel.isInAppMessagesPaused }, - set: { _ in viewModel.toggleInAppMessagesPaused() } - )) { - VStack(alignment: .leading, spacing: 2) { - Text("Pause In-App Messages") - Text("Toggle in-app messages") - .font(.caption) - .foregroundColor(.secondary) - } - } - } header: { - Text("In-App Messaging") - } - - // Triggers Section - Section { - if viewModel.triggers.isEmpty { - EmptyListRow(message: "No Triggers Added") - } else { - ForEach(viewModel.triggers) { trigger in - KeyValueRow(item: trigger) { - viewModel.removeTrigger(trigger) - } - } - } - - Button { - viewModel.showAddSheet(for: .trigger) - } label: { - HStack { - Spacer() - Label("Add Trigger", systemImage: "plus") - .fontWeight(.medium) - Spacer() - } - } - } header: { - Text("Triggers") - } - .sheet(isPresented: $showingOutcomeSheet) { - OutcomeSheet( - onSend: { name, value in - if let value = value { - viewModel.sendOutcome(name, value: value) - } else { - viewModel.sendOutcome(name) - } - showingOutcomeSheet = false - }, - onCancel: { - showingOutcomeSheet = false - } - ) - } - } -} - -/// Sheet for sending outcomes -struct OutcomeSheet: View { - let onSend: (String, Double?) -> Void - let onCancel: () -> Void - - @State private var outcomeName = "" - @State private var outcomeValue = "" - @State private var includeValue = false - @FocusState private var focusedField: Field? - - private enum Field { - case name, value - } - - var body: some View { - NavigationStack { - Form { - Section { - TextField("Outcome Name", text: $outcomeName) - .focused($focusedField, equals: .name) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - } - - Section { - Toggle("Include Value", isOn: $includeValue) - - if includeValue { - TextField("Value", text: $outcomeValue) - .focused($focusedField, equals: .value) - .keyboardType(.decimalPad) - } - } - } - .navigationTitle("Send Outcome") - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .cancellationAction) { - Button("Cancel") { - onCancel() - } - } - - ToolbarItem(placement: .confirmationAction) { - Button("Send") { - let value = includeValue ? Double(outcomeValue) : nil - onSend(outcomeName, value) - } - .disabled(outcomeName.trimmingCharacters(in: .whitespaces).isEmpty) - } - } - .onAppear { - focusedField = .name - } - } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) - } -} - -#Preview { - List { - MessagingSection() - } - .environmentObject(OneSignalViewModel()) -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NotificationSection.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NotificationSection.swift deleted file mode 100644 index 92b7bcdfd..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NotificationSection.swift +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for sending test push notifications and in-app messages -struct NotificationSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - // Send Push Notification Section - Section { - NotificationTypeGrid { type in - viewModel.sendTestNotification(type) - } - } header: { - Text("Send Push Notification") - } - - // Send In-App Message Section - Section { - InAppMessageTypeGrid { type in - viewModel.sendTestInAppMessage(type) - } - } header: { - Text("Send In-App Message") - } - } -} - -#Preview { - List { - NotificationSection() - } - .environmentObject(OneSignalViewModel()) -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/SubscriptionSection.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/SubscriptionSection.swift deleted file mode 100644 index 24ea67eca..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/SubscriptionSection.swift +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for push subscription, email, and SMS management -struct SubscriptionSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - // Push Section - Section { - // Push ID - VStack(alignment: .leading, spacing: 4) { - Text("Push ID") - .font(.caption) - .foregroundColor(.secondary) - Text(viewModel.pushSubscriptionId ?? "Not available") - .font(.system(.footnote, design: .monospaced)) - .textSelection(.enabled) - } - .padding(.vertical, 4) - - // Enabled Toggle - Toggle("Enabled", isOn: Binding( - get: { viewModel.isPushEnabled }, - set: { _ in viewModel.togglePushEnabled() } - )) - } header: { - Text("Push") - } - - // Emails Section - Section { - if viewModel.emails.isEmpty { - EmptyListRow(message: "No Emails Added") - } else { - ForEach(viewModel.emails, id: \.self) { email in - SingleValueRow(value: email) { - viewModel.removeEmail(email) - } - } - } - - Button { - viewModel.showAddSheet(for: .email) - } label: { - HStack { - Spacer() - Label("Add Email", systemImage: "plus") - .fontWeight(.medium) - Spacer() - } - } - } header: { - Text("Emails") - } - - // SMS Section - Section { - if viewModel.smsNumbers.isEmpty { - EmptyListRow(message: "No SMSs Added") - } else { - ForEach(viewModel.smsNumbers, id: \.self) { sms in - SingleValueRow(value: sms) { - viewModel.removeSms(sms) - } - } - } - - Button { - viewModel.showAddSheet(for: .sms) - } label: { - HStack { - Spacer() - Label("Add SMS", systemImage: "plus") - .fontWeight(.medium) - Spacer() - } - } - } header: { - Text("SMSs") - } - } -} - -#Preview { - List { - SubscriptionSection() - } - .environmentObject(OneSignalViewModel()) -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift deleted file mode 100644 index 586169e30..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for managing user tags -struct TagsSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - Section { - if viewModel.tags.isEmpty { - EmptyListRow(message: "No Tags Added") - } else { - ForEach(viewModel.tags) { tag in - KeyValueRow(item: tag) { - viewModel.removeTag(tag) - } - } - } - - Button { - viewModel.showAddSheet(for: .tag) - } label: { - HStack { - Spacer() - Label("Add Tag", systemImage: "plus") - .fontWeight(.medium) - Spacer() - } - } - } header: { - Text("Tags") - } - } -} - -#Preview { - List { - TagsSection() - } - .environmentObject(OneSignalViewModel()) -} diff --git a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/UserSection.swift b/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/UserSection.swift deleted file mode 100644 index 77b8c130b..000000000 --- a/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/UserSection.swift +++ /dev/null @@ -1,103 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for user login/logout and alias management -struct UserSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - // Login/Logout Section - Section { - // Login Button - Button { - viewModel.showAddSheet(for: .externalUserId) - } label: { - HStack { - Spacer() - Text("Login User") - .fontWeight(.medium) - Spacer() - } - } - - // Logout Button - Button(role: .destructive) { - viewModel.logout() - } label: { - HStack { - Spacer() - Text("Logout User") - .fontWeight(.medium) - Spacer() - } - } - .disabled(viewModel.externalUserId == nil) - - // Current User Info - if let userId = viewModel.externalUserId { - InfoRow(label: "External User ID", value: userId) - } - } header: { - Text("User") - } - - // Aliases Section - Section { - if viewModel.aliases.isEmpty { - EmptyListRow(message: "No Aliases Added") - } else { - ForEach(viewModel.aliases) { alias in - KeyValueRow(item: alias) { - viewModel.removeAlias(alias) - } - } - } - - Button { - viewModel.showAddSheet(for: .alias) - } label: { - HStack { - Spacer() - Label("Add Alias", systemImage: "plus") - .fontWeight(.medium) - Spacer() - } - } - } header: { - Text("Aliases") - } - } -} - -#Preview { - List { - UserSection() - } - .environmentObject(OneSignalViewModel()) -} diff --git a/OneSignalSwiftUIExample/README.md b/OneSignalSwiftUIExample/README.md deleted file mode 100644 index f20899df8..000000000 --- a/OneSignalSwiftUIExample/README.md +++ /dev/null @@ -1,136 +0,0 @@ -# OneSignal SwiftUI Example App - -A modern SwiftUI example app demonstrating the OneSignal iOS SDK features using MVVM architecture. - -## Features - -This example app demonstrates all major OneSignal SDK capabilities: - -- **User Management**: Login/logout with external user ID -- **Aliases**: Add and remove user aliases -- **Push Subscriptions**: Enable/disable push notifications, view push ID -- **Email & SMS**: Add and remove email and SMS subscriptions -- **Tags**: Manage user tags for segmentation -- **Outcomes**: Track outcome events with optional values -- **In-App Messaging**: Pause/resume IAM, manage triggers -- **Location**: Toggle location sharing, request permissions -- **Test Notifications**: Grid of notification types for testing - -## Architecture - -The app follows the **MVVM (Model-View-ViewModel)** pattern: - -``` -OneSignalSwiftUIExample/ -├── App/ -│ └── OneSignalSwiftUIExampleApp.swift # App entry point, SDK init -├── Views/ -│ ├── ContentView.swift # Main view -│ ├── Sections/ # Feature sections -│ │ ├── AppInfoSection.swift -│ │ ├── UserSection.swift -│ │ ├── SubscriptionSection.swift -│ │ ├── TagsSection.swift -│ │ ├── MessagingSection.swift -│ │ ├── LocationSection.swift -│ │ └── NotificationSection.swift -│ └── Components/ # Reusable UI components -│ ├── KeyValueRow.swift -│ ├── AddItemSheet.swift -│ ├── NotificationGrid.swift -│ └── ToastView.swift -├── ViewModels/ -│ └── OneSignalViewModel.swift # Main ViewModel -├── Models/ -│ └── AppModels.swift # Data models -├── Services/ -│ └── OneSignalService.swift # SDK wrapper -└── Assets.xcassets/ # App assets -``` - -## Setup Instructions - -### 1. Create Xcode Project - -1. Open Xcode and create a new project -2. Select **iOS** → **App** -3. Configure the project: - - Product Name: `OneSignalSwiftUIExample` - - Team: Your development team - - Organization Identifier: `com.onesignal` - - Interface: **SwiftUI** - - Language: **Swift** - - Storage: None -4. Save the project in `iOS_SDK/OneSignalSwiftUIExample/` - -### 2. Add Source Files - -1. Delete the auto-generated `ContentView.swift` and `OneSignalSwiftUIExampleApp.swift` -2. Drag all the folders from `OneSignalSwiftUIExample/` into your Xcode project: - - `App/` - - `Views/` - - `ViewModels/` - - `Models/` - - `Services/` - - `Assets.xcassets/` -3. Make sure "Copy items if needed" is **unchecked** and "Create groups" is selected - -### 3. Add OneSignal SDK Dependencies - -#### Option A: Swift Package Manager (Recommended) - -1. In Xcode, go to **File** → **Add Package Dependencies...** -2. Enter the OneSignal SDK repository URL: `https://github.com/OneSignal/OneSignal-iOS-SDK` -3. Select version **5.0.0** or later -4. Add the following packages to your main target: - - `OneSignalFramework` - - `OneSignalInAppMessages` - - `OneSignalLocation` - -#### Option B: Local Development - -If you're developing the SDK locally: - -1. Drag the parent `OneSignal-iOS-SDK` folder into your project -2. Or add local package dependency pointing to the repo root - -### 4. Configure Capabilities - -1. Select your project in the navigator -2. Select your app target -3. Go to **Signing & Capabilities** -4. Add the following capabilities: - - **Push Notifications** - - **Background Modes** → Check "Remote notifications" - -### 5. Configure Info.plist - -The included `Info.plist` already has the required keys: -- `NSLocationWhenInUseUsageDescription` -- `NSLocationAlwaysAndWhenInUseUsageDescription` -- `UIBackgroundModes` with `remote-notification` - -### 6. Update App ID (Optional) - -The default OneSignal App ID is configured in `OneSignalService.swift`. To use your own: - -1. Open `Services/OneSignalService.swift` -2. Change the `defaultAppId` value to your OneSignal App ID - -## Running the App - -1. Select a simulator or device -2. Build and run (⌘R) -3. Grant notification permissions when prompted -4. Explore the various OneSignal features - -## Requirements - -- iOS 15.0+ -- Xcode 15.0+ -- Swift 5.9+ -- OneSignal iOS SDK 5.0+ - -## License - -Modified MIT License - See LICENSE file for details. From 3582a2d8790bc9c5622d24038ba9417ede85a0fd Mon Sep 17 00:00:00 2001 From: Fadi George Date: Sun, 24 May 2026 13:15:58 -0700 Subject: [PATCH 03/23] feat(demo): add NSE and Widget extension targets --- .../Info.plist | 13 ++ .../NotificationService.swift | 71 +++++++ ...lNotificationServiceExtension.entitlements | 10 + .../demo/OneSignalSwiftUIExample.entitlements | 4 + .../demo/OneSignalSwiftUIExample/Info.plist | 4 + .../AccentColor.colorset/Contents.json | 11 ++ .../AppIcon.appiconset/Contents.json | 13 ++ .../Assets.xcassets/Contents.json | 6 + .../WidgetBackground.colorset/Contents.json | 11 ++ examples/demo/OneSignalWidget/Info.plist | 11 ++ .../OneSignalWidgetBundle.swift | 38 ++++ .../OneSignalWidgetLiveActivity.swift | 175 ++++++++++++++++++ examples/demo/README.md | 114 ++++++++---- 13 files changed, 443 insertions(+), 38 deletions(-) create mode 100644 examples/demo/OneSignalNotificationServiceExtension/Info.plist create mode 100644 examples/demo/OneSignalNotificationServiceExtension/NotificationService.swift create mode 100644 examples/demo/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements create mode 100644 examples/demo/OneSignalWidget/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 examples/demo/OneSignalWidget/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 examples/demo/OneSignalWidget/Assets.xcassets/Contents.json create mode 100644 examples/demo/OneSignalWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json create mode 100644 examples/demo/OneSignalWidget/Info.plist create mode 100644 examples/demo/OneSignalWidget/OneSignalWidgetBundle.swift create mode 100644 examples/demo/OneSignalWidget/OneSignalWidgetLiveActivity.swift diff --git a/examples/demo/OneSignalNotificationServiceExtension/Info.plist b/examples/demo/OneSignalNotificationServiceExtension/Info.plist new file mode 100644 index 000000000..57421ebf9 --- /dev/null +++ b/examples/demo/OneSignalNotificationServiceExtension/Info.plist @@ -0,0 +1,13 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.usernotifications.service + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).NotificationService + + + diff --git a/examples/demo/OneSignalNotificationServiceExtension/NotificationService.swift b/examples/demo/OneSignalNotificationServiceExtension/NotificationService.swift new file mode 100644 index 000000000..df9ad5d3c --- /dev/null +++ b/examples/demo/OneSignalNotificationServiceExtension/NotificationService.swift @@ -0,0 +1,71 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import UserNotifications +import OneSignalExtension + +/// Notification Service Extension that hands incoming pushes to OneSignal so it can +/// download attachments, decrypt confidential pushes, and apply mutable content updates. +/// Only runs when `mutable_content` is set on the push (which OneSignal sets automatically +/// for any notification with attachments or action buttons). +class NotificationService: UNNotificationServiceExtension { + + var contentHandler: ((UNNotificationContent) -> Void)? + var receivedRequest: UNNotificationRequest! + var bestAttemptContent: UNMutableNotificationContent? + + override func didReceive( + _ request: UNNotificationRequest, + withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void + ) { + self.receivedRequest = request + self.contentHandler = contentHandler + self.bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent) + + if let bestAttemptContent = bestAttemptContent { + // Uncomment to verify the extension is firing during local debug: + // print("Running NotificationServiceExtension") + // bestAttemptContent.body = "[Modified] " + bestAttemptContent.body + + OneSignalExtension.didReceiveNotificationExtensionRequest( + self.receivedRequest, + with: bestAttemptContent, + withContentHandler: self.contentHandler + ) + } + } + + override func serviceExtensionTimeWillExpire() { + if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent { + OneSignalExtension.serviceExtensionTimeWillExpireRequest( + self.receivedRequest, + with: self.bestAttemptContent + ) + contentHandler(bestAttemptContent) + } + } +} diff --git a/examples/demo/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements b/examples/demo/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements new file mode 100644 index 000000000..c70461e82 --- /dev/null +++ b/examples/demo/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.com.onesignal.example.onesignal + + + diff --git a/examples/demo/OneSignalSwiftUIExample.entitlements b/examples/demo/OneSignalSwiftUIExample.entitlements index 903def2af..344636495 100644 --- a/examples/demo/OneSignalSwiftUIExample.entitlements +++ b/examples/demo/OneSignalSwiftUIExample.entitlements @@ -4,5 +4,9 @@ aps-environment development + com.apple.security.application-groups + + group.com.onesignal.example.onesignal + diff --git a/examples/demo/OneSignalSwiftUIExample/Info.plist b/examples/demo/OneSignalSwiftUIExample/Info.plist index aba8d06a4..8367dd5a1 100644 --- a/examples/demo/OneSignalSwiftUIExample/Info.plist +++ b/examples/demo/OneSignalSwiftUIExample/Info.plist @@ -26,6 +26,10 @@ This app uses your location to personalize notifications and content. NSLocationAlwaysAndWhenInUseUsageDescription This app uses your location to personalize notifications and content even when the app is in the background. + NSSupportsLiveActivities + + NSSupportsLiveActivitiesFrequentUpdates + UIApplicationSceneManifest UIApplicationSupportsMultipleScenes diff --git a/examples/demo/OneSignalWidget/Assets.xcassets/AccentColor.colorset/Contents.json b/examples/demo/OneSignalWidget/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 000000000..0afb3cf0e --- /dev/null +++ b/examples/demo/OneSignalWidget/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors": [ + { + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/examples/demo/OneSignalWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/demo/OneSignalWidget/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..b121e3bce --- /dev/null +++ b/examples/demo/OneSignalWidget/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images": [ + { + "idiom": "universal", + "platform": "ios", + "size": "1024x1024" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/examples/demo/OneSignalWidget/Assets.xcassets/Contents.json b/examples/demo/OneSignalWidget/Assets.xcassets/Contents.json new file mode 100644 index 000000000..74d6a722c --- /dev/null +++ b/examples/demo/OneSignalWidget/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/examples/demo/OneSignalWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json b/examples/demo/OneSignalWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 000000000..0afb3cf0e --- /dev/null +++ b/examples/demo/OneSignalWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors": [ + { + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/examples/demo/OneSignalWidget/Info.plist b/examples/demo/OneSignalWidget/Info.plist new file mode 100644 index 000000000..0f118fb75 --- /dev/null +++ b/examples/demo/OneSignalWidget/Info.plist @@ -0,0 +1,11 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + + diff --git a/examples/demo/OneSignalWidget/OneSignalWidgetBundle.swift b/examples/demo/OneSignalWidget/OneSignalWidgetBundle.swift new file mode 100644 index 000000000..063a36e0c --- /dev/null +++ b/examples/demo/OneSignalWidget/OneSignalWidgetBundle.swift @@ -0,0 +1,38 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import WidgetKit +import SwiftUI + +@main +struct OneSignalWidgetBundle: WidgetBundle { + var body: some Widget { + if #available(iOS 16.2, *) { + OneSignalWidgetLiveActivity() + } + } +} diff --git a/examples/demo/OneSignalWidget/OneSignalWidgetLiveActivity.swift b/examples/demo/OneSignalWidget/OneSignalWidgetLiveActivity.swift new file mode 100644 index 000000000..cf4a029d3 --- /dev/null +++ b/examples/demo/OneSignalWidget/OneSignalWidgetLiveActivity.swift @@ -0,0 +1,175 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import ActivityKit +import WidgetKit +import SwiftUI +import OneSignalLiveActivities + +/// Live Activity widget that renders the order tracking flow used by the demo. +/// Uses `DefaultLiveActivityAttributes` (provided by the OneSignal SDK) so the same +/// data shape works between `OneSignal.LiveActivities.startDefault(...)` and remote +/// `event_updates` payloads sent via the REST API. +@available(iOS 16.2, *) +struct OneSignalWidgetLiveActivity: Widget { + + var body: some WidgetConfiguration { + ActivityConfiguration(for: DefaultLiveActivityAttributes.self) { context in + let orderNumber = context.attributes.data["orderNumber"]?.asString() ?? "Order" + let status = context.state.data["status"]?.asString() ?? "preparing" + let message = context.state.data["message"]?.asString() ?? "Your order is being prepared" + let eta = context.state.data["estimatedTime"]?.asString() ?? "" + + VStack(spacing: 10) { + HStack { + Text(orderNumber) + .font(.caption) + .foregroundColor(.gray) + Spacer() + if !eta.isEmpty { + Text(eta) + .font(.caption) + .foregroundColor(.white.opacity(0.7)) + } + } + + HStack(spacing: 12) { + Image(systemName: Self.statusIcon(for: status)) + .font(.title2) + .foregroundColor(Self.statusColor(for: status)) + + VStack(alignment: .leading, spacing: 2) { + Text(Self.statusLabel(for: status)) + .font(.headline) + .foregroundColor(.white) + Text(message) + .font(.subheadline) + .foregroundColor(.white.opacity(0.8)) + .lineLimit(1) + } + Spacer() + } + + DeliveryProgressBar(status: status) + } + .padding() + .activityBackgroundTint(Color(red: 0.11, green: 0.13, blue: 0.19)) + .activitySystemActionForegroundColor(.white) + + } dynamicIsland: { context in + let status = context.state.data["status"]?.asString() ?? "preparing" + let message = context.state.data["message"]?.asString() ?? "Preparing" + let eta = context.state.data["estimatedTime"]?.asString() ?? "" + + return DynamicIsland { + DynamicIslandExpandedRegion(.leading) { + Image(systemName: Self.statusIcon(for: status)) + .font(.title2) + .foregroundColor(Self.statusColor(for: status)) + } + DynamicIslandExpandedRegion(.center) { + Text(Self.statusLabel(for: status)) + .font(.headline) + } + DynamicIslandExpandedRegion(.trailing) { + if !eta.isEmpty { + Text(eta) + .font(.caption) + .foregroundColor(.secondary) + } + } + DynamicIslandExpandedRegion(.bottom) { + Text(message) + .font(.caption) + .foregroundColor(.secondary) + } + } compactLeading: { + Image(systemName: Self.statusIcon(for: status)) + .foregroundColor(Self.statusColor(for: status)) + } compactTrailing: { + Text(Self.statusLabel(for: status)) + .font(.caption) + } minimal: { + Image(systemName: Self.statusIcon(for: status)) + .foregroundColor(Self.statusColor(for: status)) + } + } + } + + // MARK: - Status helpers + + private static func statusIcon(for status: String) -> String { + switch status { + case "on_the_way": return "box.truck.fill" + case "delivered": return "checkmark.circle.fill" + default: return "bag.fill" + } + } + + private static func statusColor(for status: String) -> Color { + switch status { + case "on_the_way": return .blue + case "delivered": return .green + default: return .orange + } + } + + private static func statusLabel(for status: String) -> String { + switch status { + case "on_the_way": return "On the Way" + case "delivered": return "Delivered" + default: return "Preparing" + } + } +} + +@available(iOS 16.2, *) +struct DeliveryProgressBar: View { + let status: String + + private var progress: CGFloat { + switch status { + case "on_the_way": return 0.6 + case "delivered": return 1.0 + default: return 0.25 + } + } + + var body: some View { + GeometryReader { geo in + ZStack(alignment: .leading) { + RoundedRectangle(cornerRadius: 3) + .fill(Color.white.opacity(0.2)) + .frame(height: 6) + RoundedRectangle(cornerRadius: 3) + .fill(progress >= 1.0 ? Color.green : Color.blue) + .frame(width: geo.size.width * progress, height: 6) + } + } + .frame(height: 6) + } +} diff --git a/examples/demo/README.md b/examples/demo/README.md index 2d6ace7d7..26f44e96b 100644 --- a/examples/demo/README.md +++ b/examples/demo/README.md @@ -24,30 +24,46 @@ Every interactive element exposes an `accessibilityIdentifier` matching the Capa ## Architecture +The Xcode project ships three targets, mirroring the Capacitor / Cordova / RN demos: + ``` -OneSignalSwiftUIExample/ -├── App/ -│ └── OneSignalSwiftUIExampleApp.swift # @main + AppDelegate, SDK + Live Activities setup -├── Views/ -│ ├── ContentView.swift # Composes sections + sheets in Capacitor demo order -│ ├── Sections/ # AppSection, UserSection, PushSection, ... -│ └── Components/ # SectionCard, ActionButton, ToggleRow, -│ # AddItemSheet, MultiPairInputSheet, RemoveMultiSheet, -│ # OutcomeSheet, CustomNotificationSheet, TrackEventSheet, -│ # TooltipSheet, ToastView, ListWidgets, KeyValueRow -├── ViewModels/ -│ └── OneSignalViewModel.swift # Single ObservableObject backing every section -├── Models/ -│ └── AppModels.swift # KeyValueItem, NotificationType, InAppMessageType, -│ # AddItemType, MultiAddItemType, RemoveMultiItemType, -│ # OutcomeMode, TooltipData, UserData -├── Services/ -│ ├── OneSignalService.swift # Thin wrapper over OneSignal.* APIs -│ ├── NotificationSender.swift # Posts to /notifications with retry on transient failures -│ ├── UserFetchService.swift # Hydrates aliases / tags / channels via /users -│ ├── TooltipService.swift # Loads tooltip JSON from sdk-shared (with fallback) -│ └── LiveActivityController.swift # Wraps OneSignal.LiveActivities + REST update / end -└── Assets.xcassets/ +examples/demo/ +├── OneSignalSwiftUIExample.xcodeproj +├── OneSignalSwiftUIExample.entitlements # main app: aps-environment + app group +├── OneSignalSwiftUIExample/ # Main app target +│ ├── App/ +│ │ └── OneSignalSwiftUIExampleApp.swift # @main + AppDelegate, SDK + Live Activity setup +│ ├── Views/ +│ │ ├── ContentView.swift # Composes sections + sheets in Capacitor order +│ │ ├── Sections/ # AppSection, UserSection, PushSection, ... +│ │ └── Components/ # SectionCard, ActionButton, ToggleRow, +│ │ # AddItemSheet, MultiPairInputSheet, RemoveMultiSheet, +│ │ # OutcomeSheet, CustomNotificationSheet, TrackEventSheet, +│ │ # TooltipSheet, ToastView, ListWidgets, KeyValueRow +│ ├── ViewModels/ +│ │ └── OneSignalViewModel.swift # Single ObservableObject backing every section +│ ├── Models/ +│ │ └── AppModels.swift # KeyValueItem, NotificationType, InAppMessageType, +│ │ # AddItemType, MultiAddItemType, RemoveMultiItemType, +│ │ # OutcomeMode, TooltipData, UserData +│ ├── Services/ +│ │ ├── OneSignalService.swift # Thin wrapper over OneSignal.* APIs +│ │ ├── NotificationSender.swift # Posts to /notifications with retry on transient failures +│ │ ├── UserFetchService.swift # Hydrates aliases / tags / channels via /users +│ │ ├── TooltipService.swift # Loads tooltip JSON from sdk-shared (with fallback) +│ │ └── LiveActivityController.swift # Wraps OneSignal.LiveActivities + REST update / end +│ └── Assets.xcassets/ +│ +├── OneSignalNotificationServiceExtension/ # NSE target — required for rich push (images, decryption, mutable content) +│ ├── NotificationService.swift # Forwards to OneSignalExtension.didReceiveNotificationExtensionRequest +│ ├── Info.plist # NSExtension/usernotifications.service +│ └── OneSignalNotificationServiceExtension.entitlements # app group (must match main app) +│ +└── OneSignalWidget/ # Widget Extension target — required to render Live Activities + ├── OneSignalWidgetBundle.swift # @main WidgetBundle + ├── OneSignalWidgetLiveActivity.swift # Lock screen + Dynamic Island UI for DefaultLiveActivityAttributes + ├── Info.plist # NSExtension/widgetkit-extension + └── Assets.xcassets/ # WidgetBackground, AccentColor, AppIcon ``` ## Setup Instructions @@ -59,33 +75,55 @@ OneSignalSwiftUIExample/ 3. Delete the auto-generated `ContentView.swift` and `OneSignalSwiftUIExampleApp.swift` 4. Drag the `App/`, `Views/`, `ViewModels/`, `Models/`, `Services/`, and `Assets.xcassets/` folders from this repo into your project, with **Copy items if needed unchecked** -### 2. Add OneSignal SDK dependencies +### 2. Add the Notification Service Extension target + +1. **File → New → Target… → Notification Service Extension**, name it `OneSignalNotificationServiceExtension` +2. Delete the auto-generated `NotificationService.swift` and `Info.plist` from the new target +3. Drag in the existing `OneSignalNotificationServiceExtension/` files from this folder, with **target membership** set to the new extension only +4. Set the entitlements file to `OneSignalNotificationServiceExtension.entitlements` + +### 3. Add the Widget Extension target (for Live Activities) + +1. **File → New → Target… → Widget Extension**, name it `OneSignalWidget`. **Uncheck** "Include Configuration Intent" +2. Delete the auto-generated `OneSignalWidget.swift`, `OneSignalWidgetBundle.swift`, `Info.plist`, and `Assets.xcassets` +3. Drag in the existing `OneSignalWidget/` files from this folder, target membership set to the widget target only +4. In the widget target's build settings, set **iOS Deployment Target** to 16.2 or later + +### 4. Add OneSignal SDK dependencies -Use Swift Package Manager: +Use Swift Package Manager (**File → Add Package Dependencies…**, URL `https://github.com/OneSignal/OneSignal-iOS-SDK`, version 5.0.0+) and attach products to targets: -1. **File → Add Package Dependencies…** -2. Enter `https://github.com/OneSignal/OneSignal-iOS-SDK`, select 5.0.0+ -3. Add these packages to the main app target: - - `OneSignalFramework` - - `OneSignalInAppMessages` - - `OneSignalLiveActivities` - - `OneSignalLocation` +| Product | Main app | NSE | Widget | +| --------------------------- | -------- | --- | ------ | +| `OneSignalFramework` | yes | | | +| `OneSignalInAppMessages` | yes | | | +| `OneSignalLocation` | yes | | | +| `OneSignalLiveActivities` | yes | | yes | +| `OneSignalExtension` | | yes | | -### 3. Configure capabilities +### 5. Configure capabilities -In **Signing & Capabilities** add: +For the **main app** target in **Signing & Capabilities**: - **Push Notifications** - **Background Modes** → Remote notifications -- **Live Activities** (iOS 16.1+): set `NSSupportsLiveActivities = YES` in Info.plist +- **App Groups** → `group.com.onesignal.example.onesignal` (rename to your own app group, then update both entitlements files) -### 4. Update App ID +For the **NSE** target: + +- **App Groups** → same group as the main app + +The widget target needs no capabilities beyond what Xcode adds for you. `NSSupportsLiveActivities` is already set in `OneSignalSwiftUIExample/Info.plist`. + +### 6. Update App ID `Services/OneSignalService.swift` ships with a placeholder. Either edit `defaultAppId` or override it at runtime via `UserDefaults` (key `OneSignalAppId`). -### 5. (Optional) Live Activities REST API key +### 7. (Optional) Live Activities REST API key + +To exercise **Update** / **End** of Live Activities, add a `Secrets.plist` file to the main app bundle with key `ONESIGNAL_API_KEY` set to a OneSignal REST API key for your app. Without a key the section disables those buttons and shows a hint. -To exercise **Update** / **End** of Live Activities, add a `Secrets.plist` file to the bundle with key `ONESIGNAL_API_KEY` set to a OneSignal REST API key for your app. Without a key the section disables those buttons and shows a hint. +> The widget renders `DefaultLiveActivityAttributes` (provided by the SDK), so the Activity ID + Order # you type into the demo flows through to the same widget regardless of whether the update came from `OneSignal.LiveActivities` locally or from the REST `/live_activities/{id}/notifications` endpoint. ## Running the App From db63503d4196e1ccd9582c5b86d1dffd2b258937 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Sun, 24 May 2026 13:19:12 -0700 Subject: [PATCH 04/23] refactor(demo): rename project and source dir to App --- ...IExample.entitlements => App.entitlements} | 0 .../AccentColor.colorset/Contents.json | 0 .../AppIcon.appiconset/Contents.json | 0 .../Assets.xcassets/Contents.json | 0 .../Info.plist | 0 .../Models/AppModels.swift | 0 .../App/OneSignalSwiftUIExampleApp.swift | 0 .../Services/LiveActivityController.swift | 0 .../Services/NotificationSender.swift | 0 .../Services/OneSignalService.swift | 0 .../Services/TooltipService.swift | 0 .../Services/UserFetchService.swift | 0 .../ViewModels/OneSignalViewModel.swift | 0 .../Views/Components/ActionButton.swift | 0 .../Views/Components/AddItemSheet.swift | 0 .../Components/CustomNotificationSheet.swift | 0 .../Views/Components/KeyValueRow.swift | 0 .../Views/Components/ListWidgets.swift | 0 .../Components/MultiPairInputSheet.swift | 0 .../Views/Components/OutcomeSheet.swift | 0 .../Views/Components/RemoveMultiSheet.swift | 0 .../Views/Components/SectionCard.swift | 0 .../Views/Components/ToastView.swift | 0 .../Views/Components/ToggleRow.swift | 0 .../Views/Components/TooltipSheet.swift | 0 .../Views/Components/TrackEventSheet.swift | 0 .../Views/ContentView.swift | 0 .../Views/Sections/AliasesSection.swift | 0 .../Views/Sections/AppSection.swift | 0 .../Views/Sections/CustomEventsSection.swift | 0 .../Views/Sections/EmailsSection.swift | 0 .../Views/Sections/InAppSection.swift | 0 .../Views/Sections/LiveActivitySection.swift | 0 .../Views/Sections/LocationSection.swift | 0 .../Views/Sections/OutcomesSection.swift | 0 .../Views/Sections/PushSection.swift | 0 .../Views/Sections/SendIamSection.swift | 0 .../Views/Sections/SendPushSection.swift | 0 .../Views/Sections/SmsSection.swift | 0 .../Views/Sections/TagsSection.swift | 0 .../Views/Sections/TriggersSection.swift | 0 .../Views/Sections/UserSection.swift | 0 examples/demo/README.md | 24 ++++++++++--------- 43 files changed, 13 insertions(+), 11 deletions(-) rename examples/demo/{OneSignalSwiftUIExample.entitlements => App.entitlements} (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Assets.xcassets/AccentColor.colorset/Contents.json (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Assets.xcassets/Contents.json (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Info.plist (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Models/AppModels.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => }/App/OneSignalSwiftUIExampleApp.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Services/LiveActivityController.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Services/NotificationSender.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Services/OneSignalService.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Services/TooltipService.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Services/UserFetchService.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/ViewModels/OneSignalViewModel.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/ActionButton.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/AddItemSheet.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/CustomNotificationSheet.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/KeyValueRow.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/ListWidgets.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/MultiPairInputSheet.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/OutcomeSheet.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/RemoveMultiSheet.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/SectionCard.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/ToastView.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/ToggleRow.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/TooltipSheet.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Components/TrackEventSheet.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/ContentView.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/AliasesSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/AppSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/CustomEventsSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/EmailsSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/InAppSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/LiveActivitySection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/LocationSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/OutcomesSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/PushSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/SendIamSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/SendPushSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/SmsSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/TagsSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/TriggersSection.swift (100%) rename examples/demo/{OneSignalSwiftUIExample => App}/Views/Sections/UserSection.swift (100%) diff --git a/examples/demo/OneSignalSwiftUIExample.entitlements b/examples/demo/App.entitlements similarity index 100% rename from examples/demo/OneSignalSwiftUIExample.entitlements rename to examples/demo/App.entitlements diff --git a/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json b/examples/demo/App/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json rename to examples/demo/App/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/demo/App/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json rename to examples/demo/App/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/examples/demo/OneSignalSwiftUIExample/Assets.xcassets/Contents.json b/examples/demo/App/Assets.xcassets/Contents.json similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Assets.xcassets/Contents.json rename to examples/demo/App/Assets.xcassets/Contents.json diff --git a/examples/demo/OneSignalSwiftUIExample/Info.plist b/examples/demo/App/Info.plist similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Info.plist rename to examples/demo/App/Info.plist diff --git a/examples/demo/OneSignalSwiftUIExample/Models/AppModels.swift b/examples/demo/App/Models/AppModels.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Models/AppModels.swift rename to examples/demo/App/Models/AppModels.swift diff --git a/examples/demo/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift b/examples/demo/App/OneSignalSwiftUIExampleApp.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift rename to examples/demo/App/OneSignalSwiftUIExampleApp.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Services/LiveActivityController.swift b/examples/demo/App/Services/LiveActivityController.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Services/LiveActivityController.swift rename to examples/demo/App/Services/LiveActivityController.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Services/NotificationSender.swift b/examples/demo/App/Services/NotificationSender.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Services/NotificationSender.swift rename to examples/demo/App/Services/NotificationSender.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Services/OneSignalService.swift b/examples/demo/App/Services/OneSignalService.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Services/OneSignalService.swift rename to examples/demo/App/Services/OneSignalService.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Services/TooltipService.swift b/examples/demo/App/Services/TooltipService.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Services/TooltipService.swift rename to examples/demo/App/Services/TooltipService.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Services/UserFetchService.swift b/examples/demo/App/Services/UserFetchService.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Services/UserFetchService.swift rename to examples/demo/App/Services/UserFetchService.swift diff --git a/examples/demo/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift b/examples/demo/App/ViewModels/OneSignalViewModel.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift rename to examples/demo/App/ViewModels/OneSignalViewModel.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/ActionButton.swift b/examples/demo/App/Views/Components/ActionButton.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/ActionButton.swift rename to examples/demo/App/Views/Components/ActionButton.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift b/examples/demo/App/Views/Components/AddItemSheet.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift rename to examples/demo/App/Views/Components/AddItemSheet.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift b/examples/demo/App/Views/Components/CustomNotificationSheet.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift rename to examples/demo/App/Views/Components/CustomNotificationSheet.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift b/examples/demo/App/Views/Components/KeyValueRow.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift rename to examples/demo/App/Views/Components/KeyValueRow.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/ListWidgets.swift b/examples/demo/App/Views/Components/ListWidgets.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/ListWidgets.swift rename to examples/demo/App/Views/Components/ListWidgets.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/MultiPairInputSheet.swift b/examples/demo/App/Views/Components/MultiPairInputSheet.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/MultiPairInputSheet.swift rename to examples/demo/App/Views/Components/MultiPairInputSheet.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/OutcomeSheet.swift b/examples/demo/App/Views/Components/OutcomeSheet.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/OutcomeSheet.swift rename to examples/demo/App/Views/Components/OutcomeSheet.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift b/examples/demo/App/Views/Components/RemoveMultiSheet.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift rename to examples/demo/App/Views/Components/RemoveMultiSheet.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/SectionCard.swift b/examples/demo/App/Views/Components/SectionCard.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/SectionCard.swift rename to examples/demo/App/Views/Components/SectionCard.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/ToastView.swift b/examples/demo/App/Views/Components/ToastView.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/ToastView.swift rename to examples/demo/App/Views/Components/ToastView.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/ToggleRow.swift b/examples/demo/App/Views/Components/ToggleRow.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/ToggleRow.swift rename to examples/demo/App/Views/Components/ToggleRow.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/TooltipSheet.swift b/examples/demo/App/Views/Components/TooltipSheet.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/TooltipSheet.swift rename to examples/demo/App/Views/Components/TooltipSheet.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift b/examples/demo/App/Views/Components/TrackEventSheet.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift rename to examples/demo/App/Views/Components/TrackEventSheet.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/ContentView.swift b/examples/demo/App/Views/ContentView.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/ContentView.swift rename to examples/demo/App/Views/ContentView.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/AliasesSection.swift b/examples/demo/App/Views/Sections/AliasesSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/AliasesSection.swift rename to examples/demo/App/Views/Sections/AliasesSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/AppSection.swift b/examples/demo/App/Views/Sections/AppSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/AppSection.swift rename to examples/demo/App/Views/Sections/AppSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/CustomEventsSection.swift b/examples/demo/App/Views/Sections/CustomEventsSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/CustomEventsSection.swift rename to examples/demo/App/Views/Sections/CustomEventsSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/EmailsSection.swift b/examples/demo/App/Views/Sections/EmailsSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/EmailsSection.swift rename to examples/demo/App/Views/Sections/EmailsSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/InAppSection.swift b/examples/demo/App/Views/Sections/InAppSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/InAppSection.swift rename to examples/demo/App/Views/Sections/InAppSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift b/examples/demo/App/Views/Sections/LiveActivitySection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift rename to examples/demo/App/Views/Sections/LiveActivitySection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift b/examples/demo/App/Views/Sections/LocationSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift rename to examples/demo/App/Views/Sections/LocationSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/OutcomesSection.swift b/examples/demo/App/Views/Sections/OutcomesSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/OutcomesSection.swift rename to examples/demo/App/Views/Sections/OutcomesSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/PushSection.swift b/examples/demo/App/Views/Sections/PushSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/PushSection.swift rename to examples/demo/App/Views/Sections/PushSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/SendIamSection.swift b/examples/demo/App/Views/Sections/SendIamSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/SendIamSection.swift rename to examples/demo/App/Views/Sections/SendIamSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/SendPushSection.swift b/examples/demo/App/Views/Sections/SendPushSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/SendPushSection.swift rename to examples/demo/App/Views/Sections/SendPushSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/SmsSection.swift b/examples/demo/App/Views/Sections/SmsSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/SmsSection.swift rename to examples/demo/App/Views/Sections/SmsSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift b/examples/demo/App/Views/Sections/TagsSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift rename to examples/demo/App/Views/Sections/TagsSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/TriggersSection.swift b/examples/demo/App/Views/Sections/TriggersSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/TriggersSection.swift rename to examples/demo/App/Views/Sections/TriggersSection.swift diff --git a/examples/demo/OneSignalSwiftUIExample/Views/Sections/UserSection.swift b/examples/demo/App/Views/Sections/UserSection.swift similarity index 100% rename from examples/demo/OneSignalSwiftUIExample/Views/Sections/UserSection.swift rename to examples/demo/App/Views/Sections/UserSection.swift diff --git a/examples/demo/README.md b/examples/demo/README.md index 26f44e96b..1823179fd 100644 --- a/examples/demo/README.md +++ b/examples/demo/README.md @@ -28,11 +28,10 @@ The Xcode project ships three targets, mirroring the Capacitor / Cordova / RN de ``` examples/demo/ -├── OneSignalSwiftUIExample.xcodeproj -├── OneSignalSwiftUIExample.entitlements # main app: aps-environment + app group -├── OneSignalSwiftUIExample/ # Main app target -│ ├── App/ -│ │ └── OneSignalSwiftUIExampleApp.swift # @main + AppDelegate, SDK + Live Activity setup +├── App.xcodeproj +├── App.entitlements # main app: aps-environment + app group +├── App/ # Main app target source +│ ├── OneSignalSwiftUIExampleApp.swift # @main + AppDelegate, SDK + Live Activity setup │ ├── Views/ │ │ ├── ContentView.swift # Composes sections + sheets in Capacitor order │ │ ├── Sections/ # AppSection, UserSection, PushSection, ... @@ -52,7 +51,8 @@ examples/demo/ │ │ ├── UserFetchService.swift # Hydrates aliases / tags / channels via /users │ │ ├── TooltipService.swift # Loads tooltip JSON from sdk-shared (with fallback) │ │ └── LiveActivityController.swift # Wraps OneSignal.LiveActivities + REST update / end -│ └── Assets.xcassets/ +│ ├── Assets.xcassets/ +│ └── Info.plist │ ├── OneSignalNotificationServiceExtension/ # NSE target — required for rich push (images, decryption, mutable content) │ ├── NotificationService.swift # Forwards to OneSignalExtension.didReceiveNotificationExtensionRequest @@ -66,14 +66,16 @@ examples/demo/ └── Assets.xcassets/ # WidgetBackground, AccentColor, AppIcon ``` +This mirrors the Capacitor demo's iOS layout (`OneSignal-Capacitor-SDK/examples/demo/ios/App/{App,OneSignalNotificationServiceExtension,OneSignalWidget}/`). + ## Setup Instructions ### 1. Create the Xcode project -1. Open Xcode and create a new **iOS App** (Interface: SwiftUI, Language: Swift, Storage: None) -2. Save the project as `OneSignalSwiftUIExample` inside `examples/demo/` -3. Delete the auto-generated `ContentView.swift` and `OneSignalSwiftUIExampleApp.swift` -4. Drag the `App/`, `Views/`, `ViewModels/`, `Models/`, `Services/`, and `Assets.xcassets/` folders from this repo into your project, with **Copy items if needed unchecked** +1. Open Xcode and create a new **iOS App** named `App` (Interface: SwiftUI, Language: Swift, Storage: None) +2. Save it inside `examples/demo/` so the project file ends up at `examples/demo/App.xcodeproj` +3. Delete the auto-generated `App/ContentView.swift` and `App/AppApp.swift` +4. Drag the existing source folders from `examples/demo/App/` into the target with **Copy items if needed unchecked**: `Views/`, `ViewModels/`, `Models/`, `Services/`, `Assets.xcassets/`, and the `OneSignalSwiftUIExampleApp.swift` entry point at the root ### 2. Add the Notification Service Extension target @@ -113,7 +115,7 @@ For the **NSE** target: - **App Groups** → same group as the main app -The widget target needs no capabilities beyond what Xcode adds for you. `NSSupportsLiveActivities` is already set in `OneSignalSwiftUIExample/Info.plist`. +The widget target needs no capabilities beyond what Xcode adds for you. `NSSupportsLiveActivities` is already set in `App/Info.plist`. ### 6. Update App ID From 55edd1070587efa432a0cdbc2ae08b4b02a35144 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Sun, 24 May 2026 13:28:11 -0700 Subject: [PATCH 05/23] chore(demo): remove SwiftUI example from workspace --- GettingStarted.md | 97 +- docs/assets/red-app-screenshot.png | Bin 57338 -> 0 bytes docs/assets/xcode-console-output.png | Bin 39643 -> 0 bytes docs/assets/xcode-scheme-selector.png | Bin 350484 -> 0 bytes examples/demo/README.md | 2 +- .../contents.xcworkspacedata | 3 - .../Info.plist | 31 - .../NotificationService.swift | 37 - ...lNotificationServiceExtension.entitlements | 10 - .../OneSignalSwiftUIExample.entitlements | 12 - .../project.pbxproj | 960 -------------- .../OneSignalSwiftUIExample.xcscheme | 93 -- .../App/OneSignalSwiftUIExampleApp.swift | 257 ---- .../AccentColor.colorset/Contents.json | 38 - .../AppIcon.appiconset/100.png | Bin 8004 -> 0 bytes .../AppIcon.appiconset/1024.png | Bin 83781 -> 0 bytes .../AppIcon.appiconset/114.png | Bin 9253 -> 0 bytes .../AppIcon.appiconset/120.png | Bin 9675 -> 0 bytes .../AppIcon.appiconset/128.png | Bin 10472 -> 0 bytes .../AppIcon.appiconset/144.png | Bin 11630 -> 0 bytes .../AppIcon.appiconset/152.png | Bin 12562 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/16.png | Bin 834 -> 0 bytes .../AppIcon.appiconset/167.png | Bin 13971 -> 0 bytes .../AppIcon.appiconset/172.png | Bin 14348 -> 0 bytes .../AppIcon.appiconset/180.png | Bin 15136 -> 0 bytes .../AppIcon.appiconset/196.png | Bin 16813 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/20.png | Bin 1174 -> 0 bytes .../AppIcon.appiconset/216.png | Bin 18650 -> 0 bytes .../AppIcon.appiconset/256.png | Bin 23108 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/29.png | Bin 1890 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/32.png | Bin 2109 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/40.png | Bin 2788 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/48.png | Bin 3490 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/50.png | Bin 3735 -> 0 bytes .../AppIcon.appiconset/512.png | Bin 54163 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/55.png | Bin 4158 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/57.png | Bin 4325 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/58.png | Bin 4350 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/60.png | Bin 4545 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/64.png | Bin 4873 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/66.png | Bin 5048 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/72.png | Bin 5116 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/76.png | Bin 5938 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/80.png | Bin 6258 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/87.png | Bin 6838 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/88.png | Bin 6940 -> 0 bytes .../Assets.xcassets/AppIcon.appiconset/92.png | Bin 7294 -> 0 bytes .../AppIcon.appiconset/Contents.json | 346 ----- .../Assets.xcassets/Contents.json | 6 - .../OneSignalLogo.imageset/Contents.json | 24 - .../onesignal_rectangle.png | Bin 18638 -> 0 bytes .../ExampleAppWidgetAttributes.swift | 37 - .../OneSignalSwiftUIExample/Info.plist | 60 - .../Models/AppModels.swift | 179 --- .../Services/LiveActivityController.swift | 83 -- .../Services/LogManager.swift | 92 -- .../Services/NotificationSender.swift | 176 --- .../Services/OneSignalService.swift | 274 ---- .../Services/TooltipService.swift | 101 -- .../Services/UserFetchService.swift | 125 -- .../ViewModels/OneSignalViewModel.swift | 627 --------- .../Views/Components/AddItemSheet.swift | 176 --- .../Views/Components/AddMultiItemSheet.swift | 140 --- .../Components/CustomNotificationSheet.swift | 113 -- .../Views/Components/GuidanceBanner.swift | 54 - .../Views/Components/KeyValueRow.swift | 363 ------ .../Views/Components/LogView.swift | 130 -- .../Views/Components/NotificationGrid.swift | 89 -- .../Views/Components/RemoveMultiSheet.swift | 118 -- .../Views/Components/ToastView.swift | 80 -- .../Views/Components/TrackEventSheet.swift | 150 --- .../Views/ContentView.swift | 199 --- .../Views/Sections/AppInfoSection.swift | 84 -- .../Views/Sections/LiveActivitySection.swift | 46 - .../Views/Sections/LocationSection.swift | 62 - .../Views/Sections/MessagingSection.swift | 272 ---- .../Views/Sections/NextScreenSection.swift | 81 -- .../Views/Sections/NotificationSection.swift | 81 -- .../Views/Sections/SubscriptionSection.swift | 180 --- .../Views/Sections/TagsSection.swift | 79 -- .../Views/Sections/TrackEventSection.swift | 50 - .../Views/Sections/UserSection.swift | 132 -- .../OneSignalWidgetExtension.entitlements | 10 - .../OneSignalWidgetExtension/Info.plist | 11 - .../OneSignalWidgetExtension.swift | 43 - .../OneSignalWidgetExtensionBundle.swift | 13 - ...OneSignalWidgetExtensionLiveActivity.swift | 226 ---- iOS_SDK/OneSignalSwiftUIExample/README.md | 153 --- .../build_app_prompt.md | 1117 ----------------- 89 files changed, 28 insertions(+), 7894 deletions(-) delete mode 100644 docs/assets/red-app-screenshot.png delete mode 100644 docs/assets/xcode-console-output.png delete mode 100644 docs/assets/xcode-scheme-selector.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/Info.plist delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/NotificationService.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.entitlements delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.xcodeproj/project.pbxproj delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.xcodeproj/xcshareddata/xcschemes/OneSignalSwiftUIExample.xcscheme delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/100.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/1024.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/114.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/120.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/128.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/144.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/152.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/16.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/167.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/172.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/180.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/196.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/20.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/216.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/256.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/29.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/32.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/40.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/48.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/50.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/512.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/55.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/57.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/58.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/60.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/64.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/66.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/72.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/76.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/80.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/87.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/88.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/92.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/Contents.json delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/OneSignalLogo.imageset/Contents.json delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/OneSignalLogo.imageset/onesignal_rectangle.png delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ExampleAppWidgetAttributes.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Info.plist delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Models/AppModels.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/LiveActivityController.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/LogManager.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/NotificationSender.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/OneSignalService.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/TooltipService.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/UserFetchService.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddMultiItemSheet.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/GuidanceBanner.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/LogView.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/NotificationGrid.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/ToastView.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/ContentView.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/AppInfoSection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/MessagingSection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NextScreenSection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NotificationSection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/SubscriptionSection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TrackEventSection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/UserSection.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension.entitlements delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/Info.plist delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtension.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtensionBundle.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtensionLiveActivity.swift delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/README.md delete mode 100644 iOS_SDK/OneSignalSwiftUIExample/build_app_prompt.md diff --git a/GettingStarted.md b/GettingStarted.md index ed68b0727..2fd265c7e 100644 --- a/GettingStarted.md +++ b/GettingStarted.md @@ -1,10 +1,11 @@ -# Getting Started with the Red App +# Getting Started -The **Red App** is a SwiftUI sample application that exercises every major feature of the OneSignal iOS SDK. Use it to validate SDK behavior, test integrations, and explore the API surface on a simulator or physical device. +This repo ships two ways to exercise the OneSignal iOS SDK: -

- Red App screenshot -

+| App | Location | Purpose | +|-----|----------|---------| +| **OneSignalDevApp** | `iOS_SDK/OneSignalDevApp/` | Internal dev/test app wired into `OneSignalSDK.xcworkspace`. Builds against **local SDK source**, so any changes you make to the SDK are picked up immediately. Use this when modifying the SDK. | +| **examples/demo** | `examples/demo/` | Customer-facing SwiftUI demo that mirrors the OneSignal Capacitor / Cordova / RN demos (same section layout, accessibility identifiers, sdk-shared tooltip content). Builds against the published SwiftPM SDK. Use this as a reference integration. | ## Prerequisites @@ -15,86 +16,42 @@ The **Red App** is a SwiftUI sample application that exercises every major featu | Swift | 5.9+ | | iOS target | 16.0+ | -## Running the App +## Running OneSignalDevApp (SDK contributors) -### Option A — Open via the workspace (recommended) +This is the recommended path when you're working on the SDK itself. -

- Xcode scheme selector showing OneSignalSwiftUIExample -

- -1. Open `iOS_SDK/OneSignalSDK.xcworkspace` in Xcode. -2. In the scheme selector (top-left toolbar), choose **OneSignalSwiftUIExample**. -3. Pick a simulator (e.g. iPhone 17 Pro) or a connected device. +1. Open `iOS_SDK/OneSignalSDK.xcworkspace` in Xcode (the workspace, not any individual `.xcodeproj`). +2. Select the **OneSignalDevApp** scheme. +3. Pick a simulator or a connected device. 4. Press **Cmd + R** to build and run. -Your Xcode toolbar should look like this above — scheme set to **OneSignalSwiftUIExample**, a simulator or physical device chosen, and the app running. - -The workspace contains multiple schemes. Make sure **OneSignalSwiftUIExample** is selected. - -Once the app is running, SDK debug logs stream to the Xcode console — useful for verifying network calls, subscription state, and in-app message events: - -

- Xcode console showing SDK debug logs -

- -### Option B — Open from the terminal - -```bash -open iOS_SDK/OneSignalSDK.xcworkspace -``` - -Then follow steps 2–4 from Option A. - -### Option C — Open only the example project - -> Use this if you only need the sample app and don't plan to modify the SDK source. - -```bash -open iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.xcodeproj -``` +SDK debug logs stream to the Xcode console — useful for verifying network calls, subscription state, and in-app message events. -Select the **OneSignalSwiftUIExample** scheme, pick a destination, and run. +> Push notification delivery requires a **physical device** with a valid APNs configuration. The simulator supports permission prompts and token generation but won't receive remote pushes. -> **Note:** Opening the `.xcworkspace` (Options A/B) is preferred because it links the sample app against the SDK source, so any local SDK changes are picked up automatically. +## Running examples/demo (reference integration) -## Using Your Own App ID +The `examples/demo/` app demonstrates the recommended integration shape for app developers, including a Notification Service Extension target and a Live Activities Widget Extension target. -The default App ID (`77e32082-ea27-...c72e141824ef`) is a shared test key. To use your own: +See [`examples/demo/README.md`](examples/demo/README.md) for full setup steps. In short: -**Changing the App ID requires uninstalling and reinstalling the app for it to take effect.** +1. Create the Xcode project at `examples/demo/App.xcodeproj` (the source files and extension folders are checked in but `project.pbxproj` is not). +2. Add the OneSignal SwiftPM dependency (`https://github.com/OneSignal/OneSignal-iOS-SDK`, 5.0.0+) and attach the right products to each of the three targets (App / NSE / Widget). +3. Configure capabilities (Push Notifications, App Groups, Background Modes → Remote notifications) and run. -1. Open `iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/OneSignalService.swift`. -2. Replace the `defaultAppId` value with your OneSignal App ID (available at [onesignal.com](https://onesignal.com)). -3. Then uninstall the app from the device/simulator and run it again. +## Using your own App ID -## Features +Both apps default to a shared OneSignal App ID. To switch to your own: -The Red App is organized into scrollable sections, each mapping to a OneSignal SDK capability: +- **OneSignalDevApp** — open `iOS_SDK/OneSignalDevApp/OneSignalDevApp/AppDelegate.m` and replace the App ID passed to `OneSignal.initialize`. +- **examples/demo** — edit `examples/demo/App/Services/OneSignalService.swift` and replace `defaultAppId`, or override at runtime via `UserDefaults` (key `OneSignalAppId`). -| Section | What It Does | -|---------|-------------| -| **Logs** | Collapsible live SDK log viewer with a configurable entry limit and clear button. | -| **App Info** | Displays the current App ID and a consent-required toggle that gates SDK data processing. | -| **User** | Shows login status (Anonymous / Identified) and External ID. Login and logout buttons to switch between user states. | -| **Push** | Displays the Push Subscription ID, an enable/disable toggle, and permission status. | -| **Send Push Notification** | Quick-fire buttons (Simple, Custom) to send test push notifications to the current device. | -| **In-App Messaging** | Pause/resume in-app messages. | -| **Send In-App Message** | Trigger a test in-app message. | -| **Aliases** | Add and remove key-value aliases for the current user. | -| **Email** | Add and remove email subscriptions. | -| **SMS** | Add and remove SMS subscriptions. | -| **Tags** | Manage user tags used for audience segmentation. | -| **Outcome Events** | Fire unique, regular, or valued outcome events for analytics. | -| **Triggers** | Set and remove in-app message triggers. | -| **Track Event** | Send custom user events with optional properties. | -| **Location** | Toggle location sharing and request location permissions. | -| **Live Activities** | Start and manage iOS Live Activities via OneSignal. | +Changing the App ID requires uninstalling and reinstalling the app for it to take effect. ## Troubleshooting | Problem | Fix | |---------|-----| -| Build fails with missing framework | Make sure you opened the **`.xcworkspace`**, not the `.xcodeproj`. | -| Push notifications don't arrive on simulator | Push delivery requires a **physical device** with a valid APNs configuration. The simulator supports permission prompts and token generation but won't receive remote pushes. | -| "Consent Required" blocks SDK calls | Toggle **Consent Required** off, or call the consent API to grant consent. | +| Build fails with missing framework | Open the workspace (`OneSignalSDK.xcworkspace`), not an individual `.xcodeproj`. | +| Push notifications don't arrive on simulator | Push delivery requires a physical device with APNs configured. | +| "Consent Required" blocks SDK calls | Toggle **Consent Required** off, or grant consent via the SDK's consent API. | diff --git a/docs/assets/red-app-screenshot.png b/docs/assets/red-app-screenshot.png deleted file mode 100644 index c0c61439edbe794b5fdba419fd9e0cfb76e79e1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57338 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 diff --git a/docs/assets/xcode-console-output.png b/docs/assets/xcode-console-output.png deleted file mode 100644 index 2c154c2921c39dba50d3efbd0ec5d8c0fba85ed2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39643 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 B76$+T diff --git a/docs/assets/xcode-scheme-selector.png b/docs/assets/xcode-scheme-selector.png deleted file mode 100644 index e3ecb260848f81c6ad742e59044be55e581d1f9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350484 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

qUR;2mj&({_TN}r5Eo`h`BNz_drQj@4xyj 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

6uKbPt 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�j{nps{s_hn3OcF9{G>tTsh;P4G%aG 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 diff --git a/examples/demo/README.md b/examples/demo/README.md index 1823179fd..58ea4f078 100644 --- a/examples/demo/README.md +++ b/examples/demo/README.md @@ -1,6 +1,6 @@ # OneSignal SwiftUI Example App -A SwiftUI demo app that exercises every public surface of the OneSignal iOS SDK and mirrors the layout, naming, and behavior of the OneSignal Capacitor demo so the same end-to-end test suite (`@onesignal/sdk-shared`) can drive both apps. +A SwiftUI demo app that exercises every public surface of the OneSignal iOS SDK and mirrors the layout, naming, and behavior of other OneSignal SDKS so the same end-to-end test suite (`@onesignal/sdk-shared`) can drive both apps. ## Features diff --git a/iOS_SDK/OneSignalSDK.xcworkspace/contents.xcworkspacedata b/iOS_SDK/OneSignalSDK.xcworkspace/contents.xcworkspacedata index 9e7617845..9979cb733 100644 --- a/iOS_SDK/OneSignalSDK.xcworkspace/contents.xcworkspacedata +++ b/iOS_SDK/OneSignalSDK.xcworkspace/contents.xcworkspacedata @@ -1,9 +1,6 @@ - - diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/Info.plist b/iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/Info.plist deleted file mode 100644 index 9c03e92f1..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/Info.plist +++ /dev/null @@ -1,31 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - OneSignalNotificationServiceExtension - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - $(MARKETING_VERSION) - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSExtension - - NSExtensionPointIdentifier - com.apple.usernotifications.service - NSExtensionPrincipalClass - $(PRODUCT_MODULE_NAME).NotificationService - - - diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/NotificationService.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/NotificationService.swift deleted file mode 100644 index d536bdaff..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/NotificationService.swift +++ /dev/null @@ -1,37 +0,0 @@ -import UserNotifications -import OneSignalExtension - -class NotificationService: UNNotificationServiceExtension { - - var contentHandler: ((UNNotificationContent) -> Void)? - var receivedRequest: UNNotificationRequest? - var bestAttemptContent: UNMutableNotificationContent? - - override func didReceive( - _ request: UNNotificationRequest, - withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void - ) { - self.receivedRequest = request - self.contentHandler = contentHandler - self.bestAttemptContent = request.content.mutableCopy() as? UNMutableNotificationContent - - if let bestAttemptContent = bestAttemptContent { - OneSignalExtension.didReceiveNotificationExtensionRequest( - request, - with: bestAttemptContent, - withContentHandler: contentHandler - ) - } - } - - override func serviceExtensionTimeWillExpire() { - if let contentHandler = contentHandler, - let bestAttemptContent = bestAttemptContent { - OneSignalExtension.serviceExtensionTimeWillExpireRequest( - receivedRequest!, - with: bestAttemptContent - ) - contentHandler(bestAttemptContent) - } - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements b/iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements deleted file mode 100644 index c70461e82..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements +++ /dev/null @@ -1,10 +0,0 @@ - - - - - com.apple.security.application-groups - - group.com.onesignal.example.onesignal - - - diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.entitlements b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.entitlements deleted file mode 100644 index 344636495..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.entitlements +++ /dev/null @@ -1,12 +0,0 @@ - - - - - aps-environment - development - com.apple.security.application-groups - - group.com.onesignal.example.onesignal - - - diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.xcodeproj/project.pbxproj b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.xcodeproj/project.pbxproj deleted file mode 100644 index a5578aa23..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.xcodeproj/project.pbxproj +++ /dev/null @@ -1,960 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 63; - objects = { - -/* Begin PBXBuildFile section */ - 076B2F5C2E9B739160493063 /* UserFetchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59FD3768669ADB5E8E927B7F /* UserFetchService.swift */; }; - 0D666446CA5476DB5AC260EA /* OneSignalLiveActivities.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A265470C544D20273EEB62B0 /* OneSignalLiveActivities.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 104E342C46E0870F7E30FB29 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 56C25916C718509D05DF03B2 /* CoreLocation.framework */; }; - 12A93EBB7D6C97B82814924A /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CD2DA9DC09F1EF7D989C291 /* UserNotifications.framework */; }; - 14AB26AE3A2FF05C9F62CCD2 /* CustomNotificationSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBF680E9246E2AE4D179CD3E /* CustomNotificationSheet.swift */; }; - 19FA9DF58988997FD6F5BD2A /* OneSignalLiveActivities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A265470C544D20273EEB62B0 /* OneSignalLiveActivities.framework */; }; - 1D68D16D167B951BD57386ED /* OneSignalSwiftUIExampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE9826D274F62E747F3A931B /* OneSignalSwiftUIExampleApp.swift */; }; - 1FC9DF3B1B444569E585CA2B /* OneSignalNotificationServiceExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 50B6C9352575073F1873F639 /* OneSignalNotificationServiceExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 228DE2E45BE2EEA72F9436F3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 985DE7F1C6162433D11943B0 /* SystemConfiguration.framework */; }; - 23578DF36320EFEB17E12FFA /* OneSignalInAppMessages.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A6BA7282C93D0714AB7AE9D /* OneSignalInAppMessages.framework */; }; - 25D4FC203BE01E9A35ACA465 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FEE98DA6A075AEB7709CCBE2 /* Assets.xcassets */; }; - 2E6D6E17EEE5D42AE3CAB9EA /* AddItemSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = F42140C8B10F3D06BDE1C79E /* AddItemSheet.swift */; }; - 2F52BD9F2A3002390A7C8896 /* OneSignalViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD249AC2E0DD1F282E33E3BF /* OneSignalViewModel.swift */; }; - 36AD6B646EA553AD54024FAC /* OneSignalLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B5B39E8FA865B4030F3009B4 /* OneSignalLocation.framework */; }; - 39D261592E207BCB8F453E6E /* OneSignalOSCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 501ED810C4C9B04785D4CCD4 /* OneSignalOSCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 3C25C0592F3409E9005E5E9A /* NotificationSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C25C0582F3409E9005E5E9A /* NotificationSender.swift */; }; - 44345BEEC3249B530635D91C /* TrackEventSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BBEDE187CB941C13F384CF0 /* TrackEventSection.swift */; }; - 4840204E727B4F405094C542 /* OneSignalExtension.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B441216A875FE941AED4964E /* OneSignalExtension.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 49E74AFBFBE23D06B7D310EC /* SubscriptionSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DF983228037C1B729C1419 /* SubscriptionSection.swift */; }; - 56FA425BC3C515132CF2098F /* OneSignalUser.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7B9F08F02892844599AA8BDD /* OneSignalUser.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 59BF581E9C89F1D09BB5130A /* OneSignalOutcomes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E815F87FE680572C74E9D51 /* OneSignalOutcomes.framework */; }; - 5EEA4B007D60765502F2A6E5 /* MessagingSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 962607A12EFC53D2F77E5948 /* MessagingSection.swift */; }; - 644520A37F05E25FD17F5CF9 /* AppModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45255F2C6EB0B13E199BDC65 /* AppModels.swift */; }; - 6486DBFD33978F37842B8326 /* TooltipService.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6B2BF7C4E1DDEA6AD4AF40B /* TooltipService.swift */; }; - 6C7913B91320573B2AE46212 /* RemoveMultiSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E77A427C94B9932B08E72DA9 /* RemoveMultiSheet.swift */; }; - 74920778F254B9DA27906AA3 /* AppInfoSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 564304E2BA4613FD7649116D /* AppInfoSection.swift */; }; - 7C93699D746B0B5807AD13BB /* NextScreenSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55F91FF35087706DBF9AD3BA /* NextScreenSection.swift */; }; - 7F7A92F525620CDF81EC46BE /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93A7E57EF192E9C9385A1484 /* NotificationService.swift */; }; - 85BAC3A9462800CB3A23C362 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D676BEDC8A5CB48BBF8FFAF9 /* LogManager.swift */; }; - 861FCEE8AFB371A2FA3BCC93 /* OneSignalOSCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 501ED810C4C9B04785D4CCD4 /* OneSignalOSCore.framework */; }; - 8B3A2DC19BD16993EC4B617B /* GuidanceBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B06024858612EFCB3F42CC /* GuidanceBanner.swift */; }; - 8EF4836F9252E9C8180804AB /* OneSignalOutcomes.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4E815F87FE680572C74E9D51 /* OneSignalOutcomes.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 8F3FE40D8D603A8879C6A111 /* TrackEventSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C56E78CB208A9F1F53318D8 /* TrackEventSheet.swift */; }; - 8F69162AE31452F3956160BE /* OneSignalUser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B9F08F02892844599AA8BDD /* OneSignalUser.framework */; }; - 959F9DFCC1031992FB28E771 /* OneSignalCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 533347B40563BF22FB6EAC9C /* OneSignalCore.framework */; }; - 9EF9D8D46AAAD6F93B32FDCB /* OneSignalLocation.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B5B39E8FA865B4030F3009B4 /* OneSignalLocation.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - A8954DAC09761A3125EF37D3 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A084A32F6E0CA6A6354705C0 /* WebKit.framework */; }; - A92101FA384AC15596D4A659 /* OneSignalNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E0805F3793886C9122DFB6E4 /* OneSignalNotifications.framework */; }; - AD19D28FDE8DAA7C8BC87939 /* LocationSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60D373C8C00DE06FC5CD01C5 /* LocationSection.swift */; }; - B13E9460BDD0553FF05542A0 /* NotificationGrid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414EE3451468D29D4A9C87AC /* NotificationGrid.swift */; }; - B5C4A4AC0A2D2AF73C9A7DD3 /* KeyValueRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A4F866BFA1EE429ED1CECC /* KeyValueRow.swift */; }; - B86C1BD47DFEC7567B004FE8 /* OneSignalExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B441216A875FE941AED4964E /* OneSignalExtension.framework */; }; - BAE6133523D7D07386BD3172 /* AddMultiItemSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5ACF918029F336B9C36BD1C /* AddMultiItemSheet.swift */; }; - C9884D12CEDE50ACAE38DF0D /* NotificationSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = E237FD3F84CE3831CAB8A6DA /* NotificationSection.swift */; }; - C994C923037F602FA48A1490 /* OneSignalFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB1399100ED5DD83ED6CD889 /* OneSignalFramework.framework */; }; - CB5F82751F156695A7A03338 /* OneSignalService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85FF4424D702D8686CC819B8 /* OneSignalService.swift */; }; - D13A25FE5762A23125227A84 /* ToastView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8029F22CDBDB03B2CBA14212 /* ToastView.swift */; }; - D6A555B7B420B014299B9E50 /* OneSignalOutcomes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E815F87FE680572C74E9D51 /* OneSignalOutcomes.framework */; }; - D9E5ED5BA2BCFF6D9233AC66 /* OneSignalCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 533347B40563BF22FB6EAC9C /* OneSignalCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - DAA6DDE0CF432A7BE50481EC /* OneSignalNotifications.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = E0805F3793886C9122DFB6E4 /* OneSignalNotifications.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - DB2BA39FE32DB3D52154F48C /* TagsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49D0DCDB581563C015CEAFF /* TagsSection.swift */; }; - DD9942D5EB98C5F70FA8D3D8 /* OneSignalInAppMessages.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7A6BA7282C93D0714AB7AE9D /* OneSignalInAppMessages.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - E1BEF5E30555F0ADCBF62B7D /* UserSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D22580635AB6E6BE86F1396 /* UserSection.swift */; }; - E20A2AFD25AD52384A15794A /* OneSignalFramework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FB1399100ED5DD83ED6CD889 /* OneSignalFramework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - E26208CEB7DC4D217EAAE4E6 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3BF17A9E51F5A187FFAC1AC /* ContentView.swift */; }; - EFE6A330EF362418C68B3F6E /* OneSignalCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 533347B40563BF22FB6EAC9C /* OneSignalCore.framework */; }; - F8CF0C2C1A1F8842BCF86784 /* OneSignalExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B441216A875FE941AED4964E /* OneSignalExtension.framework */; }; - FEEC78AA5DE04832192D8F92 /* LogView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22B8D8F4DF8E47F8BA53423A /* LogView.swift */; }; - 63C9FA76B516816B1B0AED19 /* ExampleAppWidgetAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29513EB5D1B9AF2511CAD95A /* ExampleAppWidgetAttributes.swift */; }; - 34446FC058592648ACCD90ED /* ExampleAppWidgetAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29513EB5D1B9AF2511CAD95A /* ExampleAppWidgetAttributes.swift */; }; - 1630D207F53B85B5C5A4806C /* LiveActivityController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 503C246BD2BCA26C96E0EF56 /* LiveActivityController.swift */; }; - 2BD9DE389DE56B72D031CA01 /* OneSignalWidgetExtensionBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CE2D8F93E1D14CD1F6D3078 /* OneSignalWidgetExtensionBundle.swift */; }; - 50091A346024B3DDB1053760 /* OneSignalWidgetExtensionLiveActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99719345F5489106C54EBEA8 /* OneSignalWidgetExtensionLiveActivity.swift */; }; - 544423F60A011F8B8D2971BF /* OneSignalWidgetExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284A0F176D491DA3AF85DD6C /* OneSignalWidgetExtension.swift */; }; - 32AEC6117F13C0D50A3314D3 /* OneSignalLiveActivities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A265470C544D20273EEB62B0 /* OneSignalLiveActivities.framework */; }; - 2D326C2E53A5678B824B52F5 /* OneSignalWidgetExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 14520AFC1CB985AE6C04E572 /* OneSignalWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 6DFB09B0E23B8B3D42ED4C33 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70C8DB47C4C80E1D595FE1DE /* WidgetKit.framework */; }; - 2A7E93C9978EA3A5DD713D88 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B5D4431B0C1F4352A359427 /* SwiftUI.framework */; }; - 45050FAF882B8B140E005816 /* LiveActivitySection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D896003C77EC90B7A3C75BD /* LiveActivitySection.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - DC39EC3039BB65E2D21F753F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 7B7016AA7DF5AB54CD96701C /* Project object */; - proxyType = 1; - remoteGlobalIDString = D99FA6E45A25EB4DB04DA0CE; - remoteInfo = OneSignalNotificationServiceExtension; - }; - EEAB30880E225535B2F366FA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 7B7016AA7DF5AB54CD96701C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7729C3101598B16A32244980; - remoteInfo = OneSignalWidgetExtension; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 510E0294CE200E84088E8CC1 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - E20A2AFD25AD52384A15794A /* OneSignalFramework.framework in Embed Frameworks */, - D9E5ED5BA2BCFF6D9233AC66 /* OneSignalCore.framework in Embed Frameworks */, - 4840204E727B4F405094C542 /* OneSignalExtension.framework in Embed Frameworks */, - 8EF4836F9252E9C8180804AB /* OneSignalOutcomes.framework in Embed Frameworks */, - 39D261592E207BCB8F453E6E /* OneSignalOSCore.framework in Embed Frameworks */, - 56FA425BC3C515132CF2098F /* OneSignalUser.framework in Embed Frameworks */, - DAA6DDE0CF432A7BE50481EC /* OneSignalNotifications.framework in Embed Frameworks */, - DD9942D5EB98C5F70FA8D3D8 /* OneSignalInAppMessages.framework in Embed Frameworks */, - 9EF9D8D46AAAD6F93B32FDCB /* OneSignalLocation.framework in Embed Frameworks */, - 0D666446CA5476DB5AC260EA /* OneSignalLiveActivities.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - D6AA72CEF78258953FC1C74B /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - 1FC9DF3B1B444569E585CA2B /* OneSignalNotificationServiceExtension.appex in Embed App Extensions */, - 2D326C2E53A5678B824B52F5 /* OneSignalWidgetExtension.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 09DF983228037C1B729C1419 /* SubscriptionSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionSection.swift; sourceTree = ""; }; - 22B8D8F4DF8E47F8BA53423A /* LogView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LogView.swift; path = Views/Components/LogView.swift; sourceTree = ""; }; - 2C56E78CB208A9F1F53318D8 /* TrackEventSheet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TrackEventSheet.swift; path = Views/Components/TrackEventSheet.swift; sourceTree = ""; }; - 3C25C0582F3409E9005E5E9A /* NotificationSender.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSender.swift; sourceTree = ""; }; - 3CCBA2632F44DD4B009AFA72 /* OneSignalNotificationServiceExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OneSignalNotificationServiceExtension.entitlements; sourceTree = ""; }; - 414EE3451468D29D4A9C87AC /* NotificationGrid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationGrid.swift; sourceTree = ""; }; - 41A4F866BFA1EE429ED1CECC /* KeyValueRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyValueRow.swift; sourceTree = ""; }; - 45255F2C6EB0B13E199BDC65 /* AppModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppModels.swift; sourceTree = ""; }; - 4D22580635AB6E6BE86F1396 /* UserSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSection.swift; sourceTree = ""; }; - 4E815F87FE680572C74E9D51 /* OneSignalOutcomes.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalOutcomes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 501ED810C4C9B04785D4CCD4 /* OneSignalOSCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalOSCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50B6C9352575073F1873F639 /* OneSignalNotificationServiceExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = OneSignalNotificationServiceExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 52B06024858612EFCB3F42CC /* GuidanceBanner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GuidanceBanner.swift; path = Views/Components/GuidanceBanner.swift; sourceTree = ""; }; - 533347B40563BF22FB6EAC9C /* OneSignalCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 55F91FF35087706DBF9AD3BA /* NextScreenSection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NextScreenSection.swift; path = Views/Sections/NextScreenSection.swift; sourceTree = ""; }; - 564304E2BA4613FD7649116D /* AppInfoSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoSection.swift; sourceTree = ""; }; - 56C25916C718509D05DF03B2 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; - 59FD3768669ADB5E8E927B7F /* UserFetchService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UserFetchService.swift; path = Services/UserFetchService.swift; sourceTree = ""; }; - 60D373C8C00DE06FC5CD01C5 /* LocationSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationSection.swift; sourceTree = ""; }; - 6BBEDE187CB941C13F384CF0 /* TrackEventSection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TrackEventSection.swift; path = Views/Sections/TrackEventSection.swift; sourceTree = ""; }; - 6CD2DA9DC09F1EF7D989C291 /* UserNotifications.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UserNotifications.framework; path = System/Library/Frameworks/UserNotifications.framework; sourceTree = SDKROOT; }; - 7A6BA7282C93D0714AB7AE9D /* OneSignalInAppMessages.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalInAppMessages.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B9F08F02892844599AA8BDD /* OneSignalUser.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalUser.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7DD2010F08A0E2483F5FDDF2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8029F22CDBDB03B2CBA14212 /* ToastView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToastView.swift; sourceTree = ""; }; - 85FF4424D702D8686CC819B8 /* OneSignalService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalService.swift; sourceTree = ""; }; - 93A7E57EF192E9C9385A1484 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; - 962607A12EFC53D2F77E5948 /* MessagingSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagingSection.swift; sourceTree = ""; }; - 985DE7F1C6162433D11943B0 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; - A0506934E0F27B864F3AC273 /* OneSignalSwiftUIExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OneSignalSwiftUIExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - A084A32F6E0CA6A6354705C0 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - A265470C544D20273EEB62B0 /* OneSignalLiveActivities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalLiveActivities.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A3BF17A9E51F5A187FFAC1AC /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; - A5ACF918029F336B9C36BD1C /* AddMultiItemSheet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AddMultiItemSheet.swift; path = Views/Components/AddMultiItemSheet.swift; sourceTree = ""; }; - B441216A875FE941AED4964E /* OneSignalExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B5B39E8FA865B4030F3009B4 /* OneSignalLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalLocation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C49D0DCDB581563C015CEAFF /* TagsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TagsSection.swift; sourceTree = ""; }; - D676BEDC8A5CB48BBF8FFAF9 /* LogManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; - DBF680E9246E2AE4D179CD3E /* CustomNotificationSheet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomNotificationSheet.swift; path = Views/Components/CustomNotificationSheet.swift; sourceTree = ""; }; - E0805F3793886C9122DFB6E4 /* OneSignalNotifications.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalNotifications.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E237FD3F84CE3831CAB8A6DA /* NotificationSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSection.swift; sourceTree = ""; }; - E77A427C94B9932B08E72DA9 /* RemoveMultiSheet.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RemoveMultiSheet.swift; path = Views/Components/RemoveMultiSheet.swift; sourceTree = ""; }; - F42140C8B10F3D06BDE1C79E /* AddItemSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddItemSheet.swift; sourceTree = ""; }; - F6B2BF7C4E1DDEA6AD4AF40B /* TooltipService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TooltipService.swift; path = Services/TooltipService.swift; sourceTree = ""; }; - FB1399100ED5DD83ED6CD889 /* OneSignalFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneSignalFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FD249AC2E0DD1F282E33E3BF /* OneSignalViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalViewModel.swift; sourceTree = ""; }; - FDEE7A98A0EBB6BF767A041D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - FE9826D274F62E747F3A931B /* OneSignalSwiftUIExampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalSwiftUIExampleApp.swift; sourceTree = ""; }; - FEE98DA6A075AEB7709CCBE2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 14520AFC1CB985AE6C04E572 /* OneSignalWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = OneSignalWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 1CE2D8F93E1D14CD1F6D3078 /* OneSignalWidgetExtensionBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalWidgetExtensionBundle.swift; sourceTree = ""; }; - 99719345F5489106C54EBEA8 /* OneSignalWidgetExtensionLiveActivity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalWidgetExtensionLiveActivity.swift; sourceTree = ""; }; - 284A0F176D491DA3AF85DD6C /* OneSignalWidgetExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalWidgetExtension.swift; sourceTree = ""; }; - 18DDEB83BD3876BA863B546E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 552B0F025E1F9787E6AB2C3C /* OneSignalWidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OneSignalWidgetExtension.entitlements; sourceTree = ""; }; - 29513EB5D1B9AF2511CAD95A /* ExampleAppWidgetAttributes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleAppWidgetAttributes.swift; sourceTree = ""; }; - 503C246BD2BCA26C96E0EF56 /* LiveActivityController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveActivityController.swift; sourceTree = ""; }; - 70C8DB47C4C80E1D595FE1DE /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; - 2B5D4431B0C1F4352A359427 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; - 2D896003C77EC90B7A3C75BD /* LiveActivitySection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveActivitySection.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 70893964E2D04EE9C32A8152 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B86C1BD47DFEC7567B004FE8 /* OneSignalExtension.framework in Frameworks */, - 959F9DFCC1031992FB28E771 /* OneSignalCore.framework in Frameworks */, - D6A555B7B420B014299B9E50 /* OneSignalOutcomes.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D1959F94F086AC39994A96BD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C994C923037F602FA48A1490 /* OneSignalFramework.framework in Frameworks */, - EFE6A330EF362418C68B3F6E /* OneSignalCore.framework in Frameworks */, - F8CF0C2C1A1F8842BCF86784 /* OneSignalExtension.framework in Frameworks */, - 59BF581E9C89F1D09BB5130A /* OneSignalOutcomes.framework in Frameworks */, - 861FCEE8AFB371A2FA3BCC93 /* OneSignalOSCore.framework in Frameworks */, - 8F69162AE31452F3956160BE /* OneSignalUser.framework in Frameworks */, - A92101FA384AC15596D4A659 /* OneSignalNotifications.framework in Frameworks */, - 23578DF36320EFEB17E12FFA /* OneSignalInAppMessages.framework in Frameworks */, - 36AD6B646EA553AD54024FAC /* OneSignalLocation.framework in Frameworks */, - 19FA9DF58988997FD6F5BD2A /* OneSignalLiveActivities.framework in Frameworks */, - 104E342C46E0870F7E30FB29 /* CoreLocation.framework in Frameworks */, - 228DE2E45BE2EEA72F9436F3 /* SystemConfiguration.framework in Frameworks */, - 12A93EBB7D6C97B82814924A /* UserNotifications.framework in Frameworks */, - A8954DAC09761A3125EF37D3 /* WebKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D37A7E2DA634F0A44E3347CD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 6DFB09B0E23B8B3D42ED4C33 /* WidgetKit.framework in Frameworks */, - 2A7E93C9978EA3A5DD713D88 /* SwiftUI.framework in Frameworks */, - 32AEC6117F13C0D50A3314D3 /* OneSignalLiveActivities.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 130E67036ECE13331B1CFFFA /* Services */ = { - isa = PBXGroup; - children = ( - F6B2BF7C4E1DDEA6AD4AF40B /* TooltipService.swift */, - 59FD3768669ADB5E8E927B7F /* UserFetchService.swift */, - ); - name = Services; - sourceTree = ""; - }; - 1E3DC3EAE97EBB641F71FE7D /* OneSignalNotificationServiceExtension */ = { - isa = PBXGroup; - children = ( - 3CCBA2632F44DD4B009AFA72 /* OneSignalNotificationServiceExtension.entitlements */, - 93A7E57EF192E9C9385A1484 /* NotificationService.swift */, - 7DD2010F08A0E2483F5FDDF2 /* Info.plist */, - ); - path = OneSignalNotificationServiceExtension; - sourceTree = ""; - }; - 3D3976C085CF6E7D61D7F075 /* Products */ = { - isa = PBXGroup; - children = ( - A0506934E0F27B864F3AC273 /* OneSignalSwiftUIExample.app */, - 50B6C9352575073F1873F639 /* OneSignalNotificationServiceExtension.appex */, - 14520AFC1CB985AE6C04E572 /* OneSignalWidgetExtension.appex */, - ); - name = Products; - sourceTree = ""; - }; - 1464CBA90C4A8A500815FA26 /* OneSignalWidgetExtension */ = { - isa = PBXGroup; - children = ( - 1CE2D8F93E1D14CD1F6D3078 /* OneSignalWidgetExtensionBundle.swift */, - 99719345F5489106C54EBEA8 /* OneSignalWidgetExtensionLiveActivity.swift */, - 284A0F176D491DA3AF85DD6C /* OneSignalWidgetExtension.swift */, - 18DDEB83BD3876BA863B546E /* Info.plist */, - ); - path = OneSignalWidgetExtension; - sourceTree = ""; - }; - 4320E847C9D875EA2342DB5F /* Models */ = { - isa = PBXGroup; - children = ( - 45255F2C6EB0B13E199BDC65 /* AppModels.swift */, - ); - path = Models; - sourceTree = ""; - }; - 5ECE11F9FF76FF6082340576 /* Sections */ = { - isa = PBXGroup; - children = ( - 6BBEDE187CB941C13F384CF0 /* TrackEventSection.swift */, - 55F91FF35087706DBF9AD3BA /* NextScreenSection.swift */, - ); - name = Sections; - sourceTree = ""; - }; - 676D7DC4DABFC37256C328C5 /* Components */ = { - isa = PBXGroup; - children = ( - F42140C8B10F3D06BDE1C79E /* AddItemSheet.swift */, - 41A4F866BFA1EE429ED1CECC /* KeyValueRow.swift */, - 414EE3451468D29D4A9C87AC /* NotificationGrid.swift */, - 8029F22CDBDB03B2CBA14212 /* ToastView.swift */, - ); - path = Components; - sourceTree = ""; - }; - 6CC0A9DDAC1CB43170E00043 /* Views */ = { - isa = PBXGroup; - children = ( - C5DE3E27078ADECB8D1EDA06 /* Components */, - 5ECE11F9FF76FF6082340576 /* Sections */, - ); - name = Views; - sourceTree = ""; - }; - 82619F0C016CC5B46729A454 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 56C25916C718509D05DF03B2 /* CoreLocation.framework */, - 533347B40563BF22FB6EAC9C /* OneSignalCore.framework */, - B441216A875FE941AED4964E /* OneSignalExtension.framework */, - FB1399100ED5DD83ED6CD889 /* OneSignalFramework.framework */, - 7A6BA7282C93D0714AB7AE9D /* OneSignalInAppMessages.framework */, - A265470C544D20273EEB62B0 /* OneSignalLiveActivities.framework */, - B5B39E8FA865B4030F3009B4 /* OneSignalLocation.framework */, - E0805F3793886C9122DFB6E4 /* OneSignalNotifications.framework */, - 501ED810C4C9B04785D4CCD4 /* OneSignalOSCore.framework */, - 4E815F87FE680572C74E9D51 /* OneSignalOutcomes.framework */, - 7B9F08F02892844599AA8BDD /* OneSignalUser.framework */, - 985DE7F1C6162433D11943B0 /* SystemConfiguration.framework */, - 6CD2DA9DC09F1EF7D989C291 /* UserNotifications.framework */, - A084A32F6E0CA6A6354705C0 /* WebKit.framework */, - 70C8DB47C4C80E1D595FE1DE /* WidgetKit.framework */, - 2B5D4431B0C1F4352A359427 /* SwiftUI.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 8DB2942ED773E3D98EEC5396 = { - isa = PBXGroup; - children = ( - A21AEF40FA55F829CF1DA4B4 /* OneSignalSwiftUIExample */, - 1E3DC3EAE97EBB641F71FE7D /* OneSignalNotificationServiceExtension */, - 1464CBA90C4A8A500815FA26 /* OneSignalWidgetExtension */, - 552B0F025E1F9787E6AB2C3C /* OneSignalWidgetExtension.entitlements */, - 82619F0C016CC5B46729A454 /* Frameworks */, - 3D3976C085CF6E7D61D7F075 /* Products */, - ); - sourceTree = ""; - }; - 92778F3DF1B0939012E946A7 /* Sections */ = { - isa = PBXGroup; - children = ( - 564304E2BA4613FD7649116D /* AppInfoSection.swift */, - 2D896003C77EC90B7A3C75BD /* LiveActivitySection.swift */, - 60D373C8C00DE06FC5CD01C5 /* LocationSection.swift */, - 962607A12EFC53D2F77E5948 /* MessagingSection.swift */, - E237FD3F84CE3831CAB8A6DA /* NotificationSection.swift */, - 09DF983228037C1B729C1419 /* SubscriptionSection.swift */, - C49D0DCDB581563C015CEAFF /* TagsSection.swift */, - 4D22580635AB6E6BE86F1396 /* UserSection.swift */, - ); - path = Sections; - sourceTree = ""; - }; - 9FC97545EE1DE4A1DD157B26 /* App */ = { - isa = PBXGroup; - children = ( - FE9826D274F62E747F3A931B /* OneSignalSwiftUIExampleApp.swift */, - ); - path = App; - sourceTree = ""; - }; - A21AEF40FA55F829CF1DA4B4 /* OneSignalSwiftUIExample */ = { - isa = PBXGroup; - children = ( - 9FC97545EE1DE4A1DD157B26 /* App */, - 4320E847C9D875EA2342DB5F /* Models */, - E905BAC55971B3066478F04B /* Services */, - BAB41B49B9BD40FB4375BA33 /* ViewModels */, - DE2A74C6876FFA7E42683810 /* Views */, - FEE98DA6A075AEB7709CCBE2 /* Assets.xcassets */, - FDEE7A98A0EBB6BF767A041D /* Info.plist */, - 29513EB5D1B9AF2511CAD95A /* ExampleAppWidgetAttributes.swift */, - 130E67036ECE13331B1CFFFA /* Services */, - 6CC0A9DDAC1CB43170E00043 /* Views */, - ); - path = OneSignalSwiftUIExample; - sourceTree = ""; - }; - BAB41B49B9BD40FB4375BA33 /* ViewModels */ = { - isa = PBXGroup; - children = ( - FD249AC2E0DD1F282E33E3BF /* OneSignalViewModel.swift */, - ); - path = ViewModels; - sourceTree = ""; - }; - C5DE3E27078ADECB8D1EDA06 /* Components */ = { - isa = PBXGroup; - children = ( - 52B06024858612EFCB3F42CC /* GuidanceBanner.swift */, - 22B8D8F4DF8E47F8BA53423A /* LogView.swift */, - A5ACF918029F336B9C36BD1C /* AddMultiItemSheet.swift */, - E77A427C94B9932B08E72DA9 /* RemoveMultiSheet.swift */, - DBF680E9246E2AE4D179CD3E /* CustomNotificationSheet.swift */, - 2C56E78CB208A9F1F53318D8 /* TrackEventSheet.swift */, - ); - name = Components; - sourceTree = ""; - }; - DE2A74C6876FFA7E42683810 /* Views */ = { - isa = PBXGroup; - children = ( - 676D7DC4DABFC37256C328C5 /* Components */, - 92778F3DF1B0939012E946A7 /* Sections */, - A3BF17A9E51F5A187FFAC1AC /* ContentView.swift */, - ); - path = Views; - sourceTree = ""; - }; - E905BAC55971B3066478F04B /* Services */ = { - isa = PBXGroup; - children = ( - 85FF4424D702D8686CC819B8 /* OneSignalService.swift */, - 3C25C0582F3409E9005E5E9A /* NotificationSender.swift */, - D676BEDC8A5CB48BBF8FFAF9 /* LogManager.swift */, - 503C246BD2BCA26C96E0EF56 /* LiveActivityController.swift */, - ); - path = Services; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - D99FA6E45A25EB4DB04DA0CE /* OneSignalNotificationServiceExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = A98864C40B6D20CA1FCC9136 /* Build configuration list for PBXNativeTarget "OneSignalNotificationServiceExtension" */; - buildPhases = ( - FEA2231F20C185B148CF3295 /* Sources */, - 70893964E2D04EE9C32A8152 /* Frameworks */, - 496CC37F981649C67E534A5E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = OneSignalNotificationServiceExtension; - productName = OneSignalNotificationServiceExtension; - productReference = 50B6C9352575073F1873F639 /* OneSignalNotificationServiceExtension.appex */; - productType = "com.apple.product-type.app-extension"; - }; - F27E45A0AADC4454C26D8C07 /* OneSignalSwiftUIExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 94A2EFFFED81A4B2280CE916 /* Build configuration list for PBXNativeTarget "OneSignalSwiftUIExample" */; - buildPhases = ( - 1916C53ACCF1871776E6A261 /* Sources */, - 8B945C9AF93265E68BBE57A8 /* Resources */, - D1959F94F086AC39994A96BD /* Frameworks */, - 510E0294CE200E84088E8CC1 /* Embed Frameworks */, - D6AA72CEF78258953FC1C74B /* Embed App Extensions */, - ); - buildRules = ( - ); - dependencies = ( - 454F2CC9F3CE935E9091072B /* PBXTargetDependency */, - 330BABE7E258541AC08182DB /* PBXTargetDependency */, - ); - name = OneSignalSwiftUIExample; - productName = OneSignalSwiftUIExample; - productReference = A0506934E0F27B864F3AC273 /* OneSignalSwiftUIExample.app */; - productType = "com.apple.product-type.application"; - }; - 7729C3101598B16A32244980 /* OneSignalWidgetExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0A4805483C01DAEEFCD42066 /* Build configuration list for PBXNativeTarget "OneSignalWidgetExtension" */; - buildPhases = ( - BB92D8E493D58D5BF63C9978 /* Sources */, - D37A7E2DA634F0A44E3347CD /* Frameworks */, - E119F524BCE81A602BBBBEB6 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = OneSignalWidgetExtension; - productName = OneSignalWidgetExtension; - productReference = 14520AFC1CB985AE6C04E572 /* OneSignalWidgetExtension.appex */; - productType = "com.apple.product-type.app-extension"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7B7016AA7DF5AB54CD96701C /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1300; - TargetAttributes = { - D99FA6E45A25EB4DB04DA0CE = { - ProvisioningStyle = Automatic; - }; - F27E45A0AADC4454C26D8C07 = { - ProvisioningStyle = Automatic; - }; - 7729C3101598B16A32244980 = { - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 74CB95FE4C8E95D018B0A01A /* Build configuration list for PBXProject "OneSignalSwiftUIExample" */; - compatibilityVersion = "Xcode 14.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = 8DB2942ED773E3D98EEC5396; - minimizedProjectReferenceProxies = 1; - productRefGroup = 3D3976C085CF6E7D61D7F075 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - F27E45A0AADC4454C26D8C07 /* OneSignalSwiftUIExample */, - D99FA6E45A25EB4DB04DA0CE /* OneSignalNotificationServiceExtension */, - 7729C3101598B16A32244980 /* OneSignalWidgetExtension */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 496CC37F981649C67E534A5E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8B945C9AF93265E68BBE57A8 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 25D4FC203BE01E9A35ACA465 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E119F524BCE81A602BBBBEB6 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1916C53ACCF1871776E6A261 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2E6D6E17EEE5D42AE3CAB9EA /* AddItemSheet.swift in Sources */, - 74920778F254B9DA27906AA3 /* AppInfoSection.swift in Sources */, - 644520A37F05E25FD17F5CF9 /* AppModels.swift in Sources */, - E26208CEB7DC4D217EAAE4E6 /* ContentView.swift in Sources */, - B5C4A4AC0A2D2AF73C9A7DD3 /* KeyValueRow.swift in Sources */, - AD19D28FDE8DAA7C8BC87939 /* LocationSection.swift in Sources */, - 5EEA4B007D60765502F2A6E5 /* MessagingSection.swift in Sources */, - B13E9460BDD0553FF05542A0 /* NotificationGrid.swift in Sources */, - C9884D12CEDE50ACAE38DF0D /* NotificationSection.swift in Sources */, - CB5F82751F156695A7A03338 /* OneSignalService.swift in Sources */, - 1D68D16D167B951BD57386ED /* OneSignalSwiftUIExampleApp.swift in Sources */, - 2F52BD9F2A3002390A7C8896 /* OneSignalViewModel.swift in Sources */, - 3C25C0592F3409E9005E5E9A /* NotificationSender.swift in Sources */, - 49E74AFBFBE23D06B7D310EC /* SubscriptionSection.swift in Sources */, - DB2BA39FE32DB3D52154F48C /* TagsSection.swift in Sources */, - D13A25FE5762A23125227A84 /* ToastView.swift in Sources */, - E1BEF5E30555F0ADCBF62B7D /* UserSection.swift in Sources */, - 6486DBFD33978F37842B8326 /* TooltipService.swift in Sources */, - 076B2F5C2E9B739160493063 /* UserFetchService.swift in Sources */, - 8B3A2DC19BD16993EC4B617B /* GuidanceBanner.swift in Sources */, - 85BAC3A9462800CB3A23C362 /* LogManager.swift in Sources */, - FEEC78AA5DE04832192D8F92 /* LogView.swift in Sources */, - BAE6133523D7D07386BD3172 /* AddMultiItemSheet.swift in Sources */, - 6C7913B91320573B2AE46212 /* RemoveMultiSheet.swift in Sources */, - 14AB26AE3A2FF05C9F62CCD2 /* CustomNotificationSheet.swift in Sources */, - 8F3FE40D8D603A8879C6A111 /* TrackEventSheet.swift in Sources */, - 44345BEEC3249B530635D91C /* TrackEventSection.swift in Sources */, - 7C93699D746B0B5807AD13BB /* NextScreenSection.swift in Sources */, - 63C9FA76B516816B1B0AED19 /* ExampleAppWidgetAttributes.swift in Sources */, - 1630D207F53B85B5C5A4806C /* LiveActivityController.swift in Sources */, - 45050FAF882B8B140E005816 /* LiveActivitySection.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEA2231F20C185B148CF3295 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7F7A92F525620CDF81EC46BE /* NotificationService.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BB92D8E493D58D5BF63C9978 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2BD9DE389DE56B72D031CA01 /* OneSignalWidgetExtensionBundle.swift in Sources */, - 50091A346024B3DDB1053760 /* OneSignalWidgetExtensionLiveActivity.swift in Sources */, - 544423F60A011F8B8D2971BF /* OneSignalWidgetExtension.swift in Sources */, - 34446FC058592648ACCD90ED /* ExampleAppWidgetAttributes.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 454F2CC9F3CE935E9091072B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D99FA6E45A25EB4DB04DA0CE /* OneSignalNotificationServiceExtension */; - targetProxy = DC39EC3039BB65E2D21F753F /* PBXContainerItemProxy */; - }; - 330BABE7E258541AC08182DB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 7729C3101598B16A32244980 /* OneSignalWidgetExtension */; - targetProxy = EEAB30880E225535B2F366FA /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 09FF5B5EE6F70E991CEAE373 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_STYLE = Automatic; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = ""; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "DEBUG=1", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - MARKETING_VERSION = 5.4.1; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 19B2A627D6CEDFA231590A4B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 99SW8E36CT; - INFOPLIST_FILE = OneSignalNotificationServiceExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 5.4.1; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.OneSignalNotificationServiceExtensionA; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 70CAD4886778AACB94FDDB37 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = OneSignalSwiftUIExample.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - DEVELOPMENT_TEAM = 99SW8E36CT; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = OneSignalSwiftUIExample/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 5.4.1; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example; - SDKROOT = iphoneos; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 81971FC2118996AD12380AFF /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_STYLE = Automatic; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = ""; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - MARKETING_VERSION = 5.4.1; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 8BDA36EF0097197153C97356 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = OneSignalSwiftUIExample.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - DEVELOPMENT_TEAM = 99SW8E36CT; - ENABLE_PREVIEWS = YES; - INFOPLIST_FILE = OneSignalSwiftUIExample/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 5.4.1; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example; - SDKROOT = iphoneos; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - F647D1CFE40BD3C0C6511C73 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 99SW8E36CT; - INFOPLIST_FILE = OneSignalNotificationServiceExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 5.4.1; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.OneSignalNotificationServiceExtensionA; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - D80553ADD3452D4E48E4EB6E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; - CODE_SIGN_ENTITLEMENTS = OneSignalWidgetExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 99SW8E36CT; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = OneSignalWidgetExtension/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = OneSignalWidgetExtension; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 5.4.1; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.OneSignalWidgetExtension; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - C93E6DBD405CD230ED4C302B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; - CODE_SIGN_ENTITLEMENTS = OneSignalWidgetExtension.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 99SW8E36CT; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = OneSignalWidgetExtension/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = OneSignalWidgetExtension; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.1; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 5.4.1; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.OneSignalWidgetExtension; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 74CB95FE4C8E95D018B0A01A /* Build configuration list for PBXProject "OneSignalSwiftUIExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 09FF5B5EE6F70E991CEAE373 /* Debug */, - 81971FC2118996AD12380AFF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - 94A2EFFFED81A4B2280CE916 /* Build configuration list for PBXNativeTarget "OneSignalSwiftUIExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8BDA36EF0097197153C97356 /* Debug */, - 70CAD4886778AACB94FDDB37 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - A98864C40B6D20CA1FCC9136 /* Build configuration list for PBXNativeTarget "OneSignalNotificationServiceExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F647D1CFE40BD3C0C6511C73 /* Debug */, - 19B2A627D6CEDFA231590A4B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - 0A4805483C01DAEEFCD42066 /* Build configuration list for PBXNativeTarget "OneSignalWidgetExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D80553ADD3452D4E48E4EB6E /* Debug */, - C93E6DBD405CD230ED4C302B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7B7016AA7DF5AB54CD96701C /* Project object */; -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.xcodeproj/xcshareddata/xcschemes/OneSignalSwiftUIExample.xcscheme b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.xcodeproj/xcshareddata/xcschemes/OneSignalSwiftUIExample.xcscheme deleted file mode 100644 index c1bea564d..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample.xcodeproj/xcshareddata/xcschemes/OneSignalSwiftUIExample.xcscheme +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift deleted file mode 100644 index fe39a3a77..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/App/OneSignalSwiftUIExampleApp.swift +++ /dev/null @@ -1,257 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI -import UserNotifications -import OneSignalFramework - -@main -struct OneSignalSwiftUIExampleApp: App { - @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate - @StateObject private var viewModel = OneSignalViewModel() - - var body: some Scene { - WindowGroup { - ContentView() - .environmentObject(viewModel) - .onOpenURL { url in - let originalURL = OneSignal.LiveActivities.trackClickAndReturnOriginal(url) - LogManager.shared.i("LiveActivity", "Opened with URL: \(url), original: \(String(describing: originalURL))") - } - } - } -} - -// MARK: - App Delegate - -class AppDelegate: NSObject, UIApplicationDelegate, UNUserNotificationCenterDelegate { - - // Keys for caching SDK state in UserDefaults - private let cachedIAMPausedKey = "CachedInAppMessagesPaused" - private let cachedLocationSharedKey = "CachedLocationShared" - private let cachedConsentRequiredKey = "CachedConsentRequired" - private let cachedPrivacyConsentKey = "CachedPrivacyConsent" - - func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil - ) -> Bool { - UNUserNotificationCenter.current().delegate = self - - // Set consent required before init (must be set before initWithContext) - let consentRequired = UserDefaults.standard.bool(forKey: cachedConsentRequiredKey) - let privacyConsent = UserDefaults.standard.bool(forKey: cachedPrivacyConsentKey) - OneSignal.setConsentRequired(consentRequired) - OneSignal.setConsentGiven(privacyConsent) - - // Initialize OneSignal - OneSignalService.shared.initialize(launchOptions: launchOptions) - - // Start Live Activity listeners - if #available(iOS 16.1, *) { - LiveActivityController.start() - } - - // Restore cached SDK states before UI loads - restoreCachedStates() - - // Set up notification lifecycle listeners - setupNotificationListeners() - - // Set up in-app message listeners - setupInAppMessageListeners() - - // Set up SDK log listener for LogView - setupLogListener() - - // Initialize tooltip service (fetches on background thread, non-blocking) - TooltipService.shared.initialize() - - return true - } - - // MARK: - Manual Integration APIs (for use when swizzling is disabled) - - func application(_ application: UIApplication, - didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { - OneSignal.Notifications.didRegisterForRemoteNotifications(deviceToken: deviceToken) - } - - func application(_ application: UIApplication, - didFailToRegisterForRemoteNotificationsWithError error: Error) { - OneSignal.Notifications.didFailToRegisterForRemoteNotifications(error: error as NSError) - } - - func application(_ application: UIApplication, - didReceiveRemoteNotification userInfo: [AnyHashable: Any], - fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { - OneSignal.Notifications.didReceiveRemoteNotification(userInfo: userInfo, - completionHandler: completionHandler) - } - - func userNotificationCenter(_ center: UNUserNotificationCenter, - willPresent notification: UNNotification, - withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { - OneSignal.Notifications.willPresentNotification( - payload: notification.request.content.userInfo) { notif in - if notif != nil { - if #available(iOS 14.0, *) { - completionHandler([.banner, .list, .sound]) - } else { - completionHandler([.alert, .sound]) - } - } else { - completionHandler([]) - } - } - } - - func userNotificationCenter(_ center: UNUserNotificationCenter, - didReceive response: UNNotificationResponse, - withCompletionHandler completionHandler: @escaping () -> Void) { - OneSignal.Notifications.didReceiveNotificationResponse(response) - completionHandler() - } - - private func setupLogListener() { - OneSignal.Debug.setLogLevel(.LL_VERBOSE) - OneSignal.Debug.addLogListener(SDKLogListener.shared) - } - - private func restoreCachedStates() { - // Restore IAM paused status - let iamPaused = UserDefaults.standard.object(forKey: cachedIAMPausedKey) == nil - ? true - : UserDefaults.standard.bool(forKey: cachedIAMPausedKey) - OneSignal.InAppMessages.paused = iamPaused - - // Restore location shared status - let locationShared = UserDefaults.standard.bool(forKey: cachedLocationSharedKey) - OneSignal.Location.isShared = locationShared - } - - private func setupNotificationListeners() { - // Foreground notification display - OneSignal.Notifications.addForegroundLifecycleListener(NotificationLifecycleHandler.shared) - - // Notification click handling - OneSignal.Notifications.addClickListener(NotificationClickHandler.shared) - } - - private func setupInAppMessageListeners() { - // In-app message lifecycle - OneSignal.InAppMessages.addLifecycleListener(InAppMessageLifecycleHandler.shared) - - // In-app message click handling - OneSignal.InAppMessages.addClickListener(InAppMessageClickHandler.shared) - } -} - -// MARK: - Notification Handlers - -class NotificationLifecycleHandler: NSObject, OSNotificationLifecycleListener { - static let shared = NotificationLifecycleHandler() - - func onWillDisplay(event: OSNotificationWillDisplayEvent) { - Task { @MainActor in - LogManager.shared.i("Notification", "Will display: \(event.notification.title ?? "No title")") - } - } -} - -class NotificationClickHandler: NSObject, OSNotificationClickListener { - static let shared = NotificationClickHandler() - - func onClick(event: OSNotificationClickEvent) { - Task { @MainActor in - LogManager.shared.i("Notification", "Clicked: \(event.notification.title ?? "No title")") - } - } -} - -// MARK: - In-App Message Handlers - -class InAppMessageLifecycleHandler: NSObject, OSInAppMessageLifecycleListener { - static let shared = InAppMessageLifecycleHandler() - - func onWillDisplay(event: OSInAppMessageWillDisplayEvent) { - Task { @MainActor in - LogManager.shared.i("IAM", "Will display: \(event.message.messageId)") - } - } - - func onDidDisplay(event: OSInAppMessageDidDisplayEvent) { - Task { @MainActor in - LogManager.shared.i("IAM", "Did display: \(event.message.messageId)") - } - } - - func onWillDismiss(event: OSInAppMessageWillDismissEvent) { - Task { @MainActor in - LogManager.shared.i("IAM", "Will dismiss: \(event.message.messageId)") - } - } - - func onDidDismiss(event: OSInAppMessageDidDismissEvent) { - Task { @MainActor in - LogManager.shared.i("IAM", "Did dismiss: \(event.message.messageId)") - } - } -} - -class InAppMessageClickHandler: NSObject, OSInAppMessageClickListener { - static let shared = InAppMessageClickHandler() - - func onClick(event: OSInAppMessageClickEvent) { - Task { @MainActor in - LogManager.shared.i("IAM", "Clicked: \(event.result.actionId ?? "No action ID")") - } - } -} - -// MARK: - SDK Log Listener - -class SDKLogListener: NSObject, OSLogListener { - static let shared = SDKLogListener() - - func onLogEvent(_ event: OneSignalLogEvent) { - let level: LogLevel - switch event.level { - case .LL_FATAL, .LL_ERROR: - level = .error - case .LL_WARN: - level = .warning - case .LL_INFO: - level = .info - default: - level = .debug - } - Task { @MainActor in - LogManager.shared.log("SDK", event.entry, level: level) - } - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index 2c54006ed..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x4D", - "green" : "0x4B", - "red" : "0xE5" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x6D", - "green" : "0x6B", - "red" : "0xF5" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/100.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/100.png deleted file mode 100644 index 57855f96d6876fe1b0250e043862c6399c3a079d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8004 zcmV-KAG_d*P)Py8{z*hZRCr$PT?dp@<=KAjow~iuE=mza4N8m}jTjWWXe_bCPNG->EJccfbW}u; z-m8sB48~ZZB8jNPSWu7>Fc?r#0V%R|dY}8B_q*S>d-u-0v$MOi#s4_xa73NC<$d1X zK1op&1wVb-4F#m10BJW^um|}GkoJYgPk^*DJbr|L2$QG(r$LE1+8-c9G$I}mUzY2=K9MsX3_|gG5wEU> z;twDZ48RhPLy0FKNfH!`48?ATB|95(UOwcaLddx}kSx|@QpV$k_i168r@Vao07OUu zJt_x*h#w6E5#6^Bkv)45|MpwN_aA^#UJk|Y2LeGTM9@Tn^e$t5!jSp!k_^cr19m&4 zoNUPX`LK5C1Z%ewU_0p~*t-7=)?<&YPZ+uu-MfudTiXJ{q(K3QcmNUrLgf_*ZQF*( zmTgGv-VGc*3WUO{wz66Q`eU&q6HgFQYg_2=@dT7a9Ee6$04)~Cd3msOJr4F?o(bo< zJz?+BL%lY82zrV-#%OJ6X&XRFo+xuNH!Z3p}J}% ziEK-nq|zF7CPD;K97-g@{zwi7EXQ|+v-kPPy6jTex^`7Btb4{Z@7CJ>+k`g{&x$oK7eMkJEQz8K+9ALjK)&O{@hyVU?uNY|5h0|`E#58gN5LTv3?SPve8Y$TLQV{}B^Y(f~*SrYpcl#idG&mfp-cC2A#<-PP z?uHF;Q&gOAD#&q=WjHRp0D1S^U8l-465eQPr}2Xp1%&dJL_0;2P__3P_@8(N0F$iMxvq;39pxdDOqjIkb~JN9`mH)Tmm2#L&EE0 zURnN#2Vg((#JX51!)|iR0K&njsj7y1;Ud`o{cp(GIZ%jbaqdLrSVbXF~ln>5Zkw(#WRtepCh*S8wM0{yOfosN>3`a z$r(f;hRV)D{-84CTyu4un#~|6nFoZt7FkBc?mY<3oCU|X-$5Y`PW8gv*fS8K5fy}U zd%}4^Z#Ygn4RUsNGU*$#J1J5vu^)~gylp!|AAE?&&i}GNlikB+OZ}Xr0%LI`{C;HL zd=mT)bE3K$j^5{^XySOt zIXM{vC3Aoz5{Sz(j{I{yFn;Dkn-|UyWmzU5;Zlj{k#W?r#=o#aZyG<$qXPIjKgc! zL0Yg7R`Q~RUe<#lq{8EcR9uMMzIP($`rksb+0}2hc1}r`zKI?>1mE+k5q#%8mQJBS z)l^!nRwy11EGM1_*No|~xQd$%O7j6p#F3CKIP~^AkY>+;)!|@nu3=n392r-2u;Y@8 zP*66oF3Cs6p69eu+G?%(5nt3ARW-V-yF|KbPDl-x(7?ux@Ge_{_<@6v3-TKT#d`9| zD4sn-_4q`lGYzLBiC>#jQ)h92EaUJen~<0?1vc5D=ADd!Jd1^SPULRp4frE+Z@9ir zB7~YUdjVlXnv;!9_ZpfUR@~!;XVDS_*T2g$#_VJCZlu24Zsr!do}9+=Z%wV;G+9E_ zREUi7uf9g;;jwUpLP(g|3diS|>+cw0$+lNGD70c8L)j)+QQ4C>SO^k~b1`v5b@-ZEl z2j}Q{4jgBn1xtQGeaFEJ7>%?9Kl%tY(`T|cO0skJSTE58N@W%D$_60s_jfk@o(3AB zNq`XH!;*xPVQe*&GA%8XvYrJOnwXq zhgtEw*j4=I*V(=U3hK)*1b0Qw7n?c6z-io;DTEUcXKol(Yd6Ue)3EKY;T1R9JFy z)U2)c!{ZN1=oQbMt$I^tscH@ec}dkz&OqeT&5#QURE{%x!4?LFyfjk1dH3~0Uf;f{ z6Nmhr+$&eY|H6xq3kwYxQ(~EC%W+*$x^%H>`_fQdX#pbY8vbAimBU8Bv44MEJwqp| zlupPSIShF>-e?X6f1&7i-=b>Lqey&z5E6kwb&j_B@c4bW)?3o@y3ztfsGNhZz7BceLX~)WRYiK!>xKRN zUT{r)yg|u`eEk)w$4+2|pS?`XBmvpl0CCsV+2>N0IFw|bThkk5F5%Gw2T(b9sH$Em zYpvC?^c$+d7sz(gB>fyQT&O6UHLv$}3Y! zeQ?tz)Qp=5DL2>HmejaWFm^O@uD&Xzl%xbicvcl#wEO#@0vC6E?o(k($sBfz|#Rk7;_#7mn>Zb+i}OG1f_EH7(}-HC)vPLC_r_eUz~=L zd2>>FTd5_4R{#&snhVRib%0)73F+wEsZKidUWu?9d-tMZ=rH4^=X43w7T;seiVwD5 zodws->5#~1>!W%8j={~FP(5}cWFslzv~n$40DJeJnZ_mNfN(t*@OV)kK|AY$t^0SC$V+TY=szcAV3A_)nHVeQrpCCe78%@GD4b3nN6 zJUnk9q}Shoq_3LM9EQgW#}$20JbtXP2nwzlJ_4~lUnO%*YY;P2_uw2(eOb9T-IUDX zT%*J)Dp1kC3GwmR8Npxkjj({0PDyZA|vK zYC#>2+?#GNR9nV?2(Re7eeet&2AZ6xm*!&;XdF^r4oaS0p%#4fzO{I`$EG0s{)dqA zb5l3Tr9;%(zTPyxEV}2@_-fi;p<0K}hoWhZBdb@hWP*ys<6CdRJ!`I-o72Ww(TQs_FA1y1>4-Nb6iwxL>m+DPy((tCToa9(jaipGyiCMZ3dBqO?iA1Vetz)BT* zmBpm2b0-!gvS-vWvay74K#s0_2JyfAB{_G+MK8B(0P^oNNCyZ`dHZcOMQxP(YAi9R z+IQ?Rby?E}eoq+zrMf2BMQy@;YkwkgQw8}beP$)(oLs}Go3h5`gN7jf-9AW8>h4c2 zBT(_mdR&(@0U={7N%&#>Bw*7fKy>D5B!rbIXFLJtIX#m(MX0MMrXl?92DRy|sjeVhYrxyO(om=+jS8Jz)|gB3e`LZ3G@K(H1@V1hRUjc=u`35Prwt-MQK- zoHi9%26YlsqaKULakOj*aLt`<9t?i=ndwCczXkc1$Yry zx^_Y7ie+`Z$l|>OLwxZCszyAd&Z20wgK!KkyA(x}CL{rB3W$Htmv9ds2@6fZCSA}6 z`(+oyHOatr6A|m1Z^AQYe)A1_I|M`&otRD2w~lgc5&z)`$_ETqlc-v0CP4gt*v>u+ zC9`IvVbnRoz8yQ^9`!J+GzX{;2;FYv+;lw(h7UK@p`O*N;d}Zy3B`VYK;C@@Nir@Wp5@EoTk|)NchsyRl*XucSpBDlp==dEBq;GHT#FaLe$vVH z)eZ+F5%8npk7caYmG$}xrY1mwLD)_?1tp6YB)yNh%G$CO?lI$%ZGZse-hRltr=O{W zxaTi`|L<=!UuDrFQy;O@iTojDwT*dHZFHP|dU69=YXHKTq-4>2*nXxtC<0W9-9qx23aJm zghQ~LZ~{8~>Djs_1ievhDKCre!(yW-N)|1E?POyKp=T}cKM?Wq%FIYeaOdZ!erPnC zB~Pw_xRHCut!(%)sn#qC|Ie+0ch&RFw;@^{;^PRE#-?=`r7VrjyFywM5aN$S9K}l( z!O^Xop~{MR+-la>#23&Kd`s5oEGZ4(4J;dqoTCl1wB zzJyWTy&F}-A5@cpO--8^f!5Z5h=v6o7}KtryXGl??H_wg!aHyky^cGYW?cHm`}S zTL<^dImu3qaEb=@M_%9Lp&sMpB1gSq)WeAWXNTI*rfdG9UaaDU^WdPN7tR&6wC2CB ze0VG(Teqp*?3v2Awi7@KCXPc+pFXC5)GS(zz$>pA145P7$rF)%=_N_OPgxJCS-2R1 zS4}SJcB5d-C^m^?>S?|30=z4q$*iZ<)_@SRS!B3YEQ5_&X7wsdF!O_>5Z(E?DKk@) zPAfz7%$yPs|63$>vyD^8ZZ})>RrugY(|SmF&mL3_8<|-<(w2bK+K*qrHFpl%^;pk- zh&)zx70UY$V#BC<`^)lR+S*Q96+^CqBLCZs$`J;Jne0e70{OVkYQ|ISE7aNtwwO{; zdtSdZ=u>K{Eon&MECjO$~DI zz6<&H-`j|;6P`b!#)PUVQxX2xzu6KmqfWfs`}(o@yd*m!#J8pf736K{vz|XT2@!LH zH(ZCJkt0l7K@;IHD#`{Sap*{LrBqDlJ~<7}o_usp7dE8mTvS)8`q%vf?isU8JMq*M z#uBw>S6}Al-H)DUo`vuEKW9ct+E79iCBY_Z+2&HcXUTW8gtlx!6~!O={$3F-ko|a? z8YF0rQfGrwo{mskX!!x<0|q4*T8P7I5q| zFAAqTitGz7XhO5K#z^_!c^B>{rW>cyS#2N!*W!h+>r>I146Gsn6evcwZdcoanmRev z+JH1-Xs2e$QUqRlCAlcqh$*Vn^C6=8<@c*;5NbS28cEYnN6wT5Gi?Abg>W^QtS=%(l@|0WKZ1Hjt!)4X^4uV#Fu{jmHh>-}DJ8Ml3Ot z{q!^NuYSQ~CR;5_7R{XnCspzE22TS@@Z*ow(F8JT^l5D3v9$mpugdR-rQ7i+nLn>? z@1vgBoIcgF=ODOtooPXiVzQFuOU$RRIA=CIV<__bM~9X+Z_iN4o}c^&+` z2}yx#$wJtUKf(OwoJ%~h`8!`_?}y(svG?zE$=z9c0UOvq`Jhm9HX{R z(f_q}Ei3g>zc5SlH#D8w5`ggaO*8^+J+(WECQpQ|bC(9e2yNZUick{m0W%qsV77w= zlO_|qItEN15Ux^a*Hn4gU?@KvRhzK&bq*dxWnFhQibjn}=}`#o3xB>7?%DI$wm8-a zm}&t{rU9WQwr~WAP!P_me}lqdL)ArVX57sGd+f+zR6H;O@cQf4mTQU2wn0=Q_ujja zPu)3bNJrx&q@Jfljl`49hd4!6w5&h!?rdPy9T)wC&kN7f&m#ENKU8TkTIRw7vf8eb z<}^8o4XJz=WbXaRX?-kv#Q*Bf>m_lkc zAY97ebRzqj-yrvn+hHl>i;&F-$Dff#BdR7&LS*w6NM@@ISxPAY*PNMf{PN7SrK9l@ zQtMp+3BQj8dGQ~Ps)W<4E_yL?o`M17kA4t2V#|Zss#oD@ad$beVFNsKlUprWlbYzu zYKnw#?xm%eRPkiCB9&BV{vTx|svmnCp^rA2Hvsa*HM#xnHchdo@>?1&A({uI<&>2V zj;h;Jt9M-)C<;5;E^o*nwWz}*Thkqc!mCjdIC|GTh*#)3|C$Sk*v@kg?@f+U)_^kA zCKFj2l}e=uk__hd8?BS#E2?Z~{SvO3PpU0cX{ss#QqusTUyC`ywKQ=$$2_&pUzF5W zPT$*6FkpasZ!>pN^v3$UC?7Z&@k(8@awY(&aU=K6TaiC-pvoXd!=dyX{QpJ2{~py- zrm_tUY|FI~7-F?yQ4wpxHY{K@A3N zOGvFfQ5P0hPoII{KmG}sR&1EX5-g42h1~HNaRqKSXz@z*dK{Fp`#17jka789CQo%Z^179uEVgrEN(6{wkq)*GzQp zUU=8Mh|v2V)Gcr}tJ@G5{D888abq$9M&Wfd1)38q9wbxZcpDJ-k#x$ZH>S8^i zE87N|efj0EP+A5Gj{c!v%XwM-eviES?`QZ&_UwlLjkO5V3fw?IEuaZ+(ul>`Ne@BR z#6UY4*7De@rV^sPIp-Sk;mK{JrfZgF7Y8$%J*WUi!~scuVKXE3T6acs zQfR71@LDG$z~*3b`rd*3es|R+KvSJT(nv5`Mnbd?A@Vku8k}Zgws!oqKR8rrlWNnB?5@J9bbp8$QaQy)b%|mIp-KRr4ajk2f-D ziGJ}vc3v$jOo6lf&pGD>5T;$z(2dtet)k$=QRaBBjPP<~54rev= z9k#NYj}<2p2!8M(0)Kx4(OtXPE<(0kQZ#j&xyzXZL}Rbm=?HYpMo|%*7hj0%8*hZY z+X?C$@ix(P4`peH3@J5os{$gPL{~ivZQqXI+wUO!*%l-!D^<^j#<4{fR)8bYDostl zYqPJk>k3|Xk^+vQ`odEAXgU_GfD zI;>u0I;S4mycv~4hcl0kNnB1g`v62dorpaQ zs)}@eVZ6Ko@xzA@+jjt#f_!9Odrk6tiLQM*+xD$>u#}d<(y=2uLW7P*tv%_c*4dyr zd)_>4R;0=l`=@c8_63Ocfwgv{IVXJTi9mKi%w@EZT55krJq=Dt`id4H`k%r>GP{;G z($^Bc9Z13d4?vm%;*an*?N?>}2#J}ANB#+rOi(d{*Z4nUZ{YHJ?EX&x0000_Gb$oVNH>UdcOwicAR!>#-Q6AE z9?p5*?|Ywr;d}kzs3WuQz4uz{y4JeZx=*0GsvI5;1r7!V2A+bvv?c}y4Ezy>fpru7 z=10x(4*Ujj(Ug_D2?P0t=am$-(prUoB(M>PUn6oY1cEp*G+gVV6 zJF>?{QbnGX?oIkFO?j;Og|NeLg1fX|6cMPj_t8Cc@2&gr1U9J+&D+>@ALK>3RpcF! z6WYF1s$_JC+wEJ5P?LY`vL!s_0{IgcCyG4*e$C#3zzE8C62K8RF>L

HRi%`V7;%VAa+}%Ob#}sZ!UqoG*ui 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 B1m^$% diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/114.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/114.png deleted file mode 100644 index 61d5f896258b5be83a34754769f01e84e618bf91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9253 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 Hu0mjfX6msh diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/120.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/120.png deleted file mode 100644 index 5ba28fc5b75001823f2565301fd5a4d90a79d971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9675 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 diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/16.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/16.png deleted file mode 100644 index 4e4b3be949d6aa43f30d3e728109ea9743ef2829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 834 zcmV-I1HJr-P)Px%{7FPXR5(vnlUZyNR}_Z78E4|y4z{s_izV_vXr!tS2$YH#wGk=^1Vn5Rr3z3M zk)~N=UAzE^LQ#l#0ZKwuv5Q55cL;q7An|}4+p&usm|)Kgnrq{x^ECI| z`+sx)IscIi!!Y>#=sL)9eu=p@w=I_c*T$TY@_?LJA01_+{|4%Vhv<8XobQ*j00t%;2MN$;fgM+;P`zDz;Z*a9V<5*Okhe(E| z8757A@ek2onkcSbh&$AZmiU+SzyL-%jWVT-g3?k(`u`$v;2`ebw&18)CLofb>xOyl z@TxV~0+nL(-MLOiu3W`X)vR|}#u})^vwtt@qsI*IXvcT48>MVA!b0-T>!don@Zad; zT~{~BbDdZwlwf2sNTydsL5s$)R!pbl^hsi&tw>fYo_%|=fJm?f>(^gVylN%kKl=rPV__q`;x^t8|pAM-j2gL3ym8onpK5u_V4!t!ua;< zRo{{xd@0gqo$(FPrXWRC-|^w*E$n7eO|dy-l9U6O26OX}e)XDE&n46+PjUX-Am$P)PyA07*naRCr$PeFuD0Roeb@@AOQ1K~xaz4LkVZT2bt6t-HFb>{{r8^j@TQq&M4I z*Dm&6L0wr?YzT^=bdpIj$@KdFzvrHlT(ZENJ2OcpA@}$5%YMwQ=RD^v&s&ZXkH_O^ zIa)>_14lq<0cQrzO3N#;5oiHt3lK7P1X{qEu~XCXVlCio!9d22KnplCc4}H)tOcAc z7|7TWXaQ%&PEE^;wScn)0~tF4E#OQvH58-ZaSDo8D2#w(|5y7f{`Z0Iqq~Q=*Iw7l z+#}I@HpAarz^R|qcpMCXB50&Uh@Qfsuh}ZwL|aVtzj&yLThvDo3Q;1ygAmf;)FY@p=KDA3?7dmRJO8 zG=_L2%B8FZFvV;_)MP^3VudZ+iKxQ?Q(hjdZ4O7gun^|LBA7~wVJzWSJ7y# zbUp~B>%j+3AsuP*b$}oshWr79xBh|f#$OQGx)rhCHY2`k7f@aS1cMq_2+T~Ks~P}R zl}SfU-|JL9m!eE=(ldo*WX}g+QUS9Ws?!OT0NS=KOh>kdrCmE%k2?mYLt59|lHHds zqI*b4^Cm7ZYhM4L0Vk7?IzSRW0?{afTYg7y-8zJS_!0PRGnC!Cq4@pmT*Yi=0AhbR zC~C4~_R5#hsq?zXs4MZr|1a#&SPb!S7zjrYk3|8K32JT*Ozn<<`Iuv1JL7a%Pd*vu zf`ZyRGoZ$sz4~v~;H(;e6SwL*SM;oC6!B092!|0@Rj9?qFduUiY@Iv9es(8VTDPtRDoN8iTA)R8X7C8q z1!Vw0^~PTj_sFWo0Vq~0V6|#sYzQD488e~2>Ags*hJuJkqfqkmU^($b z*e|{a_D-E(&d=X_A??d{HS*jHI=5L#PCY0|o>Y6h@O<$lq91<*b=`L`dwrU8wAq+M zVm4fTO2u?dw4ki$ZzO_vAi!)`Q>#|6oqsMIms||ni6`zYO`8Eon*})apbP_W?cxK8AJkW~ek#cDp7an+hNg1Z*KyLm|Zde)esaGfzj>Rae4s?zx)7Mu%{q(zQq$ z_&!YKxufGn{habYaYd2J@6)~HwcA^@1aO?eXg8m|>%I9Nzs`v2x3`|TDvOIgr)L3Q;BqgI&p731;rTp zn&7&2KG}WjuLvP=!k)1N2O#fLc~||l1k!jMv8rmQtq(!=Kkh{Kl~-tIP{d1cy6Jje z8t;?&;N;TML(=l&PoX^a7_$EO1Mw_pEgh7`0jaqaOTOT-c6tY*a42@pLYPsOAR^-N ziiM&`7A+)67-YEPWI7S)BIZs>B?J~C{7q)SV%ESxz^!kdm7Ws{A?6P-`YE?hFOAI4 zU|Td}!O7-69%BI9T~P_|<4+*#&9^|Yo0#3Mfh3)Wo=c<%O^`=u2x(R;OojPS3X7l= z?RR~tP5%+qaR=N@RV=Lkn6^NCW zBVOiW5)F~47NKH60gDzY6|wYme-GClCidEMuL;6aRmrM!H(~K zfU18^n(c5r8;qX@0BE6Ac%N81|>Tirgm*%I_gMRk2xBaV~&NTO&h3r zd3z^gr11P$G=gYZ8A~t;Z`g>)mMsYX@++b{cL9MQlf;VM#_Ywk1C>e9Fk%5e9M@cp zyxu*bIvg3N<}(kRTwPWH*!}7oa6I}5tR637Sy}0mmV(44K>7oSQ-)hfF|4Pb3hQa7 z!rGw&EN$CrJYn5KBwYyGQlHpSH_1appY%~Ey@alF?`Xh}@TN@&{qPe)-+Ybm`VEM? zt61U*(PPX6NSD*cInr2VCF4d5h7X0MeY=bTXl8+v+n0NMez+ff3^^-TG6@nV>5&d; zsi#@OVJJm~u$^@#Y!{pdTZaxX=j$?m1UD#b%d~TZI>%@~`J|!k+YtKZTlhcz1d;VW z0~CHGkWyeFU25NKMw}8~am7rzaFui zoYd7gcP!!_FJQC4+UYE0U3V?)9Xr;lY$1`;E*Von3%|A|!I(UH&i;74@O|_Vd~d#m z*v}i8s#nP5Nmbo*lO$GEg{)g{Mqc0EwdE>}l!f2;;Ecx*Az=Qv9_q|l$lA6IQKvIC zU~-_5q@>BSoZA`B8*YH()KhB_L*9O4Nyuby%W9Nrv-c@P>HFkk_+EMi;U9m3YPGQh zkd#0w?9hq|*e|~f`NM{25?YuY$-H+8*EB9T<1vI46@PrQ4%V47VJj_5-SHt66$l^} z4lzlYefw>&pLV)7L`^seqGpckd;?|Ad)|8=zJEW9=;q&9*$2!fAj*@FlL3d>j97UE z<3kI_jnOEsMgVBzfioUQSW)o%+HYW+F$1=WO2h=6k<5Uy{LDCFo@$udAAy{Ic7x-> zi)xb|=$=h5Gv|Oqp-YL2`n>SG{4#vcy-10yP{=GwMb(p|R8a{_=d)2bVLVjfgf*aw zZya#O|3YC-$FsZ`P=SSS6AnVW9A?J=eU?K_993-X8c<92Ap{;+w zy=*zctH0E^ONv4zD@93yR#d?Dr*lyFz&I^Yn~nwoXv2du7DG%`vE`?qVV*Pzc8ZcX zDB_cZ8sfHP%HaAImAfO8V)kM{xfai@j;C=W}jVH~{PTqzW z0PS)S3dfGFZ7R_K0BulkYLOoWTQ>gzOq_tMt=p2fF$s8)2x5T%>^EG8ynF9~$Q7n-B%cxnI zbMz#7eJm!f>M0ys_2{GUKJ~0-HzpgBvbG;LzPGjyOV_HzTxR10wX_FPjkAv6F$25+`U;5D-aGvN$}Y*$K9s zsn;0qy#yA&XA}=*IOXTT)aGzj;%hqQXxL9U0p^lcwU`sCIbDGPE=7aC{(_1LlMvs& zGdVkyr}ohTESx<9wv$h;*CM)l2PaKXNKvunt#^_0;9N!)Cl!)ZO^CTGVgK{BD7gQA zO**Bcy0A`D0(!ULk3Ycw#g~Yz`wkImNkb+CJ&zJFELNVkxsRmdx*|;^CyRd<3xG9E zpghkA1GGwMcqbeW%NeI3>zs37Y120S!2%A@h^q`0;~qfd$MsP1@|fLj=%DsH!61~P zA`~y2SKEoC9&G4(1*b^J-SX20n8%KV&Fe)>L>y#CglChJNAA4yZ^*s-?(~G!>VPu5 zXE*#Ge2C!c&k_D*6C?78d{)R#OLqqleP$8?mJ*qRK?YWpr0Pj0!qN3&IR11lOd@`s z4%3ALH0t%jHGVvzYrbYp8YrLC(7{bBOXvSX(UeKGjnL8z(0T)>urqg6R>3!J9CCjA z2~iOPHZl_2&T-y*7xMo0x70nwI^1XQ*I(gXxe~$EUm#vy!MHq@`BPsBzx(=jJy;2- zl*WfRQ~mbKFNO2UD_BQ5cBEQb!L>~+6hy^@i3qLw0t$5vF)BgLCKg4??%5r=x8If? zEmmi2>J6MkfP0`|`_g5|fBpr;lSt%HR1>1^N;ta{F#n#qC`MEWo^5pLvW27kI?7;ftn0J z6$J$HqB*l+JNcxv1GHYiNm7$C);E9tB^;9`!^GMI8az04k#*ZhMZ;H~$VW5b*(mQt62t!V^(MOo`UFVw>hMb@o1A?Nz*K?^q}n_JZV`~7f@9Es?< zAGDCCk@6RsSHB;o_U%!;;6YXeo6g$!w1ZQq^PR2=1V)U6bITUvp-JwQ+poJC1%n1b zNyXmMNf_^2Z^84gCs-+jN)ti0q>;%mxW3YMdJRZJi1~alpVk4n-S36H!zropy8@uq zRd5X)jOgY+pg0Xy9PlKOtUGQ;{=N64CPeB}tusm`9*0j+ux-h5``5ZJvs6H{30b$? zgq&`7LZ!;jWNlFn(9q5uDDO9bC5;f>Wr*q{IxQGP;rzLULTq|=HCC)P6Li0uv{iKsnJa?8x zyQLwoA#LCkWP3$0gz|9@AZP7bEp9GLw$leONvEK2-dtFZIx4vps8i#W4?hgwQ~%b& zb|ej&f(n-bgE)t@jK`~maR=Rxtn)8Op3UF@t$yuQRL_18YF@sv@#3af?vTOAzUHdr z=C0n|oQ!x!uSeJsjCxFHKHO2^-4iMa7Jn2z~g8=7s8$ zHDuqXshmg79Cbbk1(ALCKahL-?X@*mMtMgL(DE5G5Pb7pD0#W^0HtS9=r%78#mkq% zl#{KEpwV|ow^|ocbC0_k-XTNb{NoSA$gZQl&eIHK0Ij*`K`9p`)7V#O8UVJS5KYWkMfkU+jnQZkdtq~GP77L1&E`sHd zL$qs?v_De@r*MLHmzBdea1fk(_8=z6Y?;ATRK)x~6wH_c$C+mtUu^=Idv?P$co<@o z)R5ye9+H!J*QRieiL%$rVZXd93P+C6isFnWkZ|?xe)u7HAAedijb!b0Ev)q9if1Q>@%< z3II&>j#U3sUJl!}SD|3Y5Gdqm8rc<&+vw3y5UxJ=A+~jgG4)Q@TP!GEu@vT#lBA2{ zQUa%tnq?JkR1X>q=l1PdM`0N?P-8&nqIlV2m{_K^0Rx&pBN_<6HEbB7Kdgt6n|tu7 z^8EpoBv^Slvby~p`S&D2jtlj^<||YTAEiaoWKA_DJ>AIq+il42p2V}$A~{7p(8|~0 zm^V+$5j6M#xg!Q6`-&@#i+@TxGnr66X%d3(eF&8{kviCH%tR7Y&^tp1BKzuVk{Dwx zh~b(zkue`^@yn=pA$W3gP`qLpOmtlmrNv20P9Zhj{s78{j(~H+&+=hP9+Nena2$#s zoWm1!6K-8vI~Bqvdh!W)mp{U?%UgiC52W(sV5;G#zy4Yx3ZX#}T0ZnNz1D`-AtjVl^3+&SS&s8K zvR-{z(LWj9QZ}xEL1}iUa>vuwwF?SIk2WR@_?Sn^N>SFm7Z41yD4tZB852TY6ik~8 zN2gB4q;|5BQ>gSk+jb(*zd!7LKVo8wzC<(2;;>%iO__wOv(Gj*P<$1;rcOcVoe#7! z1DREv=$#IR-&q8%5_zMB!+Ggt#(*NE=b}aMKmQVIqANA-^vtR%IIg%H1;d6IduFoW zBne6F3V(m`71$Onl6Qnef#<|SB4~BD?lM)58 zvlu&KE+~{|M`-L71)&|=;p)-bnC(f|IvglozC_!}!+>LCSgkWo7l1b!!=53-;Qa18 z`2-IV^VQYJ8#@xtE*Hy7O`*TxBL+(UC{wKC4r zTr98Jjf0bW={tvyf^+Q}#AH_x+kP>Mq9qHp#8_Frjh|P!a3TCJyxighNnj}9DZ-1M zJ{gXV2E1s_FITfm3+t<-7L4b6-DJht9T%PQ-7r z)#`(#;~Cm&l~w101TNhJ*S$Skq-H|YNuHpSp2gFrY0^(ddh&S-@7js7o_)0Wpz9K4 zM$+@Dt6{s8l2L|B3noM06w+?T`yT;Qr)phvW$X?fEyy0!AGz0EFTHZa^H@eZ%Z`zx zFeK;bpgv8Z&K&{d&zS*-k;svt^Tv!tX!RFzObzolLQq<_M#)3VpbBm}fv;j1oYY%$ z>w+b)z4!tk%Xd+!u&SbH=|Wf!ZzJajiHsw!7o|OV0%a9iBh*Av`k+Rffsf~2wEgNU zQ8;9baAvvT`RRQK%%YbdB~jG73XLZwrEixDqfsE^U35&HZqEl*R% zggEFCXJ7zC*3#es$iDVkDZsG1^QIZ4_w`5g=M8dRJGVQnmt2gZ(Ie9S%|LT%!!>rS)&4^MtQ>q!+E7-(zmcXDN~6kKFU;*p`th* z3Z_hg{r}ERs72+$NljHLp5E_%ST}A&occy40w+(`ciwRu@?=W|_=iU-%Grm*=WqDQ zy) zad6uHPwUsjI+4gohW$NXWbQ9s1n-M0GYg!|^a=wd#f*bA$>u!pc`Bba4M9o-k;xL{ zQrdCTjVQRUPny8VlRYXo{RU6J`(fdI&}FbdO;C#$&4-0TmImz2s;8fZXW7GY#Z4T#~_yoRFWVm58#YT;z2paJvPCH2wjEK3&x~ z_U6F`PGNVB8m1*8%XF+0`L$nuiOP{#9uVz zDuavCu@p*j!{7B&p+6}$<(bEmUB9xcruwWWMe1bA;nx#5=f8UP-P=UoL4Je zyb$KLZ4PKc7y{>>#mf+V?m4-%HLfb0H{XD~zLIT8_@IP;+k~<{{k4j{#yAc(aFP!Z z2tqyfD70F`cGQx9CKEC)_rGqh{w94K$T z2}pWo)H%*_$89Kv6jh%?Dst@oUjNlB1VQy8-f+Y&=Au8h^@UeIG z>yOY+8=w#$oM^syE@?g$I40marNK$rNZTh&g5~2+=E#(Jv&EbGW%zFlH1SmmIjr(HJ;Kj0V2?O0NGV=d_3?Br;pd z$QCj6haW=qdgW=_oK#c}6yZ6(oEH^PEKS#c5BW2WP`7TlgkQ zXeLjE@BI(t%rF7YQN!W5^uQggje&FM2w?46d2sr?D4a1BHrc+LViFh3Z`??VK0-8Q zQtI$;D&PzRP&9WYtg@N$9Gvdiv*3O0ZKyJBx&=5#41*&$2*c#t=7Je=p8W9Ylw znGViS5XBG9g5^ZXebj|opEe!dciw|aefUY59_SEiedKUBE=z~a$zP&u+ye-ICK>PM zY54^YjD`Jz3ygW||Nb}JOO`jDw|=0(72uro0GxmNQ?mgl^VUNlivUVLnws|5Fp5dYj1>?uSanXfo;5j)s_spJ) z=xcAtm1uAh-gZ|v6m{!n2%J^#zX#8xX)WMPohOjH19$RFl#sDvDHPcZG9E>84H$^f z_dm*QjK(R(g2@wLPhb|wNlp>DS-t|Er-*-)Xrv{Y*57su@_Y7_1E+|s|GXY${Rd@c zC%NXR)_L)ndSpAaTDrJ)|DppyTZA_wVU+ghjmWm`Qu9T`e$?kf?u=>3KJ$zNN@zpi zEPwJT1XfT2umm`H`oE)V7vztUD+Lwt+|ce_S|7+vY}(Zv!O5#I&1apCV%gpTA}gu1 z6s{hWMNx1XG}Wt;Ct8Qa6!V2XW7 z_k#^N$;n?N`0YBB4<06$eIja8S{0*&%7SGxU3fBqYv?e9*M1{MTgh2g={c*Jf-_cG ziJU?Gkt5s7N@T)+^EE1mjF7AK;yqf?x)n-j3mB0|o)&O!`I7?tuK)lRK}keGR2}7g z?$h?uPIT1lgJ{<3lw0wA5EEU??c0jw%i*W(sAWuuMDLQ$-=(?jR>Q zMUu|zufaWww!oHXvc{uO*3(W!(d?NCGoR!nXHB_o1xl$-+2@lh*A=;Y(6E~gM8^XJ3=l4M1xFdtak?|}&y zfgCvbgpnaz*84t0HgA^OO;$8->e~}JwMbrc$bi% zlHk30&AQsUHLF=yskdu_Lmr%>dDFISaP{h|m2^rt?UZE{bGwlr}SzC`zEPT-_H ziD*aR1@mA(R<0Gca9GLSWR2F`Rech-U0+(enqZ+ zUDuYTWcd=9awPZO7IF5SJG7k}j1=uB0$3`)Hy3d36|$rqPIwd1L}Q~b-ySysYIZI_ zO>q+)j8^oaVEPm|I-VtE+a?80&pYp;YU*@3;+0;SmxJa{egIkL@Ek~)h6#cpm^2BY z4?cz>lgyfEkW&4%vRLN` zC7Mgom(%NEEoh{39|V`$@hlWgpDN9z8UrVHROnCXpdpBS_q|*W9}oDm9cyWexx9R- zmBTQySFHV8C^8AHE#N%x2neY;pdYfYH?S|1Q0bq10{6Iyay3KrCfxDLxvvj$ZkF3g zgDx`;PSLFXv46q$=)dG06)_;AhaB^P1|R zhoEHH5~##cG9*Y)FQQ@Wgoy}#^eGgX*6TV)x@hr2Sldfx*(U`~kt((E7r6RU>pRJf ztGEGfIpb6m%`~uc1AQFt)l@!iJVKwX)}m95wQF!w2dAL+MhrpD1-w*S#$D(-tTrChIvk;O3r*0*b_UVV{ubZGaY;wED>Z1|I9;d1HM6LEX zIO)95=HJ+U>x#*oXejIN_ofU^mKEfO`K04fJa@L1gDErqI!CDTvB%(h^a;5LVU0?! zM0SsRk$byjc$CkcakZ{{QTO9d!29rHhF+9ntF|jIN8!*RQglLH=cr=E3izLR8fsx7 z5Q)?u2={mACJxS+--p7vvtXC)>Y?*9qCPL@NMZ3P$2hwUh8=`GRwGbL~e z5xG0s*LpABy6I^I>vi@m;$loFLu|HWmt@v_~(* zckYsJg)Z7)4jqi_tFMxZ3h5PAa%x?t+Pxor4EF;>D@bHQ*GNwQW)($C7Q%8U?*(bl z_9=g81p>6qbwjK7rU*_7QwD=5oHN6iI%o5&IZV~Bu0*wwo~bqcrt-AS2?!q&#Cv+c zDcUak{3z|&8}U7ROB^V!8Lq1B44j-Sns{5fs@9%q5|1{ zdm;B$$%Jp63C8g0qiw}|0cGU|=eQDCx7>{UzLJ|D)UorEmz+B3S@jg{8T1g;0*TZq z@d9KhheIfsKNoh{JVJ4;h`X2WL3zLXH3Qv7j6nlLkD3xV&1MEn+hv!aXw)dfYE{^p z?#Ca8@8QRw$fU;U07jdu6)l<%Yx~5xoBQ%VQv)ZnM-)V855%6m0owgSRz25*w9Z7) zG#=8Dy;f&`2G{?jRfN*35a(Lo0BtJZq^$GmYM48mh{Ea9VWP#muf}BiVi8ltyWmv|0HLMq&kD~EojX7Vs_el+$I_X)lcnSQ^()Pv%q^H=NY0L;XFX@`} z%J#1M4DRuhv;wyUfe*78lASaQ1 zL}M##T%xQ_mh4!!k2y&loE!*|UAtIn8{-}&BLM6?IzKlX#mkmxF?arP()i)wRL?u_ zplbRo&4VW=w7vkE>EI+_Qgv)`A&O_sgyrzVlK`gHiqcCl^zjp*<{EHzc~Y^t^Z%iE z$|SjsUiUNEse@CeVk;Ldf&aM|O;k6GB_zT==HKqRw-}NCfhAe4-USlqwY#(s>Lg-t{hk{u%;5hv>;|n9L zYMpK-q-Qy8L)}AbLt|u5agpyiW(2Z~lPSPJm__IBD$Yohm9}IqNj!j~N3C zalZz_gf-JIOr+OeL)EOgP|3_PICil}gw3HXL6a^S$fXaQB9h=I-m?#4yLU^q#H)Ep z6Yam~gZbp+Q8a5NRNCm%h<7P�NOI`8T*HPet_C-?VIPnyhrJ!%PAvu^X`%V%62K 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 diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/172.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/172.png deleted file mode 100644 index 772e8878bb555ba52ed973b8da025e1b5e4f999b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14348 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

2M;B27Wp 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 diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/20.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/20.png deleted file mode 100644 index db15cd57cc02481fc4eb717662aefdd560251d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1174 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 KMNUMnLSTYP`>ksL diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/256.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/256.png deleted file mode 100644 index f88c1cfe00aaba6c383fbb57c02d7ac659ae0a55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23108 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 diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/32.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/32.png deleted file mode 100644 index 2285ee76698166d268b646e7c0d9361e5eb2e345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2109 zcmV-D2*US?P)Px+_en%SR9HuiS8Y&K*BO4!?%hvd*FY!I{eL5J;R2%9KZh0wh=>@C&^w)wW=w~%pa7=%^8meGK)nT! zi2=mJ2_W>*M+kKN0m_-P(7aw~vJ6Cd=2Ei9L$B9^S*?)r@?c%H64r-SgBc7r1u;H= z7;06PG4%Y42)}+5EEEzsHkqKGdK;uKegQgX4wykg)aQrV*AMmDHAKBb&@>T#!>pOG zm8^xSpkP7}V*$iA54%0^*3?2fcMi}?U=}mXMTM~3{|y*s&xS55E1eCh3g!BBgirS% z_~u(sE`A~isn@}_t{55LdIV6_WNKn>rvr$EUG{k3*}Mhp>QxG|vEVM)il3&9$Bc1u ztcAk}ynYn^LoWlejA%GaATl5O?idhB0DN;zgQ_SP*t`Wee;yiRus-|{Z0k$FVx&_0 z`!Ra58}j-8KphwW6a_3J1Jd;AFfaT%OkZ07Fd;*^_d^lIp&{apy=p5g%a*34BMBgO z5>Mwr$S?m6kR(_iUXARHrL>r)DDeOOFoJ*l6I71}Os5AV&U8i#YN|pY4R_6l?WaG1 zan2liFLL=)43<|w^ZUUvGvI1#g+4b|1d=fb0I|(OmoCG*z7#rHhBR+3TzmHrnWBLJ zygPOxe6kz5EE`~u1R(`90fOgS(}Xk)671z=uqvU>R1pTAN9#{NPNBMm3H;;u(aycpcE+56h|tVc$|gFZvI^f{~U3(DATEB8kwY z*>H?M2{_yVWf{z7gR8w2dWQp%D_7xJUyA6+2r}3F0Ja}LMTBIUqG;Se{BQpQBfILr zBni&CT9_6rfa>+a{d6(3U`WU(ZchA!;c)W!1_PMUm>wBPLUeEtSx-KJtfziNa|fTR z#OR54NL8+ueU#n=0B_3ygbp8pG$RkL11+TUz_CALxbc_J+3i9;JkN?kzYSlWodBeK z_8F9`{}rwm=LVlEN1(fXDstOf!OUj(yI#Xca|?7iImqQ?oO&CWrm7l8;(oRg^6?We z6)izdLmeUZ);D1E&A)-!vH(@Mo8}L|RJaJv9orKT2z0%MVZN}#A%MmQW6&ZIxSD@O z9un?3gTY@sM^BxN4KUsP)tCwZ43us{p=4DF}xpWDh(lSJSJ~%mm zrA0{bZ&lN1)SB}1ZgU_BHaBh8A!4bVL(_0EM`o3;UIwBR0c zPfvLTal=tp3-iKzlN=bT-;LnWV^q&`_BW9lMxK8G{@)x*4=pDbmybOgxty$a`@{ga z!p$bQI@+Mmbs_Zj-{IX^2c5-2dl>TbQ)KvRm(aW24%hxBNYkc4?(L zZo8O2ZUpptXg(iIg^Lq}9d6!_z>zMh8@ZkBv~EHLk&72aeu6*{V42Z8;MWcQ%3ggqq1SI-Udt2l9&^6 z0I^1a=V)kGJsD2slRre(n(vEZaKfr(X0x!_i2(50=Jmp~co8w3J0xelySM~u zUmv9WJK<{GPaI2DLn>;b<#ul>N2IrxUUclLC9~ioeD-||?`@(*_%oK3na+WZPUvhl zXu%*Xs~<#m$yzXzS*WRMJHp-nq7yr|SCRhXzA~mCh&vbH4gJI5B zkki-zW-^JI61&ulZAxQ&;HZc9H76#T7T$}jC)QAN;p^yxls9cGfG^zvXJb9WXUemk|2rabh=TFE6{yVW*OsNI_c%byB?0 z@aNLZd}KcUI4sMG1RuuP{N?~sK=7~1|E>{;a8D1J32#WJ9PFf8;5+n^NXyK87-r3a zWoZ$~kUD98kd&M!*ctnB>$_pR-AcJ=a)R+RaKqve;UVX@BYs;VpNNl1Tu^TfAih}q nY97CI-guPMO^Gm*yQ2Rez-BqgP%HeH00000NkvXXu0mjfCq>~Y diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/40.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/40.png deleted file mode 100644 index 302c40febc612b90c245f3efb615b5d44d2fd26b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2788 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 B5Xt}m diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/512.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/512.png deleted file mode 100644 index a2d9aeee61f2af35318dae8bb51405adb8418976..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54163 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 bb;frDxvH^Vy_Y&MAYhz4euhwP?iT$oI5Ez^ diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/55.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/55.png deleted file mode 100644 index 1f3d4c2d5d6e48a815bfb4f3a06ed54e93dfc52e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4158 zcmV-E5W(+>P)Px^_(?=TRA@upT4|IN)fN7#y1ILMo1Ue?Bpz1~W5nPR70*cw1eF+<2u5)u%Fc`| zBLYIe0fT5zabX5#2HY`7FcM=D6%dUYP@_>2H7p7!CV^q5_kF3VocrFZUS{c@876;H z=gdL7tE=93m+yY}z9;FruH*molK!XQ$ZpJZ!hVJwC5fA}fnLeg~}pppd1WP(&y z2Dz#d%84h!GIS`c=bZ!d;K8}2s${Ufd$RA~$WtPO5?&u-+qNO~=3CGX9%Nu7MS)~C z1B#OKf=D%nkc^^g&@&kzo#No_c9@3@f$h>!u#Fr6+2P=YHb^!*q%tcb zPCb!;9*=P#=`0iOlC9mva;+;X)&}|(|`dmpLqt$BlF-vFby0C+3Cy@2Z2+=VW_RG$b9|-e11q43o`}-B1zC=G4`)>{4H>eznQ}k-}Q^<3}7*@5B__XL;mPv$ZmI*9GE9k zX;{uY1GdY5jIxV{!&FsO>fHt3XIfj4*s&Aw*R~+N?{h{rj73EnXu%-LE*XW&yXNIS zH|k_x+0p&h#hGmVlhk< z8GrO0<(-jx=`>d|1}%|*W9&6>O}LG}j3R~-pV+>aMchzDx z_LIv|xnO=#7VRFKra_Zs9Bo_!ebWn&D2G%PdO8EC%!0~g_rQAAS^VMTC8L<@8scxg zjo52jk>0%1xh2^Kb#N4k!x755ba6ZD+?co)J?Jc-n2|72i@ z6j%}G0h`s&S;5Q-xymSChXm_+XTvplGAySL5et@hZktSq|78aP_blVj6pTqJ;Avb1 z^Pp3^1lSpzs3pmG9PPC;p&UL8U1&co5KeVDi1{$yI z3{EJ4whbGRX;}-YqJrJ41%j|&Hx?B$ZZ80)YbpZ2dI0g)wnCAdy6~pV-Bi!-?WKTZ<%Qp;> zhTjkOUGw0$;wRjLqTWR|y@1f_CLSre4oa7*`M9s$7e}Hi^tG5Wjb`Pj|p`> z6hhgLMxyfWMFqr?11A_V`uP_K&YaD4qbx%U1mM2&4mhs9iVI;u`|We)BK^r{oIH9$ z9DMkQM~*;M{o(@eg`Rv0k!RL}N(oYF)-HM0wZKIGFVZUqPK2ay<0d4UnzKJb zSs4bbYlf-1n)O~(Oylpp$D|mOMnaKvx%OgXgJQqSe;A49R1(z$3Dg}s85=RHT{N6Yove3c8NT|ZNd9F9 zB$8s?d5tY94LuPjuFnmLMCp+24nQ`#*CKAE+zSTbxONQOGiUJVA&+Vr1DE;Y0Az<9 zsy_h7xa;7q6$C_`KAV0CH>#-=j!vzCboek}v$2GBO`i(ajW=Yyruuwnn>-CjB)T8w zFkmStC!GlEdFOT(xT=cy8-M2QOsRp8FcM?ybxn{h)-1rlss_Y1zXVfdB~wC{bB3Y% zp$9sIr2v;Yas=LKwUCI?iDs#26AN8%K5r_`X2f^C3;*JJ)}M9jHL`Xfz@$<6tQlRp zrESVIWWG9-YhQ}xq%c->!=tba8IoN~^p#f-T(Oen8Hsq(tCT`UtHeDg$Rx3Q4}5iV zAX_Y40caXLYZ_oa`Q+>a!yBGQxMdxu;qLOr2&F5pKzZFPb{`YI#-*xgtDS+&p|5)e zPCTz-(L&fSy(GI98btZ#FJxrG)?zWk)6xWG;6S$i0&uYpKSJQH1u!`sOd!KXWYWSK zPlHSXkFG-OrQfq=wIsMP*T6k{W@n!exM?-L0~ZLuHFYvvH{X;6m)gG{-WjvG;Y2q< z&QMM|iHr4o&&A(+AO2q~hRNk(IYZv@Jl+i1;mk5nfE3BL?T}oq?!%JUD-wZi8)%|{ya^MY{=UwEYtfBpnb-yZ1U6m(9`f36Q%}RMqYdo zp;fDk6G}d~XpDo)qiBkPUVDxe>3Y~MzBs#<#QT4RZy`mR3m`VP*;u5p;Z&ATj53`Gga4hGzX;1Fv)O zI84VM&mzqrm;&LwiIj_dvyx} zD;~%#T-Q6CIV~&8$g~|r`;?lT1A;-=$Bsb->DavO zt}e$6G)D8^y@dB`Y&aBvt9BY(YNy55SdjhoDcix(FNg{+Pe?l*`jch@xozPE*g$%qvye^V`A09ba2W2nbNINe!#)9>TnMj!4v9D4%6?Z;q0o4oo@2Gb ze)(uPZ@PhZAsvRX;b+$){KQjYoJV<x;qe1e1A?9_F&^0M1Ql1PnGF2;*Ds8S(*APCW*wRK9vRXUiitU znSiC)Mo++1ESLxTWtRb(*fpXdP$Gd~LnC5;d=)Znc#54Qs(s}%YT+DreIK{51alfX z&A9@|@3)$|Z|n8#M~)FTX_e#m$IseVzAY#`Z9cdT7LV;|&~`k&{LC#Y=-TJSY-2 z*xZ8X#!Y;in2uHmK}|V832wXe5~xR7k$m?(HrLd{k>X)#voT#r2W#kgiS2Jdi^lmh zKx_$9R{%8w*OW;-6ng-yXPz?(vLUY|39;9=BebTO%{5u0Xjm_uh8BzSvnRBtN9{^a z`Z-ar*p!TnW=zUxcQ+JbeVV&&R#EckO1t;WbNRnC%EaL#2(5b@$+zF(T`w()ZSqsz z1crHIo4T}RveflY4 z+qNV5x4%I<(wZFw=*bi;-#a(g@EX&v$y1R&aF891($x$LW7D_31?zzQ1*G0G+VQVxL;wH)07*qo IM6N<$g3(CrS^xk5 diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/57.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/57.png deleted file mode 100644 index 03585df4f6153d0530408a5bd29728ee44c187f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4325 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 diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/60.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/60.png deleted file mode 100644 index 6211b6bbff88171cdc651f79a236d748cb070cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4545 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 f+p(Za{gr3400000NkvXXu0mjfEjho{ diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/64.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/64.png deleted file mode 100644 index 3d0afeaf72039a1184547e1e7f8bd1198b949ac0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4873 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 diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/66.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/66.png deleted file mode 100644 index 50bfed1bca8a5bedfe7762bf23193ec674273446..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5048 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 diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/88.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/88.png deleted file mode 100644 index d1e764b6f175ee6c075ffba0f81dba48ebc6308d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6940 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 Ye-Lne`+I#QCjbBd07*qoM6N<$f_v39`v3p{ diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 8e70699a7..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,346 +0,0 @@ -{ - "images" : [ - { - "filename" : "40.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "60.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "filename" : "29.png", - "idiom" : "iphone", - "scale" : "1x", - "size" : "29x29" - }, - { - "filename" : "58.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "87.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "filename" : "80.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "120.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "filename" : "57.png", - "idiom" : "iphone", - "scale" : "1x", - "size" : "57x57" - }, - { - "filename" : "114.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "57x57" - }, - { - "filename" : "120.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "filename" : "180.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "filename" : "20.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "filename" : "40.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "29.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "filename" : "58.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "40.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "filename" : "80.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "50.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "50x50" - }, - { - "filename" : "100.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "50x50" - }, - { - "filename" : "72.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "72x72" - }, - { - "filename" : "144.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "72x72" - }, - { - "filename" : "76.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "filename" : "152.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "filename" : "167.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "filename" : "1024.png", - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - }, - { - "filename" : "16.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "16x16" - }, - { - "filename" : "32.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "16x16" - }, - { - "filename" : "32.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "32x32" - }, - { - "filename" : "64.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "32x32" - }, - { - "filename" : "128.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "128x128" - }, - { - "filename" : "256.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "128x128" - }, - { - "filename" : "256.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "256x256" - }, - { - "filename" : "512.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "256x256" - }, - { - "filename" : "512.png", - "idiom" : "mac", - "scale" : "1x", - "size" : "512x512" - }, - { - "filename" : "1024.png", - "idiom" : "mac", - "scale" : "2x", - "size" : "512x512" - }, - { - "filename" : "48.png", - "idiom" : "watch", - "role" : "notificationCenter", - "scale" : "2x", - "size" : "24x24", - "subtype" : "38mm" - }, - { - "filename" : "55.png", - "idiom" : "watch", - "role" : "notificationCenter", - "scale" : "2x", - "size" : "27.5x27.5", - "subtype" : "42mm" - }, - { - "filename" : "58.png", - "idiom" : "watch", - "role" : "companionSettings", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "87.png", - "idiom" : "watch", - "role" : "companionSettings", - "scale" : "3x", - "size" : "29x29" - }, - { - "filename" : "66.png", - "idiom" : "watch", - "role" : "notificationCenter", - "scale" : "2x", - "size" : "33x33", - "subtype" : "45mm" - }, - { - "filename" : "80.png", - "idiom" : "watch", - "role" : "appLauncher", - "scale" : "2x", - "size" : "40x40", - "subtype" : "38mm" - }, - { - "filename" : "88.png", - "idiom" : "watch", - "role" : "appLauncher", - "scale" : "2x", - "size" : "44x44", - "subtype" : "40mm" - }, - { - "filename" : "92.png", - "idiom" : "watch", - "role" : "appLauncher", - "scale" : "2x", - "size" : "46x46", - "subtype" : "41mm" - }, - { - "filename" : "100.png", - "idiom" : "watch", - "role" : "appLauncher", - "scale" : "2x", - "size" : "50x50", - "subtype" : "44mm" - }, - { - "idiom" : "watch", - "role" : "appLauncher", - "scale" : "2x", - "size" : "51x51", - "subtype" : "45mm" - }, - { - "idiom" : "watch", - "role" : "appLauncher", - "scale" : "2x", - "size" : "54x54", - "subtype" : "49mm" - }, - { - "filename" : "172.png", - "idiom" : "watch", - "role" : "quickLook", - "scale" : "2x", - "size" : "86x86", - "subtype" : "38mm" - }, - { - "filename" : "196.png", - "idiom" : "watch", - "role" : "quickLook", - "scale" : "2x", - "size" : "98x98", - "subtype" : "42mm" - }, - { - "filename" : "216.png", - "idiom" : "watch", - "role" : "quickLook", - "scale" : "2x", - "size" : "108x108", - "subtype" : "44mm" - }, - { - "idiom" : "watch", - "role" : "quickLook", - "scale" : "2x", - "size" : "117x117", - "subtype" : "45mm" - }, - { - "idiom" : "watch", - "role" : "quickLook", - "scale" : "2x", - "size" : "129x129", - "subtype" : "49mm" - }, - { - "filename" : "1024.png", - "idiom" : "watch-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/Contents.json b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/Contents.json deleted file mode 100644 index 73c00596a..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/OneSignalLogo.imageset/Contents.json b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/OneSignalLogo.imageset/Contents.json deleted file mode 100644 index cbc496abc..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/OneSignalLogo.imageset/Contents.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "images" : [ - { - "filename" : "onesignal_rectangle.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - }, - "properties" : { - "template-rendering-intent" : "template" - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/OneSignalLogo.imageset/onesignal_rectangle.png b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Assets.xcassets/OneSignalLogo.imageset/onesignal_rectangle.png deleted file mode 100644 index 82772533888f100b953d450807b83514737bbf15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18638 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 z≶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 diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ExampleAppWidgetAttributes.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ExampleAppWidgetAttributes.swift deleted file mode 100644 index 6a8ed79a3..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ExampleAppWidgetAttributes.swift +++ /dev/null @@ -1,37 +0,0 @@ -#if targetEnvironment(macCatalyst) -#else -import ActivityKit -import OneSignalLiveActivities - -struct ExampleAppFirstWidgetAttributes: OneSignalLiveActivityAttributes { - public struct ContentState: OneSignalLiveActivityContentState { - var message: String - var onesignal: OneSignalLiveActivityContentStateData? - } - - var title: String - var onesignal: OneSignalLiveActivityAttributeData -} - -struct ExampleAppSecondWidgetAttributes: OneSignalLiveActivityAttributes { - public struct ContentState: OneSignalLiveActivityContentState { - var message: String - var status: String - var progress: Double - var bugs: Int - var onesignal: OneSignalLiveActivityContentStateData? - } - - var title: String - var onesignal: OneSignalLiveActivityAttributeData -} - -struct ExampleAppThirdWidgetAttributes: ActivityAttributes { - public struct ContentState: Codable, Hashable { - var message: String - } - - var title: String - var isPushToStart: Bool -} -#endif diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Info.plist b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Info.plist deleted file mode 100644 index 287ffecb7..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Info.plist +++ /dev/null @@ -1,60 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSLocationAlwaysAndWhenInUseUsageDescription - This app uses your location to provide location-based notifications and services. - NSLocationWhenInUseUsageDescription - This app uses your location to provide location-based notifications. - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - - NSSupportsLiveActivities - - UIBackgroundModes - - remote-notification - - UILaunchScreen - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - OneSignal_disable_swizzling - - - diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Models/AppModels.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Models/AppModels.swift deleted file mode 100644 index 7bd1f3a7c..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Models/AppModels.swift +++ /dev/null @@ -1,179 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation -import UIKit - -// MARK: - Key-Value Item - -/// A generic key-value pair used for aliases, tags, and triggers -struct KeyValueItem: Identifiable, Equatable { - let id = UUID() - let key: String - let value: String -} - -// MARK: - Notification Type - -/// Types of test push notifications that can be sent (matching Android: Simple, With Image, Custom) -enum NotificationType: String, CaseIterable, Identifiable { - case simple = "Simple Notification" - case withImage = "Notification With Image" - case custom = "Custom Notification" - - var id: String { rawValue } -} - -// MARK: - In-App Message Type - -/// Types of in-app messages that can be displayed -enum InAppMessageType: String, CaseIterable, Identifiable { - case topBanner = "Top Banner" - case bottomBanner = "Bottom Banner" - case centerModal = "Center Modal" - case fullScreen = "Full Screen" - - var id: String { rawValue } - - var iconName: String { - switch self { - case .topBanner: return "arrow.up.to.line" - case .bottomBanner: return "arrow.down.to.line" - case .centerModal: return "square" - case .fullScreen: return "arrow.up.left.and.arrow.down.right" - } - } -} - -// MARK: - Add Item Type - -/// Types of items that can be added via the add sheet -enum AddItemType { - case alias - case email - case sms - case tag - case trigger - case externalUserId - case customNotification - case trackEvent - - var title: String { - switch self { - case .alias: return "Add Alias" - case .email: return "Add Email" - case .sms: return "Add SMS" - case .tag: return "Add Tag" - case .trigger: return "Add Trigger" - case .externalUserId: return "Login User" - case .customNotification: return "Custom Notification" - case .trackEvent: return "Track Event" - } - } - - var requiresKeyValue: Bool { - switch self { - case .alias, .tag, .trigger, .customNotification: return true - case .email, .sms, .externalUserId, .trackEvent: return false - } - } - - var keyPlaceholder: String { - switch self { - case .alias: return "Label" - case .tag: return "Key" - case .trigger: return "Key" - case .customNotification: return "Title" - default: return "Key" - } - } - - var valuePlaceholder: String { - switch self { - case .alias: return "ID" - case .email: return "Email" - case .sms: return "SMS" - case .tag: return "Value" - case .trigger: return "Value" - case .externalUserId: return "External User Id" - case .customNotification: return "Body" - case .trackEvent: return "Event Name" - } - } - - var keyboardType: UIKeyboardType { - switch self { - case .email: return .emailAddress - case .sms: return .phonePad - default: return .default - } - } -} - -// MARK: - Multi-Add Item Type - -/// Types for the multi-pair add dialog (Add Aliases, Add Tags, Add Triggers) -enum MultiAddItemType: String { - case aliases = "Add Multiple Aliases" - case tags = "Add Multiple Tags" - case triggers = "Add Multiple Triggers" -} - -// MARK: - Remove Multi Item Type - -/// Types for the remove-multi checkbox dialog -enum RemoveMultiItemType: String { - case aliases = "Remove Aliases" - case tags = "Remove Tags" - case triggers = "Remove Triggers" -} - -// MARK: - User Data - -/// Model for user data fetched from the OneSignal REST API -struct UserData { - let aliases: [String: String] - let tags: [String: String] - let emails: [String] - let smsNumbers: [String] - let externalId: String? -} - -// MARK: - Tooltip Models - -/// Tooltip content fetched from the shared sdk-shared repo -struct TooltipData { - let title: String - let description: String - let options: [TooltipOption]? -} - -/// An individual option within a tooltip -struct TooltipOption { - let name: String - let description: String -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/LiveActivityController.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/LiveActivityController.swift deleted file mode 100644 index 090a51ba4..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/LiveActivityController.swift +++ /dev/null @@ -1,83 +0,0 @@ -import Foundation -import OneSignalFramework -#if targetEnvironment(macCatalyst) -#else -import ActivityKit -import OneSignalLiveActivities - -class LiveActivityController { - - @available(iOS 16.1, *) - static func start() { - OneSignal.LiveActivities.setup(ExampleAppFirstWidgetAttributes.self) - OneSignal.LiveActivities.setup(ExampleAppSecondWidgetAttributes.self) - OneSignal.LiveActivities.setupDefault() - - if #available(iOS 17.2, *) { - Task { - for try await data in Activity.pushToStartTokenUpdates { - let token = data.map { String(format: "%02x", $0) }.joined() - OneSignal.LiveActivities.setPushToStartToken(ExampleAppThirdWidgetAttributes.self, withToken: token) - } - } - Task { - for await activity in Activity.activityUpdates - where activity.attributes.isPushToStart { - Task { - for await pushToken in activity.pushTokenUpdates { - let token = pushToken.map { String(format: "%02x", $0) }.joined() - OneSignal.LiveActivities.enter("my-activity-id", withToken: token) - } - } - } - } - } - } - - static var counter1 = 0 - - @available(iOS 16.1, *) - static func createOneSignalAwareActivity(activityId: String) { - counter1 += 1 - let oneSignalAttribute = OneSignalLiveActivityAttributeData.create(activityId: activityId) - let attributes = ExampleAppFirstWidgetAttributes(title: "#\(counter1) Live Activity", onesignal: oneSignalAttribute) - let contentState = ExampleAppFirstWidgetAttributes.ContentState(message: "Update this message through push") - do { - _ = try Activity.request( - attributes: attributes, - contentState: contentState, - pushType: .token) - } catch { - print(error.localizedDescription) - } - } - - @available(iOS 16.1, *) - static func createDefaultActivity(activityId: String) { - let attributeData: [String: Any] = ["title": "in-app-title"] - let contentData: [String: Any] = ["message": ["en": "HELLO", "es": "HOLA"], "progress": 0.58, "status": "1/15", "bugs": 2] - OneSignal.LiveActivities.startDefault(activityId, attributes: attributeData, content: contentData) - } - - static var counter2 = 0 - - @available(iOS 16.1, *) - static func createActivity(activityId: String) async { - counter2 += 1 - let attributes = ExampleAppThirdWidgetAttributes(title: "#\(counter2) Live Activity", isPushToStart: false) - let contentState = ExampleAppThirdWidgetAttributes.ContentState(message: "Update this message through push") - do { - let activity = try Activity.request( - attributes: attributes, - contentState: contentState, - pushType: .token) - for await data in activity.pushTokenUpdates { - let myToken = data.map { String(format: "%02x", $0) }.joined() - OneSignal.LiveActivities.enter(activityId, withToken: myToken) - } - } catch { - print(error.localizedDescription) - } - } -} -#endif diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/LogManager.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/LogManager.swift deleted file mode 100644 index d5a576208..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/LogManager.swift +++ /dev/null @@ -1,92 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation -import SwiftUI - -/// Log level for categorizing log entries -enum LogLevel: String { - case debug = "D" - case info = "I" - case warning = "W" - case error = "E" - - var color: Color { - switch self { - case .debug: return .blue - case .info: return .green - case .warning: return .orange - case .error: return .red - } - } -} - -/// A single log entry -struct LogEntry: Identifiable { - let id = UUID() - let timestamp: Date - let level: LogLevel - let message: String - - var formattedTimestamp: String { - let formatter = DateFormatter() - formatter.dateFormat = "HH:mm:ss" - return formatter.string(from: timestamp) - } -} - -/// Thread-safe pass-through logger that captures logs for UI display and prints to console -@MainActor -final class LogManager: ObservableObject { - static let shared = LogManager() - - @Published var entries: [LogEntry] = [] - - private let maxEntries = 100 - - private init() {} - - func log(_ tag: String, _ message: String, level: LogLevel = .debug) { - let entry = LogEntry(timestamp: Date(), level: level, message: "[\(tag)] \(message)") - entries.append(entry) - if entries.count > maxEntries { - entries.removeFirst(entries.count - maxEntries) - } - // Also print to console - print("\(entry.formattedTimestamp) \(level.rawValue) \(entry.message)") - } - - func clear() { - entries.removeAll() - } - - // Convenience methods - func d(_ tag: String, _ message: String) { log(tag, message, level: .debug) } - func i(_ tag: String, _ message: String) { log(tag, message, level: .info) } - func w(_ tag: String, _ message: String) { log(tag, message, level: .warning) } - func e(_ tag: String, _ message: String) { log(tag, message, level: .error) } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/NotificationSender.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/NotificationSender.swift deleted file mode 100644 index d1758006a..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/NotificationSender.swift +++ /dev/null @@ -1,176 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation -import OneSignalFramework - -/// Service for sending push notifications via OneSignal API -/// Note: This is for demo purposes only. In production, API calls should be made from your backend. -final class NotificationSender { - - static let shared = NotificationSender() - - private let apiURL = URL(string: "https://onesignal.com/api/v1/notifications")! - private let imageURL = "https://media.onesignal.com/automated_push_templates/ratings_template.png" - - private init() {} - - // MARK: - Public Methods - - /// Send a simple push notification with a basic title and body - func sendSimpleNotification( - appId: String, - completion: @escaping (Result) -> Void - ) { - guard let subscriptionId = getSubscriptionId(completion: completion) else { return } - - let payload: [String: Any] = [ - "app_id": appId, - "include_subscription_ids": [subscriptionId], - "headings": ["en": "Simple Notification"], - "contents": ["en": "This is a simple test notification from OneSignal."], - "ios_sound": "nil" - ] - - sendRequest(payload: payload, completion: completion) - } - - /// Send a push notification that includes a big image - func sendNotificationWithImage( - appId: String, - completion: @escaping (Result) -> Void - ) { - guard let subscriptionId = getSubscriptionId(completion: completion) else { return } - - let payload: [String: Any] = [ - "app_id": appId, - "include_subscription_ids": [subscriptionId], - "headings": ["en": "Image Notification"], - "contents": ["en": "This notification includes an image attachment."], - "ios_attachments": ["image": imageURL], - "big_picture": imageURL, - "ios_sound": "nil" - ] - - sendRequest(payload: payload, completion: completion) - } - - /// Send a custom push notification with user-provided title and body - func sendCustomNotification( - title: String, - body: String, - appId: String, - completion: @escaping (Result) -> Void - ) { - guard let subscriptionId = getSubscriptionId(completion: completion) else { return } - - let payload: [String: Any] = [ - "app_id": appId, - "include_subscription_ids": [subscriptionId], - "headings": ["en": title], - "contents": ["en": body], - "ios_sound": "nil" - ] - - sendRequest(payload: payload, completion: completion) - } - - // MARK: - Private Helpers - - private func getSubscriptionId(completion: @escaping (Result) -> Void) -> String? { - guard let subscriptionId = OneSignal.User.pushSubscription.id else { - completion(.failure(NotificationError.noSubscriptionId)) - return nil - } - - guard OneSignal.User.pushSubscription.optedIn else { - completion(.failure(NotificationError.notOptedIn)) - return nil - } - - return subscriptionId - } - - private func sendRequest( - payload: [String: Any], - completion: @escaping (Result) -> Void - ) { - var request = URLRequest(url: apiURL) - request.httpMethod = "POST" - request.setValue("application/json; charset=UTF-8", forHTTPHeaderField: "Content-Type") - request.setValue("application/vnd.onesignal.v1+json", forHTTPHeaderField: "Accept") - request.timeoutInterval = 30 - - do { - request.httpBody = try JSONSerialization.data(withJSONObject: payload) - } catch { - completion(.failure(error)) - return - } - - URLSession.shared.dataTask(with: request) { data, response, error in - if let error = error { - print("[OneSignal] Failed to send notification: \(error.localizedDescription)") - completion(.failure(error)) - return - } - - if let httpResponse = response as? HTTPURLResponse { - if httpResponse.statusCode == 200 || httpResponse.statusCode == 202 { - if let data = data, let responseStr = String(data: data, encoding: .utf8) { - print("[OneSignal] Success sending notification: \(responseStr)") - } - completion(.success(())) - } else { - if let data = data, let responseStr = String(data: data, encoding: .utf8) { - print("[OneSignal] Failed (\(httpResponse.statusCode)): \(responseStr)") - } - completion(.failure(NotificationError.apiError(statusCode: httpResponse.statusCode))) - } - } - }.resume() - } -} - -// MARK: - Errors - -enum NotificationError: LocalizedError { - case noSubscriptionId - case notOptedIn - case apiError(statusCode: Int) - - var errorDescription: String? { - switch self { - case .noSubscriptionId: - return "No push subscription ID available" - case .notOptedIn: - return "Push notifications not opted in" - case .apiError(let statusCode): - return "API error with status code: \(statusCode)" - } - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/OneSignalService.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/OneSignalService.swift deleted file mode 100644 index 981fe99a9..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/OneSignalService.swift +++ /dev/null @@ -1,274 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation -import OneSignalFramework - -/// Service layer that wraps OneSignal SDK calls -final class OneSignalService { - - // MARK: - Singleton - - static let shared = OneSignalService() - - private init() {} - - // MARK: - App ID - - private let appIdKey = "OneSignalAppId" - private let defaultAppId = "77e32082-ea27-42e3-a898-c72e141824ef" - - var appId: String { - get { - UserDefaults.standard.string(forKey: appIdKey) ?? defaultAppId - } - set { - UserDefaults.standard.set(newValue, forKey: appIdKey) - } - } - - // MARK: - Initialization - - func initialize(launchOptions: [UIApplication.LaunchOptionsKey: Any]?) { - OneSignal.Debug.setLogLevel(.LL_VERBOSE) - OneSignal.initialize(appId, withLaunchOptions: launchOptions) - OneSignal.Notifications.requestPermission() - } - - // MARK: - Identity - - var onesignalId: String? { - OneSignal.User.onesignalId - } - - var externalId: String? { - OneSignal.User.externalId - } - - // MARK: - Consent - - func setConsentRequired(_ required: Bool) { - OneSignal.setConsentRequired(required) - } - - func setConsentGiven(_ granted: Bool) { - OneSignal.setConsentGiven(granted) - } - - func revokeConsent() { - // Must set consent as required first, then revoke it - OneSignal.setConsentRequired(true) - OneSignal.setConsentGiven(false) - } - - // MARK: - User Management - - func login(externalId: String) { - OneSignal.login(externalId) - } - - func logout() { - OneSignal.logout() - } - - // MARK: - Aliases - - func addAlias(label: String, id: String) { - OneSignal.User.addAlias(label: label, id: id) - } - - func addAliases(_ aliases: [String: String]) { - OneSignal.User.addAliases(aliases) - } - - func removeAlias(_ label: String) { - OneSignal.User.removeAlias(label) - } - - func removeAliases(_ labels: [String]) { - OneSignal.User.removeAliases(labels) - } - - // MARK: - Push Subscription - - var pushSubscriptionId: String? { - OneSignal.User.pushSubscription.id - } - - var isPushEnabled: Bool { - OneSignal.User.pushSubscription.optedIn - } - - func optInPush() { - OneSignal.User.pushSubscription.optIn() - } - - func optOutPush() { - OneSignal.User.pushSubscription.optOut() - } - - func requestPushPermission(completion: @escaping (Bool) -> Void) { - OneSignal.Notifications.requestPermission({ accepted in - completion(accepted) - }, fallbackToSettings: true) - } - - // MARK: - Email - - func addEmail(_ email: String) { - OneSignal.User.addEmail(email) - } - - func removeEmail(_ email: String) { - OneSignal.User.removeEmail(email) - } - - // MARK: - SMS - - func addSms(_ number: String) { - OneSignal.User.addSms(number) - } - - func removeSms(_ number: String) { - OneSignal.User.removeSms(number) - } - - // MARK: - Tags - - func addTag(key: String, value: String) { - OneSignal.User.addTag(key: key, value: value) - } - - func addTags(_ tags: [String: String]) { - OneSignal.User.addTags(tags) - } - - func removeTag(_ key: String) { - OneSignal.User.removeTag(key) - } - - func removeTags(_ keys: [String]) { - OneSignal.User.removeTags(keys) - } - - func getTags() -> [String: String] { - OneSignal.User.getTags() - } - - // MARK: - Outcomes - - func sendOutcome(_ name: String) { - OneSignal.Session.addOutcome(name) - } - - func sendOutcome(_ name: String, value: NSNumber) { - OneSignal.Session.addOutcome(name, value) - } - - func sendUniqueOutcome(_ name: String) { - OneSignal.Session.addUniqueOutcome(name) - } - - // MARK: - In-App Messages - - var isInAppMessagesPaused: Bool { - get { OneSignal.InAppMessages.paused } - set { OneSignal.InAppMessages.paused = newValue } - } - - func addTrigger(key: String, value: String) { - OneSignal.InAppMessages.addTrigger(key, withValue: value) - } - - func addTriggers(_ triggers: [String: String]) { - OneSignal.InAppMessages.addTriggers(triggers) - } - - func removeTrigger(_ key: String) { - OneSignal.InAppMessages.removeTrigger(key) - } - - func removeTriggers(_ keys: [String]) { - OneSignal.InAppMessages.removeTriggers(keys) - } - - func clearTriggers() { - // Remove all triggers by clearing the list - OneSignal.InAppMessages.clearTriggers() - } - - // MARK: - Location - - var isLocationShared: Bool { - get { OneSignal.Location.isShared } - set { OneSignal.Location.isShared = newValue } - } - - func requestLocationPermission() { - OneSignal.Location.requestPermission() - } - - // MARK: - Notifications - - func clearAllNotifications() { - OneSignal.Notifications.clearAll() - } - - var hasNotificationPermission: Bool { - OneSignal.Notifications.permission - } - - // MARK: - Observers - - func addPushSubscriptionObserver(_ observer: OSPushSubscriptionObserver) { - OneSignal.User.pushSubscription.addObserver(observer) - } - - func addUserObserver(_ observer: OSUserStateObserver) { - OneSignal.User.addObserver(observer) - } - - func addPermissionObserver(_ observer: OSNotificationPermissionObserver) { - OneSignal.Notifications.addPermissionObserver(observer) - } - - func addNotificationClickListener(_ listener: OSNotificationClickListener) { - OneSignal.Notifications.addClickListener(listener) - } - - func addNotificationLifecycleListener(_ listener: OSNotificationLifecycleListener) { - OneSignal.Notifications.addForegroundLifecycleListener(listener) - } - - func addInAppMessageClickListener(_ listener: OSInAppMessageClickListener) { - OneSignal.InAppMessages.addClickListener(listener) - } - - func addInAppMessageLifecycleListener(_ listener: OSInAppMessageLifecycleListener) { - OneSignal.InAppMessages.addLifecycleListener(listener) - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/TooltipService.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/TooltipService.swift deleted file mode 100644 index bbeb8dae8..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/TooltipService.swift +++ /dev/null @@ -1,101 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation - -/// Service that fetches and provides tooltip content from the shared sdk-shared repo. -/// Tooltips are non-critical; if the fetch fails, they are simply unavailable. -final class TooltipService: ObservableObject { - - static let shared = TooltipService() - - private let tooltipURL = URL(string: "https://raw.githubusercontent.com/OneSignal/sdk-shared/main/demo/tooltip_content.json")! - - @Published private(set) var tooltips: [String: TooltipData] = [:] - private var initialized = false - - private init() {} - - /// Fetch tooltip content on a background thread. Safe to call multiple times; only fetches once. - func initialize() { - guard !initialized else { return } - initialized = true - - DispatchQueue.global(qos: .utility).async { [weak self] in - self?.fetchTooltips() - } - } - - /// Returns tooltip data for the given section key, or nil if unavailable. - func getTooltip(key: String) -> TooltipData? { - tooltips[key] - } - - // MARK: - Private - - private func fetchTooltips() { - var request = URLRequest(url: tooltipURL) - request.timeoutInterval = 10 - - let task = URLSession.shared.dataTask(with: request) { [weak self] data, _, error in - guard let data = data, error == nil else { - print("[TooltipService] Failed to fetch tooltips: \(error?.localizedDescription ?? "unknown")") - return - } - - do { - guard let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] else { return } - var parsed: [String: TooltipData] = [:] - - for (key, value) in json { - guard let dict = value as? [String: Any], - let title = dict["title"] as? String, - let description = dict["description"] as? String else { continue } - - var options: [TooltipOption]? - if let optionsArray = dict["options"] as? [[String: Any]] { - options = optionsArray.compactMap { optDict in - guard let name = optDict["name"] as? String, - let desc = optDict["description"] as? String else { return nil } - return TooltipOption(name: name, description: desc) - } - } - - parsed[key] = TooltipData(title: title, description: description, options: options) - } - - DispatchQueue.main.async { - self?.tooltips = parsed - print("[TooltipService] Loaded \(parsed.count) tooltips") - } - } catch { - print("[TooltipService] Failed to parse tooltips: \(error.localizedDescription)") - } - } - task.resume() - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/UserFetchService.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/UserFetchService.swift deleted file mode 100644 index eee835141..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Services/UserFetchService.swift +++ /dev/null @@ -1,125 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation - -/// Service for fetching user data from the OneSignal REST API. -/// No API key is required for this public endpoint. -final class UserFetchService { - - static let shared = UserFetchService() - - private init() {} - - /// Fetch user data by OneSignal ID. No auth header required. - func fetchUser(appId: String, onesignalId: String) async -> UserData? { - let urlString = "https://api.onesignal.com/apps/\(appId)/users/by/onesignal_id/\(onesignalId)" - guard let url = URL(string: urlString) else { return nil } - - var request = URLRequest(url: url) - request.httpMethod = "GET" - request.timeoutInterval = 15 - - do { - let (data, response) = try await URLSession.shared.data(for: request) - - guard let httpResponse = response as? HTTPURLResponse, - httpResponse.statusCode == 200 else { - print("[UserFetchService] Non-200 response") - return nil - } - - guard let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] else { - return nil - } - - return parseUserData(json) - } catch { - print("[UserFetchService] Fetch failed: \(error.localizedDescription)") - return nil - } - } - - // MARK: - Private - - private func parseUserData(_ json: [String: Any]) -> UserData { - // Parse identity (aliases) - var aliases: [String: String] = [:] - var externalId: String? - - if let identity = json["identity"] as? [String: Any] { - for (key, value) in identity { - if key == "external_id" { - externalId = value as? String - } else if key == "onesignal_id" { - // Skip onesignal_id from aliases display - continue - } else if let strValue = value as? String { - aliases[key] = strValue - } - } - } - - // Parse tags from properties - var tags: [String: String] = [:] - if let properties = json["properties"] as? [String: Any], - let tagsDict = properties["tags"] as? [String: Any] { - for (key, value) in tagsDict { - if let strValue = value as? String { - tags[key] = strValue - } else { - tags[key] = "\(value)" - } - } - } - - // Parse subscriptions for emails and SMS - var emails: [String] = [] - var smsNumbers: [String] = [] - - if let subscriptions = json["subscriptions"] as? [[String: Any]] { - for sub in subscriptions { - guard let type = sub["type"] as? String, - let token = sub["token"] as? String else { continue } - - if type == "Email" { - emails.append(token) - } else if type == "SMS" { - smsNumbers.append(token) - } - } - } - - return UserData( - aliases: aliases, - tags: tags, - emails: emails, - smsNumbers: smsNumbers, - externalId: externalId - ) - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift deleted file mode 100644 index b7d4a0624..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/ViewModels/OneSignalViewModel.swift +++ /dev/null @@ -1,627 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import Foundation -import Combine -import OneSignalFramework - -/// Main ViewModel managing all OneSignal SDK state and interactions -@MainActor -final class OneSignalViewModel: ObservableObject { - - // MARK: - Published Properties - - // App Info - @Published var appId: String - - // User - @Published var externalUserId: String? - @Published var aliases: [KeyValueItem] = [] - - // Push Subscription - @Published var pushSubscriptionId: String? - @Published var isPushEnabled: Bool = false - @Published var notificationPermissionGranted: Bool = false - - // Email & SMS - @Published var emails: [String] = [] - @Published var smsNumbers: [String] = [] - - // Tags - @Published var tags: [KeyValueItem] = [] - - // In-App Messaging - @Published var isInAppMessagesPaused: Bool = true - @Published var triggers: [KeyValueItem] = [] - - // Location - @Published var isLocationShared: Bool = false - - // Consent - @Published var consentRequired: Bool = UserDefaults.standard.bool(forKey: "CachedConsentRequired") - @Published var consentGiven: Bool = UserDefaults.standard.bool(forKey: "CachedPrivacyConsent") - - // Loading - @Published var isLoading: Bool = false - - // UI State - @Published var showingAddSheet: Bool = false - @Published var addItemType: AddItemType = .email - @Published var showingMultiAddSheet: Bool = false - @Published var multiAddType: MultiAddItemType = .tags - @Published var showingRemoveMultiSheet: Bool = false - @Published var removeMultiType: RemoveMultiItemType = .tags - @Published var showingCustomNotificationSheet: Bool = false - @Published var showingTrackEventSheet: Bool = false - @Published var toastMessage: String? - - // MARK: - Computed Properties - - var isLoggedIn: Bool { - externalUserId != nil && !(externalUserId?.isEmpty ?? true) - } - - var loginButtonTitle: String { - isLoggedIn ? "Switch User" : "Login User" - } - - /// Items for remove-multi dialog based on current type - var removeMultiItems: [KeyValueItem] { - switch removeMultiType { - case .aliases: return aliases - case .tags: return tags - case .triggers: return triggers - } - } - - // MARK: - Private Properties - - private let service: OneSignalService - private var observers = Observers() - - // MARK: - Initialization - - init(service: OneSignalService = .shared) { - self.service = service - self.appId = service.appId - self.notificationPermissionGranted = service.hasNotificationPermission - - // Load external user ID from SDK - self.externalUserId = service.externalId - - // Initial state sync - refreshState() - - // Set up observers - setupObservers() - - // Fetch user data if we have a onesignalId - if service.onesignalId != nil { - Task { - await fetchUserDataFromApi() - } - } - } - - // MARK: - State Management - - func refreshState() { - pushSubscriptionId = service.pushSubscriptionId - isPushEnabled = service.isPushEnabled - isInAppMessagesPaused = service.isInAppMessagesPaused - isLocationShared = service.isLocationShared - notificationPermissionGranted = service.hasNotificationPermission - externalUserId = service.externalId - - // Sync tags from SDK - let sdkTags = service.getTags() - tags = sdkTags.map { KeyValueItem(key: $0.key, value: $0.value) } - } - - // MARK: - User Data Fetching - - func fetchUserDataFromApi() async { - guard let onesignalId = service.onesignalId else { return } - - isLoading = true - - if let userData = await UserFetchService.shared.fetchUser(appId: appId, onesignalId: onesignalId) { - aliases = userData.aliases.map { KeyValueItem(key: $0.key, value: $0.value) } - tags = userData.tags.map { KeyValueItem(key: $0.key, value: $0.value) } - emails = userData.emails - smsNumbers = userData.smsNumbers - if let extId = userData.externalId, !extId.isEmpty { - externalUserId = extId - } - } - - // Small delay to ensure UI populates before dismissing loading - try? await Task.sleep(nanoseconds: 100_000_000) - isLoading = false - } - - // MARK: - Consent - - func toggleConsentRequired() { - consentRequired.toggle() - service.setConsentRequired(consentRequired) - UserDefaults.standard.set(consentRequired, forKey: "CachedConsentRequired") - if !consentRequired { - // When turning off consent required, also grant consent - consentGiven = true - service.setConsentGiven(true) - UserDefaults.standard.set(true, forKey: "CachedPrivacyConsent") - } - showToast(consentRequired ? "Consent required enabled" : "Consent required disabled") - } - - func toggleConsent() { - consentGiven.toggle() - service.setConsentGiven(consentGiven) - UserDefaults.standard.set(consentGiven, forKey: "CachedPrivacyConsent") - showToast(consentGiven ? "Consent given" : "Consent revoked") - } - - // MARK: - User Management - - func login(externalId: String) { - isLoading = true - service.login(externalId: externalId) - externalUserId = externalId - - // Clear old data; will be repopulated by fetchUserDataFromApi when user state changes - aliases.removeAll() - emails.removeAll() - smsNumbers.removeAll() - tags.removeAll() - - showToast("Logged in as \(externalId)") - } - - func logout() { - isLoading = true - service.logout() - externalUserId = nil - aliases.removeAll() - emails.removeAll() - smsNumbers.removeAll() - tags.removeAll() - triggers.removeAll() - isLoading = false - showToast("Logged out") - } - - // MARK: - Aliases - - func addAlias(label: String, id: String) { - service.addAlias(label: label, id: id) - aliases.removeAll { $0.key == label } - aliases.append(KeyValueItem(key: label, value: id)) - showToast("Alias added") - } - - func addAliases(_ pairs: [(String, String)]) { - let dict = Dictionary(pairs, uniquingKeysWith: { _, last in last }) - service.addAliases(dict) - for (key, value) in pairs { - aliases.removeAll { $0.key == key } - aliases.append(KeyValueItem(key: key, value: value)) - } - showToast("\(pairs.count) alias(es) added") - } - - func removeAlias(_ item: KeyValueItem) { - service.removeAlias(item.key) - aliases.removeAll { $0.id == item.id } - showToast("Alias removed") - } - - func removeSelectedAliases(_ keys: [String]) { - guard !keys.isEmpty else { return } - service.removeAliases(keys) - aliases.removeAll { keys.contains($0.key) } - showToast("\(keys.count) alias(es) removed") - } - - // MARK: - Push Subscription - - func togglePushEnabled() { - if isPushEnabled { - service.optOutPush() - isPushEnabled = false - showToast("Push disabled") - } else { - service.optInPush() - isPushEnabled = true - showToast("Push enabled") - } - } - - func requestPushPermission() { - service.requestPushPermission { [weak self] accepted in - Task { @MainActor in - self?.notificationPermissionGranted = accepted - self?.isPushEnabled = accepted - self?.showToast(accepted ? "Push permission granted" : "Push permission denied") - } - } - } - - // MARK: - Email - - func addEmail(_ email: String) { - service.addEmail(email) - if !emails.contains(email) { - emails.append(email) - } - showToast("Email added") - } - - func removeEmail(_ email: String) { - service.removeEmail(email) - emails.removeAll { $0 == email } - showToast("Email removed") - } - - // MARK: - SMS - - func addSms(_ number: String) { - service.addSms(number) - if !smsNumbers.contains(number) { - smsNumbers.append(number) - } - showToast("SMS added") - } - - func removeSms(_ number: String) { - service.removeSms(number) - smsNumbers.removeAll { $0 == number } - showToast("SMS removed") - } - - // MARK: - Tags - - func addTag(key: String, value: String) { - service.addTag(key: key, value: value) - tags.removeAll { $0.key == key } - tags.append(KeyValueItem(key: key, value: value)) - showToast("Tag added") - } - - func addTags(_ pairs: [(String, String)]) { - let dict = Dictionary(pairs, uniquingKeysWith: { _, last in last }) - service.addTags(dict) - for (key, value) in pairs { - tags.removeAll { $0.key == key } - tags.append(KeyValueItem(key: key, value: value)) - } - showToast("\(pairs.count) tag(s) added") - } - - func removeTag(_ item: KeyValueItem) { - service.removeTag(item.key) - tags.removeAll { $0.id == item.id } - showToast("Tag removed") - } - - func removeSelectedTags(_ keys: [String]) { - guard !keys.isEmpty else { return } - service.removeTags(keys) - tags.removeAll { keys.contains($0.key) } - showToast("\(keys.count) tag(s) removed") - } - - // MARK: - Outcomes - - func sendOutcome(_ name: String) { - service.sendOutcome(name) - showToast("Outcome '\(name)' sent") - } - - func sendOutcome(_ name: String, value: Double) { - service.sendOutcome(name, value: NSNumber(value: value)) - showToast("Outcome '\(name)' with value \(value) sent") - } - - func sendUniqueOutcome(_ name: String) { - service.sendUniqueOutcome(name) - showToast("Unique outcome '\(name)' sent") - } - - // MARK: - In-App Messaging - - func toggleInAppMessagesPaused() { - isInAppMessagesPaused.toggle() - service.isInAppMessagesPaused = isInAppMessagesPaused - UserDefaults.standard.set(isInAppMessagesPaused, forKey: "CachedInAppMessagesPaused") - showToast(isInAppMessagesPaused ? "In-app messages paused" : "In-app messages resumed") - } - - func addTrigger(key: String, value: String) { - service.addTrigger(key: key, value: value) - triggers.removeAll { $0.key == key } - triggers.append(KeyValueItem(key: key, value: value)) - showToast("Trigger added") - } - - func addTriggers(_ pairs: [(String, String)]) { - let dict = Dictionary(pairs, uniquingKeysWith: { _, last in last }) - service.addTriggers(dict) - for (key, value) in pairs { - triggers.removeAll { $0.key == key } - triggers.append(KeyValueItem(key: key, value: value)) - } - showToast("\(pairs.count) trigger(s) added") - } - - func removeTrigger(_ item: KeyValueItem) { - service.removeTrigger(item.key) - triggers.removeAll { $0.id == item.id } - showToast("Trigger removed") - } - - func removeSelectedTriggers(_ keys: [String]) { - guard !keys.isEmpty else { return } - service.removeTriggers(keys) - triggers.removeAll { keys.contains($0.key) } - showToast("\(keys.count) trigger(s) removed") - } - - func clearTriggers() { - service.clearTriggers() - triggers.removeAll() - showToast("All triggers cleared") - } - - // MARK: - Track Event - - func trackEvent(name: String, properties: [String: Any]? = nil) { - OneSignal.User.trackEvent(name: name, properties: properties) - showToast("Event '\(name)' tracked") - } - - // MARK: - Location - - func toggleLocationShared() { - isLocationShared.toggle() - service.isLocationShared = isLocationShared - UserDefaults.standard.set(isLocationShared, forKey: "CachedLocationShared") - showToast(isLocationShared ? "Location sharing enabled" : "Location sharing disabled") - } - - func promptLocation() { - service.requestLocationPermission() - showToast("Location permission requested") - } - - // MARK: - Live Activities - - func enterLiveActivity(activityId: String) { - let id = activityId.trimmingCharacters(in: .whitespacesAndNewlines) - guard !id.isEmpty else { - showToast("Please enter an activity ID") - return - } - if #available(iOS 16.1, *) { - LiveActivityController.createOneSignalAwareActivity(activityId: id) - showToast("Live Activity '\(id)' entered") - } else { - showToast("Live Activities require iOS 16.1+") - } - } - - func exitLiveActivity(activityId: String) { - let id = activityId.trimmingCharacters(in: .whitespacesAndNewlines) - guard !id.isEmpty else { - showToast("Please enter an activity ID") - return - } - OneSignal.LiveActivities.exit(id) - showToast("Live Activity '\(id)' exited") - } - - // MARK: - Observers - - private func setupObservers() { - observers.viewModel = self - service.addPushSubscriptionObserver(observers) - service.addUserObserver(observers) - service.addPermissionObserver(observers) - } -} - -// MARK: - Notifications - -extension OneSignalViewModel { - - func clearAllNotifications() { - service.clearAllNotifications() - showToast("All notifications cleared") - } - - func sendSimpleNotification() { - showToast("Sending simple notification...") - NotificationSender.shared.sendSimpleNotification(appId: appId) { [weak self] result in - Task { @MainActor in - switch result { - case .success: - self?.showToast("Simple notification sent!") - case .failure(let error): - self?.showToast("Failed: \(error.localizedDescription)") - } - } - } - } - - func sendNotificationWithImage() { - showToast("Sending image notification...") - NotificationSender.shared.sendNotificationWithImage(appId: appId) { [weak self] result in - Task { @MainActor in - switch result { - case .success: - self?.showToast("Image notification sent!") - case .failure(let error): - self?.showToast("Failed: \(error.localizedDescription)") - } - } - } - } - - func sendCustomNotification(title: String, body: String) { - showToast("Sending custom notification...") - NotificationSender.shared.sendCustomNotification(title: title, body: body, appId: appId) { [weak self] result in - Task { @MainActor in - switch result { - case .success: - self?.showToast("Custom notification sent!") - case .failure(let error): - self?.showToast("Failed: \(error.localizedDescription)") - } - } - } - } - - func sendTestInAppMessage(_ type: InAppMessageType) { - let triggerValue: String - switch type { - case .topBanner: triggerValue = "top_banner" - case .bottomBanner: triggerValue = "bottom_banner" - case .centerModal: triggerValue = "center_modal" - case .fullScreen: triggerValue = "full_screen" - } - service.addTrigger(key: "iam_type", value: triggerValue) - showToast("Sent In-App Message: \(type.rawValue)") - } -} - -// MARK: - Sheet Handling - -extension OneSignalViewModel { - - func showAddSheet(for type: AddItemType) { - addItemType = type - showingAddSheet = true - } - - func showMultiAddSheet(for type: MultiAddItemType) { - multiAddType = type - showingMultiAddSheet = true - } - - func showRemoveMultiSheet(for type: RemoveMultiItemType) { - removeMultiType = type - showingRemoveMultiSheet = true - } - - func handleAddItem(key: String, value: String) { - switch addItemType { - case .alias: - addAlias(label: key, id: value) - case .email: - addEmail(value) - case .sms: - addSms(value) - case .tag: - addTag(key: key, value: value) - case .trigger: - addTrigger(key: key, value: value) - case .externalUserId: - login(externalId: value) - case .customNotification: - sendCustomNotification(title: key, body: value) - case .trackEvent: - trackEvent(name: value) - } - showingAddSheet = false - } - - func handleMultiAdd(pairs: [(String, String)]) { - switch multiAddType { - case .aliases: - addAliases(pairs) - case .tags: - addTags(pairs) - case .triggers: - addTriggers(pairs) - } - showingMultiAddSheet = false - } - - func handleRemoveMulti(keys: [String]) { - switch removeMultiType { - case .aliases: - removeSelectedAliases(keys) - case .tags: - removeSelectedTags(keys) - case .triggers: - removeSelectedTriggers(keys) - } - showingRemoveMultiSheet = false - } -} - -// MARK: - Toast - -extension OneSignalViewModel { - - func showToast(_ message: String) { - toastMessage = message - - Task { - try? await Task.sleep(nanoseconds: 2_000_000_000) - toastMessage = nil - } - } -} - -// MARK: - Observer Classes - -private class Observers: NSObject, OSPushSubscriptionObserver, OSUserStateObserver, OSNotificationPermissionObserver { - weak var viewModel: OneSignalViewModel? - - func onPushSubscriptionDidChange(state: OSPushSubscriptionChangedState) { - Task { @MainActor in - viewModel?.pushSubscriptionId = state.current.id - viewModel?.isPushEnabled = state.current.optedIn - } - } - - func onUserStateDidChange(state: OSUserChangedState) { - Task { @MainActor in - LogManager.shared.i("User", "User state changed: \(state.jsonRepresentation())") - // Fetch fresh user data from API when user state changes - await viewModel?.fetchUserDataFromApi() - } - } - - func onNotificationPermissionDidChange(_ permission: Bool) { - Task { @MainActor in - viewModel?.notificationPermissionGranted = permission - viewModel?.isPushEnabled = OneSignal.User.pushSubscription.optedIn - } - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift deleted file mode 100644 index 62ee72211..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddItemSheet.swift +++ /dev/null @@ -1,176 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A sheet for adding items with one or two text fields (dialog style matching screenshots) -struct AddItemSheet: View { - let itemType: AddItemType - let onAdd: (String, String) -> Void - let onCancel: () -> Void - - @State private var keyText: String = "" - @State private var valueText: String = "" - @FocusState private var focusedField: Field? - - private enum Field { - case key, value - } - - var body: some View { - NavigationStack { - VStack(spacing: 24) { - // Title - Text(itemType.title) - .font(.title2) - .fontWeight(.semibold) - .frame(maxWidth: .infinity, alignment: .leading) - - // Input Fields - if itemType.requiresKeyValue { - VStack(alignment: .leading, spacing: 8) { - Text("Key") - .font(.caption) - .foregroundColor(.secondary) - TextField(itemType.keyPlaceholder, text: $keyText) - .textFieldStyle(UnderlineTextFieldStyle()) - .focused($focusedField, equals: .key) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - } - - VStack(alignment: .leading, spacing: 8) { - Text("Value") - .font(.caption) - .foregroundColor(.secondary) - TextField(itemType.valuePlaceholder, text: $valueText) - .textFieldStyle(UnderlineTextFieldStyle()) - .focused($focusedField, equals: .value) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .keyboardType(itemType.keyboardType) - } - } else { - VStack(alignment: .leading, spacing: 8) { - Text(singleFieldLabel) - .font(.caption) - .foregroundColor(.secondary) - TextField(itemType.valuePlaceholder, text: $valueText) - .textFieldStyle(UnderlineTextFieldStyle()) - .focused($focusedField, equals: .value) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .keyboardType(itemType.keyboardType) - } - } - - Spacer() - - // Action Buttons - HStack(spacing: 24) { - Spacer() - - Button("CANCEL") { - onCancel() - } - .foregroundColor(.accentColor) - - Button(itemType == .externalUserId ? "LOGIN" : "ADD") { - onAdd(keyText, valueText) - } - .foregroundColor(isValid ? .accentColor : .gray) - .disabled(!isValid) - } - .font(.system(size: 16, weight: .semibold)) - } - .padding(24) - .onAppear { - focusedField = itemType.requiresKeyValue ? .key : .value - } - } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) - } - - private var singleFieldLabel: String { - switch itemType { - case .email: return "New Email" - case .sms: return "New SMS" - case .externalUserId: return "External User Id" - default: return "Value" - } - } - - private var isValid: Bool { - if itemType.requiresKeyValue { - return !keyText.trimmingCharacters(in: .whitespaces).isEmpty && - !valueText.trimmingCharacters(in: .whitespaces).isEmpty - } else { - return !valueText.trimmingCharacters(in: .whitespaces).isEmpty - } - } -} - -/// A text field style with an underline instead of a border -struct UnderlineTextFieldStyle: TextFieldStyle { - // swiftlint:disable:next identifier_name - func _body(configuration: TextField) -> some View { - VStack(spacing: 0) { - configuration - .font(.system(size: 17)) - .padding(.vertical, 8) - - Rectangle() - .fill(Color(.separator)) - .frame(height: 1) - } - } -} - -#Preview("Add Alias") { - AddItemSheet( - itemType: .alias, - onAdd: { key, value in print("Add: \(key) = \(value)") }, - onCancel: { print("Cancel") } - ) -} - -#Preview("Add Email") { - AddItemSheet( - itemType: .email, - onAdd: { _, value in print("Add: \(value)") }, - onCancel: { print("Cancel") } - ) -} - -#Preview("Login User") { - AddItemSheet( - itemType: .externalUserId, - onAdd: { _, value in print("Login: \(value)") }, - onCancel: { print("Cancel") } - ) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddMultiItemSheet.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddMultiItemSheet.swift deleted file mode 100644 index 75e734bf2..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/AddMultiItemSheet.swift +++ /dev/null @@ -1,140 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A multi-pair add dialog with dynamic rows, matching the Android "Add Tags/Aliases/Triggers" dialog. -struct AddMultiItemSheet: View { - let type: MultiAddItemType - let onAdd: ([(String, String)]) -> Void - let onCancel: () -> Void - - @State private var rows: [(key: String, value: String)] = [("", "")] - - var body: some View { - NavigationStack { - VStack(spacing: 16) { - // Title - Text(type.rawValue) - .font(.title2) - .fontWeight(.semibold) - .frame(maxWidth: .infinity, alignment: .leading) - - // Rows - ScrollView { - VStack(spacing: 12) { - ForEach(rows.indices, id: \.self) { index in - HStack(spacing: 8) { - TextField("", text: Binding( - get: { rows[index].key }, - set: { rows[index].key = $0 } - )) - .textFieldStyle(UnderlineTextFieldStyle()) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - - TextField("", text: Binding( - get: { rows[index].value }, - set: { rows[index].value = $0 } - )) - .textFieldStyle(UnderlineTextFieldStyle()) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - - if rows.count > 1 { - Button { - rows.remove(at: index) - } label: { - Image(systemName: "xmark") - .font(.system(size: 14, weight: .medium)) - .foregroundColor(.red) - } - .buttonStyle(.borderless) - } - } - } - } - } - - // Add Row button - Button { - rows.append(("", "")) - } label: { - Text("+ ADD ROW") - .font(.system(size: 14, weight: .semibold)) - .foregroundColor(.accentColor) - .frame(maxWidth: .infinity) - .padding(.vertical, 10) - .background(Color(.systemGray6)) - .cornerRadius(8) - } - .buttonStyle(.plain) - - Spacer() - - // Action Buttons - HStack(spacing: 24) { - Spacer() - - Button("CANCEL") { - onCancel() - } - .foregroundColor(.accentColor) - - Button("ADD") { - let pairs = rows - .filter { !$0.key.trimmingCharacters(in: .whitespaces).isEmpty && - !$0.value.trimmingCharacters(in: .whitespaces).isEmpty } - .map { ($0.key, $0.value) } - onAdd(pairs) - } - .foregroundColor(isValid ? .accentColor : .gray) - .disabled(!isValid) - } - .font(.system(size: 16, weight: .semibold)) - } - .padding(24) - } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) - } - - private var isValid: Bool { - rows.allSatisfy { - !$0.key.trimmingCharacters(in: .whitespaces).isEmpty && - !$0.value.trimmingCharacters(in: .whitespaces).isEmpty - } - } -} - -#Preview { - AddMultiItemSheet( - type: .tags, - onAdd: { pairs in print("Add: \(pairs)") }, - onCancel: { print("Cancel") } - ) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift deleted file mode 100644 index 896f1f063..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/CustomNotificationSheet.swift +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A dialog for entering a custom notification title and body. -struct CustomNotificationSheet: View { - let onSend: (String, String) -> Void - let onCancel: () -> Void - - @State private var titleText: String = "" - @State private var bodyText: String = "" - @FocusState private var focusedField: Field? - - private enum Field { - case title, body - } - - var body: some View { - NavigationStack { - VStack(spacing: 24) { - // Title - Text("Custom Notification") - .font(.title2) - .fontWeight(.semibold) - .frame(maxWidth: .infinity, alignment: .leading) - - VStack(alignment: .leading, spacing: 8) { - Text("Title") - .font(.caption) - .foregroundColor(.secondary) - TextField("Notification title", text: $titleText) - .textFieldStyle(UnderlineTextFieldStyle()) - .focused($focusedField, equals: .title) - .textInputAutocapitalization(.sentences) - .autocorrectionDisabled() - } - - VStack(alignment: .leading, spacing: 8) { - Text("Body") - .font(.caption) - .foregroundColor(.secondary) - TextField("Notification body", text: $bodyText) - .textFieldStyle(UnderlineTextFieldStyle()) - .focused($focusedField, equals: .body) - .textInputAutocapitalization(.sentences) - .autocorrectionDisabled() - } - - Spacer() - - // Action Buttons - HStack(spacing: 24) { - Spacer() - - Button("CANCEL") { - onCancel() - } - .foregroundColor(.accentColor) - - Button("SEND") { - onSend(titleText, bodyText) - } - .foregroundColor(isValid ? .accentColor : .gray) - .disabled(!isValid) - } - .font(.system(size: 16, weight: .semibold)) - } - .padding(24) - .onAppear { - focusedField = .title - } - } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) - } - - private var isValid: Bool { - !titleText.trimmingCharacters(in: .whitespaces).isEmpty && - !bodyText.trimmingCharacters(in: .whitespaces).isEmpty - } -} - -#Preview { - CustomNotificationSheet( - onSend: { title, body in print("Send: \(title) - \(body)") }, - onCancel: { print("Cancel") } - ) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/GuidanceBanner.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/GuidanceBanner.swift deleted file mode 100644 index a2f73edf0..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/GuidanceBanner.swift +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A guidance banner that instructs users to add their own App ID. -/// Matches the Android demo's cream/yellow info banner. -struct GuidanceBanner: View { - var body: some View { - VStack(alignment: .leading, spacing: 6) { - Text("Add your own App ID, then rebuild to fully test all functionality.") - .font(.system(size: 14)) - .foregroundColor(.primary) - - Link("Get your keys at onesignal.com", destination: URL(string: "https://onesignal.com")!) - .font(.system(size: 14, weight: .medium)) - .foregroundColor(.accentColor) - } - .frame(maxWidth: .infinity, alignment: .leading) - .padding(12) - .background(Color(red: 1.0, green: 0.98, blue: 0.90)) - .cornerRadius(12) - } -} - -#Preview { - GuidanceBanner() - .padding() - .background(Color(.systemGroupedBackground)) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift deleted file mode 100644 index efee8e54a..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/KeyValueRow.swift +++ /dev/null @@ -1,363 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -// MARK: - Action Button Style - -/// A full-width red button with white uppercase text -struct ActionButtonStyle: ButtonStyle { - var isDestructive: Bool = false - - func makeBody(configuration: Configuration) -> some View { - configuration.label - .font(.system(size: 16, weight: .semibold)) - .foregroundColor(.white) - .textCase(.uppercase) - .frame(maxWidth: .infinity) - .padding(.vertical, 14) - .background(Color.accentColor.opacity(configuration.isPressed ? 0.8 : 1.0)) - .cornerRadius(8) - } -} - -/// A full-width action button matching the screenshot style -struct ActionButton: View { - let title: String - let action: () -> Void - - var body: some View { - Button(action: action) { - Text(title) - } - .buttonStyle(ActionButtonStyle()) - } -} - -/// Outlined button style: red border, white background, red text (for destructive actions like LOGOUT) -struct OutlineActionButtonStyle: ButtonStyle { - func makeBody(configuration: Configuration) -> some View { - configuration.label - .font(.system(size: 16, weight: .semibold)) - .foregroundColor(.accentColor) - .textCase(.uppercase) - .frame(maxWidth: .infinity) - .padding(.vertical, 14) - .background(Color(.systemBackground).opacity(configuration.isPressed ? 0.8 : 1.0)) - .cornerRadius(8) - .overlay( - RoundedRectangle(cornerRadius: 8) - .stroke(Color.accentColor, lineWidth: 1.5) - ) - } -} - -/// A full-width outlined action button (red border, white background, red text) -struct OutlineActionButton: View { - let title: String - let action: () -> Void - - var body: some View { - Button(action: action) { - Text(title) - } - .buttonStyle(OutlineActionButtonStyle()) - } -} - -/// A full-width action button with a leading icon (for Send In-App Message buttons) -struct ActionButtonWithIcon: View { - let title: String - let iconName: String - let action: () -> Void - - var body: some View { - Button(action: action) { - HStack(spacing: 12) { - Image(systemName: iconName) - .font(.system(size: 18)) - Text(title) - .font(.system(size: 16, weight: .semibold)) - .textCase(.uppercase) - Spacer() - } - .foregroundColor(.white) - .frame(maxWidth: .infinity) - .padding(.vertical, 14) - .padding(.horizontal, 16) - .background(Color.accentColor) - .cornerRadius(8) - } - .buttonStyle(.plain) - } -} - -// MARK: - Card Container - -/// A white card container with rounded corners -struct CardContainer: View { - let content: Content - - init(@ViewBuilder content: () -> Content) { - self.content = content() - } - - var body: some View { - VStack(spacing: 0) { - content - } - .background(Color(.systemBackground)) - .cornerRadius(12) - } -} - -// MARK: - Section Header - -/// A small gray section header with optional info tooltip button -struct SectionHeader: View { - let title: String - var tooltipKey: String? - - @State private var showingTooltip = false - - var body: some View { - HStack { - Text(title) - .font(.system(size: 14, weight: .medium)) - .foregroundColor(.secondary) - - Spacer() - - if tooltipKey != nil { - Button { - showingTooltip = true - } label: { - Image(systemName: "info.circle.fill") - .font(.system(size: 16)) - .foregroundColor(.accentColor) - } - .buttonStyle(.borderless) - } - } - .padding(.horizontal, 4) - .padding(.top, 16) - .padding(.bottom, 8) - .alert(isPresented: $showingTooltip) { - if let key = tooltipKey, - let tooltip = TooltipService.shared.getTooltip(key: key) { - var message = tooltip.description - if let options = tooltip.options { - message += "\n" - for option in options { - message += "\n\(option.name): \(option.description)" - } - } - return Alert( - title: Text(tooltip.title), - message: Text(message), - dismissButton: .default(Text("OK")) - ) - } else { - return Alert( - title: Text(title), - message: Text("Tooltip content not available."), - dismissButton: .default(Text("OK")) - ) - } - } - } -} - -// MARK: - Key-Value Row - -/// A row displaying a key-value pair with optional delete action -struct KeyValueRow: View { - let item: KeyValueItem - let onDelete: (() -> Void)? - - init(item: KeyValueItem, onDelete: (() -> Void)? = nil) { - self.item = item - self.onDelete = onDelete - } - - var body: some View { - HStack { - VStack(alignment: .leading, spacing: 2) { - Text(item.key) - .font(.subheadline) - .foregroundColor(.secondary) - Text(item.value) - .font(.body) - } - - Spacer() - - if let onDelete = onDelete { - Button(action: onDelete) { - Image(systemName: "xmark") - .font(.system(size: 14, weight: .medium)) - .foregroundColor(.red) - } - .buttonStyle(.borderless) - } - } - .padding(.horizontal, 16) - .padding(.vertical, 12) - .contentShape(Rectangle()) - } -} - -// MARK: - Single Value Row - -/// A row displaying a single value with optional delete action -struct SingleValueRow: View { - let value: String - let onDelete: (() -> Void)? - - init(value: String, onDelete: (() -> Void)? = nil) { - self.value = value - self.onDelete = onDelete - } - - var body: some View { - HStack { - Text(value) - .font(.body) - - Spacer() - - if let onDelete = onDelete { - Button(action: onDelete) { - Image(systemName: "xmark") - .font(.system(size: 14, weight: .medium)) - .foregroundColor(.red) - } - .buttonStyle(.borderless) - } - } - .padding(.horizontal, 16) - .padding(.vertical, 12) - .contentShape(Rectangle()) - } -} - -// MARK: - Info Row - -/// A row displaying a label and value (like "Push-Id: xxx") -struct InfoRow: View { - let label: String - let value: String - let isMonospaced: Bool - - init(label: String, value: String, isMonospaced: Bool = false) { - self.label = label - self.value = value - self.isMonospaced = isMonospaced - } - - var body: some View { - HStack(alignment: .top) { - Text(label) - .font(.system(size: 15, weight: .medium)) - .foregroundColor(.secondary) - Spacer() - Text(value) - .font(isMonospaced ? .system(size: 15, design: .monospaced) : .system(size: 15)) - .foregroundColor(.primary) - .lineLimit(1) - .truncationMode(.middle) - } - .padding(.horizontal, 16) - .padding(.vertical, 12) - } -} - -// MARK: - Toggle Row - -/// A toggle row with title and optional subtitle -struct ToggleRow: View { - let title: String - let subtitle: String? - @Binding var isOn: Bool - let isEnabled: Bool - - init(title: String, subtitle: String? = nil, isOn: Binding, isEnabled: Bool = true) { - self.title = title - self.subtitle = subtitle - self._isOn = isOn - self.isEnabled = isEnabled - } - - var body: some View { - HStack { - VStack(alignment: .leading, spacing: 2) { - Text(title) - .font(.system(size: 15, weight: .medium)) - if let subtitle = subtitle { - Text(subtitle) - .font(.caption) - .foregroundColor(.secondary) - } - } - - Spacer() - - Toggle("", isOn: $isOn) - .labelsHidden() - .disabled(!isEnabled) - } - .padding(.horizontal, 16) - .padding(.vertical, 12) - .opacity(isEnabled ? 1.0 : 0.5) - } -} - -// MARK: - Empty List Row - -/// A placeholder row for empty lists -struct EmptyListRow: View { - let message: String - - var body: some View { - Text(message) - .font(.system(size: 16, weight: .medium)) - .foregroundColor(.primary) - .frame(maxWidth: .infinity, alignment: .center) - .padding(.vertical, 16) - } -} - -// MARK: - Divider Line - -/// A subtle divider for card sections -struct CardDivider: View { - var body: some View { - Rectangle() - .fill(Color(.separator)) - .frame(height: 0.5) - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/LogView.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/LogView.swift deleted file mode 100644 index fb03c3db9..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/LogView.swift +++ /dev/null @@ -1,130 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Collapsible log view showing SDK and app logs, matching Android's LogView -struct LogView: View { - @ObservedObject var logManager: LogManager - @State private var isExpanded = false - - var body: some View { - VStack(spacing: 0) { - // Header bar - Button { - withAnimation(.easeInOut(duration: 0.2)) { - isExpanded.toggle() - } - } label: { - HStack { - Text("LOGS") - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(.primary) - - Text("(\(logManager.entries.count))") - .font(.system(size: 13, weight: .medium)) - .foregroundColor(.secondary) - - Spacer() - - Button { - logManager.clear() - } label: { - Image(systemName: "trash") - .font(.system(size: 14)) - .foregroundColor(.secondary) - } - .buttonStyle(.borderless) - - Image(systemName: isExpanded ? "chevron.up" : "chevron.down") - .font(.system(size: 12, weight: .medium)) - .foregroundColor(.secondary) - } - .padding(.horizontal, 16) - .padding(.vertical, 10) - } - .buttonStyle(.plain) - - // Log entries (expanded) - if isExpanded { - Divider() - - if logManager.entries.isEmpty { - Text("No logs yet") - .font(.system(size: 13)) - .foregroundColor(.secondary) - .frame(maxWidth: .infinity) - .padding(.vertical, 16) - } else { - ScrollViewReader { proxy in - ScrollView { - LazyVStack(alignment: .leading, spacing: 2) { - ForEach(logManager.entries) { entry in - HStack(alignment: .top, spacing: 6) { - Text(entry.formattedTimestamp) - .font(.system(size: 11, design: .monospaced)) - .foregroundColor(.secondary) - - Text(entry.level.rawValue) - .font(.system(size: 11, weight: .bold, design: .monospaced)) - .foregroundColor(entry.level.color) - - Text(entry.message) - .font(.system(size: 11, design: .monospaced)) - .foregroundColor(.primary) - .lineLimit(2) - } - .padding(.horizontal, 12) - .padding(.vertical, 2) - .id(entry.id) - } - } - .padding(.vertical, 4) - } - .frame(height: 100) - .onChange(of: logManager.entries.count) { _ in - if let lastEntry = logManager.entries.last { - withAnimation { - proxy.scrollTo(lastEntry.id, anchor: .bottom) - } - } - } - } - } - } - } - .background(Color(.systemBackground)) - .cornerRadius(0) - } -} - -#Preview { - VStack { - LogView(logManager: LogManager.shared) - } - .background(Color(.systemGroupedBackground)) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/NotificationGrid.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/NotificationGrid.swift deleted file mode 100644 index 8059af4f0..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/NotificationGrid.swift +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Three full-width push notification buttons matching the Android layout: -/// SIMPLE NOTIFICATION, NOTIFICATION WITH IMAGE, CUSTOM NOTIFICATION -struct SendPushButtons: View { - let onSimple: () -> Void - let onWithImage: () -> Void - let onCustom: () -> Void - let onClearAll: () -> Void - - var body: some View { - VStack(spacing: 8) { - ActionButton(title: "Simple", action: onSimple) - ActionButton(title: "With Image", action: onWithImage) - ActionButton(title: "Custom", action: onCustom) - ActionButton(title: "Clear All", action: onClearAll) - } - } -} - -/// Four full-width in-app message buttons with trailing icons matching the Android layout -struct SendInAppButtons: View { - let onSelect: (InAppMessageType) -> Void - - var body: some View { - VStack(spacing: 8) { - ForEach(InAppMessageType.allCases) { type in - ActionButtonWithIcon( - title: type.rawValue, - iconName: type.iconName - ) { - onSelect(type) - } - } - } - } -} - -#Preview { - ScrollView { - VStack(alignment: .leading, spacing: 20) { - Text("Send Push Notification") - .font(.system(size: 14, weight: .medium)) - .foregroundColor(.secondary) - SendPushButtons( - onSimple: { print("Simple") }, - onWithImage: { print("With Image") }, - onCustom: { print("Custom") }, - onClearAll: { print("Clear All") } - ) - - Text("Send In-App Message") - .font(.system(size: 14, weight: .medium)) - .foregroundColor(.secondary) - SendInAppButtons(onSelect: { type in - print("Selected: \(type.rawValue)") - }) - } - .padding() - } - .background(Color(.systemGroupedBackground)) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift deleted file mode 100644 index 85e0e5ed3..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/RemoveMultiSheet.swift +++ /dev/null @@ -1,118 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A checkbox dialog for selectively removing items, matching the Android "Remove Tags/Aliases/Triggers" dialog. -struct RemoveMultiSheet: View { - let type: RemoveMultiItemType - let items: [KeyValueItem] - let onRemove: ([String]) -> Void - let onCancel: () -> Void - - @State private var selectedKeys: Set = [] - - var body: some View { - NavigationStack { - VStack(spacing: 16) { - // Title - Text(type.rawValue) - .font(.title2) - .fontWeight(.semibold) - .frame(maxWidth: .infinity, alignment: .leading) - - // Checkbox list - ScrollView { - VStack(alignment: .leading, spacing: 0) { - ForEach(items) { item in - Button { - if selectedKeys.contains(item.key) { - selectedKeys.remove(item.key) - } else { - selectedKeys.insert(item.key) - } - } label: { - HStack(spacing: 12) { - Image(systemName: selectedKeys.contains(item.key) ? "checkmark.square.fill" : "square") - .font(.system(size: 22)) - .foregroundColor(selectedKeys.contains(item.key) ? .accentColor : .secondary) - - Text("\(item.key): \(item.value)") - .font(.system(size: 16)) - .foregroundColor(.primary) - - Spacer() - } - .padding(.vertical, 10) - } - .buttonStyle(.plain) - - if item.id != items.last?.id { - Divider() - } - } - } - } - - Spacer() - - // Action Buttons - HStack(spacing: 24) { - Spacer() - - Button("CANCEL") { - onCancel() - } - .foregroundColor(.accentColor) - - Button("REMOVE") { - onRemove(Array(selectedKeys)) - } - .foregroundColor(selectedKeys.isEmpty ? .gray : .accentColor) - .disabled(selectedKeys.isEmpty) - } - .font(.system(size: 16, weight: .semibold)) - } - .padding(24) - } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) - } -} - -#Preview { - RemoveMultiSheet( - type: .tags, - items: [ - KeyValueItem(key: "name", value: "John"), - KeyValueItem(key: "age", value: "25"), - KeyValueItem(key: "city", value: "NYC") - ], - onRemove: { keys in print("Remove: \(keys)") }, - onCancel: { print("Cancel") } - ) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/ToastView.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/ToastView.swift deleted file mode 100644 index eede3ce4d..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/ToastView.swift +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A toast notification view that appears at the bottom of the screen -struct ToastView: View { - let message: String - - var body: some View { - Text(message) - .font(.subheadline) - .foregroundColor(.white) - .padding(.horizontal, 16) - .padding(.vertical, 12) - .background(Color.black.opacity(0.8)) - .cornerRadius(8) - .shadow(radius: 4) - } -} - -/// A view modifier that overlays a toast message -struct ToastModifier: ViewModifier { - @Binding var message: String? - - func body(content: Content) -> some View { - ZStack { - content - - if let message = message { - VStack { - Spacer() - ToastView(message: message) - .padding(.bottom, 32) - .transition(.move(edge: .bottom).combined(with: .opacity)) - } - .animation(.easeInOut(duration: 0.3), value: message) - } - } - } -} - -extension View { - /// Adds a toast overlay to the view - func toast(message: Binding) -> some View { - modifier(ToastModifier(message: message)) - } -} - -#Preview { - VStack { - Text("Content") - } - .frame(maxWidth: .infinity, maxHeight: .infinity) - .toast(message: .constant("This is a toast message")) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift deleted file mode 100644 index f3aa65c6d..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Components/TrackEventSheet.swift +++ /dev/null @@ -1,150 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// A dialog for tracking an event with an optional JSON properties string. -struct TrackEventSheet: View { - let onTrack: (String, [String: Any]?) -> Void - let onCancel: () -> Void - - @State private var eventName: String = "" - @State private var propertiesText: String = "" - @State private var nameError: String? - @State private var propertiesError: String? - @FocusState private var focusedField: Field? - - private enum Field { - case name, properties - } - - var body: some View { - NavigationStack { - VStack(spacing: 24) { - // Title - Text("Track Event") - .font(.title2) - .fontWeight(.semibold) - .frame(maxWidth: .infinity, alignment: .leading) - - VStack(alignment: .leading, spacing: 4) { - Text("Event Name") - .font(.caption) - .foregroundColor(.secondary) - TextField("", text: $eventName) - .textFieldStyle(UnderlineTextFieldStyle()) - .focused($focusedField, equals: .name) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .onChange(of: eventName) { _ in - nameError = nil - } - if let error = nameError { - Text(error) - .font(.caption2) - .foregroundColor(.red) - } - } - - VStack(alignment: .leading, spacing: 4) { - Text("Properties (optional, JSON)") - .font(.caption) - .foregroundColor(.secondary) - TextField("{\"ABC\":123}", text: $propertiesText) - .textFieldStyle(UnderlineTextFieldStyle()) - .focused($focusedField, equals: .properties) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .onChange(of: propertiesText) { _ in - propertiesError = nil - } - if let error = propertiesError { - Text(error) - .font(.caption2) - .foregroundColor(.red) - } - } - - Spacer() - - // Action Buttons - HStack(spacing: 24) { - Spacer() - - Button("CANCEL") { - onCancel() - } - .foregroundColor(.accentColor) - - Button("TRACK") { - submitForm() - } - .foregroundColor(.accentColor) - } - .font(.system(size: 16, weight: .semibold)) - } - .padding(24) - .onAppear { - focusedField = .name - } - } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) - } - - private func submitForm() { - let trimmedName = eventName.trimmingCharacters(in: .whitespaces) - - if trimmedName.isEmpty { - nameError = "Required" - return - } - - var properties: [String: Any]? - - let trimmedProps = propertiesText.trimmingCharacters(in: .whitespaces) - .replacingOccurrences(of: "\u{201C}", with: "\"") - .replacingOccurrences(of: "\u{201D}", with: "\"") - if !trimmedProps.isEmpty { - guard let data = trimmedProps.data(using: .utf8), - let parsed = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { - propertiesError = "Invalid JSON" - return - } - properties = parsed - } - - onTrack(trimmedName, properties) - } -} - -#Preview { - TrackEventSheet( - onTrack: { name, props in print("Track: \(name), \(String(describing: props))") }, - onCancel: { print("Cancel") } - ) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/ContentView.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/ContentView.swift deleted file mode 100644 index d06a3a6a6..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/ContentView.swift +++ /dev/null @@ -1,199 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Main content view composing all sections in the order matching the Android demo app -struct ContentView: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - NavigationStack { - ZStack { - ScrollView { - VStack(spacing: 0) { - // Collapsible log view at top - LogView(logManager: LogManager.shared) - - // 1. App (includes consent, guidance banner) - AppInfoSection() - - // 2. User (status, external ID, login/logout) - UserSection() - - // 3. Push - PushSection() - - // 4. Send Push Notification - SendPushSection() - - // 5. In-App Messaging - InAppMessagingSection() - - // 6. Send In-App Message - SendInAppSection() - - // 7. Aliases - AliasesSection() - - // 8. Emails - EmailsSection() - - // 9. SMS - SMSSection() - - // 10. Tags - TagsSection() - - // 11. Outcome Events - OutcomeEventsSection() - - // 12. Triggers - TriggersSection() - - // 13. Track Event - TrackEventSection() - - // 14. Location - LocationSection() - - // 15. Live Activities - LiveActivitySection() - - // 16. Next Activity - NextScreenSection() - } - .padding(.horizontal, 16) - .padding(.bottom, 32) - } - .background(Color(.systemGroupedBackground)) - - // Loading overlay - if viewModel.isLoading { - Color.black.opacity(0.3) - .ignoresSafeArea() - ProgressView() - .scaleEffect(1.5) - .tint(.white) - } - } - .safeAreaInset(edge: .top) { - // Compact header bar - VStack(spacing: 0) { - Color.accentColor - .frame(height: UIApplication.shared.connectedScenes - .compactMap { $0 as? UIWindowScene } - .first?.statusBarManager?.statusBarFrame.height ?? 0) - HStack(spacing: 10) { - Image("OneSignalLogo") - .renderingMode(.template) - .resizable() - .aspectRatio(contentMode: .fit) - .frame(height: 24) - Text("Sample App") - .font(.subheadline) - .opacity(0.9) - Spacer() - } - .foregroundColor(.white) - .padding(.horizontal, 16) - .padding(.vertical, 12) - .background(Color.accentColor) - } - .ignoresSafeArea(edges: .top) - } - .navigationBarHidden(true) - // Single add sheet - .sheet(isPresented: $viewModel.showingAddSheet) { - AddItemSheet( - itemType: viewModel.addItemType, - onAdd: { key, value in - viewModel.handleAddItem(key: key, value: value) - }, - onCancel: { - viewModel.showingAddSheet = false - } - ) - } - // Multi-add sheet - .sheet(isPresented: $viewModel.showingMultiAddSheet) { - AddMultiItemSheet( - type: viewModel.multiAddType, - onAdd: { pairs in - viewModel.handleMultiAdd(pairs: pairs) - }, - onCancel: { - viewModel.showingMultiAddSheet = false - } - ) - } - // Remove-multi sheet - .sheet(isPresented: $viewModel.showingRemoveMultiSheet) { - RemoveMultiSheet( - type: viewModel.removeMultiType, - items: viewModel.removeMultiItems, - onRemove: { keys in - viewModel.handleRemoveMulti(keys: keys) - }, - onCancel: { - viewModel.showingRemoveMultiSheet = false - } - ) - } - // Custom notification sheet - .sheet(isPresented: $viewModel.showingCustomNotificationSheet) { - CustomNotificationSheet( - onSend: { title, body in - viewModel.sendCustomNotification(title: title, body: body) - viewModel.showingCustomNotificationSheet = false - }, - onCancel: { - viewModel.showingCustomNotificationSheet = false - } - ) - } - // Track event sheet - .sheet(isPresented: $viewModel.showingTrackEventSheet) { - TrackEventSheet( - onTrack: { name, properties in - viewModel.trackEvent(name: name, properties: properties) - viewModel.showingTrackEventSheet = false - }, - onCancel: { - viewModel.showingTrackEventSheet = false - } - ) - } - } - .toast(message: $viewModel.toastMessage) - } -} - -#Preview { - ContentView() - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/AppInfoSection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/AppInfoSection.swift deleted file mode 100644 index d0b80f902..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/AppInfoSection.swift +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section displaying app information, consent, logged-in state, and login/logout. -/// Merges the previous separate UserSection content. -struct AppInfoSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "App") - - // App ID card - CardContainer { - InfoRow(label: "App ID", value: viewModel.appId, isMonospaced: true) - } - - // Guidance banner - GuidanceBanner() - .padding(.top, 8) - - // Consent card with up to two toggles - CardContainer { - ToggleRow( - title: "Consent Required", - subtitle: "Require consent before SDK processes data", - isOn: Binding( - get: { viewModel.consentRequired }, - set: { _ in viewModel.toggleConsentRequired() } - ) - ) - - // Privacy Consent toggle (only visible when Consent Required is ON) - if viewModel.consentRequired { - CardDivider() - ToggleRow( - title: "Privacy Consent", - subtitle: "Consent given for data collection", - isOn: Binding( - get: { viewModel.consentGiven }, - set: { _ in viewModel.toggleConsent() } - ) - ) - } - } - .padding(.top, 8) - } - } -} - -#Preview { - ScrollView { - AppInfoSection() - .padding() - } - .background(Color(.systemGroupedBackground)) - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift deleted file mode 100644 index 294c904e6..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LiveActivitySection.swift +++ /dev/null @@ -1,46 +0,0 @@ -import SwiftUI -import OneSignalFramework - -struct LiveActivitySection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - @State private var activityId: String = "" - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Live Activities", tooltipKey: "liveActivities") - - CardContainer { - HStack { - Text("Activity ID") - .font(.system(size: 15, weight: .medium)) - .foregroundColor(.secondary) - Spacer() - TextField("Enter activity ID", text: $activityId) - .font(.system(size: 15)) - .multilineTextAlignment(.trailing) - .autocorrectionDisabled() - .textInputAutocapitalization(.never) - } - .padding(.horizontal, 16) - .padding(.vertical, 12) - } - - ActionButton(title: "Enter Live Activity") { - viewModel.enterLiveActivity(activityId: activityId) - } - .padding(.top, 12) - - OutlineActionButton(title: "Exit Live Activity") { - viewModel.exitLiveActivity(activityId: activityId) - } - .padding(.top, 8) - } - } -} - -#Preview { - LiveActivitySection() - .padding() - .background(Color(.systemGroupedBackground)) - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift deleted file mode 100644 index 8554cdc6e..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/LocationSection.swift +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for location sharing and permissions -struct LocationSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Location", tooltipKey: "location") - - CardContainer { - ToggleRow( - title: "Location Shared", - subtitle: "Share device location with OneSignal", - isOn: Binding( - get: { viewModel.isLocationShared }, - set: { _ in viewModel.toggleLocationShared() } - ) - ) - } - - ActionButton(title: "Prompt Location") { - viewModel.promptLocation() - } - .padding(.top, 12) - } - } -} - -#Preview { - LocationSection() - .padding() - .background(Color(.systemGroupedBackground)) - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/MessagingSection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/MessagingSection.swift deleted file mode 100644 index 6e8c0b203..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/MessagingSection.swift +++ /dev/null @@ -1,272 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for outcome events -struct OutcomeEventsSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - @State private var showingOutcomeSheet = false - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Outcome Events", tooltipKey: "outcomes") - - ActionButton(title: "Send Outcome") { - showingOutcomeSheet = true - } - } - .sheet(isPresented: $showingOutcomeSheet) { - OutcomeSheet( - onSendNormal: { name in - viewModel.sendOutcome(name) - showingOutcomeSheet = false - }, - onSendUnique: { name in - viewModel.sendUniqueOutcome(name) - showingOutcomeSheet = false - }, - onSendWithValue: { name, value in - viewModel.sendOutcome(name, value: value) - showingOutcomeSheet = false - }, - onCancel: { - showingOutcomeSheet = false - } - ) - } - } -} - -/// Section for in-app messaging controls -struct InAppMessagingSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "In-App Messaging", tooltipKey: "inAppMessaging") - - CardContainer { - ToggleRow( - title: "Pause In-App Messages", - subtitle: "Toggle in-app message display", - isOn: Binding( - get: { viewModel.isInAppMessagesPaused }, - set: { _ in viewModel.toggleInAppMessagesPaused() } - ) - ) - } - } - } -} - -/// Section for trigger management with Add Trigger, Add Triggers (multi), Remove Triggers, and Clear Triggers -struct TriggersSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Triggers", tooltipKey: "triggers") - - CardContainer { - if viewModel.triggers.isEmpty { - EmptyListRow(message: "No triggers added") - } else { - ForEach(Array(viewModel.triggers.enumerated()), id: \.element.id) { index, trigger in - if index > 0 { - CardDivider() - } - KeyValueRow(item: trigger) { - viewModel.removeTrigger(trigger) - } - } - } - } - - ActionButton(title: "Add") { - viewModel.showAddSheet(for: .trigger) - } - .padding(.top, 12) - - ActionButton(title: "Add Multiple") { - viewModel.showMultiAddSheet(for: .triggers) - } - .padding(.top, 8) - - // Remove Selected and Clear All - only visible when triggers exist - if !viewModel.triggers.isEmpty { - OutlineActionButton(title: "Remove Selected") { - viewModel.showRemoveMultiSheet(for: .triggers) - } - .padding(.top, 8) - - OutlineActionButton(title: "Clear All") { - viewModel.clearTriggers() - } - .padding(.top, 8) - } - } - } -} - -/// Outcome type options matching Android's radio button selection -private enum OutcomeType: Int, CaseIterable { - case normal = 0 - case unique = 1 - case withValue = 2 - - var label: String { - switch self { - case .normal: return "Normal Outcome" - case .unique: return "Unique Outcome" - case .withValue: return "Outcome with Value" - } - } -} - -/// Sheet for sending outcomes with radio button selection (Normal/Unique/With Value) -struct OutcomeSheet: View { - let onSendNormal: (String) -> Void - let onSendUnique: (String) -> Void - let onSendWithValue: (String, Double) -> Void - let onCancel: () -> Void - - @State private var selectedType: OutcomeType = .normal - @State private var outcomeName = "" - @State private var outcomeValue = "" - @FocusState private var focusedField: Field? - - private enum Field { - case name, value - } - - private var isSendDisabled: Bool { - let nameEmpty = outcomeName.trimmingCharacters(in: .whitespaces).isEmpty - if selectedType == .withValue { - return nameEmpty || Double(outcomeValue) == nil - } - return nameEmpty - } - - var body: some View { - NavigationStack { - VStack(spacing: 20) { - // Radio button selection - VStack(alignment: .leading, spacing: 4) { - ForEach(OutcomeType.allCases, id: \.rawValue) { type in - Button { - selectedType = type - } label: { - HStack(spacing: 8) { - Image(systemName: selectedType == type ? "largecircle.fill.circle" : "circle") - .font(.system(size: 20)) - .foregroundColor(selectedType == type ? .accentColor : .secondary) - Text(type.label) - .font(.system(size: 15)) - .foregroundColor(.primary) - } - .padding(.vertical, 6) - } - .buttonStyle(.plain) - } - } - - // Outcome name field (always shown) - VStack(alignment: .leading, spacing: 8) { - Text("Outcome Name") - .font(.caption) - .foregroundColor(.secondary) - TextField("Outcome Name", text: $outcomeName) - .textFieldStyle(.roundedBorder) - .focused($focusedField, equals: .name) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - } - - // Value field (only when "Outcome with Value" selected) - if selectedType == .withValue { - VStack(alignment: .leading, spacing: 8) { - Text("Value") - .font(.caption) - .foregroundColor(.secondary) - TextField("Value", text: $outcomeValue) - .textFieldStyle(.roundedBorder) - .focused($focusedField, equals: .value) - .keyboardType(.decimalPad) - } - } - - Spacer() - - HStack(spacing: 16) { - Button("Cancel") { - onCancel() - } - .foregroundColor(.accentColor) - - Spacer() - - Button("Send") { - switch selectedType { - case .normal: - onSendNormal(outcomeName) - case .unique: - onSendUnique(outcomeName) - case .withValue: - onSendWithValue(outcomeName, Double(outcomeValue) ?? 0) - } - } - .foregroundColor(.accentColor) - .disabled(isSendDisabled) - } - .textCase(.uppercase) - .font(.system(size: 16, weight: .semibold)) - } - .padding(24) - .navigationTitle("Send Outcome") - .navigationBarTitleDisplayMode(.inline) - .onAppear { - focusedField = .name - } - } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) - } -} - -#Preview { - ScrollView { - VStack { - OutcomeEventsSection() - InAppMessagingSection() - TriggersSection() - } - .padding() - } - .background(Color(.systemGroupedBackground)) - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NextScreenSection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NextScreenSection.swift deleted file mode 100644 index 2361b4996..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NextScreenSection.swift +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section with a button to navigate to a secondary placeholder view -struct NextScreenSection: View { - var body: some View { - VStack(spacing: 0) { - NavigationLink(destination: SecondaryView()) { - Text("Next Activity") - .font(.system(size: 16, weight: .semibold)) - .foregroundColor(.white) - .textCase(.uppercase) - .frame(maxWidth: .infinity) - .padding(.vertical, 14) - .background(Color.accentColor) - .cornerRadius(8) - } - .buttonStyle(.plain) - .padding(.top, 16) - } - } -} - -/// A placeholder secondary view -struct SecondaryView: View { - var body: some View { - VStack(spacing: 16) { - Image(systemName: "bell.circle.fill") - .font(.system(size: 60)) - .foregroundColor(.accentColor) - - Text("Secondary Activity") - .font(.title2) - .fontWeight(.semibold) - - Text("This is a placeholder secondary view for testing navigation and in-app message display on a different screen.") - .font(.body) - .foregroundColor(.secondary) - .multilineTextAlignment(.center) - .padding(.horizontal, 32) - } - .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(Color(.systemGroupedBackground)) - .navigationTitle("Secondary Activity") - .navigationBarTitleDisplayMode(.inline) - } -} - -#Preview { - NavigationStack { - NextScreenSection() - .padding() - } - .background(Color(.systemGroupedBackground)) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NotificationSection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NotificationSection.swift deleted file mode 100644 index 0d15d5785..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/NotificationSection.swift +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for sending test push notifications (3 full-width buttons) -struct SendPushSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Send Push Notification", tooltipKey: "sendPushNotification") - - SendPushButtons( - onSimple: { - viewModel.sendSimpleNotification() - }, - onWithImage: { - viewModel.sendNotificationWithImage() - }, - onCustom: { - viewModel.showingCustomNotificationSheet = true - }, - onClearAll: { - viewModel.clearAllNotifications() - } - ) - } - } -} - -/// Section for sending test in-app messages (4 full-width buttons with trailing icons) -struct SendInAppSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Send In-App Message", tooltipKey: "sendInAppMessage") - - SendInAppButtons { type in - viewModel.sendTestInAppMessage(type) - } - } - } -} - -#Preview { - ScrollView { - VStack { - SendPushSection() - SendInAppSection() - } - .padding() - } - .background(Color(.systemGroupedBackground)) - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/SubscriptionSection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/SubscriptionSection.swift deleted file mode 100644 index b0aec36f4..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/SubscriptionSection.swift +++ /dev/null @@ -1,180 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -// MARK: - Push Section - -/// Section for push subscription management -struct PushSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Push", tooltipKey: "push") - - CardContainer { - InfoRow( - label: "Push ID", - value: viewModel.pushSubscriptionId ?? "Not available", - isMonospaced: true - ) - CardDivider() - ToggleRow( - title: "Enabled", - isOn: Binding( - get: { viewModel.isPushEnabled }, - set: { _ in viewModel.togglePushEnabled() } - ), - isEnabled: viewModel.notificationPermissionGranted - ) - } - - // Prompt Push button - only visible when permission not granted - if !viewModel.notificationPermissionGranted { - ActionButton(title: "Prompt Push") { - viewModel.requestPushPermission() - } - .padding(.top, 12) - } - } - } -} - -// MARK: - Emails Section - -/// Section for email subscription management with collapsible >5 items -struct EmailsSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - @State private var isExpanded = false - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Emails", tooltipKey: "emails") - - CardContainer { - if viewModel.emails.isEmpty { - EmptyListRow(message: "No emails added") - } else { - let displayEmails = isExpanded ? viewModel.emails : Array(viewModel.emails.prefix(5)) - - ForEach(Array(displayEmails.enumerated()), id: \.element) { index, email in - if index > 0 { - CardDivider() - } - SingleValueRow(value: email) { - viewModel.removeEmail(email) - } - } - - // "X more available" when collapsed and more than 5 - if !isExpanded && viewModel.emails.count > 5 { - CardDivider() - Button { - isExpanded = true - } label: { - Text("\(viewModel.emails.count - 5) more available") - .font(.system(size: 14, weight: .medium)) - .foregroundColor(.accentColor) - .frame(maxWidth: .infinity) - .padding(.vertical, 10) - } - .buttonStyle(.plain) - } - } - } - - ActionButton(title: "Add Email") { - viewModel.showAddSheet(for: .email) - } - .padding(.top, 12) - } - } -} - -// MARK: - SMS Section - -/// Section for SMS subscription management with collapsible >5 items -struct SMSSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - @State private var isExpanded = false - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "SMS", tooltipKey: "sms") - - CardContainer { - if viewModel.smsNumbers.isEmpty { - EmptyListRow(message: "No SMS added") - } else { - let displaySms = isExpanded ? viewModel.smsNumbers : Array(viewModel.smsNumbers.prefix(5)) - - ForEach(Array(displaySms.enumerated()), id: \.element) { index, sms in - if index > 0 { - CardDivider() - } - SingleValueRow(value: sms) { - viewModel.removeSms(sms) - } - } - - if !isExpanded && viewModel.smsNumbers.count > 5 { - CardDivider() - Button { - isExpanded = true - } label: { - Text("\(viewModel.smsNumbers.count - 5) more available") - .font(.system(size: 14, weight: .medium)) - .foregroundColor(.accentColor) - .frame(maxWidth: .infinity) - .padding(.vertical, 10) - } - .buttonStyle(.plain) - } - } - } - - ActionButton(title: "Add SMS") { - viewModel.showAddSheet(for: .sms) - } - .padding(.top, 12) - } - } -} - -#Preview { - ScrollView { - VStack { - PushSection() - EmailsSection() - SMSSection() - } - .padding() - } - .background(Color(.systemGroupedBackground)) - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift deleted file mode 100644 index 5bea36558..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TagsSection.swift +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for managing user tags with Add Tag, Add Tags (multi), and Remove Tags -struct TagsSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Tags", tooltipKey: "tags") - - CardContainer { - if viewModel.tags.isEmpty { - EmptyListRow(message: "No tags added") - } else { - ForEach(Array(viewModel.tags.enumerated()), id: \.element.id) { index, tag in - if index > 0 { - CardDivider() - } - KeyValueRow(item: tag) { - viewModel.removeTag(tag) - } - } - } - } - - ActionButton(title: "Add") { - viewModel.showAddSheet(for: .tag) - } - .padding(.top, 12) - - ActionButton(title: "Add Multiple") { - viewModel.showMultiAddSheet(for: .tags) - } - .padding(.top, 8) - - // Remove Selected - only visible when tags exist - if !viewModel.tags.isEmpty { - OutlineActionButton(title: "Remove Selected") { - viewModel.showRemoveMultiSheet(for: .tags) - } - .padding(.top, 8) - } - } - } -} - -#Preview { - TagsSection() - .padding() - .background(Color(.systemGroupedBackground)) - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TrackEventSection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TrackEventSection.swift deleted file mode 100644 index 803342735..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/TrackEventSection.swift +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section for tracking custom events -struct TrackEventSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Track Event", tooltipKey: "trackEvent") - - ActionButton(title: "Track Event") { - viewModel.showingTrackEventSheet = true - } - } - } -} - -#Preview { - TrackEventSection() - .padding() - .background(Color(.systemGroupedBackground)) - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/UserSection.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/UserSection.swift deleted file mode 100644 index 0cbe80a64..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalSwiftUIExample/Views/Sections/UserSection.swift +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Modified MIT License - * - * Copyright 2024 OneSignal - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * 2. All copies of substantial portions of the Software may only be used in connection - * with services provided by OneSignal. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import SwiftUI - -/// Section displaying user login status, external ID, and login/logout buttons. -/// Matches the Android demo's USER section layout. -struct UserSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "User") - - // Status / External ID card - CardContainer { - // Status row - HStack { - Text("Status") - .font(.system(size: 15, weight: .medium)) - .foregroundColor(.secondary) - Spacer() - Text(viewModel.isLoggedIn ? "Logged In" : "Anonymous") - .font(.system(size: 15, weight: .medium)) - .foregroundColor(viewModel.isLoggedIn ? Color(red: 0.20, green: 0.66, blue: 0.33) : .secondary) - } - .padding(.horizontal, 16) - .padding(.vertical, 12) - - CardDivider() - - // External ID row - HStack { - Text("External ID") - .font(.system(size: 15, weight: .medium)) - .foregroundColor(.secondary) - Spacer() - Text(viewModel.externalUserId ?? "\u{2014}") - .font(.system(size: 15, weight: .medium)) - .lineLimit(1) - .truncationMode(.middle) - } - .padding(.horizontal, 16) - .padding(.vertical, 12) - } - - // Login / Switch User button (filled) - ActionButton(title: viewModel.loginButtonTitle) { - viewModel.showAddSheet(for: .externalUserId) - } - .padding(.top, 12) - - // Logout button (outlined, only when logged in) - if viewModel.isLoggedIn { - OutlineActionButton(title: "Logout User") { - viewModel.logout() - } - .padding(.top, 8) - } - } - } -} - -/// Section for alias management with Add and Add Multiple (read-only list, no delete icons) -struct AliasesSection: View { - @EnvironmentObject var viewModel: OneSignalViewModel - - var body: some View { - VStack(spacing: 0) { - SectionHeader(title: "Aliases", tooltipKey: "aliases") - - CardContainer { - if viewModel.aliases.isEmpty { - EmptyListRow(message: "No aliases added") - } else { - ForEach(Array(viewModel.aliases.enumerated()), id: \.element.id) { index, alias in - if index > 0 { - CardDivider() - } - KeyValueRow(item: alias) - } - } - } - - ActionButton(title: "Add") { - viewModel.showAddSheet(for: .alias) - } - .padding(.top, 12) - - ActionButton(title: "Add Multiple") { - viewModel.showMultiAddSheet(for: .aliases) - } - .padding(.top, 8) - } - } -} - -#Preview { - ScrollView { - VStack { - UserSection() - AliasesSection() - } - .padding() - } - .background(Color(.systemGroupedBackground)) - .environmentObject(OneSignalViewModel()) -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension.entitlements b/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension.entitlements deleted file mode 100644 index ee95ab7e5..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension.entitlements +++ /dev/null @@ -1,10 +0,0 @@ - - - - - com.apple.security.app-sandbox - - com.apple.security.network.client - - - diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/Info.plist b/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/Info.plist deleted file mode 100644 index 0f118fb75..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/Info.plist +++ /dev/null @@ -1,11 +0,0 @@ - - - - - NSExtension - - NSExtensionPointIdentifier - com.apple.widgetkit-extension - - - diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtension.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtension.swift deleted file mode 100644 index 60d247cf3..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtension.swift +++ /dev/null @@ -1,43 +0,0 @@ -import WidgetKit -import SwiftUI - -struct SimpleProvider: TimelineProvider { - func placeholder(in context: Context) -> SimpleEntry { - SimpleEntry(date: Date()) - } - - func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> Void) { - completion(SimpleEntry(date: Date())) - } - - func getTimeline(in context: Context, completion: @escaping (Timeline) -> Void) { - var entries: [SimpleEntry] = [] - let currentDate = Date() - for hourOffset in 0..<5 { - let entryDate = Calendar.current.date(byAdding: .hour, value: hourOffset, to: currentDate)! - entries.append(SimpleEntry(date: entryDate)) - } - completion(Timeline(entries: entries, policy: .atEnd)) - } -} - -struct SimpleEntry: TimelineEntry { - let date: Date -} - -struct OneSignalWidgetExtensionWidget: Widget { - let kind: String = "OneSignalWidgetExtension" - - var body: some WidgetConfiguration { - StaticConfiguration(kind: kind, provider: SimpleProvider()) { entry in - if #available(iOS 17.0, *) { - Text(entry.date, style: .time) - .containerBackground(.fill.tertiary, for: .widget) - } else { - Text(entry.date, style: .time) - } - } - .configurationDisplayName("OneSignal Widget") - .description("An example widget.") - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtensionBundle.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtensionBundle.swift deleted file mode 100644 index 1dd09de51..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtensionBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -import WidgetKit -import SwiftUI - -@main -struct OneSignalWidgetExtensionBundle: WidgetBundle { - var body: some Widget { - OneSignalWidgetExtensionWidget() - ExampleAppFirstWidget() - ExampleAppSecondWidget() - ExampleAppThirdWidget() - DefaultOneSignalLiveActivityWidget() - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtensionLiveActivity.swift b/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtensionLiveActivity.swift deleted file mode 100644 index 4d5fbaaa2..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/OneSignalWidgetExtension/OneSignalWidgetExtensionLiveActivity.swift +++ /dev/null @@ -1,226 +0,0 @@ -import ActivityKit -import WidgetKit -import SwiftUI -import OneSignalLiveActivities - -struct ExampleAppFirstWidget: Widget { - var body: some WidgetConfiguration { - ActivityConfiguration(for: ExampleAppFirstWidgetAttributes.self) { context in - VStack { - Spacer() - Text("FIRST: " + context.attributes.title).font(.headline) - Spacer() - HStack { - Spacer() - Label { - Text(String(context.state.message)) - } icon: { - Image(systemName: "bell.circle.fill") - .resizable() - .scaledToFit() - .frame(width: 40.0, height: 40.0) - } - Spacer() - } - Spacer() - } - .foregroundColor(.black) - .onesignalWidgetURL(URL(string: "https://example.com/page?param1=value1¶m2=value2#section"), context: context) - .activitySystemActionForegroundColor(.black) - .activityBackgroundTint(.white) - } dynamicIsland: { context in - DynamicIsland { - DynamicIslandExpandedRegion(.leading) { - Text("Leading") - } - DynamicIslandExpandedRegion(.trailing) { - Text("Trailing") - } - DynamicIslandExpandedRegion(.bottom) { - Text("Bottom") - } - } compactLeading: { - Text("L") - } compactTrailing: { - Text("T") - } minimal: { - Text("Min") - } - .onesignalWidgetURL(URL(string: "https://example.com/page?param1=value1¶m2=value2#section"), context: context) - .keylineTint(Color.red) - } - } -} - -struct ExampleAppSecondWidget: Widget { - var body: some WidgetConfiguration { - ActivityConfiguration(for: ExampleAppSecondWidgetAttributes.self) { context in - VStack { - Spacer() - HStack { - Image(systemName: "bell.circle.fill") - .resizable() - .scaledToFit() - .frame(width: 40.0, height: 40.0) - Spacer() - Text(context.attributes.title).font(.headline) - } - Spacer() - HStack(alignment: .firstTextBaseline, spacing: 16) { - Text("Update: ").font(.title2) - Spacer() - Text(context.state.message) - } - Spacer() - HStack(alignment: .firstTextBaseline, spacing: 16) { - Text("Progress: ").font(.title2) - ProgressView(value: context.state.progress) - .padding([.bottom, .top], 5) - Text(context.state.status) - } - HStack(alignment: .firstTextBaseline, spacing: 16) { - Text("Bugs: ").font(.title2) - Spacer() - Text(String(context.state.bugs)) - } - Spacer() - } - .foregroundColor(.black) - .padding([.all], 20) - .activitySystemActionForegroundColor(.black) - .activityBackgroundTint(.white) - .onesignalWidgetURL(URL(string: "https://example.com/page?param1=value1¶m2=value2#section"), context: context) - } dynamicIsland: { context in - DynamicIsland { - DynamicIslandExpandedRegion(.leading) { - Text("Leading") - } - DynamicIslandExpandedRegion(.trailing) { - Text("Trailing") - } - DynamicIslandExpandedRegion(.bottom) { - Text("Bottom") - } - } compactLeading: { - Text("L") - } compactTrailing: { - Text("T") - } minimal: { - Text("Min") - } - .keylineTint(Color.red) - .onesignalWidgetURL(URL(string: "https://example.com/page?param1=value1¶m2=value2#section"), context: context) - } - } -} - -struct ExampleAppThirdWidget: Widget { - var body: some WidgetConfiguration { - ActivityConfiguration(for: ExampleAppThirdWidgetAttributes.self) { context in - VStack { - Spacer() - Text("THIRD: " + context.attributes.title).font(.headline) - Spacer() - HStack { - Spacer() - Label { - Text(context.state.message) - } icon: { - Image(systemName: "bell.circle.fill") - .resizable() - .scaledToFit() - .frame(width: 40.0, height: 40.0) - } - Spacer() - } - Spacer() - } - .foregroundColor(.black) - .activitySystemActionForegroundColor(.black) - .activityBackgroundTint(.white) - } dynamicIsland: { _ in - DynamicIsland { - DynamicIslandExpandedRegion(.leading) { - Text("Leading") - } - DynamicIslandExpandedRegion(.trailing) { - Text("Trailing") - } - DynamicIslandExpandedRegion(.bottom) { - Text("Bottom") - } - } compactLeading: { - Text("L") - } compactTrailing: { - Text("T") - } minimal: { - Text("Min") - } - .widgetURL(URL(string: "http://www.apple.com")) - .keylineTint(Color.red) - } - } -} - -struct DefaultOneSignalLiveActivityWidget: Widget { - var body: some WidgetConfiguration { - ActivityConfiguration(for: DefaultLiveActivityAttributes.self) { context in - VStack { - Spacer() - HStack { - Image(systemName: "bell.circle.fill") - .resizable() - .scaledToFit() - .frame(width: 40.0, height: 40.0) - Spacer() - Text("DEFAULT: " + (context.attributes.data["title"]?.asString() ?? "")).font(.headline) - } - Spacer() - HStack(alignment: .firstTextBaseline, spacing: 16) { - Text("Update: ").font(.title2) - Spacer() - Text(context.state.data["message"]?.asDict()?["en"]?.asString() ?? "") - } - Spacer() - HStack(alignment: .firstTextBaseline, spacing: 16) { - Text("Progress: ").font(.title2) - ProgressView( - value: context.state.data["progress"]?.asDouble() ?? 0.0 - ).padding([.bottom, .top], 5) - Text(context.state.data["status"]?.asString() ?? "") - } - HStack(alignment: .firstTextBaseline, spacing: 16) { - Text("Bugs: ").font(.title2) - Spacer() - Text(String(context.state.data["bugs"]?.asInt() ?? 0)) - } - Spacer() - } - .foregroundColor(.black) - .padding([.all], 20) - .activitySystemActionForegroundColor(.black) - .activityBackgroundTint(.white) - .onesignalWidgetURL(URL(string: "https://example.com/page?param1=value1¶m2=value2#section"), context: context) - } dynamicIsland: { context in - DynamicIsland { - DynamicIslandExpandedRegion(.leading) { - Text("Leading") - } - DynamicIslandExpandedRegion(.trailing) { - Text("Trailing") - } - DynamicIslandExpandedRegion(.bottom) { - Text("Bottom") - } - } compactLeading: { - Text("L") - } compactTrailing: { - Text("T") - } minimal: { - Text("Min") - } - .keylineTint(Color.red) - .onesignalWidgetURL(URL(string: "https://example.com/page?param1=value1¶m2=value2#section"), context: context) - } - } -} diff --git a/iOS_SDK/OneSignalSwiftUIExample/README.md b/iOS_SDK/OneSignalSwiftUIExample/README.md deleted file mode 100644 index 1587befd4..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/README.md +++ /dev/null @@ -1,153 +0,0 @@ -# OneSignal SwiftUI Example App - -A modern SwiftUI example app demonstrating the OneSignal iOS SDK features using MVVM architecture. - -## Features - -This example app demonstrates all major OneSignal SDK capabilities: - -- **User Management**: Login/logout with external user ID -- **Aliases**: Add and remove user aliases -- **Push Subscriptions**: Enable/disable push notifications, view push ID -- **Email & SMS**: Add and remove email and SMS subscriptions -- **Tags**: Manage user tags for segmentation -- **Outcomes**: Track outcome events with optional values -- **In-App Messaging**: Pause/resume IAM, manage triggers -- **Location**: Toggle location sharing, request permissions -- **Test Notifications**: Grid of notification types for testing - -## Architecture - -The app follows the **MVVM (Model-View-ViewModel)** pattern with a service layer: - -``` -OneSignalSwiftUIExample/ -├── App/ -│ └── OneSignalSwiftUIExampleApp.swift # App entry point, AppDelegate, SDK initialization -├── Models/ -│ └── AppModels.swift # Data models (KeyValueItem, NotificationType, etc.) -├── Services/ -│ └── OneSignalService.swift # Singleton service wrapping all OneSignal SDK calls -├── ViewModels/ -│ └── OneSignalViewModel.swift # Main ViewModel with state management & observers -└── Views/ - ├── ContentView.swift # Root view composing all sections - ├── Components/ # Reusable UI components - │ ├── AddItemSheet.swift # Sheet for adding items (aliases, tags, etc.) - │ ├── KeyValueRow.swift # Row components for displaying data - │ ├── NotificationGrid.swift # Grid buttons for notification types - │ └── ToastView.swift # Toast notification overlay - └── Sections/ # Feature-specific sections - ├── AppInfoSection.swift # App ID display and consent management - ├── UserSection.swift # Login/logout and alias management - ├── SubscriptionSection.swift # Push, email, and SMS subscriptions - ├── TagsSection.swift # User tag management - ├── MessagingSection.swift # Outcomes, IAM controls, and triggers - ├── LocationSection.swift # Location sharing controls - └── NotificationSection.swift # Test notification buttons -``` - -## Running the App - -This project is part of the `OneSignalSDK.xcworkspace` and is configured to work with the local OneSignal SDK frameworks. - -### Quick Start - -1. Open `iOS_SDK/OneSignalSDK.xcworkspace` in Xcode -2. Select the **OneSignalSwiftUIExample** scheme -3. Select a simulator or physical device -4. Build and run (⌘R) -5. Grant notification permissions when prompted -6. Explore the various OneSignal features - -### Using Your Own App ID - -The default OneSignal App ID is configured in `OneSignalService.swift`. To use your own: - -1. Open `OneSignalSwiftUIExample/Services/OneSignalService.swift` -2. Change the `defaultAppId` value to your OneSignal App ID - -```swift -private let defaultAppId = "your-onesignal-app-id" -``` - -## Project Configuration - -### Required Capabilities - -The app requires the following capabilities (already configured): - -- **Push Notifications** -- **Background Modes** → Remote notifications - -### Info.plist Keys - -The following keys are configured for location and background notifications: - -- `NSLocationWhenInUseUsageDescription` -- `NSLocationAlwaysAndWhenInUseUsageDescription` -- `UIBackgroundModes` with `remote-notification` - -### Framework Dependencies - -The project links against the following OneSignal frameworks (built from the workspace): - -- `OneSignalFramework` -- `OneSignalInAppMessages` -- `OneSignalLocation` -- `OneSignalUser` -- `OneSignalNotifications` -- `OneSignalExtension` -- `OneSignalOutcomes` -- `OneSignalOSCore` - -## Key Implementation Details - -### SDK Initialization - -The OneSignal SDK is initialized in `AppDelegate` via `OneSignalService.shared.initialize()`: - -```swift -class AppDelegate: NSObject, UIApplicationDelegate { - func application(_ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - OneSignalService.shared.initialize(launchOptions: launchOptions) - // Set up notification and IAM listeners... - return true - } -} -``` - -### Service Layer Pattern - -All OneSignal SDK calls are encapsulated in `OneSignalService`, providing: - -- Centralized SDK access -- Easy mocking for testing -- Clean separation from UI code - -### Observer Pattern - -The ViewModel sets up observers for SDK state changes: - -- `OSPushSubscriptionObserver` - Push subscription state changes -- `OSUserStateObserver` - User state changes -- `OSNotificationPermissionObserver` - Permission changes - -### SwiftUI Best Practices - -- `@StateObject` for ViewModel ownership -- `@EnvironmentObject` for dependency injection to child views -- `@MainActor` for thread-safe UI updates -- Reusable components for consistent UI - -## Requirements - -- iOS 16.0+ -- Xcode 15.0+ -- Swift 5.9+ -- OneSignal iOS SDK 5.0+ - -## License - -Modified MIT License - See LICENSE file for details. diff --git a/iOS_SDK/OneSignalSwiftUIExample/build_app_prompt.md b/iOS_SDK/OneSignalSwiftUIExample/build_app_prompt.md deleted file mode 100644 index 35a15cb5f..000000000 --- a/iOS_SDK/OneSignalSwiftUIExample/build_app_prompt.md +++ /dev/null @@ -1,1117 +0,0 @@ -# OneSignal iOS Sample App - Build Guide - -This document contains all the prompts and requirements needed to build the OneSignal SwiftUI Sample App from scratch. Give these prompts to an AI assistant or follow them manually to recreate the app. - ---- - -## Phase 1: Initial Setup - -### Prompt 1.1 - Project Foundation - -``` -Build a sample iOS app with: -- SwiftUI app lifecycle (@main App struct with UIApplicationDelegateAdaptor) -- MVVM architecture with a single ObservableObject ViewModel -- @MainActor ViewModel with @Published properties -- @EnvironmentObject for passing ViewModel to views -- iOS 16.0 minimum deployment target -- Xcode project (not Swift Package Manager) -- Bundle identifier: com.onesignal.example -- All sheets should have EMPTY input fields (for test automation - test framework enters values) -- OneSignal brand colors via AccentColor in asset catalog (#E54B4D red) -- App name: "OneSignalSwiftUIExample" -- Top header bar: OneSignal logo image + "Sample App" text, left-aligned, red background spanning full width including status bar area -- Three targets: main app, Notification Service Extension, Widget Extension -``` - -### Prompt 1.2 - OneSignal Service Layer - -``` -Centralize all OneSignal SDK calls in a single OneSignalService.swift class (singleton): - -App ID: -- Stored in UserDefaults with key "OneSignalAppId" -- Default: "77e32082-ea27-42e3-a898-c72e141824ef" - -Initialization: -- initialize(launchOptions:) -> sets log level verbose, calls OneSignal.initialize(), requests push permission - -Identity: -- onesignalId: String? (reads OneSignal.User.onesignalId) -- externalId: String? (reads OneSignal.User.externalId) - -Consent: -- setConsentRequired(_ required: Bool) -- setConsentGiven(_ granted: Bool) - -User operations: -- login(externalId: String) -- logout() - -Alias operations: -- addAlias(label: String, id: String) -- addAliases(_ aliases: [String: String]) -- removeAlias(_ label: String) -- removeAliases(_ labels: [String]) - -Push subscription: -- pushSubscriptionId: String? -- isPushEnabled: Bool -- optInPush() / optOutPush() -- requestPushPermission(completion: @escaping (Bool) -> Void) with fallbackToSettings: true - -Email operations: -- addEmail(_ email: String) -- removeEmail(_ email: String) - -SMS operations: -- addSms(_ number: String) -- removeSms(_ number: String) - -Tag operations: -- addTag(key: String, value: String) -- addTags(_ tags: [String: String]) -- removeTag(_ key: String) -- removeTags(_ keys: [String]) -- getTags() -> [String: String] - -Outcome operations: -- sendOutcome(_ name: String) -- sendOutcome(_ name: String, value: NSNumber) -- sendUniqueOutcome(_ name: String) - -In-App Messages: -- isInAppMessagesPaused: Bool (get/set) -- addTrigger(key: String, value: String) -- addTriggers(_ triggers: [String: String]) -- removeTrigger(_ key: String) -- removeTriggers(_ keys: [String]) -- clearTriggers() - -Location: -- isLocationShared: Bool (get/set) -- requestLocationPermission() - -Notifications: -- clearAllNotifications() -- hasNotificationPermission: Bool - -Observers: -- addPushSubscriptionObserver(_ observer: OSPushSubscriptionObserver) -- addUserObserver(_ observer: OSUserStateObserver) -- addPermissionObserver(_ observer: OSNotificationPermissionObserver) -- addNotificationClickListener(_ listener: OSNotificationClickListener) -- addNotificationLifecycleListener(_ listener: OSNotificationLifecycleListener) -- addInAppMessageClickListener(_ listener: OSInAppMessageClickListener) -- addInAppMessageLifecycleListener(_ listener: OSInAppMessageLifecycleListener) -``` - -### Prompt 1.3 - NotificationSender (REST API Client) - -``` -Create NotificationSender.swift singleton for sending test notifications via REST API: - -Properties: -- apiURL: "https://onesignal.com/api/v1/notifications" -- imageURL: "https://media.onesignal.com/automated_push_templates/ratings_template.png" - -Methods: -- sendSimpleNotification(appId:completion:) -- sendNotificationWithImage(appId:completion:) -- sendCustomNotification(title:body:appId:completion:) - -All methods: -- Get subscription ID from OneSignal.User.pushSubscription.id -- Check optedIn status -- POST to API with "Accept: application/vnd.onesignal.v1+json" header -- Use include_subscription_ids (not include_player_ids) -- Image notification includes ios_attachments and big_picture -- Completion handler returns Result - -Error enum NotificationError: -- noSubscriptionId -- notOptedIn -- apiError(statusCode: Int) - -Note: REST API key is NOT required for sending to self via subscription ID. -``` - -### Prompt 1.4 - UserFetchService - -``` -Create UserFetchService.swift singleton: - -Method: -- fetchUser(appId: String, onesignalId: String) async -> UserData? - -Endpoint: -- GET https://api.onesignal.com/apps/{app_id}/users/by/onesignal_id/{onesignal_id} -- NO Authorization header needed (public endpoint) - -Parsing: -- identity object -> aliases (filter out "external_id" and "onesignal_id") -- identity.external_id -> externalId -- properties.tags -> tags (convert all values to String) -- subscriptions where type="Email" -> emails (token field) -- subscriptions where type="SMS" -> smsNumbers (token field) - -Returns UserData struct with aliases, tags, emails, smsNumbers, externalId. -``` - -### Prompt 1.5 - SDK Observers and App Delegate - -``` -In the AppDelegate within OneSignalSwiftUIExampleApp.swift, set up in didFinishLaunchingWithOptions: - -1. BEFORE SDK init: Restore consent state from UserDefaults: - - OneSignal.setConsentRequired(cached value) - - OneSignal.setConsentGiven(cached value) - -2. Initialize OneSignal via OneSignalService.shared.initialize() - -3. Start Live Activity listeners: - if #available(iOS 16.1, *) { LiveActivityController.start() } - -4. AFTER init: Restore remaining cached states from UserDefaults: - - OneSignal.InAppMessages.paused = cached paused status - - OneSignal.Location.isShared = cached location shared status - -5. Set up listeners: - - OSNotificationLifecycleListener (onWillDisplay -> log via LogManager) - - OSNotificationClickListener (onClick -> log via LogManager) - - OSInAppMessageLifecycleListener (onWillDisplay, onDidDisplay, onWillDismiss, onDidDismiss -> log) - - OSInAppMessageClickListener (onClick -> log) - - OSLogListener -> maps SDK log levels to LogManager levels, posts to main actor - -6. Initialize TooltipService (fetches on background thread, non-blocking) - -7. On the SwiftUI App body, add .onOpenURL handler: - - Calls OneSignal.LiveActivities.trackClickAndReturnOriginal(url) - - Logs via LogManager - -In OneSignalViewModel.swift, implement observers via private Observers class: -- OSPushSubscriptionObserver -> update pushSubscriptionId, isPushEnabled -- OSUserStateObserver -> log state change, call fetchUserDataFromApi() -- OSNotificationPermissionObserver -> update notificationPermissionGranted, conditionally update isPushEnabled -``` - -### Prompt 1.6 - LogManager - -``` -Create LogManager.swift: - -@MainActor final class LogManager: ObservableObject { - static let shared = LogManager() - @Published var entries: [LogEntry] = [] - private let maxEntries = 100 - - func log(_ tag: String, _ message: String, level: LogLevel) - func clear() - func d/i/w/e(_ tag: String, _ message: String) // Convenience -} - -LogLevel enum: debug, info, warning, error -- Each has a rawValue (D/I/W/E) and a SwiftUI Color (blue/green/orange/red) - -LogEntry struct: Identifiable with UUID, timestamp, level, message -- formattedTimestamp using "HH:mm:ss" format - -Every log call also prints to console via print(). -Max 100 entries, oldest removed when exceeded. -``` - ---- - -## Phase 2: UI Sections - -### Section Order (top to bottom) - FINAL - -1. **App Section** (App ID, Guidance Banner, Consent Toggles) -2. **User Section** (Status, External ID, Login/Logout) -3. **Push Section** (Push ID, Enabled Toggle, Prompt Push) -4. **Send Push Notification Section** (Simple, With Image, Custom) -5. **In-App Messaging Section** (Pause toggle) -6. **Send In-App Message Section** (Top Banner, Bottom Banner, Center Modal, Full Screen) -7. **Aliases Section** (Add/Add Multiple, read-only list) -8. **Emails Section** (Collapsible list >5 items) -9. **SMS Section** (Collapsible list >5 items) -10. **Tags Section** (Add/Add Multiple/Remove Selected) -11. **Outcome Events Section** (Send Outcome sheet with type selection) -12. **Triggers Section** (Add/Add Multiple/Remove Selected/Clear All - IN MEMORY ONLY) -13. **Track Event Section** (Track Event with JSON validation) -14. **Location Section** (Location Shared toggle, Prompt Location button) -15. **Live Activities Section** (Activity ID field, Enter/Exit buttons) -16. **Next Activity Button** - -### Prompt 2.1 - App Section - -``` -App Section layout: - -1. SectionHeader with title "App" - -2. CardContainer with App ID display (InfoRow, readonly) - -3. Sticky guidance banner below App ID: - - Text: "Add your own App ID, then rebuild to fully test all functionality." - - Link text: "Get your keys at onesignal.com" (clickable, opens browser) - - Light cream/yellow background (Color(red: 1.0, green: 0.98, blue: 0.90)) - - Rounded corners (12pt) - -4. Consent card with up to two toggles: - a. "Consent Required" toggle (always visible): - - Subtitle: "Require consent before SDK processes data" - - Sets OneSignal.consentRequired, persists to UserDefaults - b. "Privacy Consent" toggle (only visible when Consent Required is ON): - - Subtitle: "Consent given for data collection" - - Sets OneSignal.consentGiven, persists to UserDefaults - - Separated from above by CardDivider - - NOT a blocking overlay - user can interact with app regardless - -5. App version display: - - Reads from Bundle.main CFBundleShortVersionString -``` - -### Prompt 2.2 - User Section - -``` -User Section: -- SectionHeader with title "User" -- Status card (CardContainer) with two rows separated by CardDivider: - - Row 1: "Status" label | value ("Anonymous" in gray, or "Logged In" in green) - - Row 2: "External ID" label | value (actual ID or em dash "—") - - Green color: Color(red: 0.20, green: 0.66, blue: 0.33) - -- LOGIN USER button (ActionButton): - - Shows "LOGIN USER" when no user logged in - - Shows "SWITCH USER" when user is logged in - - Opens AddItemSheet with .externalUserId type - -- LOGOUT USER button (OutlineActionButton): - - Only visible when a user is logged in -``` - -### Prompt 2.3 - Push Section - -``` -Push Section: -- SectionHeader with title "Push" and tooltipKey "push" -- CardContainer with: - - InfoRow showing Push Subscription ID (readonly, truncated middle) - - CardDivider - - ToggleRow for "Enabled" (controls optIn/optOut) - - isEnabled parameter bound to notificationPermissionGranted - - When disabled (no permission): toggle appears dimmed at 50% opacity - -- PROMPT PUSH button (ActionButton): - - Only visible when notification permission is NOT granted - - Requests notification permission with fallbackToSettings - - Hidden once permission is granted - -Notification permission is automatically requested during SDK initialization. -``` - -### Prompt 2.4 - Send Push Notification Section - -``` -Send Push Notification Section: -- SectionHeader with title "Send Push Notification" and tooltipKey "sendPushNotification" -- Three full-width ActionButtons stacked vertically with 8pt spacing: - 1. SIMPLE - sends basic notification via NotificationSender - 2. WITH IMAGE - sends notification with big picture attachment - 3. CUSTOM - opens CustomNotificationSheet for custom title/body -``` - -### Prompt 2.5 - In-App Messaging Section - -``` -In-App Messaging Section: -- SectionHeader with title "In-App Messaging" and tooltipKey "inAppMessaging" -- CardContainer with ToggleRow: - - Title: "Pause In-App Messages" - - Subtitle: "Toggle in-app message display" - - Persists to UserDefaults on toggle -``` - -### Prompt 2.6 - Send In-App Message Section - -``` -Send In-App Message Section: -- SectionHeader with title "Send In-App Message" and tooltipKey "sendInAppMessage" -- Four full-width ActionButtonWithIcon buttons with 8pt spacing: - 1. TOP BANNER - icon "arrow.up.to.line", trigger: "iam_type" = "top_banner" - 2. BOTTOM BANNER - icon "arrow.down.to.line", trigger: "iam_type" = "bottom_banner" - 3. CENTER MODAL - icon "square", trigger: "iam_type" = "center_modal" - 4. FULL SCREEN - icon "arrow.up.left.and.arrow.down.right", trigger: "iam_type" = "full_screen" -- Button styling: - - RED background (AccentColor) - - WHITE text and icon - - SF Symbol icon on LEFT side - - Full width, left-aligned content - - UPPERCASE text -- On tap: adds trigger key/value and shows toast -``` - -### Prompt 2.7 - Aliases Section - -``` -Aliases Section: -- SectionHeader with title "Aliases" and tooltipKey "aliases" -- CardContainer list showing key-value pairs (read-only, NO delete icons) -- Each item shows Label | ID via KeyValueRow (no onDelete) -- Filter out "external_id" and "onesignal_id" from display -- "No aliases added" EmptyListRow when empty -- ADD button -> opens AddItemSheet with .alias type -- ADD MULTIPLE button -> opens AddMultiItemSheet with .aliases type -- No remove/delete functionality (aliases are add-only from the UI) -``` - -### Prompt 2.8 - Emails Section - -``` -Emails Section: -- SectionHeader with title "Emails" and tooltipKey "emails" -- CardContainer showing email addresses via SingleValueRow with delete (xmark) icon -- "No emails added" EmptyListRow when empty -- ADD EMAIL button -> opens AddItemSheet with .email type -- Collapse behavior when >5 items: - - Show first 5 items - - Show "X more available" text (tappable, AccentColor) - - Expand to show all when tapped -``` - -### Prompt 2.9 - SMS Section - -``` -SMS Section: -- SectionHeader with title "SMS" and tooltipKey "sms" -- Same pattern as Emails Section but for phone numbers -- ADD SMS button -> opens AddItemSheet with .sms type -- Same collapse behavior when >5 items -``` - -### Prompt 2.10 - Tags Section - -``` -Tags Section: -- SectionHeader with title "Tags" and tooltipKey "tags" -- CardContainer list of key-value pairs via KeyValueRow with delete icon -- "No tags added" EmptyListRow when empty -- ADD button -> opens AddItemSheet with .tag type -- ADD MULTIPLE button -> opens AddMultiItemSheet with .tags type -- REMOVE SELECTED button (OutlineActionButton): - - Only visible when at least one tag exists - - Opens RemoveMultiSheet with checkboxes -``` - -### Prompt 2.11 - Outcome Events Section - -``` -Outcome Events Section: -- SectionHeader with title "Outcome Events" and tooltipKey "outcomes" -- SEND OUTCOME button -> opens OutcomeSheet with 3 radio options: - 1. Normal Outcome -> shows name input field - 2. Unique Outcome -> shows name input field - 3. Outcome with Value -> shows name and value (decimal) input fields -- Radio buttons using SF Symbols: largecircle.fill.circle (selected) / circle (unselected) -- Send button disabled until name is filled AND (if with value) value is valid number -``` - -### Prompt 2.12 - Triggers Section (IN MEMORY ONLY) - -``` -Triggers Section: -- SectionHeader with title "Triggers" and tooltipKey "triggers" -- CardContainer list of key-value pairs with delete icon -- "No triggers added" EmptyListRow when empty -- ADD button -> opens AddItemSheet with .trigger type -- ADD MULTIPLE button -> opens AddMultiItemSheet with .triggers type -- Two action buttons (only visible when triggers exist): - - REMOVE SELECTED (OutlineActionButton) -> RemoveMultiSheet - - CLEAR ALL (OutlineActionButton) -> removes all triggers at once - -IMPORTANT: Triggers are stored IN MEMORY ONLY during the app session. -- triggers is a @Published [KeyValueItem] in ViewModel -- Triggers are NOT persisted to UserDefaults -- Triggers are cleared when the app is killed/restarted -- This is intentional - triggers are transient test data for IAM testing -``` - -### Prompt 2.13 - Track Event Section - -``` -Track Event Section: -- SectionHeader with title "Track Event" and tooltipKey "trackEvent" -- TRACK EVENT button -> opens TrackEventSheet with: - - "Event Name" label + empty text field (required, shows "Required" error if empty on submit) - - "Properties (optional, JSON)" label + text field with placeholder {"ABC":123} - - If non-empty and not valid JSON, shows "Invalid JSON" error - - If valid JSON, parsed via JSONSerialization to [String: Any] - - If empty, passes nil - - IMPORTANT: Replace iOS smart quotes (U+201C, U+201D) with standard quotes before JSON parsing - - Calls OneSignal.User.trackEvent(name:properties:) -``` - -### Prompt 2.14 - Location Section - -``` -Location Section: -- SectionHeader with title "Location" and tooltipKey "location" -- CardContainer with ToggleRow: - - Title: "Location Shared" - - Subtitle: "Share device location with OneSignal" - - Persists to UserDefaults on toggle -- PROMPT LOCATION button (ActionButton) -``` - -### Prompt 2.15 - Live Activities Section - -``` -Live Activities Section: -- SectionHeader with title "Live Activities" and tooltipKey "liveActivities" -- CardContainer with a text field for Activity ID: - - Label "Activity ID" on left, TextField on right (trailing aligned) - - autocorrectionDisabled, textInputAutocapitalization(.never) -- ENTER LIVE ACTIVITY button (ActionButton): - - Validates ID is non-empty - - Calls LiveActivityController.createOneSignalAwareActivity(activityId:) - - Guarded by @available(iOS 16.1, *) -- EXIT LIVE ACTIVITY button (OutlineActionButton): - - Validates ID is non-empty - - Calls OneSignal.LiveActivities.exit(activityId) -``` - -### Prompt 2.16 - Secondary View - -``` -Next Activity section: -- NavigationLink styled as full-width ActionButton -- Navigates to SecondaryView - -SecondaryView: -- Centered content: bell.circle.fill icon (60pt), "Secondary Activity" title, description text -- Navigation title "Secondary Activity" with inline display mode -- Simple screen for testing navigation and IAM display on different screen -``` - ---- - -## Phase 3: View User API Integration - -### Prompt 3.1 - Data Loading Flow - -``` -Loading indicator overlay: -- Full-screen semi-transparent overlay (Color.black.opacity(0.3)) with centered ProgressView -- isLoading @Published property in ViewModel -- Show/hide based on isLoading state -- IMPORTANT: Add 100ms delay after populating data before dismissing loading indicator - - Use Task.sleep(nanoseconds: 100_000_000) - -On cold start (init): -- Check if OneSignal.User.onesignalId is not null -- If exists: call fetchUserDataFromApi() -> populate UI -> delay 100ms -> set isLoading = false -- If null: just show empty state - -On login: -- Set isLoading = true immediately -- Call OneSignal.login(externalId) -- Clear old data (aliases, emails, sms, tags) -- Wait for onUserStateDidChange callback -- Callback calls fetchUserDataFromApi() - -On logout: -- Set isLoading = true -- Call OneSignal.logout() -- Clear local lists -- Set isLoading = false - -On onUserStateDidChange: -- Call fetchUserDataFromApi() to sync with server state - -Note: REST API key is NOT required for fetchUser endpoint. -``` - -### Prompt 3.2 - UserData Model - -``` -struct UserData { - let aliases: [String: String] // From identity (filter out external_id, onesignal_id) - let tags: [String: String] // From properties.tags - let emails: [String] // From subscriptions where type="Email" -> token - let smsNumbers: [String] // From subscriptions where type="SMS" -> token - let externalId: String? // From identity.external_id -} -``` - ---- - -## Phase 4: Info Tooltips - -### Prompt 4.1 - Tooltip Content (Remote) - -``` -Tooltip content is fetched at runtime from the sdk-shared repo. Do NOT bundle a local copy. - -URL: -https://raw.githubusercontent.com/OneSignal/sdk-shared/main/demo/tooltip_content.json - -This file is maintained in the sdk-shared repo and shared across all platform demo apps. -``` - -### Prompt 4.2 - TooltipService - -``` -Create TooltipService.swift: - -final class TooltipService: ObservableObject { - static let shared = TooltipService() - @Published private(set) var tooltips: [String: TooltipData] = [:] - private var initialized = false - - func initialize() { - guard !initialized else { return } - initialized = true - // Fetch on background thread (DispatchQueue.global(qos: .utility)) - // Parse JSON into tooltips map - // Update on main thread - // On failure: leave tooltips empty - tooltips are non-critical - } - - func getTooltip(key: String) -> TooltipData? -} - -struct TooltipData { - let title: String - let description: String - let options: [TooltipOption]? -} - -struct TooltipOption { - let name: String - let description: String -} -``` - -### Prompt 4.3 - Tooltip UI Integration - -``` -SectionHeader has an optional tooltipKey parameter. -When tooltipKey is set, an info.circle.fill icon button appears. -On tap, shows an Alert with: -- Title from tooltip.title -- Message from tooltip.description + options list -- Single "OK" dismiss button -If tooltip not available: shows "Tooltip content not available." -``` - ---- - -## Phase 5: Data Persistence & Initialization - -### What IS Persisted (UserDefaults) - -``` -UserDefaults stores: -- "OneSignalAppId" - App ID -- "CachedConsentRequired" - Consent required status -- "CachedPrivacyConsent" - Privacy consent status -- "CachedInAppMessagesPaused" - IAM paused status -- "CachedLocationShared" - Location shared status - -Note: External user ID is NOT cached in UserDefaults. -It is read from OneSignal.User.externalId on each app launch. -``` - -### Initialization Flow - -``` -On app startup, state is restored in two layers: - -1. AppDelegate.didFinishLaunchingWithOptions restores SDK state from UserDefaults BEFORE init: - - OneSignal.setConsentRequired(cached) - - OneSignal.setConsentGiven(cached) - - OneSignalService.shared.initialize() - Then AFTER init: - - Start LiveActivityController - - OneSignal.InAppMessages.paused = cached - - OneSignal.Location.isShared = cached - -2. OneSignalViewModel.init() reads UI state from the SDK (not UserDefaults): - - consentRequired and consentGiven read from UserDefaults at @Published declaration - - All other state read from OneSignalService (which reads from SDK) - - refreshState() syncs push ID, push enabled, IAM paused, location, permission, external ID, tags - -This two-layer approach ensures: -- The SDK is configured before anything else runs -- The ViewModel reads SDK's actual state as the source of truth -- The UI always reflects what the SDK reports -``` - -### What is NOT Persisted (In-Memory Only) - -``` -ViewModel holds in memory: -- triggers: [KeyValueItem] - session-only, cleared on restart -- aliases: populated from REST API each session -- emails, smsNumbers: populated from REST API each session -- tags: can be read from SDK via getTags(), also fetched from API -``` - ---- - -## Phase 6: Reusable Components - -### Prompt 6.1 - Button Styles - -``` -ActionButtonStyle: ButtonStyle -- 16pt semibold white text, uppercase -- Full width, 14pt vertical padding -- AccentColor background with 0.8 opacity on press -- 8pt corner radius - -ActionButton: View (title: String, action: () -> Void) -- Wraps Button with ActionButtonStyle - -OutlineActionButtonStyle: ButtonStyle -- 16pt semibold AccentColor text, uppercase -- Full width, 14pt vertical padding -- systemBackground background -- 1.5pt AccentColor border, 8pt corner radius - -OutlineActionButton: View (title: String, action: () -> Void) -- Wraps Button with OutlineActionButtonStyle - -ActionButtonWithIcon: View (title: String, iconName: String, action: () -> Void) -- HStack with SF Symbol icon (18pt) + text (16pt semibold uppercase) + Spacer -- White text on AccentColor background, 8pt corner radius -- Left-aligned content -``` - -### Prompt 6.2 - Card and Layout Components - -``` -CardContainer: View -- VStack(spacing: 0) wrapping content -- systemBackground color, 12pt corner radius - -SectionHeader: View (title: String, tooltipKey: String?) -- HStack with title (14pt medium, secondary color) + Spacer + optional info icon -- Padding: horizontal 4, top 16, bottom 8 - -CardDivider: View -- Rectangle, separator color, 0.5pt height - -InfoRow: View (label: String, value: String, isMonospaced: Bool = false) -- HStack with label (15pt medium secondary) + Spacer + value (15pt primary, lineLimit 1, truncateMiddle) -- 16pt horizontal, 12pt vertical padding - -ToggleRow: View (title: String, subtitle: String?, isOn: Binding, isEnabled: Bool = true) -- HStack with VStack(title, subtitle) + Spacer + Toggle -- When !isEnabled: toggle disabled, entire row at 50% opacity -- 16pt horizontal, 12pt vertical padding - -KeyValueRow: View (item: KeyValueItem, onDelete: (() -> Void)?) -- HStack with VStack(key as subheadline secondary, value as body) + Spacer + optional xmark delete button - -SingleValueRow: View (value: String, onDelete: (() -> Void)?) -- HStack with value text + Spacer + optional xmark delete button - -EmptyListRow: View (message: String) -- Centered text (16pt medium), 16pt vertical padding -``` - -### Prompt 6.3 - Sheets - -``` -AddItemSheet: View (itemType: AddItemType, onAdd: (String, String) -> Void, onCancel: () -> Void) -- Presents title, one or two text fields based on itemType.requiresKeyValue -- UnderlineTextFieldStyle (custom: font 17, 8pt vertical padding, 1pt separator line below) -- CANCEL / ADD (or LOGIN) buttons at bottom right -- ADD disabled until fields are valid (non-empty after trimming) -- presentationDetents([.medium]), presentationDragIndicator(.visible) -- autocorrectionDisabled, textInputAutocapitalization(.never) - -AddMultiItemSheet: View (type: MultiAddItemType, onAdd: ([(String, String)]) -> Void, onCancel: () -> Void) -- Dynamic rows of key-value pairs -- "+ ADD ROW" button to append new empty row -- Remove button (xmark) per row, hidden when only one row -- ADD disabled until ALL key AND value fields in every row are non-empty -- Batch submit - -RemoveMultiSheet: View (type: RemoveMultiItemType, items: [KeyValueItem], onRemove: ([String]) -> Void, onCancel: () -> Void) -- Checkbox list (checkmark.square.fill / square SF Symbols) -- Each row shows "key: value" -- REMOVE button disabled when nothing selected - -CustomNotificationSheet: View (onSend: (String, String) -> Void, onCancel: () -> Void) -- Title and Body text fields -- SEND disabled until both non-empty - -TrackEventSheet: View (onTrack: (String, [String: Any]?) -> Void, onCancel: () -> Void) -- Event Name field (required, shows "Required" error) -- Properties field (optional JSON, shows "Invalid JSON" error) -- IMPORTANT: Replace smart quotes (\u{201C}, \u{201D}) with standard quotes before parsing -- Parse via JSONSerialization.jsonObject as [String: Any] - -OutcomeSheet: View -- Radio selection: Normal / Unique / With Value -- Name field always shown -- Value field only when "Outcome with Value" selected -- Send button disabled until valid -``` - -### Prompt 6.4 - LogView - -``` -LogView: View (@ObservedObject logManager: LogManager) -- Collapsible header bar (default collapsed): - - "LOGS" text + "(N)" count + trash button + chevron - - Tap to expand/collapse with animation -- When expanded: - - 100pt height ScrollView - - LazyVStack of log entries - - Each entry: timestamp (11pt mono secondary) + level indicator (11pt bold mono, color-coded) + message (11pt mono, 2 line limit) - - Auto-scroll to bottom on new entries via ScrollViewReader + onChange - - "No logs yet" when empty - -ToastView: View (message: String) -- Subheadline white text -- Black 80% opacity background, 8pt corner radius, 4pt shadow -- ViewModifier that overlays at bottom with slide+opacity transition -- Auto-dismiss after 2 seconds (handled in ViewModel's showToast method) - -GuidanceBanner: View -- VStack with instruction text + Link to onesignal.com -- Light cream background, 12pt corner radius -``` - ---- - -## Phase 7: Extensions - -### Prompt 7.1 - Notification Service Extension - -``` -Target: OneSignalNotificationServiceExtension -- Bundle ID: com.onesignal.example.OneSignalNotificationServiceExtensionA -- Deployment target: iOS 16.0 -- Frameworks: OneSignalExtension, OneSignalCore, OneSignalOutcomes - -NotificationService.swift (UNNotificationServiceExtension subclass): -- didReceive: calls OneSignalExtension.didReceiveNotificationExtensionRequest() -- serviceExtensionTimeWillExpire: calls OneSignalExtension.serviceExtensionTimeWillExpireRequest() - -Info.plist: -- NSExtensionPointIdentifier: com.apple.usernotifications.service -- NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).NotificationService - -Entitlements: -- com.apple.security.application-groups: group.com.onesignal.example.onesignal -``` - -### Prompt 7.2 - Widget Extension for Live Activities - -``` -Target: OneSignalWidgetExtension -- Bundle ID: com.onesignal.example.OneSignalWidgetExtension -- Deployment target: iOS 16.1 -- Frameworks: WidgetKit, SwiftUI, OneSignalLiveActivities - -REQUIRED: Add NSSupportsLiveActivities = true to main app's Info.plist - -Shared file (compiled into BOTH main app and widget extension targets): -ExampleAppWidgetAttributes.swift: -- Wrapped in #if targetEnvironment(macCatalyst) #else ... #endif -- ExampleAppFirstWidgetAttributes: OneSignalLiveActivityAttributes (simple message) -- ExampleAppSecondWidgetAttributes: OneSignalLiveActivityAttributes (message, status, progress, bugs) -- ExampleAppThirdWidgetAttributes: ActivityAttributes (NOT OneSignal-aware, manual token management) - -Widget Extension files: -1. OneSignalWidgetExtensionBundle.swift (@main WidgetBundle): - - Registers: OneSignalWidgetExtensionWidget, ExampleAppFirstWidget, ExampleAppSecondWidget, - ExampleAppThirdWidget, DefaultOneSignalLiveActivityWidget - -2. OneSignalWidgetExtensionLiveActivity.swift: - - 4 widgets using ActivityConfiguration(for:) with Lock Screen and Dynamic Island UI - - IMPORTANT: Apply .foregroundColor(.black) to each Lock Screen VStack (white background = invisible text otherwise) - - Use .onesignalWidgetURL() instead of .widgetURL() for click tracking - - Use .activityBackgroundTint(.white) and .activitySystemActionForegroundColor(.black) - -3. OneSignalWidgetExtension.swift: - - Basic StaticConfiguration widget showing time - - Uses containerBackground(.fill.tertiary, for: .widget) on iOS 17+ (required by Apple) - -4. Info.plist: NSExtensionPointIdentifier = com.apple.widgetkit-extension - -Entitlements: -- com.apple.security.app-sandbox: true -- com.apple.security.network.client: true -``` - -### Prompt 7.3 - LiveActivityController (Main App) - -``` -Create LiveActivityController.swift in Services: -- Wrapped in #if targetEnvironment(macCatalyst) #else ... #endif - -static func start(): -- OneSignal.LiveActivities.setup(ExampleAppFirstWidgetAttributes.self) -- OneSignal.LiveActivities.setup(ExampleAppSecondWidgetAttributes.self) -- OneSignal.LiveActivities.setupDefault() -- For iOS 17.2+: manually monitor pushToStartTokenUpdates and activityUpdates - for ExampleAppThirdWidgetAttributes (non-OneSignal-aware type) - -static func createOneSignalAwareActivity(activityId:): -- Creates ExampleAppFirstWidgetAttributes with OneSignalLiveActivityAttributeData -- Requests Activity with .token push type - -static func createDefaultActivity(activityId:): -- Uses OneSignal.LiveActivities.startDefault() with attribute/content dictionaries - -static func createActivity(activityId:) async: -- Creates ExampleAppThirdWidgetAttributes (non-OneSignal-aware) -- Manually monitors pushTokenUpdates and calls OneSignal.LiveActivities.enter() -``` - ---- - -## Phase 8: Important Implementation Details - -### Smart Quotes Handling - -``` -iOS automatically replaces straight double quotes with smart/curly quotes in text fields. -This breaks JSON parsing. In TrackEventSheet, ALWAYS replace smart quotes before parsing: - -let trimmedProps = propertiesText - .trimmingCharacters(in: .whitespaces) - .replacingOccurrences(of: "\u{201C}", with: "\"") // Left double quotation mark - .replacingOccurrences(of: "\u{201D}", with: "\"") // Right double quotation mark -``` - -### Consent Initialization Order - -``` -Consent state MUST be set BEFORE OneSignal.initialize(): - -1. Read from UserDefaults -2. OneSignal.setConsentRequired(cachedValue) -3. OneSignal.setConsentGiven(cachedValue) -4. OneSignal.initialize(appId, withLaunchOptions: launchOptions) - -If consent is set after init, the SDK may process data before consent is configured. -``` - -### Push Permission and Enabled Toggle - -``` -The Push "Enabled" toggle must be disabled when notification permission is not granted: -- ToggleRow has isEnabled parameter -- Pass isEnabled: viewModel.notificationPermissionGranted -- When isEnabled is false: Toggle is .disabled(), row opacity is 0.5 -- This matches Android behavior where the toggle is grayed out without permission -``` - -### Live Activity Click Tracking - -``` -When a user taps a Live Activity on the Lock Screen, iOS opens the app via a URL. -The URL is set in the widget via .onesignalWidgetURL(). - -In the SwiftUI App body, intercept with .onOpenURL: -- Call OneSignal.LiveActivities.trackClickAndReturnOriginal(url) -- This sends the click event to OneSignal and returns the original URL -- Log the event via LogManager -``` - -### Alias Management - -``` -Aliases use a hybrid approach: -1. On app start/login: Fetched from REST API via fetchUserDataFromApi() -2. When user adds locally: SDK call + immediate local list update (don't wait for API) -3. On next launch: fresh data from API includes synced alias -``` - -### Toast Messages - -``` -All user actions display toast messages: -- Login: "Logged in as {userId}" -- Logout: "Logged out" -- Add alias/tag/trigger: "Alias added", "Tag added", etc. -- Add multiple: "{count} alias(es) added" -- Notifications: "Simple notification sent!" or "Failed: {error}" -- In-App Messages: "Sent In-App Message: {type}" -- Outcomes: "Outcome '{name}' sent" -- Events: "Event '{name}' tracked" -- Location: "Location sharing enabled/disabled" -- Push: "Push enabled/disabled" -- Live Activities: "Live Activity '{id}' entered/exited" - -Implementation: -- ViewModel has @Published toastMessage: String? -- showToast() sets message and auto-nils after 2 seconds via Task.sleep -- ToastModifier overlays at bottom of screen with animation -``` - ---- - -## Configuration - -### Info.plist Required Keys - -```xml - -NSSupportsLiveActivities - -NSLocationAlwaysAndWhenInUseUsageDescription -This app uses your location to provide location-based notifications and services. -NSLocationWhenInUseUsageDescription -This app uses your location to provide location-based notifications. -UIBackgroundModes - - remote-notification - -``` - -### Entitlements - -``` -Main app (OneSignalSwiftUIExample.entitlements): -- aps-environment: development -- com.apple.security.application-groups: group.com.onesignal.example.onesignal - -NSE (OneSignalNotificationServiceExtension.entitlements): -- com.apple.security.application-groups: group.com.onesignal.example.onesignal - -Widget Extension (OneSignalWidgetExtension.entitlements): -- com.apple.security.app-sandbox: true -- com.apple.security.network.client: true -``` - -### Bundle Identifiers - -``` -Main app: com.onesignal.example -NSE: com.onesignal.example.OneSignalNotificationServiceExtensionA -Widget: com.onesignal.example.OneSignalWidgetExtension -``` - -### OneSignal Frameworks - -``` -Main app links: -- OneSignalFramework, OneSignalCore, OneSignalExtension, OneSignalOutcomes -- OneSignalOSCore, OneSignalUser, OneSignalNotifications -- OneSignalInAppMessages, OneSignalLocation, OneSignalLiveActivities -- CoreLocation, SystemConfiguration, UserNotifications, WebKit - -NSE links: -- OneSignalExtension, OneSignalCore, OneSignalOutcomes - -Widget Extension links: -- WidgetKit, SwiftUI, OneSignalLiveActivities -``` - ---- - -## Key Files Structure - -``` -OneSignalSwiftUIExample/ -├── OneSignalSwiftUIExample.xcodeproj/ -├── OneSignalSwiftUIExample.entitlements -├── OneSignalWidgetExtension.entitlements -├── OneSignalSwiftUIExample/ -│ ├── App/ -│ │ └── OneSignalSwiftUIExampleApp.swift # @main App, AppDelegate, observers -│ ├── Models/ -│ │ └── AppModels.swift # KeyValueItem, enums, UserData, TooltipData -│ ├── Services/ -│ │ ├── OneSignalService.swift # SDK wrapper singleton -│ │ ├── NotificationSender.swift # REST API notification sender -│ │ ├── UserFetchService.swift # REST API user data fetcher -│ │ ├── TooltipService.swift # Remote tooltip loader -│ │ ├── LogManager.swift # Thread-safe pass-through logger -│ │ └── LiveActivityController.swift # Live Activity setup and creation -│ ├── ViewModels/ -│ │ └── OneSignalViewModel.swift # Main @MainActor ObservableObject -│ ├── Views/ -│ │ ├── ContentView.swift # Root view composing all sections -│ │ ├── Components/ -│ │ │ ├── KeyValueRow.swift # All reusable UI components -│ │ │ ├── NotificationGrid.swift # Push and IAM button groups -│ │ │ ├── AddItemSheet.swift # Single-item add sheet -│ │ │ ├── AddMultiItemSheet.swift # Multi-pair add sheet -│ │ │ ├── RemoveMultiSheet.swift # Checkbox remove sheet -│ │ │ ├── CustomNotificationSheet.swift # Custom notification sheet -│ │ │ ├── TrackEventSheet.swift # Track event with JSON sheet -│ │ │ ├── LogView.swift # Collapsible log viewer -│ │ │ ├── ToastView.swift # Toast overlay -│ │ │ └── GuidanceBanner.swift # Setup instruction banner -│ │ └── Sections/ -│ │ ├── AppInfoSection.swift # App ID, banner, consent -│ │ ├── UserSection.swift # User + Aliases sections -│ │ ├── SubscriptionSection.swift # Push + Emails + SMS sections -│ │ ├── NotificationSection.swift # Send Push + Send IAM sections -│ │ ├── MessagingSection.swift # IAM toggle + Triggers + Outcomes -│ │ ├── TagsSection.swift # Tags section -│ │ ├── TrackEventSection.swift # Track Event section -│ │ ├── LocationSection.swift # Location section -│ │ ├── LiveActivitySection.swift # Live Activities section -│ │ └── NextScreenSection.swift # Navigation + SecondaryView -│ ├── ExampleAppWidgetAttributes.swift # Shared ActivityAttributes (both targets) -│ ├── Assets.xcassets/ # App icon, AccentColor, OneSignalLogo -│ └── Info.plist -├── OneSignalNotificationServiceExtension/ -│ ├── NotificationService.swift -│ ├── Info.plist -│ └── OneSignalNotificationServiceExtension.entitlements -└── OneSignalWidgetExtension/ - ├── OneSignalWidgetExtensionBundle.swift - ├── OneSignalWidgetExtensionLiveActivity.swift - ├── OneSignalWidgetExtension.swift - └── Info.plist -``` - -Note: - -- All UI is SwiftUI (no UIKit storyboards/xibs) -- Tooltip content is fetched from remote URL (not bundled locally) -- LogView at top of screen displays SDK and app logs for debugging -- Multiple sections may share a single .swift file (e.g., MessagingSection.swift contains OutcomeEvents, IAM, and Triggers) - ---- - -## Summary - -This app demonstrates all OneSignal iOS SDK features: - -- User management (login/logout, aliases with batch add) -- Push notifications (subscription, sending with images, permission handling) -- Email and SMS subscriptions -- Tags for segmentation (batch add/remove support) -- Triggers for in-app message targeting (in-memory only, batch operations) -- Outcomes for conversion tracking -- Event tracking with JSON properties validation -- In-app messages (display testing with type-specific icons) -- Location sharing -- Privacy consent management -- Live Activities (enter/exit, push-to-start, widget extension, click tracking) -- Notification Service Extension (rich notifications) - -The app is designed to be: - -1. **Testable** - Empty sheets for test automation -2. **Comprehensive** - All SDK features demonstrated -3. **Clean** - MVVM architecture with SwiftUI -4. **Cross-platform ready** - Tooltip content shared via JSON across all platforms -5. **Session-based triggers** - Triggers stored in memory only, cleared on restart -6. **Responsive UI** - Loading indicator with delay to ensure UI populates before dismissing -7. **Performant** - Tooltip JSON loaded on background thread -8. **Modern UI** - SwiftUI with reusable components matching Android Material3 design -9. **Batch Operations** - Add multiple items at once, select and remove multiple items -10. **Extension-ready** - Notification Service Extension and Widget Extension for Live Activities From b58d8a3558cde259410d7c47e3d69609b2b08cd4 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Sun, 24 May 2026 13:49:20 -0700 Subject: [PATCH 06/23] refactor(demo): rename main app file to App.swift --- examples/demo/App.xcodeproj/project.pbxproj | 1179 +++++++++++++++++ ...ignalSwiftUIExampleApp.swift => App.swift} | 4 +- .../demo/App/Services/OneSignalService.swift | 22 +- .../Info.plist | 18 + examples/demo/OneSignalWidget/Info.plist | 18 + examples/demo/README.md | 61 +- examples/demo/project.yml | 139 ++ .../contents.xcworkspacedata | 3 + 8 files changed, 1392 insertions(+), 52 deletions(-) create mode 100644 examples/demo/App.xcodeproj/project.pbxproj rename examples/demo/App/{OneSignalSwiftUIExampleApp.swift => App.swift} (98%) create mode 100644 examples/demo/project.yml diff --git a/examples/demo/App.xcodeproj/project.pbxproj b/examples/demo/App.xcodeproj/project.pbxproj new file mode 100644 index 000000000..8fd670ac1 --- /dev/null +++ b/examples/demo/App.xcodeproj/project.pbxproj @@ -0,0 +1,1179 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXBuildFile section */ + 00B9E4C45782A6AD1CD3FE48 /* OneSignalExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2F82BD207897EB78739182A /* OneSignalExtension.framework */; }; + 08C5E83ABC14EC2FC88276B9 /* OneSignalLiveActivities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5EBC48D807036E572D97F0E /* OneSignalLiveActivities.framework */; }; + 0BC1978B56970258E20C24C4 /* SendPushSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B81D7E1A7EB9BB4466C768F /* SendPushSection.swift */; }; + 0C4F40193331204CC2E05743 /* OneSignalNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 283B132CEE12D26D1FA1AADF /* OneSignalNotifications.framework */; }; + 0E6E9EEBF2500A4E70022960 /* UserFetchService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FD8258E807E6672642A32E6 /* UserFetchService.swift */; }; + 0E7D0439A19C8BF291A8BEB1 /* EmailsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1892E9B40F0E8FB23DD64206 /* EmailsSection.swift */; }; + 0FE5C360856660ACD893CCEA /* OutcomeSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF74D1CE043AD45649BF9D2B /* OutcomeSheet.swift */; }; + 12410756291F687630ECE348 /* TooltipSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1425623C6445676EE0F85A92 /* TooltipSheet.swift */; }; + 12597AC14E1783CC87D6E147 /* OneSignalService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E0F5CBE80CF861238E1A9AA /* OneSignalService.swift */; }; + 14228D0C997F9168643F8154 /* OutcomesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4078B5F096680AFA83D1CB85 /* OutcomesSection.swift */; }; + 1653658B1F4EE21203BBAA5D /* TriggersSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1155DE423DAA8B5396948C9B /* TriggersSection.swift */; }; + 1FF9F70882A0CF6A73416DDF /* OneSignalWidgetLiveActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0864BD4A6F62539B2809338F /* OneSignalWidgetLiveActivity.swift */; }; + 2015D767360C96D01A2FF3D9 /* OneSignalCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2C1B9BE42E81492B9DB61343 /* OneSignalCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 232A52A5D5719F863641166C /* OneSignalExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2F82BD207897EB78739182A /* OneSignalExtension.framework */; }; + 25C963476DF0B01BAABE24D9 /* TooltipService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939E1F476EE48B9833A3311C /* TooltipService.swift */; }; + 27C72DF35BE082E3E1093F75 /* SendIamSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = C60D09DC8C809877FB4BF465 /* SendIamSection.swift */; }; + 2FCC417641D480849E99588B /* SmsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = E194A3F19072CB17A8F1A12E /* SmsSection.swift */; }; + 3038C8C43A465DFED77AA533 /* OneSignalNotificationServiceExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = B24E059F4DF6ABED55BA3183 /* OneSignalNotificationServiceExtension.appex */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3927A4BF207695E98A57E445 /* TagsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECAC7EF0B67920F9FEC4F129 /* TagsSection.swift */; }; + 3C899E2494DE29756F5451BE /* OneSignalNotifications.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 283B132CEE12D26D1FA1AADF /* OneSignalNotifications.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 3E4B37B396D90F6FFCE04B74 /* TrackEventSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E336B9D7158768462C81494C /* TrackEventSheet.swift */; }; + 3FB3C8C0634A765EE81D042E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 76989E05CECAD7B8B3C424A7 /* Assets.xcassets */; }; + 4414A3304BAEB384B8D16D09 /* OneSignalExtension.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B2F82BD207897EB78739182A /* OneSignalExtension.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 4C18E3D284BB28BD846162F3 /* NotificationSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38138523A8A81A60A77800CA /* NotificationSender.swift */; }; + 56DF63011CB625810F81075D /* OneSignalWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DD14C3CEEDFB9557E589B45 /* OneSignalWidgetBundle.swift */; }; + 5737CABFA55E019B2732B90D /* OneSignalViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F1FA3F3D16A857DB6ED045F /* OneSignalViewModel.swift */; }; + 5AFC97FA04B15A1D51168DCB /* AddItemSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA2AEE935AF5AB2E2C787CEF /* AddItemSheet.swift */; }; + 5B959D44AB09CB821C00AFBF /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F726E64F9B6817F917227C /* ContentView.swift */; }; + 5F4B7EC8437D1A8D80DF7674 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = A20B46F63592FC67B655BEB8 /* NotificationService.swift */; }; + 638B81D9DA5FD8636BB038B0 /* OneSignalUser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EF49509A218369322ECFA3B9 /* OneSignalUser.framework */; }; + 68BC99D15FDCB26EB35EBB07 /* OneSignalLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE9834773C437CC373607693 /* OneSignalLocation.framework */; }; + 6E3E040FD8A750248E70E46F /* AppModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EA9D80191548D49F09D30B3 /* AppModels.swift */; }; + 7B02F364CA25825E50B09CDB /* OneSignalOutcomes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC2530FFC78AECEAF6A7E1B7 /* OneSignalOutcomes.framework */; }; + 7B94F48C31E0BEA4B8CB20E2 /* SectionCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 497484E7C094D645338BD404 /* SectionCard.swift */; }; + 7C904CE2F4C2A2083324BBEB /* ToastView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F46DFACB9F304B9374F3C570 /* ToastView.swift */; }; + 7D2BA9022E77B00205453467 /* LiveActivityController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0542854462194E28D9E4638D /* LiveActivityController.swift */; }; + 7EBB68E75FAE49C09C048251 /* OneSignalUser.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EF49509A218369322ECFA3B9 /* OneSignalUser.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 8068AFC608E7E82F06733BE7 /* OneSignalCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C1B9BE42E81492B9DB61343 /* OneSignalCore.framework */; }; + 80E3E2B5438CFEBE1316FA84 /* OneSignalCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C1B9BE42E81492B9DB61343 /* OneSignalCore.framework */; }; + 837FCE7A095ED1D7CCFEACF3 /* InAppSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = B76FFAF18177241F4A47FE23 /* InAppSection.swift */; }; + 8E57965CF0E9F1C341E61996 /* OneSignal-Dynamic.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 25848A5B7E93DCA744373200 /* OneSignal-Dynamic.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 8EA2FF24D93691FDC1661913 /* CustomEventsSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B6FF0BC430F5A2B89215967 /* CustomEventsSection.swift */; }; + 902A116B26B8ECAD8EE29C95 /* ToggleRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 911376C90AA43F41478596FE /* ToggleRow.swift */; }; + 99C141A5ED972D66B5CD255A /* OneSignalWidget.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = AB92C9C455B15E0B571A1C66 /* OneSignalWidget.appex */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9A7BE456B679D7DE7CA300BC /* ListWidgets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 280B23B41935EAB89C8C6FCB /* ListWidgets.swift */; }; + 9B0D1DD32B99602629BBCB95 /* ActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6094499773760C3190F62C9 /* ActionButton.swift */; }; + 9FCE157075859B954814F6B7 /* OneSignalLiveActivities.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F5EBC48D807036E572D97F0E /* OneSignalLiveActivities.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + A22162D78B8C17D4958EA44B /* RemoveMultiSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB1AF59253E36FE6FCFDC874 /* RemoveMultiSheet.swift */; }; + A2B1975BB925DCA45327D71E /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB04A33912347325A0155D6 /* App.swift */; }; + A7A5153D68A4967A88B2B433 /* AliasesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225DEBDFE699D266D5BDE7ED /* AliasesSection.swift */; }; + AD514855D19B2C249269C7D2 /* OneSignalOutcomes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC2530FFC78AECEAF6A7E1B7 /* OneSignalOutcomes.framework */; }; + AF8A33E8CFAF1A8DB1907130 /* OneSignalOSCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1636BCBAB444EAC7BB34CEDE /* OneSignalOSCore.framework */; }; + B3AE701075398C6A369DBBE0 /* LocationSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C0EE23773C63B6EC3FB563A /* LocationSection.swift */; }; + C31F603E294D69E30CE65EA3 /* OneSignalInAppMessages.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 919F0D129D0FA271E24F0BBD /* OneSignalInAppMessages.framework */; }; + C6E9E2C6716059856A1AC571 /* OneSignalInAppMessages.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 919F0D129D0FA271E24F0BBD /* OneSignalInAppMessages.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CAB90AEC123A57B401881DBC /* OneSignalOSCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1636BCBAB444EAC7BB34CEDE /* OneSignalOSCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CE2C54D552E42C2538FB95C4 /* UserSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E2383E8AA63BF04ADA2CF0D /* UserSection.swift */; }; + CF76A5715EB5AE7F47839B9B /* CustomNotificationSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C10708FFB28FB6B9AF895E1 /* CustomNotificationSheet.swift */; }; + D154E0266C8AB372F928D42A /* OneSignalLocation.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = FE9834773C437CC373607693 /* OneSignalLocation.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D4CEA45BD0A4D71AF43524E2 /* MultiPairInputSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FB43BE0E085909B109C661F /* MultiPairInputSheet.swift */; }; + D65AC6EC014557264E7A3697 /* OneSignal-Dynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 25848A5B7E93DCA744373200 /* OneSignal-Dynamic.framework */; }; + DBDA727D6317A3CCC73A1699 /* LiveActivitySection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27856D76807C31B23CD10CFD /* LiveActivitySection.swift */; }; + E5671E3A84219D49E45F8DCF /* KeyValueRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5984B93007C6B85AFE09045A /* KeyValueRow.swift */; }; + E72F68A7DB51347AB8B10FA7 /* OneSignalLiveActivities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5EBC48D807036E572D97F0E /* OneSignalLiveActivities.framework */; }; + EA93E372AA3E66073487B89C /* PushSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = A42B5EDA3264E3D00A5CB265 /* PushSection.swift */; }; + F1DBBD7F18CB70C5DF2FFC32 /* AppSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EB548D4688766660864F581 /* AppSection.swift */; }; + FB0472C73D007EABFD01CCA8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C360043C7B20683C2E3FA3B6 /* Assets.xcassets */; }; + FFD2A54AE34AEADBBAE5B7E3 /* OneSignalOutcomes.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EC2530FFC78AECEAF6A7E1B7 /* OneSignalOutcomes.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 005EC764DD2429AF6136BB9A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DEBAAE272A4211D900BF2C1C; + remoteInfo = OneSignalInAppMessages; + }; + 06313C80EB92E867CF4AE55C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = DE7D17F927026BA3002D3A5D; + remoteInfo = OneSignalExtension; + }; + 13BDB99578D2E19A9A750DEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DE69E19A282ED8060090BB3D; + remoteInfo = OneSignalUser; + }; + 21265D9F7D2B1FBDDD3E716F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DE7D17F827026BA3002D3A5D; + remoteInfo = OneSignalExtension; + }; + 25CC6D5CA1E9DA9142715E8A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = 3E2400381D4FFC31008BDE70; + remoteInfo = OneSignalFramework; + }; + 5C38CF82FCDF8C89EA732187 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = 3E2400371D4FFC31008BDE70; + remoteInfo = OneSignalFramework; + }; + 5C4A42186FB7137C13DD3C0D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DEBAADF82A420A3700BF2C1C; + remoteInfo = OneSignalLocation; + }; + 642A3E9AC0D14239CE4A128E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6B590BF25178DC7D824D09CE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97373B3889FBDD1762E98B03; + remoteInfo = OneSignalWidget; + }; + 6701C77339EC73AE4FEC7E32 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DE7D187F27037F43002D3A5D; + remoteInfo = OneSignalOutcomes; + }; + 67BDC3D5140D6CC33418AA1D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DE7D187F27037F43002D3A5D; + remoteInfo = OneSignalOutcomes; + }; + 6DE922175F2D1304874645CD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = 3C115160289A259500565C41; + remoteInfo = OneSignalOSCore; + }; + 8475704534409C59DAE8B29A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DE7D17F827026BA3002D3A5D; + remoteInfo = OneSignalExtension; + }; + 852E98FC9C8818AE6B636551 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = DEF784292912DEB600A1F3A5; + remoteInfo = OneSignalNotifications; + }; + 8B6EE756CF7175F38D5B5B4B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = 3C115161289A259500565C41; + remoteInfo = OneSignalOSCore; + }; + 8E39421BCBE5C21C1A9CB242 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = 475F471E2B8E398D00EC05B3; + remoteInfo = OneSignalLiveActivities; + }; + 996095BEB3FD8CE51B7F1AD7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = DEBAADF92A420A3700BF2C1C; + remoteInfo = OneSignalLocation; + }; + 9CA6E55F92E787A8186EEBA1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DE7D17E527026B95002D3A5D; + remoteInfo = OneSignalCore; + }; + A668D6C94AC1F182AF01EAFF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6B590BF25178DC7D824D09CE /* Project object */; + proxyType = 1; + remoteGlobalIDString = 61033D7807F09753830EDBC1; + remoteInfo = OneSignalNotificationServiceExtension; + }; + B627D4859D5F7B2B7F452917 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DE7D17E527026B95002D3A5D; + remoteInfo = OneSignalCore; + }; + C43833A058207841248D7506 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = DEBAAE282A4211D900BF2C1C; + remoteInfo = OneSignalInAppMessages; + }; + D1E066F0069BD9B244E196E4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = DEF784282912DEB600A1F3A5; + remoteInfo = OneSignalNotifications; + }; + D378765DB7FB67E222BB7FF1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = 475F471D2B8E398D00EC05B3; + remoteInfo = OneSignalLiveActivities; + }; + D399497AA4F221AD92C859AE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = DE7D17E627026B95002D3A5D; + remoteInfo = OneSignalCore; + }; + D47A29D1FE2C196E0715923B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = DE69E19B282ED8060090BB3D; + remoteInfo = OneSignalUser; + }; + E36EAB44E3DD77FE80F2A724 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 2; + remoteGlobalIDString = DE7D188027037F43002D3A5D; + remoteInfo = OneSignalOutcomes; + }; + E48045948F131DB2BD8C1B2A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 291D83300C20BA3831824AFD /* OneSignalSDK */; + proxyType = 1; + remoteGlobalIDString = 475F471D2B8E398D00EC05B3; + remoteInfo = OneSignalLiveActivities; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 7C6B2DB89D01A1E9B8F2A565 /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 3038C8C43A465DFED77AA533 /* OneSignalNotificationServiceExtension.appex in Embed Foundation Extensions */, + 99C141A5ED972D66B5CD255A /* OneSignalWidget.appex in Embed Foundation Extensions */, + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 8EFDE6013C818852098745E7 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 2015D767360C96D01A2FF3D9 /* OneSignalCore.framework in Embed Frameworks */, + CAB90AEC123A57B401881DBC /* OneSignalOSCore.framework in Embed Frameworks */, + FFD2A54AE34AEADBBAE5B7E3 /* OneSignalOutcomes.framework in Embed Frameworks */, + 3C899E2494DE29756F5451BE /* OneSignalNotifications.framework in Embed Frameworks */, + 7EBB68E75FAE49C09C048251 /* OneSignalUser.framework in Embed Frameworks */, + 4414A3304BAEB384B8D16D09 /* OneSignalExtension.framework in Embed Frameworks */, + D154E0266C8AB372F928D42A /* OneSignalLocation.framework in Embed Frameworks */, + C6E9E2C6716059856A1AC571 /* OneSignalInAppMessages.framework in Embed Frameworks */, + 9FCE157075859B954814F6B7 /* OneSignalLiveActivities.framework in Embed Frameworks */, + 8E57965CF0E9F1C341E61996 /* OneSignal-Dynamic.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0542854462194E28D9E4638D /* LiveActivityController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveActivityController.swift; sourceTree = ""; }; + 0864BD4A6F62539B2809338F /* OneSignalWidgetLiveActivity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalWidgetLiveActivity.swift; sourceTree = ""; }; + 0F1FA3F3D16A857DB6ED045F /* OneSignalViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalViewModel.swift; sourceTree = ""; }; + 1155DE423DAA8B5396948C9B /* TriggersSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TriggersSection.swift; sourceTree = ""; }; + 1425623C6445676EE0F85A92 /* TooltipSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipSheet.swift; sourceTree = ""; }; + 1892E9B40F0E8FB23DD64206 /* EmailsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmailsSection.swift; sourceTree = ""; }; + 225DEBDFE699D266D5BDE7ED /* AliasesSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AliasesSection.swift; sourceTree = ""; }; + 27856D76807C31B23CD10CFD /* LiveActivitySection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveActivitySection.swift; sourceTree = ""; }; + 280B23B41935EAB89C8C6FCB /* ListWidgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListWidgets.swift; sourceTree = ""; }; + 291D83300C20BA3831824AFD /* OneSignalSDK */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = OneSignalSDK; path = ../../iOS_SDK/OneSignalSDK/OneSignal.xcodeproj; sourceTree = ""; }; + 35F726E64F9B6817F917227C /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 38138523A8A81A60A77800CA /* NotificationSender.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSender.swift; sourceTree = ""; }; + 3B81D7E1A7EB9BB4466C768F /* SendPushSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendPushSection.swift; sourceTree = ""; }; + 3FD8258E807E6672642A32E6 /* UserFetchService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserFetchService.swift; sourceTree = ""; }; + 4078B5F096680AFA83D1CB85 /* OutcomesSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutcomesSection.swift; sourceTree = ""; }; + 497484E7C094D645338BD404 /* SectionCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionCard.swift; sourceTree = ""; }; + 49D88A349FD70A9153DD2C03 /* App.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 4B6FF0BC430F5A2B89215967 /* CustomEventsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomEventsSection.swift; sourceTree = ""; }; + 5984B93007C6B85AFE09045A /* KeyValueRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyValueRow.swift; sourceTree = ""; }; + 5C0EE23773C63B6EC3FB563A /* LocationSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationSection.swift; sourceTree = ""; }; + 5E0F5CBE80CF861238E1A9AA /* OneSignalService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalService.swift; sourceTree = ""; }; + 5FB43BE0E085909B109C661F /* MultiPairInputSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiPairInputSheet.swift; sourceTree = ""; }; + 6C10708FFB28FB6B9AF895E1 /* CustomNotificationSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomNotificationSheet.swift; sourceTree = ""; }; + 6DD14C3CEEDFB9557E589B45 /* OneSignalWidgetBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OneSignalWidgetBundle.swift; sourceTree = ""; }; + 76989E05CECAD7B8B3C424A7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 7EA9D80191548D49F09D30B3 /* AppModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppModels.swift; sourceTree = ""; }; + 7EB548D4688766660864F581 /* AppSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSection.swift; sourceTree = ""; }; + 911376C90AA43F41478596FE /* ToggleRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleRow.swift; sourceTree = ""; }; + 939E1F476EE48B9833A3311C /* TooltipService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipService.swift; sourceTree = ""; }; + 9E2383E8AA63BF04ADA2CF0D /* UserSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSection.swift; sourceTree = ""; }; + A20B46F63592FC67B655BEB8 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; + A42B5EDA3264E3D00A5CB265 /* PushSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushSection.swift; sourceTree = ""; }; + AB92C9C455B15E0B571A1C66 /* OneSignalWidget.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = OneSignalWidget.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + B24E059F4DF6ABED55BA3183 /* OneSignalNotificationServiceExtension.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = OneSignalNotificationServiceExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + B76FFAF18177241F4A47FE23 /* InAppSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InAppSection.swift; sourceTree = ""; }; + BDB04A33912347325A0155D6 /* App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = ""; }; + C360043C7B20683C2E3FA3B6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + C60D09DC8C809877FB4BF465 /* SendIamSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendIamSection.swift; sourceTree = ""; }; + D6094499773760C3190F62C9 /* ActionButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionButton.swift; sourceTree = ""; }; + E194A3F19072CB17A8F1A12E /* SmsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmsSection.swift; sourceTree = ""; }; + E336B9D7158768462C81494C /* TrackEventSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackEventSheet.swift; sourceTree = ""; }; + EA2AEE935AF5AB2E2C787CEF /* AddItemSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddItemSheet.swift; sourceTree = ""; }; + EB1AF59253E36FE6FCFDC874 /* RemoveMultiSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoveMultiSheet.swift; sourceTree = ""; }; + ECAC7EF0B67920F9FEC4F129 /* TagsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TagsSection.swift; sourceTree = ""; }; + F46DFACB9F304B9374F3C570 /* ToastView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToastView.swift; sourceTree = ""; }; + FF74D1CE043AD45649BF9D2B /* OutcomeSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutcomeSheet.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 83824651FEF6A3650CC5A580 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 80E3E2B5438CFEBE1316FA84 /* OneSignalCore.framework in Frameworks */, + AD514855D19B2C249269C7D2 /* OneSignalOutcomes.framework in Frameworks */, + 00B9E4C45782A6AD1CD3FE48 /* OneSignalExtension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BC0DC3536DED64E0E8C9923E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8068AFC608E7E82F06733BE7 /* OneSignalCore.framework in Frameworks */, + AF8A33E8CFAF1A8DB1907130 /* OneSignalOSCore.framework in Frameworks */, + 7B02F364CA25825E50B09CDB /* OneSignalOutcomes.framework in Frameworks */, + 0C4F40193331204CC2E05743 /* OneSignalNotifications.framework in Frameworks */, + 638B81D9DA5FD8636BB038B0 /* OneSignalUser.framework in Frameworks */, + 232A52A5D5719F863641166C /* OneSignalExtension.framework in Frameworks */, + 68BC99D15FDCB26EB35EBB07 /* OneSignalLocation.framework in Frameworks */, + C31F603E294D69E30CE65EA3 /* OneSignalInAppMessages.framework in Frameworks */, + E72F68A7DB51347AB8B10FA7 /* OneSignalLiveActivities.framework in Frameworks */, + D65AC6EC014557264E7A3697 /* OneSignal-Dynamic.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C330DBFD3AE797742200EF8B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 08C5E83ABC14EC2FC88276B9 /* OneSignalLiveActivities.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 19317E8C50FA7D56330C6BDF /* ViewModels */ = { + isa = PBXGroup; + children = ( + 0F1FA3F3D16A857DB6ED045F /* OneSignalViewModel.swift */, + ); + path = ViewModels; + sourceTree = ""; + }; + 4102E3E068508DD683953C7D = { + isa = PBXGroup; + children = ( + 443E9F32F0EC65EEBF466F3B /* App */, + E62E617DD5FF6C0AA303F74D /* OneSignalNotificationServiceExtension */, + C83678AA9260FD8491BCC58F /* OneSignalWidget */, + E9C3DB3EC6D7655028A9C0D3 /* Products */, + E81A0E25363045BA30E3D600 /* Projects */, + ); + sourceTree = ""; + }; + 443E9F32F0EC65EEBF466F3B /* App */ = { + isa = PBXGroup; + children = ( + 4B8DD72AD7356663EB6BAE3A /* Models */, + 72F51C4EC858B862B629616C /* Services */, + 19317E8C50FA7D56330C6BDF /* ViewModels */, + F0D08B397106EA8498C4A8F4 /* Views */, + BDB04A33912347325A0155D6 /* App.swift */, + 76989E05CECAD7B8B3C424A7 /* Assets.xcassets */, + ); + path = App; + sourceTree = ""; + }; + 4B8DD72AD7356663EB6BAE3A /* Models */ = { + isa = PBXGroup; + children = ( + 7EA9D80191548D49F09D30B3 /* AppModels.swift */, + ); + path = Models; + sourceTree = ""; + }; + 53EC9A9E14C3568A020C0977 /* Sections */ = { + isa = PBXGroup; + children = ( + 225DEBDFE699D266D5BDE7ED /* AliasesSection.swift */, + 7EB548D4688766660864F581 /* AppSection.swift */, + 4B6FF0BC430F5A2B89215967 /* CustomEventsSection.swift */, + 1892E9B40F0E8FB23DD64206 /* EmailsSection.swift */, + B76FFAF18177241F4A47FE23 /* InAppSection.swift */, + 27856D76807C31B23CD10CFD /* LiveActivitySection.swift */, + 5C0EE23773C63B6EC3FB563A /* LocationSection.swift */, + 4078B5F096680AFA83D1CB85 /* OutcomesSection.swift */, + A42B5EDA3264E3D00A5CB265 /* PushSection.swift */, + C60D09DC8C809877FB4BF465 /* SendIamSection.swift */, + 3B81D7E1A7EB9BB4466C768F /* SendPushSection.swift */, + E194A3F19072CB17A8F1A12E /* SmsSection.swift */, + ECAC7EF0B67920F9FEC4F129 /* TagsSection.swift */, + 1155DE423DAA8B5396948C9B /* TriggersSection.swift */, + 9E2383E8AA63BF04ADA2CF0D /* UserSection.swift */, + ); + path = Sections; + sourceTree = ""; + }; + 54D70151146ED2430545164A /* Products */ = { + isa = PBXGroup; + children = ( + 2C1B9BE42E81492B9DB61343 /* OneSignalCore.framework */, + 1636BCBAB444EAC7BB34CEDE /* OneSignalOSCore.framework */, + EC2530FFC78AECEAF6A7E1B7 /* OneSignalOutcomes.framework */, + 283B132CEE12D26D1FA1AADF /* OneSignalNotifications.framework */, + EF49509A218369322ECFA3B9 /* OneSignalUser.framework */, + B2F82BD207897EB78739182A /* OneSignalExtension.framework */, + FE9834773C437CC373607693 /* OneSignalLocation.framework */, + 919F0D129D0FA271E24F0BBD /* OneSignalInAppMessages.framework */, + F5EBC48D807036E572D97F0E /* OneSignalLiveActivities.framework */, + 25848A5B7E93DCA744373200 /* OneSignal-Dynamic.framework */, + ); + name = Products; + sourceTree = ""; + }; + 72F51C4EC858B862B629616C /* Services */ = { + isa = PBXGroup; + children = ( + 0542854462194E28D9E4638D /* LiveActivityController.swift */, + 38138523A8A81A60A77800CA /* NotificationSender.swift */, + 5E0F5CBE80CF861238E1A9AA /* OneSignalService.swift */, + 939E1F476EE48B9833A3311C /* TooltipService.swift */, + 3FD8258E807E6672642A32E6 /* UserFetchService.swift */, + ); + path = Services; + sourceTree = ""; + }; + B9C3E998662065E7D921A5CA /* Components */ = { + isa = PBXGroup; + children = ( + D6094499773760C3190F62C9 /* ActionButton.swift */, + EA2AEE935AF5AB2E2C787CEF /* AddItemSheet.swift */, + 6C10708FFB28FB6B9AF895E1 /* CustomNotificationSheet.swift */, + 5984B93007C6B85AFE09045A /* KeyValueRow.swift */, + 280B23B41935EAB89C8C6FCB /* ListWidgets.swift */, + 5FB43BE0E085909B109C661F /* MultiPairInputSheet.swift */, + FF74D1CE043AD45649BF9D2B /* OutcomeSheet.swift */, + EB1AF59253E36FE6FCFDC874 /* RemoveMultiSheet.swift */, + 497484E7C094D645338BD404 /* SectionCard.swift */, + F46DFACB9F304B9374F3C570 /* ToastView.swift */, + 911376C90AA43F41478596FE /* ToggleRow.swift */, + 1425623C6445676EE0F85A92 /* TooltipSheet.swift */, + E336B9D7158768462C81494C /* TrackEventSheet.swift */, + ); + path = Components; + sourceTree = ""; + }; + C83678AA9260FD8491BCC58F /* OneSignalWidget */ = { + isa = PBXGroup; + children = ( + C360043C7B20683C2E3FA3B6 /* Assets.xcassets */, + 6DD14C3CEEDFB9557E589B45 /* OneSignalWidgetBundle.swift */, + 0864BD4A6F62539B2809338F /* OneSignalWidgetLiveActivity.swift */, + ); + path = OneSignalWidget; + sourceTree = ""; + }; + E62E617DD5FF6C0AA303F74D /* OneSignalNotificationServiceExtension */ = { + isa = PBXGroup; + children = ( + A20B46F63592FC67B655BEB8 /* NotificationService.swift */, + ); + path = OneSignalNotificationServiceExtension; + sourceTree = ""; + }; + E81A0E25363045BA30E3D600 /* Projects */ = { + isa = PBXGroup; + children = ( + 291D83300C20BA3831824AFD /* OneSignalSDK */, + ); + name = Projects; + sourceTree = ""; + }; + E9C3DB3EC6D7655028A9C0D3 /* Products */ = { + isa = PBXGroup; + children = ( + 49D88A349FD70A9153DD2C03 /* App.app */, + B24E059F4DF6ABED55BA3183 /* OneSignalNotificationServiceExtension.appex */, + AB92C9C455B15E0B571A1C66 /* OneSignalWidget.appex */, + ); + name = Products; + sourceTree = ""; + }; + F0D08B397106EA8498C4A8F4 /* Views */ = { + isa = PBXGroup; + children = ( + B9C3E998662065E7D921A5CA /* Components */, + 53EC9A9E14C3568A020C0977 /* Sections */, + 35F726E64F9B6817F917227C /* ContentView.swift */, + ); + path = Views; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 61033D7807F09753830EDBC1 /* OneSignalNotificationServiceExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = B4BE2C39FCD722539813E4EC /* Build configuration list for PBXNativeTarget "OneSignalNotificationServiceExtension" */; + buildPhases = ( + 5F10FF7EC3754C580B64A5B5 /* Sources */, + 83824651FEF6A3650CC5A580 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + D9BA8407D7B985A052FA30B8 /* PBXTargetDependency */, + 77C6618DD6ABFFC53745D2D4 /* PBXTargetDependency */, + E848F3B50C187ED7854A19EC /* PBXTargetDependency */, + ); + name = OneSignalNotificationServiceExtension; + packageProductDependencies = ( + ); + productName = OneSignalNotificationServiceExtension; + productReference = B24E059F4DF6ABED55BA3183 /* OneSignalNotificationServiceExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; + 93E9E330FC2CE7458D9C925F /* App */ = { + isa = PBXNativeTarget; + buildConfigurationList = FFC1863BD4026D2C17CBE82B /* Build configuration list for PBXNativeTarget "App" */; + buildPhases = ( + B77F0AF073564580D75A2CF1 /* Sources */, + 37BFF6A8CB5CC7FA21AD3FA3 /* Resources */, + BC0DC3536DED64E0E8C9923E /* Frameworks */, + 7C6B2DB89D01A1E9B8F2A565 /* Embed Foundation Extensions */, + 8EFDE6013C818852098745E7 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3D3214696D0E5D8871D927DC /* PBXTargetDependency */, + A1E826399F98FEF2C79AAD94 /* PBXTargetDependency */, + 39334E1C2B1194C7AA91290D /* PBXTargetDependency */, + E871C2D53DEBE7E6CD0D065C /* PBXTargetDependency */, + 1156917B5D40E6EEA429096E /* PBXTargetDependency */, + 4510858C7D7B77EA769F14BF /* PBXTargetDependency */, + D9EE246568FB5DB89C57EB72 /* PBXTargetDependency */, + DAE061F893FA97AAC97DC5B5 /* PBXTargetDependency */, + 6307D20A82A803B0C465DE8E /* PBXTargetDependency */, + 8438D2BC8BEECACED093384D /* PBXTargetDependency */, + 5CABB31140B2E97E15CB0194 /* PBXTargetDependency */, + 95E2CAB6F6B8EF265EC3BF95 /* PBXTargetDependency */, + ); + name = App; + packageProductDependencies = ( + ); + productName = App; + productReference = 49D88A349FD70A9153DD2C03 /* App.app */; + productType = "com.apple.product-type.application"; + }; + 97373B3889FBDD1762E98B03 /* OneSignalWidget */ = { + isa = PBXNativeTarget; + buildConfigurationList = B4E4C9786F2CB642EDE86073 /* Build configuration list for PBXNativeTarget "OneSignalWidget" */; + buildPhases = ( + FAFE195EF7AA226107A30633 /* Sources */, + 83BDEE3A221EC042F9FBEE81 /* Resources */, + C330DBFD3AE797742200EF8B /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + AADD02BB12D61D365C19EBE0 /* PBXTargetDependency */, + ); + name = OneSignalWidget; + packageProductDependencies = ( + ); + productName = OneSignalWidget; + productReference = AB92C9C455B15E0B571A1C66 /* OneSignalWidget.appex */; + productType = "com.apple.product-type.app-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 6B590BF25178DC7D824D09CE /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + TargetAttributes = { + 61033D7807F09753830EDBC1 = { + DevelopmentTeam = ""; + ProvisioningStyle = Automatic; + }; + 93E9E330FC2CE7458D9C925F = { + DevelopmentTeam = ""; + ProvisioningStyle = Automatic; + }; + 97373B3889FBDD1762E98B03 = { + DevelopmentTeam = ""; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = B3FD05C59F197F398A0B04AB /* Build configuration list for PBXProject "App" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = 4102E3E068508DD683953C7D; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = E9C3DB3EC6D7655028A9C0D3 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 54D70151146ED2430545164A /* Products */; + ProjectRef = 291D83300C20BA3831824AFD /* OneSignalSDK */; + }, + ); + projectRoot = ""; + targets = ( + 93E9E330FC2CE7458D9C925F /* App */, + 61033D7807F09753830EDBC1 /* OneSignalNotificationServiceExtension */, + 97373B3889FBDD1762E98B03 /* OneSignalWidget */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 1636BCBAB444EAC7BB34CEDE /* OneSignalOSCore.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OneSignalOSCore.framework; + remoteRef = 8B6EE756CF7175F38D5B5B4B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 25848A5B7E93DCA744373200 /* OneSignal-Dynamic.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = "OneSignal-Dynamic.framework"; + remoteRef = 25CC6D5CA1E9DA9142715E8A /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 283B132CEE12D26D1FA1AADF /* OneSignalNotifications.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OneSignalNotifications.framework; + remoteRef = 852E98FC9C8818AE6B636551 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2C1B9BE42E81492B9DB61343 /* OneSignalCore.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OneSignalCore.framework; + remoteRef = D399497AA4F221AD92C859AE /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 919F0D129D0FA271E24F0BBD /* OneSignalInAppMessages.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OneSignalInAppMessages.framework; + remoteRef = C43833A058207841248D7506 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + B2F82BD207897EB78739182A /* OneSignalExtension.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OneSignalExtension.framework; + remoteRef = 06313C80EB92E867CF4AE55C /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + EC2530FFC78AECEAF6A7E1B7 /* OneSignalOutcomes.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OneSignalOutcomes.framework; + remoteRef = E36EAB44E3DD77FE80F2A724 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + EF49509A218369322ECFA3B9 /* OneSignalUser.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OneSignalUser.framework; + remoteRef = D47A29D1FE2C196E0715923B /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F5EBC48D807036E572D97F0E /* OneSignalLiveActivities.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OneSignalLiveActivities.framework; + remoteRef = 8E39421BCBE5C21C1A9CB242 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + FE9834773C437CC373607693 /* OneSignalLocation.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OneSignalLocation.framework; + remoteRef = 996095BEB3FD8CE51B7F1AD7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 37BFF6A8CB5CC7FA21AD3FA3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3FB3C8C0634A765EE81D042E /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 83BDEE3A221EC042F9FBEE81 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FB0472C73D007EABFD01CCA8 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5F10FF7EC3754C580B64A5B5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5F4B7EC8437D1A8D80DF7674 /* NotificationService.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B77F0AF073564580D75A2CF1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B0D1DD32B99602629BBCB95 /* ActionButton.swift in Sources */, + 5AFC97FA04B15A1D51168DCB /* AddItemSheet.swift in Sources */, + A7A5153D68A4967A88B2B433 /* AliasesSection.swift in Sources */, + A2B1975BB925DCA45327D71E /* App.swift in Sources */, + 6E3E040FD8A750248E70E46F /* AppModels.swift in Sources */, + F1DBBD7F18CB70C5DF2FFC32 /* AppSection.swift in Sources */, + 5B959D44AB09CB821C00AFBF /* ContentView.swift in Sources */, + 8EA2FF24D93691FDC1661913 /* CustomEventsSection.swift in Sources */, + CF76A5715EB5AE7F47839B9B /* CustomNotificationSheet.swift in Sources */, + 0E7D0439A19C8BF291A8BEB1 /* EmailsSection.swift in Sources */, + 837FCE7A095ED1D7CCFEACF3 /* InAppSection.swift in Sources */, + E5671E3A84219D49E45F8DCF /* KeyValueRow.swift in Sources */, + 9A7BE456B679D7DE7CA300BC /* ListWidgets.swift in Sources */, + 7D2BA9022E77B00205453467 /* LiveActivityController.swift in Sources */, + DBDA727D6317A3CCC73A1699 /* LiveActivitySection.swift in Sources */, + B3AE701075398C6A369DBBE0 /* LocationSection.swift in Sources */, + D4CEA45BD0A4D71AF43524E2 /* MultiPairInputSheet.swift in Sources */, + 4C18E3D284BB28BD846162F3 /* NotificationSender.swift in Sources */, + 12597AC14E1783CC87D6E147 /* OneSignalService.swift in Sources */, + 5737CABFA55E019B2732B90D /* OneSignalViewModel.swift in Sources */, + 0FE5C360856660ACD893CCEA /* OutcomeSheet.swift in Sources */, + 14228D0C997F9168643F8154 /* OutcomesSection.swift in Sources */, + EA93E372AA3E66073487B89C /* PushSection.swift in Sources */, + A22162D78B8C17D4958EA44B /* RemoveMultiSheet.swift in Sources */, + 7B94F48C31E0BEA4B8CB20E2 /* SectionCard.swift in Sources */, + 27C72DF35BE082E3E1093F75 /* SendIamSection.swift in Sources */, + 0BC1978B56970258E20C24C4 /* SendPushSection.swift in Sources */, + 2FCC417641D480849E99588B /* SmsSection.swift in Sources */, + 3927A4BF207695E98A57E445 /* TagsSection.swift in Sources */, + 7C904CE2F4C2A2083324BBEB /* ToastView.swift in Sources */, + 902A116B26B8ECAD8EE29C95 /* ToggleRow.swift in Sources */, + 25C963476DF0B01BAABE24D9 /* TooltipService.swift in Sources */, + 12410756291F687630ECE348 /* TooltipSheet.swift in Sources */, + 3E4B37B396D90F6FFCE04B74 /* TrackEventSheet.swift in Sources */, + 1653658B1F4EE21203BBAA5D /* TriggersSection.swift in Sources */, + 0E6E9EEBF2500A4E70022960 /* UserFetchService.swift in Sources */, + CE2C54D552E42C2538FB95C4 /* UserSection.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FAFE195EF7AA226107A30633 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 56DF63011CB625810F81075D /* OneSignalWidgetBundle.swift in Sources */, + 1FF9F70882A0CF6A73416DDF /* OneSignalWidgetLiveActivity.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 1156917B5D40E6EEA429096E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalUser; + targetProxy = 13BDB99578D2E19A9A750DEF /* PBXContainerItemProxy */; + }; + 39334E1C2B1194C7AA91290D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalOutcomes; + targetProxy = 67BDC3D5140D6CC33418AA1D /* PBXContainerItemProxy */; + }; + 3D3214696D0E5D8871D927DC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalCore; + targetProxy = 9CA6E55F92E787A8186EEBA1 /* PBXContainerItemProxy */; + }; + 4510858C7D7B77EA769F14BF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalExtension; + targetProxy = 8475704534409C59DAE8B29A /* PBXContainerItemProxy */; + }; + 5CABB31140B2E97E15CB0194 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 61033D7807F09753830EDBC1 /* OneSignalNotificationServiceExtension */; + targetProxy = A668D6C94AC1F182AF01EAFF /* PBXContainerItemProxy */; + }; + 6307D20A82A803B0C465DE8E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalLiveActivities; + targetProxy = E48045948F131DB2BD8C1B2A /* PBXContainerItemProxy */; + }; + 77C6618DD6ABFFC53745D2D4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalOutcomes; + targetProxy = 6701C77339EC73AE4FEC7E32 /* PBXContainerItemProxy */; + }; + 8438D2BC8BEECACED093384D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalFramework; + targetProxy = 5C38CF82FCDF8C89EA732187 /* PBXContainerItemProxy */; + }; + 95E2CAB6F6B8EF265EC3BF95 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97373B3889FBDD1762E98B03 /* OneSignalWidget */; + targetProxy = 642A3E9AC0D14239CE4A128E /* PBXContainerItemProxy */; + }; + A1E826399F98FEF2C79AAD94 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalOSCore; + targetProxy = 6DE922175F2D1304874645CD /* PBXContainerItemProxy */; + }; + AADD02BB12D61D365C19EBE0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalLiveActivities; + targetProxy = D378765DB7FB67E222BB7FF1 /* PBXContainerItemProxy */; + }; + D9BA8407D7B985A052FA30B8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalCore; + targetProxy = B627D4859D5F7B2B7F452917 /* PBXContainerItemProxy */; + }; + D9EE246568FB5DB89C57EB72 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalLocation; + targetProxy = 5C4A42186FB7137C13DD3C0D /* PBXContainerItemProxy */; + }; + DAE061F893FA97AAC97DC5B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalInAppMessages; + targetProxy = 005EC764DD2429AF6136BB9A /* PBXContainerItemProxy */; + }; + E848F3B50C187ED7854A19EC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalExtension; + targetProxy = 21265D9F7D2B1FBDDD3E716F /* PBXContainerItemProxy */; + }; + E871C2D53DEBE7E6CD0D065C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = OneSignalNotifications; + targetProxy = D1E066F0069BD9B244E196E4 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0D2EF3911CA89837C30DB0D1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + INFOPLIST_FILE = OneSignalWidget/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App.OneSignalWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 4A0C935808978B5A7673E412 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = App.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = App/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 5C9EF0E6AF4F9491454DE177 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + GENERATE_INFOPLIST_FILE = NO; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.9; + }; + name = Release; + }; + D0E56A85F1C385808720F94B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements; + INFOPLIST_FILE = OneSignalNotificationServiceExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App.OneSignalNotificationServiceExtension; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + EB1CC3A930E09FEBECF9195D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = App.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + INFOPLIST_FILE = App/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + F305A3E63851EE49DA2D190E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + INFOPLIST_FILE = OneSignalWidget/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 16.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App.OneSignalWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + F5FD25168D9B32A08A468069 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements; + INFOPLIST_FILE = OneSignalNotificationServiceExtension/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App.OneSignalNotificationServiceExtension; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + F61063B78755D98B1B9C3697 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + GENERATE_INFOPLIST_FILE = NO; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.9; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + B3FD05C59F197F398A0B04AB /* Build configuration list for PBXProject "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F61063B78755D98B1B9C3697 /* Debug */, + 5C9EF0E6AF4F9491454DE177 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + B4BE2C39FCD722539813E4EC /* Build configuration list for PBXNativeTarget "OneSignalNotificationServiceExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F5FD25168D9B32A08A468069 /* Debug */, + D0E56A85F1C385808720F94B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + B4E4C9786F2CB642EDE86073 /* Build configuration list for PBXNativeTarget "OneSignalWidget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0D2EF3911CA89837C30DB0D1 /* Debug */, + F305A3E63851EE49DA2D190E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + FFC1863BD4026D2C17CBE82B /* Build configuration list for PBXNativeTarget "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4A0C935808978B5A7673E412 /* Debug */, + EB1CC3A930E09FEBECF9195D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 6B590BF25178DC7D824D09CE /* Project object */; +} diff --git a/examples/demo/App/OneSignalSwiftUIExampleApp.swift b/examples/demo/App/App.swift similarity index 98% rename from examples/demo/App/OneSignalSwiftUIExampleApp.swift rename to examples/demo/App/App.swift index e626e5653..847d2dcb3 100644 --- a/examples/demo/App/OneSignalSwiftUIExampleApp.swift +++ b/examples/demo/App/App.swift @@ -27,12 +27,10 @@ import SwiftUI import OneSignalFramework -import OneSignalInAppMessages import OneSignalLiveActivities -import OneSignalLocation @main -struct OneSignalSwiftUIExampleApp: App { +struct App: SwiftUI.App { @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate @StateObject private var viewModel = OneSignalViewModel() diff --git a/examples/demo/App/Services/OneSignalService.swift b/examples/demo/App/Services/OneSignalService.swift index 9ed23bf43..6a511579a 100644 --- a/examples/demo/App/Services/OneSignalService.swift +++ b/examples/demo/App/Services/OneSignalService.swift @@ -27,8 +27,6 @@ import Foundation import OneSignalFramework -import OneSignalInAppMessages -import OneSignalLocation /// Thin wrapper that funnels demo calls through a single OneSignal entry point final class OneSignalService { @@ -60,15 +58,25 @@ final class OneSignalService { var externalId: String? { OneSignal.User.externalId } // MARK: - Consent + // The SDK exposes setters only, so we mirror the values here for UI state. + + private let consentRequiredKey = "OneSignalConsentRequired" + private let consentGivenKey = "OneSignalConsentGiven" var consentRequired: Bool { - get { OneSignal.privacyConsentRequired } - set { OneSignal.setConsentRequired(newValue) } + get { UserDefaults.standard.bool(forKey: consentRequiredKey) } + set { + UserDefaults.standard.set(newValue, forKey: consentRequiredKey) + OneSignal.setConsentRequired(newValue) + } } var consentGiven: Bool { - get { OneSignal.privacyConsentGiven } - set { OneSignal.setConsentGiven(newValue) } + get { UserDefaults.standard.bool(forKey: consentGivenKey) } + set { + UserDefaults.standard.set(newValue, forKey: consentGivenKey) + OneSignal.setConsentGiven(newValue) + } } // MARK: - User @@ -119,7 +127,7 @@ final class OneSignalService { // MARK: - Outcomes func sendOutcome(_ name: String) { OneSignal.Session.addOutcome(name) } - func sendOutcome(_ name: String, value: NSNumber) { OneSignal.Session.addOutcome(name, value: value) } + func sendOutcome(_ name: String, value: NSNumber) { OneSignal.Session.addOutcome(name, value) } func sendUniqueOutcome(_ name: String) { OneSignal.Session.addUniqueOutcome(name) } // MARK: - In-App Messages diff --git a/examples/demo/OneSignalNotificationServiceExtension/Info.plist b/examples/demo/OneSignalNotificationServiceExtension/Info.plist index 57421ebf9..ca3cd8f43 100644 --- a/examples/demo/OneSignalNotificationServiceExtension/Info.plist +++ b/examples/demo/OneSignalNotificationServiceExtension/Info.plist @@ -2,6 +2,24 @@ + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + OneSignalNotificationServiceExtension + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 NSExtension NSExtensionPointIdentifier diff --git a/examples/demo/OneSignalWidget/Info.plist b/examples/demo/OneSignalWidget/Info.plist index 0f118fb75..a75840841 100644 --- a/examples/demo/OneSignalWidget/Info.plist +++ b/examples/demo/OneSignalWidget/Info.plist @@ -2,6 +2,24 @@ + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + OneSignalWidget + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 NSExtension NSExtensionPointIdentifier diff --git a/examples/demo/README.md b/examples/demo/README.md index 58ea4f078..055c199b7 100644 --- a/examples/demo/README.md +++ b/examples/demo/README.md @@ -31,7 +31,7 @@ examples/demo/ ├── App.xcodeproj ├── App.entitlements # main app: aps-environment + app group ├── App/ # Main app target source -│ ├── OneSignalSwiftUIExampleApp.swift # @main + AppDelegate, SDK + Live Activity setup +│ ├── App.swift # @main + AppDelegate, SDK + Live Activity setup │ ├── Views/ │ │ ├── ContentView.swift # Composes sections + sheets in Capacitor order │ │ ├── Sections/ # AppSection, UserSection, PushSection, ... @@ -70,58 +70,35 @@ This mirrors the Capacitor demo's iOS layout (`OneSignal-Capacitor-SDK/examples/ ## Setup Instructions -### 1. Create the Xcode project +The Xcode project is generated from `project.yml` with [XcodeGen](https://github.com/yonaskolb/XcodeGen) and is wired into `iOS_SDK/OneSignalSDK.xcworkspace`, so it builds against the SDK source tree directly. There are no manual Xcode setup steps. -1. Open Xcode and create a new **iOS App** named `App` (Interface: SwiftUI, Language: Swift, Storage: None) -2. Save it inside `examples/demo/` so the project file ends up at `examples/demo/App.xcodeproj` -3. Delete the auto-generated `App/ContentView.swift` and `App/AppApp.swift` -4. Drag the existing source folders from `examples/demo/App/` into the target with **Copy items if needed unchecked**: `Views/`, `ViewModels/`, `Models/`, `Services/`, `Assets.xcassets/`, and the `OneSignalSwiftUIExampleApp.swift` entry point at the root +### 1. Open the workspace -### 2. Add the Notification Service Extension target - -1. **File → New → Target… → Notification Service Extension**, name it `OneSignalNotificationServiceExtension` -2. Delete the auto-generated `NotificationService.swift` and `Info.plist` from the new target -3. Drag in the existing `OneSignalNotificationServiceExtension/` files from this folder, with **target membership** set to the new extension only -4. Set the entitlements file to `OneSignalNotificationServiceExtension.entitlements` - -### 3. Add the Widget Extension target (for Live Activities) - -1. **File → New → Target… → Widget Extension**, name it `OneSignalWidget`. **Uncheck** "Include Configuration Intent" -2. Delete the auto-generated `OneSignalWidget.swift`, `OneSignalWidgetBundle.swift`, `Info.plist`, and `Assets.xcassets` -3. Drag in the existing `OneSignalWidget/` files from this folder, target membership set to the widget target only -4. In the widget target's build settings, set **iOS Deployment Target** to 16.2 or later - -### 4. Add OneSignal SDK dependencies - -Use Swift Package Manager (**File → Add Package Dependencies…**, URL `https://github.com/OneSignal/OneSignal-iOS-SDK`, version 5.0.0+) and attach products to targets: - -| Product | Main app | NSE | Widget | -| --------------------------- | -------- | --- | ------ | -| `OneSignalFramework` | yes | | | -| `OneSignalInAppMessages` | yes | | | -| `OneSignalLocation` | yes | | | -| `OneSignalLiveActivities` | yes | | yes | -| `OneSignalExtension` | | yes | | +```bash +open iOS_SDK/OneSignalSDK.xcworkspace +``` -### 5. Configure capabilities +In the scheme picker pick **App** and run on a simulator or device. Granting notification permissions and selecting a section is enough to exercise the SDK against your local source. -For the **main app** target in **Signing & Capabilities**: +### 2. Regenerate the project (only when `project.yml` changes) -- **Push Notifications** -- **Background Modes** → Remote notifications -- **App Groups** → `group.com.onesignal.example.onesignal` (rename to your own app group, then update both entitlements files) +```bash +brew install xcodegen # one time +cd examples/demo +xcodegen generate # rewrites App.xcodeproj +``` -For the **NSE** target: +`project.yml` declares three targets — `App`, `OneSignalNotificationServiceExtension`, `OneSignalWidget` — and references the framework targets in `iOS_SDK/OneSignalSDK/OneSignal.xcodeproj` so each one links and embeds the right SDK frameworks at build time. -- **App Groups** → same group as the main app +### 3. Capabilities & App Group -The widget target needs no capabilities beyond what Xcode adds for you. `NSSupportsLiveActivities` is already set in `App/Info.plist`. +The shipped `App.entitlements` and `OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements` use `group.com.onesignal.example.onesignal`. If you need a different group (for example to install on a real device under your own team), change the value in both files to the same string. The other capabilities (Push Notifications, Remote notifications background mode, `NSSupportsLiveActivities`) are already declared in the entitlements / `App/Info.plist`. -### 6. Update App ID +### 4. Update the App ID -`Services/OneSignalService.swift` ships with a placeholder. Either edit `defaultAppId` or override it at runtime via `UserDefaults` (key `OneSignalAppId`). +`App/Services/OneSignalService.swift` ships with a placeholder OneSignal App ID. Either edit `defaultAppId` or override it at runtime via `UserDefaults` (key `OneSignalAppId`). -### 7. (Optional) Live Activities REST API key +### 5. (Optional) Live Activities REST API key To exercise **Update** / **End** of Live Activities, add a `Secrets.plist` file to the main app bundle with key `ONESIGNAL_API_KEY` set to a OneSignal REST API key for your app. Without a key the section disables those buttons and shows a hint. diff --git a/examples/demo/project.yml b/examples/demo/project.yml new file mode 100644 index 000000000..6afb6685a --- /dev/null +++ b/examples/demo/project.yml @@ -0,0 +1,139 @@ +name: App +options: + bundleIdPrefix: com.onesignal.example + deploymentTarget: + iOS: "16.0" + developmentLanguage: en + createIntermediateGroups: true + generateEmptyDirectories: false + groupSortPosition: top +configs: + Debug: debug + Release: release +settings: + base: + SWIFT_VERSION: "5.9" + CURRENT_PROJECT_VERSION: "1" + MARKETING_VERSION: "1.0" + CODE_SIGN_STYLE: Automatic + DEVELOPMENT_TEAM: "" + GENERATE_INFOPLIST_FILE: NO +projectReferences: + OneSignalSDK: + path: ../../iOS_SDK/OneSignalSDK/OneSignal.xcodeproj +targets: + # --------------------------------------------------------------------------- + # Main app + # --------------------------------------------------------------------------- + App: + type: application + platform: iOS + deploymentTarget: "16.0" + sources: + - path: App + excludes: + - "Info.plist" + - "**/*.entitlements" + settings: + base: + PRODUCT_NAME: "$(TARGET_NAME)" + PRODUCT_BUNDLE_IDENTIFIER: com.onesignal.example.App + INFOPLIST_FILE: App/Info.plist + CODE_SIGN_ENTITLEMENTS: App.entitlements + TARGETED_DEVICE_FAMILY: "1,2" + LD_RUNPATH_SEARCH_PATHS: "$(inherited) @executable_path/Frameworks" + ENABLE_USER_SCRIPT_SANDBOXING: NO + dependencies: + # SDK Swift framework targets (built from local source via the workspace) + - target: OneSignalSDK/OneSignalCore + embed: true + codeSign: true + - target: OneSignalSDK/OneSignalOSCore + embed: true + codeSign: true + - target: OneSignalSDK/OneSignalOutcomes + embed: true + codeSign: true + - target: OneSignalSDK/OneSignalNotifications + embed: true + codeSign: true + - target: OneSignalSDK/OneSignalUser + embed: true + codeSign: true + - target: OneSignalSDK/OneSignalExtension + embed: true + codeSign: true + - target: OneSignalSDK/OneSignalLocation + embed: true + codeSign: true + - target: OneSignalSDK/OneSignalInAppMessages + embed: true + codeSign: true + - target: OneSignalSDK/OneSignalLiveActivities + embed: true + codeSign: true + - target: OneSignalSDK/OneSignalFramework + embed: true + codeSign: true + # Local app extensions + - target: OneSignalNotificationServiceExtension + embed: true + codeSign: true + - target: OneSignalWidget + embed: true + codeSign: true + + # --------------------------------------------------------------------------- + # Notification Service Extension (rich push) + # --------------------------------------------------------------------------- + OneSignalNotificationServiceExtension: + type: app-extension + platform: iOS + deploymentTarget: "16.0" + sources: + - path: OneSignalNotificationServiceExtension + excludes: + - "Info.plist" + - "**/*.entitlements" + settings: + base: + PRODUCT_NAME: "$(TARGET_NAME)" + PRODUCT_BUNDLE_IDENTIFIER: com.onesignal.example.App.OneSignalNotificationServiceExtension + INFOPLIST_FILE: OneSignalNotificationServiceExtension/Info.plist + CODE_SIGN_ENTITLEMENTS: OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements + TARGETED_DEVICE_FAMILY: "1,2" + LD_RUNPATH_SEARCH_PATHS: "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks" + SKIP_INSTALL: YES + dependencies: + - target: OneSignalSDK/OneSignalCore + embed: false + - target: OneSignalSDK/OneSignalOutcomes + embed: false + - target: OneSignalSDK/OneSignalExtension + embed: false + + # --------------------------------------------------------------------------- + # Widget Extension (Live Activities) + # --------------------------------------------------------------------------- + OneSignalWidget: + type: app-extension + platform: iOS + deploymentTarget: "16.2" + sources: + - path: OneSignalWidget + excludes: + - "Info.plist" + - "**/*.entitlements" + settings: + base: + PRODUCT_NAME: "$(TARGET_NAME)" + PRODUCT_BUNDLE_IDENTIFIER: com.onesignal.example.App.OneSignalWidget + INFOPLIST_FILE: OneSignalWidget/Info.plist + TARGETED_DEVICE_FAMILY: "1,2" + LD_RUNPATH_SEARCH_PATHS: "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks" + SKIP_INSTALL: YES + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME: WidgetBackground + dependencies: + - target: OneSignalSDK/OneSignalLiveActivities + embed: false diff --git a/iOS_SDK/OneSignalSDK.xcworkspace/contents.xcworkspacedata b/iOS_SDK/OneSignalSDK.xcworkspace/contents.xcworkspacedata index 9979cb733..f182a1cc5 100644 --- a/iOS_SDK/OneSignalSDK.xcworkspace/contents.xcworkspacedata +++ b/iOS_SDK/OneSignalSDK.xcworkspace/contents.xcworkspacedata @@ -7,4 +7,7 @@ + + From f84be98efaecae4c0d7c0cc820ec6440e2c5d826 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Sun, 24 May 2026 14:03:57 -0700 Subject: [PATCH 07/23] docs(demo): add iOS-specific build guide --- examples/demo/build.md | 300 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 300 insertions(+) create mode 100644 examples/demo/build.md diff --git a/examples/demo/build.md b/examples/demo/build.md new file mode 100644 index 000000000..dd1963ade --- /dev/null +++ b/examples/demo/build.md @@ -0,0 +1,300 @@ +# OneSignal iOS Sample App - Build Guide + +This document extends the shared build guide with iOS-specific details. + +**Read the shared guide first:** +https://raw.githubusercontent.com/OneSignal/sdk-shared/refs/heads/main/demo/build.md + +Replace `{{PLATFORM}}` with `iOS` everywhere in that guide. Everything below either overrides or supplements sections from the shared guide. + +--- + +## Project Setup + +The demo lives at `examples/demo/` (relative to the SDK repo root) and is wired into the same Xcode workspace as the SDK source (`iOS_SDK/OneSignalSDK.xcworkspace`), so it builds against your local SDK tree directly — no tarball, CocoaPods, or SPM package reference required. + +`App.xcodeproj` is generated from `project.yml` with [XcodeGen](https://github.com/yonaskolb/XcodeGen): + +```bash +brew install xcodegen # one time +cd examples/demo +xcodegen generate # regenerates App.xcodeproj from project.yml +``` + +`project.yml` declares three targets and links them against the SDK framework targets defined in `iOS_SDK/OneSignalSDK/OneSignal.xcodeproj` via a `projectReferences` entry: + +- **App** — main app target, embeds and signs every public SDK framework (`OneSignalCore`, `OneSignalOSCore`, `OneSignalOutcomes`, `OneSignalNotifications`, `OneSignalUser`, `OneSignalExtension`, `OneSignalLocation`, `OneSignalInAppMessages`, `OneSignalLiveActivities`, `OneSignalFramework`) plus the two local extensions +- **OneSignalNotificationServiceExtension** — links (does NOT embed) `OneSignalCore`, `OneSignalOutcomes`, `OneSignalExtension` +- **OneSignalWidget** — links (does NOT embed) `OneSignalLiveActivities` + +Open `iOS_SDK/OneSignalSDK.xcworkspace`, select the **App** scheme, and run. The app and both extensions build from local SDK source, so SDK edits flow through immediately. + +### App icons + +`App/Assets.xcassets/AppIcon.appiconset/` ships pre-populated with the OneSignal logo asset. The widget extension has its own `OneSignalWidget/Assets.xcassets/AppIcon.appiconset/` plus an `AccentColor` and `WidgetBackground` color set (referenced via `ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME` / `ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME` in `project.yml`). No regeneration step is needed. + +### Build & run + +There is no `setup.sh` / `run-ios.sh` script — Xcode handles everything: + +1. `open iOS_SDK/OneSignalSDK.xcworkspace` +2. Pick the **App** scheme +3. ⌘R to build and run on the selected simulator or device + +The only manual step is running `xcodegen generate` after editing `project.yml`. + +--- + +## State Management + +Use a single `OneSignalViewModel` (`App/ViewModels/OneSignalViewModel.swift`) as the central state manager. There is no repository wrapper — the view-model calls the OneSignal SDK directly through a thin `OneSignalService` singleton (`App/Services/OneSignalService.swift`). + +- `@MainActor final class OneSignalViewModel: ObservableObject` with `@Published` properties for reactive state (app id, push subscription id, aliases, tags, emails, SMS, triggers, consent, location, IAM paused, loading, sheet visibility) +- A `requestSequence` counter discards stale REST results when a newer fetch is in flight (mirrors the `requestSequenceRef` in Capacitor) +- One `setup()` call registers SDK observers (`OSPushSubscriptionObserver`, `OSUserStateObserver`, `OSNotificationPermissionObserver`); SwiftUI keeps the view-model alive for the app lifetime via `@StateObject` in `App.swift`, so no manual teardown is needed +- `OneSignalService` (singleton, `App/Services/OneSignalService.swift`) funnels every SDK call through one entry point and mirrors any setters the SDK doesn't expose as getters (consent flags) into `UserDefaults` +- `NotificationSender` (singleton, `App/Services/NotificationSender.swift`) wraps the `/notifications` REST endpoint with `URLSession` and retries with exponential backoff when the API returns 200 with empty `id` / `recipients == 0` / a non-empty `errors` payload (transient race between subscription create and notification fan-out) +- `UserFetchService` (singleton, `App/Services/UserFetchService.swift`) hydrates aliases / tags / emails / SMS via `GET /users/by/onesignal_id/{id}` — no auth header, public endpoint +- `LiveActivityController` (`App/Services/LiveActivityController.swift`) wraps `OneSignal.LiveActivities.startDefault(...)` plus the authenticated REST update/end calls. Reads the API key from a `Secrets.plist` bundled with the app; missing/empty key disables UPDATE / END +- `TooltipService` (singleton, `App/Services/TooltipService.swift`) loads the shared tooltip JSON from `sdk-shared` on a detached task with a bundled fallback so the first render isn't blocked + +### SDK state restoration + +In `App.swift`'s `AppDelegate.application(_:didFinishLaunchingWithOptions:)`, restore SDK state from `UserDefaults` BEFORE calling `initialize`: + +```swift +OneSignal.Debug.setLogLevel(.LL_VERBOSE) +OneSignal.setConsentRequired(cachedConsentRequired) +OneSignal.setConsentGiven(cachedConsentGiven) +OneSignalService.shared.initialize(launchOptions: launchOptions) +``` + +Then AFTER initialize: + +```swift +OneSignal.LiveActivities.setupDefault() // iOS 16.1+ +OneSignal.InAppMessages.paused = cachedIamPaused +OneSignal.Location.isShared = cachedLocationShared +``` + +Read UI state directly from the SDK once it's initialized (`OneSignal.User.pushSubscription.id`, `OneSignal.User.pushSubscription.optedIn`, `OneSignal.User.externalId`, `OneSignal.Notifications.permission`) instead of from cache. + +--- + +## iOS-Specific UI Details + +### Notification Permission + +- `OneSignalViewModel` exposes `isReady` (set after the initial `refreshState()` runs) and `promptPush()` +- `PushSection` calls `viewModel.promptPush()` from a `.task` modifier gated on `isReady` +- The PROMPT PUSH button is rendered conditionally — hidden once `hasNotificationPermission == true` + +### Loading State + +- No global overlay; the four list sections that depend on the `/users` fetch (Aliases, Emails, SMS, Tags) render an inline `ProgressView` in the empty-state slot when `viewModel.isLoading` is true +- Stale-result protection via `requestSequence` in the view-model (each fetch captures the counter; results are dropped if a newer fetch has incremented it) + +### Toast + +- A lightweight `ToastView` modifier (`App/Views/Components/ToastView.swift`) attached via `.toast(message: $viewModel.toastMessage)` on the root `ContentView`. Setting `toastMessage` shows it; auto-dismisses after ~2s +- Only login / logout / outcomes / track event / location-check actions feed the toast (matches Phase 7.6 of the shared guide); everything else uses `print()` only + +### Send In-App Message Icons + +Use SF Symbols: `arrow.up.to.line`, `arrow.down.to.line`, `square`, `rectangle.expand.vertical`. + +### Sheets + +All modals live in `App/Views/Components/` and render through SwiftUI's `.sheet(isPresented:)`. Single-field prompts use `AddItemSheet` (typed via `AddItemType`); pair prompts go through the same `AddItemSheet` with a key-and-value layout selected by the type; bulk add/remove use `MultiPairInputSheet` and `RemoveMultiSheet`. Specialized sheets: `OutcomeSheet`, `CustomNotificationSheet`, `TrackEventSheet`, `TooltipSheet`. + +### Accessibility (Appium) + +Apply test ids with SwiftUI's `.accessibilityIdentifier("…")` modifier on every interactive element and value display. The ids match the `data-testid` values used by the Capacitor / React Native / Cordova demos one-for-one so the shared Appium suite under `sdk-shared/appium/tests/` runs unchanged against the iOS build. + +XCUITest does NOT inherit identifiers from `Button(role:)` automatically — set `.accessibilityIdentifier(...)` on every `Button`, `Toggle`, `TextField`, and the wrapping `VStack` of each section. + +--- + +## Xcode Project Targets + +### Notification Service Extension + +`OneSignalNotificationServiceExtension/NotificationService.swift` forwards every push to `OneSignalExtension` so rich attachments (`ios_attachments`), confidential pushes, and `mutable_content` payloads work: + +```swift +override func didReceive(_ request: UNNotificationRequest, + withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { + self.receivedRequest = request + self.contentHandler = contentHandler + self.bestAttemptContent = request.content.mutableCopy() as? UNMutableNotificationContent + + if let bestAttemptContent = bestAttemptContent { + OneSignalExtension.didReceiveNotificationExtensionRequest( + request, with: bestAttemptContent, withContentHandler: contentHandler) + } +} + +override func serviceExtensionTimeWillExpire() { + if let contentHandler, let bestAttemptContent { + OneSignalExtension.serviceExtensionTimeWillExpireRequest(receivedRequest, with: bestAttemptContent) + contentHandler(bestAttemptContent) + } +} +``` + +The NSE entitlements file (`OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements`) **must** declare the same `com.apple.security.application-groups` value as the main app — both ship with `group.com.onesignal.example.onesignal`. If you change the group to install on a real device under your own team, change it in BOTH files to the same string. + +### Widget Extension (Live Activities) + +`OneSignalWidget/OneSignalWidgetLiveActivity.swift` renders the order tracking flow using `DefaultLiveActivityAttributes` from `OneSignalLiveActivities`. Replace the file with the shared reference implementation at `https://raw.githubusercontent.com/OneSignal/sdk-shared/main/demo/LiveActivity.swift` whenever the canonical version is updated. + +The widget target's deployment target is `16.2` (project-wide is `16.0`) because Dynamic Island APIs require 16.2. `NSSupportsLiveActivities = true` is declared in `App/Info.plist`. + +--- + +## Platform Config + +### Entitlements + +`App.entitlements` (main app): + +```xml +aps-environment +development +com.apple.security.application-groups + + group.com.onesignal.example.onesignal + +``` + +`OneSignalNotificationServiceExtension.entitlements` mirrors the same app group. Both must match or rich pushes fail silently. + +### Info.plist + +`App/Info.plist` declares: + +- `NSLocationWhenInUseUsageDescription` and `NSLocationAlwaysAndWhenInUseUsageDescription` — required for the Location section's prompt +- `NSSupportsLiveActivities = true` — required for the Live Activity section +- `UIBackgroundModes` with `remote-notification` — required for silent / background pushes + +### Custom Notification Sound + +Copy `vine_boom.wav` from [sdk-shared/assets](https://github.com/OneSignal/sdk-shared/tree/main/assets) and place it in the main app bundle so the WITH SOUND payload can resolve it: + +- `examples/demo/App/vine_boom.wav` (add to the App target's "Copy Bundle Resources" build phase — XcodeGen picks it up automatically because the `sources: - path: App` block includes everything under `App/`) + +Then in `NotificationSender.swift` the WITH SOUND payload sets `ios_sound = "vine_boom.wav"` (currently the demo uses `"default"` as a placeholder; switch to `"vine_boom.wav"` once the file is bundled). + +### App ID configuration + +The iOS demo does NOT use a `.env` file. Instead `OneSignalService.shared.appId` reads from `UserDefaults` (key `OneSignalAppId`) with a fallback to the placeholder `defaultAppId` constant. Override at runtime by either: + +- Editing `defaultAppId` in `App/Services/OneSignalService.swift`, or +- Setting the value programmatically: `OneSignalService.shared.appId = "your-app-id"`, or +- Passing `-OneSignalAppId your-app-id` as a launch argument in the App scheme's Run configuration + +### Live Activities REST API key + +Live Activity **update** / **end** require a REST API key. The demo loads it from a `Secrets.plist` bundled with the app: + +```xml + + ONESIGNAL_API_KEY + YOUR_REST_API_KEY + +``` + +`Secrets.plist` is gitignored. Without it, `LiveActivityController.hasApiKey == false` and the UPDATE / END buttons disable themselves and show a hint in the Live Activity section. + +--- + +## File Structure + +``` +examples/demo/ +├── App.xcodeproj # Generated by `xcodegen generate` +├── project.yml # XcodeGen project definition +├── App.entitlements # aps-environment + app group +├── build.md # This file +├── README.md +├── App/ # Main app target source +│ ├── App.swift # @main + AppDelegate, SDK init, +│ │ # notification/IAM listeners, Live Activity setup +│ ├── Info.plist +│ ├── Assets.xcassets/ # AppIcon + AccentColor +│ ├── Models/ +│ │ └── AppModels.swift # KeyValueItem, NotificationType, +│ │ # AddItemType, MultiAddItemType, +│ │ # RemoveMultiItemType, OutcomeMode, +│ │ # TooltipData, UserData +│ ├── ViewModels/ +│ │ └── OneSignalViewModel.swift # @MainActor ObservableObject, all UI state, +│ │ # request-sequence guard, mergePairs/mergeUnique +│ ├── Services/ +│ │ ├── OneSignalService.swift # Thin wrapper over OneSignal.* APIs +│ │ ├── NotificationSender.swift # /notifications POST + transient-retry loop +│ │ ├── UserFetchService.swift # /users GET, parses identity + tags + subs +│ │ ├── TooltipService.swift # Loads sdk-shared tooltip JSON (with fallback) +│ │ └── LiveActivityController.swift # OneSignal.LiveActivities + REST update/end +│ └── Views/ +│ ├── ContentView.swift # NavigationStack + ScrollView, composes sections, +│ │ # binds every sheet to the view-model +│ ├── Theme.swift # Design tokens from sdk-shared/demo/styles.md +│ ├── Sections/ +│ │ ├── AppSection.swift +│ │ ├── UserSection.swift +│ │ ├── PushSection.swift +│ │ ├── SendPushSection.swift +│ │ ├── InAppSection.swift +│ │ ├── SendIamSection.swift +│ │ ├── AliasesSection.swift +│ │ ├── EmailsSection.swift +│ │ ├── SmsSection.swift +│ │ ├── TagsSection.swift +│ │ ├── OutcomesSection.swift +│ │ ├── TriggersSection.swift +│ │ ├── CustomEventsSection.swift +│ │ ├── LocationSection.swift +│ │ └── LiveActivitySection.swift +│ └── Components/ +│ ├── SectionCard.swift +│ ├── ActionButton.swift +│ ├── ToggleRow.swift +│ ├── ListWidgets.swift # PairItem, SingleItem, EmptyState, LoadingState, +│ │ # CollapsibleList, PairList +│ ├── KeyValueRow.swift +│ ├── AddItemSheet.swift # Single + Pair input sheets (typed) +│ ├── MultiPairInputSheet.swift # Bulk add (aliases / tags / triggers) +│ ├── RemoveMultiSheet.swift # Bulk remove (tags / triggers) +│ ├── OutcomeSheet.swift # Normal / Unique / With Value +│ ├── CustomNotificationSheet.swift +│ ├── TrackEventSheet.swift # Name + JSON properties, validates JSON +│ ├── TooltipSheet.swift +│ └── ToastView.swift +│ +├── OneSignalNotificationServiceExtension/ # NSE target — rich push +│ ├── NotificationService.swift # Forwards to OneSignalExtension +│ ├── Info.plist # NSExtension/usernotifications.service +│ └── OneSignalNotificationServiceExtension.entitlements # MUST match main app group +│ +└── OneSignalWidget/ # Widget Extension target — Live Activities + ├── OneSignalWidgetBundle.swift # @main WidgetBundle + ├── OneSignalWidgetLiveActivity.swift # Lock screen + Dynamic Island UI for + │ # DefaultLiveActivityAttributes + ├── Info.plist # NSExtension/widgetkit-extension + └── Assets.xcassets/ # WidgetBackground, AccentColor, AppIcon +``` + +--- + +## iOS Best Practices + +- Re-run `xcodegen generate` after any change to `project.yml` so `App.xcodeproj` stays in sync. Commit the regenerated project file with the YAML change. +- Always link the SDK frameworks through the workspace's `projectReferences` (not via SPM or CocoaPods inside the demo) so the demo builds against your local SDK edits without an extra publish step. +- Keep the app group string identical in `App.entitlements` AND `OneSignalNotificationServiceExtension.entitlements` — they MUST match for confidential pushes and badge sync. +- Embed and code-sign each SDK framework on the App target only; the NSE and Widget targets must link the frameworks they need without embedding (the App target owns them in `Frameworks/`). +- Restore consent flags BEFORE `OneSignal.initialize(...)`; restore IAM paused / location shared AFTER. The SDK is the source of truth for everything else (push subscription id, external id, permission, tags) — read it directly instead of caching. +- Use `OneSignal.User.pushSubscription.optIn()` / `optOut()` rather than touching `optedIn` directly; the SDK applies side effects (token registration, server sync) inside the methods. +- Drive `fetchUserDataFromApi` from the `OSUserStateObserver` only — never call it synchronously right after `OneSignal.login(...)`. The SDK assigns the new `onesignalId` asynchronously, so a synchronous fetch races the assignment and returns null. +- Set `.accessibilityIdentifier(...)` on every interactive control and value display you want to drive from Appium / XCUITest. SwiftUI does not derive identifiers from button titles, and the shared E2E suite selects by identifier. +- Bundle `Secrets.plist` with the App target for the Live Activity REST calls; without it the section disables UPDATE / END instead of failing at runtime. From 87d15d13bbce1adb11743a8747e5756182e96add Mon Sep 17 00:00:00 2001 From: Fadi George Date: Sun, 24 May 2026 14:04:19 -0700 Subject: [PATCH 08/23] refactor(demo): apply design system theme to iOS UI --- examples/demo/App.xcodeproj/project.pbxproj | 24 +- .../AppIcon.appiconset/AppIcon.png | Bin 0 -> 81225 bytes .../AppIcon.appiconset/Contents.json | 1 + .../onesignal_logo.imageset/Contents.json | 16 ++ .../onesignal_logo.pdf | Bin 0 -> 5813 bytes examples/demo/App/Info.plist | 2 +- .../App/Services/NotificationSender.swift | 2 +- .../App/Views/Components/ActionButton.swift | 30 ++- .../App/Views/Components/AddItemSheet.swift | 85 +++--- .../Components/CustomNotificationSheet.swift | 60 ++--- .../App/Views/Components/KeyValueRow.swift | 14 +- .../App/Views/Components/ListWidgets.swift | 249 ++++++++++++------ .../Components/MultiPairInputSheet.swift | 101 +++---- .../demo/App/Views/Components/OSDialog.swift | 220 ++++++++++++++++ .../App/Views/Components/OutcomeSheet.swift | 105 ++++---- .../Views/Components/RemoveMultiSheet.swift | 103 +++++--- .../App/Views/Components/SectionCard.swift | 54 ++-- .../demo/App/Views/Components/ToggleRow.swift | 18 +- .../App/Views/Components/TooltipSheet.swift | 62 +++-- .../Views/Components/TrackEventSheet.swift | 68 +++-- examples/demo/App/Views/ContentView.swift | 30 ++- .../Views/Sections/LiveActivitySection.swift | 68 +++-- examples/demo/App/Views/Theme.swift | 119 +++++++++ examples/demo/App/vine_boom.wav | Bin 0 -> 802076 bytes examples/demo/build.md | 6 +- examples/demo/project.yml | 6 +- 26 files changed, 986 insertions(+), 457 deletions(-) create mode 100644 examples/demo/App/Assets.xcassets/AppIcon.appiconset/AppIcon.png create mode 100644 examples/demo/App/Assets.xcassets/onesignal_logo.imageset/Contents.json create mode 100644 examples/demo/App/Assets.xcassets/onesignal_logo.imageset/onesignal_logo.pdf create mode 100644 examples/demo/App/Views/Components/OSDialog.swift create mode 100644 examples/demo/App/Views/Theme.swift create mode 100644 examples/demo/App/vine_boom.wav diff --git a/examples/demo/App.xcodeproj/project.pbxproj b/examples/demo/App.xcodeproj/project.pbxproj index 8fd670ac1..a37a291c0 100644 --- a/examples/demo/App.xcodeproj/project.pbxproj +++ b/examples/demo/App.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ 12597AC14E1783CC87D6E147 /* OneSignalService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E0F5CBE80CF861238E1A9AA /* OneSignalService.swift */; }; 14228D0C997F9168643F8154 /* OutcomesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4078B5F096680AFA83D1CB85 /* OutcomesSection.swift */; }; 1653658B1F4EE21203BBAA5D /* TriggersSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1155DE423DAA8B5396948C9B /* TriggersSection.swift */; }; + 16B0C854BC2498BEEDC4EEED /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3E7F504B0421F2B6247E2F5 /* Theme.swift */; }; 1FF9F70882A0CF6A73416DDF /* OneSignalWidgetLiveActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0864BD4A6F62539B2809338F /* OneSignalWidgetLiveActivity.swift */; }; 2015D767360C96D01A2FF3D9 /* OneSignalCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2C1B9BE42E81492B9DB61343 /* OneSignalCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 232A52A5D5719F863641166C /* OneSignalExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2F82BD207897EB78739182A /* OneSignalExtension.framework */; }; @@ -37,6 +38,7 @@ 5B959D44AB09CB821C00AFBF /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35F726E64F9B6817F917227C /* ContentView.swift */; }; 5F4B7EC8437D1A8D80DF7674 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = A20B46F63592FC67B655BEB8 /* NotificationService.swift */; }; 638B81D9DA5FD8636BB038B0 /* OneSignalUser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EF49509A218369322ECFA3B9 /* OneSignalUser.framework */; }; + 674995A7A55C13341317E19B /* OSDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = D261D46C404E325CBA87A9E0 /* OSDialog.swift */; }; 68BC99D15FDCB26EB35EBB07 /* OneSignalLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE9834773C437CC373607693 /* OneSignalLocation.framework */; }; 6E3E040FD8A750248E70E46F /* AppModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EA9D80191548D49F09D30B3 /* AppModels.swift */; }; 7B02F364CA25825E50B09CDB /* OneSignalOutcomes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC2530FFC78AECEAF6A7E1B7 /* OneSignalOutcomes.framework */; }; @@ -57,6 +59,7 @@ A22162D78B8C17D4958EA44B /* RemoveMultiSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB1AF59253E36FE6FCFDC874 /* RemoveMultiSheet.swift */; }; A2B1975BB925DCA45327D71E /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB04A33912347325A0155D6 /* App.swift */; }; A7A5153D68A4967A88B2B433 /* AliasesSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 225DEBDFE699D266D5BDE7ED /* AliasesSection.swift */; }; + AB963AA6733C32EFB84DCBC0 /* vine_boom.wav in Resources */ = {isa = PBXBuildFile; fileRef = 1EE449E8308FCB038408D7CF /* vine_boom.wav */; }; AD514855D19B2C249269C7D2 /* OneSignalOutcomes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EC2530FFC78AECEAF6A7E1B7 /* OneSignalOutcomes.framework */; }; AF8A33E8CFAF1A8DB1907130 /* OneSignalOSCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1636BCBAB444EAC7BB34CEDE /* OneSignalOSCore.framework */; }; B3AE701075398C6A369DBBE0 /* LocationSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C0EE23773C63B6EC3FB563A /* LocationSection.swift */; }; @@ -304,6 +307,7 @@ 1155DE423DAA8B5396948C9B /* TriggersSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TriggersSection.swift; sourceTree = ""; }; 1425623C6445676EE0F85A92 /* TooltipSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TooltipSheet.swift; sourceTree = ""; }; 1892E9B40F0E8FB23DD64206 /* EmailsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmailsSection.swift; sourceTree = ""; }; + 1EE449E8308FCB038408D7CF /* vine_boom.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = vine_boom.wav; sourceTree = ""; }; 225DEBDFE699D266D5BDE7ED /* AliasesSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AliasesSection.swift; sourceTree = ""; }; 27856D76807C31B23CD10CFD /* LiveActivitySection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveActivitySection.swift; sourceTree = ""; }; 280B23B41935EAB89C8C6FCB /* ListWidgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListWidgets.swift; sourceTree = ""; }; @@ -332,10 +336,12 @@ A42B5EDA3264E3D00A5CB265 /* PushSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushSection.swift; sourceTree = ""; }; AB92C9C455B15E0B571A1C66 /* OneSignalWidget.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = OneSignalWidget.appex; sourceTree = BUILT_PRODUCTS_DIR; }; B24E059F4DF6ABED55BA3183 /* OneSignalNotificationServiceExtension.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = OneSignalNotificationServiceExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + B3E7F504B0421F2B6247E2F5 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; B76FFAF18177241F4A47FE23 /* InAppSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InAppSection.swift; sourceTree = ""; }; BDB04A33912347325A0155D6 /* App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = ""; }; C360043C7B20683C2E3FA3B6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; C60D09DC8C809877FB4BF465 /* SendIamSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendIamSection.swift; sourceTree = ""; }; + D261D46C404E325CBA87A9E0 /* OSDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSDialog.swift; sourceTree = ""; }; D6094499773760C3190F62C9 /* ActionButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionButton.swift; sourceTree = ""; }; E194A3F19072CB17A8F1A12E /* SmsSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmsSection.swift; sourceTree = ""; }; E336B9D7158768462C81494C /* TrackEventSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackEventSheet.swift; sourceTree = ""; }; @@ -413,6 +419,7 @@ F0D08B397106EA8498C4A8F4 /* Views */, BDB04A33912347325A0155D6 /* App.swift */, 76989E05CECAD7B8B3C424A7 /* Assets.xcassets */, + 1EE449E8308FCB038408D7CF /* vine_boom.wav */, ); path = App; sourceTree = ""; @@ -485,6 +492,7 @@ 5984B93007C6B85AFE09045A /* KeyValueRow.swift */, 280B23B41935EAB89C8C6FCB /* ListWidgets.swift */, 5FB43BE0E085909B109C661F /* MultiPairInputSheet.swift */, + D261D46C404E325CBA87A9E0 /* OSDialog.swift */, FF74D1CE043AD45649BF9D2B /* OutcomeSheet.swift */, EB1AF59253E36FE6FCFDC874 /* RemoveMultiSheet.swift */, 497484E7C094D645338BD404 /* SectionCard.swift */, @@ -538,6 +546,7 @@ B9C3E998662065E7D921A5CA /* Components */, 53EC9A9E14C3568A020C0977 /* Sections */, 35F726E64F9B6817F917227C /* ContentView.swift */, + B3E7F504B0421F2B6247E2F5 /* Theme.swift */, ); path = Views; sourceTree = ""; @@ -748,6 +757,7 @@ buildActionMask = 2147483647; files = ( 3FB3C8C0634A765EE81D042E /* Assets.xcassets in Resources */, + AB963AA6733C32EFB84DCBC0 /* vine_boom.wav in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -792,6 +802,7 @@ B3AE701075398C6A369DBBE0 /* LocationSection.swift in Sources */, D4CEA45BD0A4D71AF43524E2 /* MultiPairInputSheet.swift in Sources */, 4C18E3D284BB28BD846162F3 /* NotificationSender.swift in Sources */, + 674995A7A55C13341317E19B /* OSDialog.swift in Sources */, 12597AC14E1783CC87D6E147 /* OneSignalService.swift in Sources */, 5737CABFA55E019B2732B90D /* OneSignalViewModel.swift in Sources */, 0FE5C360856660ACD893CCEA /* OutcomeSheet.swift in Sources */, @@ -803,6 +814,7 @@ 0BC1978B56970258E20C24C4 /* SendPushSection.swift in Sources */, 2FCC417641D480849E99588B /* SmsSection.swift in Sources */, 3927A4BF207695E98A57E445 /* TagsSection.swift in Sources */, + 16B0C854BC2498BEEDC4EEED /* Theme.swift in Sources */, 7C904CE2F4C2A2083324BBEB /* ToastView.swift in Sources */, 902A116B26B8ECAD8EE29C95 /* ToggleRow.swift in Sources */, 25C963476DF0B01BAABE24D9 /* TooltipService.swift in Sources */, @@ -917,7 +929,7 @@ INFOPLIST_FILE = OneSignalWidget/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 16.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App.OneSignalWidget; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.OneSignalWidget; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -935,7 +947,7 @@ INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1010,7 +1022,7 @@ INFOPLIST_FILE = OneSignalNotificationServiceExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App.OneSignalNotificationServiceExtension; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.OneSignalNotificationServiceExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -1028,7 +1040,7 @@ INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1043,7 +1055,7 @@ INFOPLIST_FILE = OneSignalWidget/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 16.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App.OneSignalWidget; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.OneSignalWidget; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -1058,7 +1070,7 @@ INFOPLIST_FILE = OneSignalNotificationServiceExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.App.OneSignalNotificationServiceExtension; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example.OneSignalNotificationServiceExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; diff --git a/examples/demo/App/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/examples/demo/App/Assets.xcassets/AppIcon.appiconset/AppIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff809f42fb7874d4ee50b85b273e7225090ac74 GIT binary patch literal 81225 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

)I9g&-?>(d~(pLN9#|4ZbLG5{IPKROx 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 literal 0 HcmV?d00001 diff --git a/examples/demo/App/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/demo/App/Assets.xcassets/AppIcon.appiconset/Contents.json index 13613e3ee..cefcc878e 100644 --- a/examples/demo/App/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/examples/demo/App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,6 +1,7 @@ { "images" : [ { + "filename" : "AppIcon.png", "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" diff --git a/examples/demo/App/Assets.xcassets/onesignal_logo.imageset/Contents.json b/examples/demo/App/Assets.xcassets/onesignal_logo.imageset/Contents.json new file mode 100644 index 000000000..43a089b72 --- /dev/null +++ b/examples/demo/App/Assets.xcassets/onesignal_logo.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "onesignal_logo.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "original" + } +} diff --git a/examples/demo/App/Assets.xcassets/onesignal_logo.imageset/onesignal_logo.pdf b/examples/demo/App/Assets.xcassets/onesignal_logo.imageset/onesignal_logo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..30d78ec1b506265b685f32fcaf50d3e6e742d863 GIT binary patch literal 5813 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 $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - OneSignal SwiftUI + OneSignal Demo CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier diff --git a/examples/demo/App/Services/NotificationSender.swift b/examples/demo/App/Services/NotificationSender.swift index 6705d36d1..f95b25739 100644 --- a/examples/demo/App/Services/NotificationSender.swift +++ b/examples/demo/App/Services/NotificationSender.swift @@ -71,7 +71,7 @@ final class NotificationSender { case .withSound: headings = "Sound Notification" contents = "This notification plays a custom sound" - extra["ios_sound"] = "default" + extra["ios_sound"] = "vine_boom.wav" } post( diff --git a/examples/demo/App/Views/Components/ActionButton.swift b/examples/demo/App/Views/Components/ActionButton.swift index b54132aac..a5a301642 100644 --- a/examples/demo/App/Views/Components/ActionButton.swift +++ b/examples/demo/App/Views/Components/ActionButton.swift @@ -27,13 +27,17 @@ import SwiftUI -/// Visual treatment of an action button +/// Visual treatment of an action button. The spec defines exactly two variants: +/// the filled primary, and the outlined ("destructive" / secondary) button. enum ActionButtonStyle { case filled case outline } -/// Standard wide button used by sections (mirrors the Capacitor demo's ActionButton) +/// Standard wide button used by sections. +/// +/// Matches the spec: full width, 48 tall, 8 corner radius, semibold label, +/// optional 18pt leading icon with 8pt gap before the label. struct ActionButton: View { let title: String let style: ActionButtonStyle @@ -63,44 +67,44 @@ struct ActionButton: View { HStack(spacing: 8) { if let icon = icon { icon + .font(.system(size: OS.Layout.infoIconSize, weight: .semibold)) } Text(title) - .fontWeight(.semibold) + .font(OS.Font.bodyMedium.weight(.semibold)) .lineLimit(1) } .frame(maxWidth: .infinity) - .padding(.vertical, 12) - .background(backgroundColor) + .frame(height: OS.Layout.buttonHeight) .foregroundColor(foregroundColor) + .background(backgroundColor) + .clipShape(RoundedRectangle(cornerRadius: OS.Radius.button)) .overlay(border) - .cornerRadius(10) } .buttonStyle(.plain) .disabled(isDisabled) .opacity(isDisabled ? 0.5 : 1) - .padding(.top, 4) .accessibilityIdentifier(accessibilityID) } private var backgroundColor: Color { switch style { - case .filled: return Color.accentColor - case .outline: return Color.clear + case .filled: return OS.Color.primary + case .outline: return .clear } } private var foregroundColor: Color { switch style { - case .filled: return .white - case .outline: return Color.accentColor + case .filled: return .white + case .outline: return OS.Color.primary } } @ViewBuilder private var border: some View { if case .outline = style { - RoundedRectangle(cornerRadius: 10) - .strokeBorder(Color.accentColor, lineWidth: 1) + RoundedRectangle(cornerRadius: OS.Radius.button) + .strokeBorder(OS.Color.primary, lineWidth: 1) } } } diff --git a/examples/demo/App/Views/Components/AddItemSheet.swift b/examples/demo/App/Views/Components/AddItemSheet.swift index e569dc254..56359b0fb 100644 --- a/examples/demo/App/Views/Components/AddItemSheet.swift +++ b/examples/demo/App/Views/Components/AddItemSheet.swift @@ -27,7 +27,7 @@ import SwiftUI -/// Reusable sheet for adding items with one or two text fields +/// Reusable dialog for adding items with one or two text fields. struct AddItemSheet: View { let itemType: AddItemType let onAdd: (String, String) -> Void @@ -35,63 +35,46 @@ struct AddItemSheet: View { @State private var keyText: String = "" @State private var valueText: String = "" - @FocusState private var focusedField: Field? - - private enum Field { case key, value } var body: some View { - NavigationStack { - Form { + OSDialog( + title: itemType.title, + confirmLabel: itemType.confirmLabel, + isConfirmEnabled: isValid, + confirmAccessibilityID: "singleinput_confirm_button", + cancelAccessibilityID: "singleinput_cancel_button", + onConfirm: { + onAdd( + keyText.trimmingCharacters(in: .whitespaces), + valueText.trimmingCharacters(in: .whitespaces) + ) + }, + onCancel: onCancel + ) { + VStack(spacing: 12) { if itemType.requiresKeyValue { - Section { - TextField(itemType.keyPlaceholder, text: $keyText) - .focused($focusedField, equals: .key) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .accessibilityIdentifier("\(itemType.accessibilityKey)_key_input") - - TextField(itemType.valuePlaceholder, text: $valueText) - .focused($focusedField, equals: .value) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .keyboardType(itemType.keyboardType) - .accessibilityIdentifier("\(itemType.accessibilityKey)_value_input") - } + OSTextField( + placeholder: itemType.keyPlaceholder, + text: $keyText, + accessibilityID: "\(itemType.accessibilityKey)_key_input" + ) + OSTextField( + placeholder: itemType.valuePlaceholder, + text: $valueText, + keyboardType: itemType.keyboardType, + accessibilityID: "\(itemType.accessibilityKey)_value_input" + ) } else { - Section { - TextField(itemType.valuePlaceholder, text: $valueText) - .focused($focusedField, equals: .value) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .keyboardType(itemType.keyboardType) - .accessibilityIdentifier("\(itemType.accessibilityKey)_input") - } - } - } - .navigationTitle(itemType.title) - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .cancellationAction) { - Button("Cancel", action: onCancel) - .accessibilityIdentifier("singleinput_cancel_button") - } - ToolbarItem(placement: .confirmationAction) { - Button(itemType.confirmLabel) { - onAdd( - keyText.trimmingCharacters(in: .whitespaces), - valueText.trimmingCharacters(in: .whitespaces) - ) - } - .disabled(!isValid) - .accessibilityIdentifier("singleinput_confirm_button") + OSTextField( + placeholder: itemType.valuePlaceholder, + text: $valueText, + keyboardType: itemType.keyboardType, + accessibilityID: "\(itemType.accessibilityKey)_input" + ) } } - .onAppear { - focusedField = itemType.requiresKeyValue ? .key : .value - } } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) + .osDialogPresentation() } private var isValid: Bool { diff --git a/examples/demo/App/Views/Components/CustomNotificationSheet.swift b/examples/demo/App/Views/Components/CustomNotificationSheet.swift index 34ee16c42..eee900739 100644 --- a/examples/demo/App/Views/Components/CustomNotificationSheet.swift +++ b/examples/demo/App/Views/Components/CustomNotificationSheet.swift @@ -27,7 +27,7 @@ import SwiftUI -/// Sheet for composing a custom push notification (title + body) +/// Sheet for composing a custom push notification (title + body). struct CustomNotificationSheet: View { let onSend: (String, String) -> Void let onCancel: () -> Void @@ -36,40 +36,34 @@ struct CustomNotificationSheet: View { @State private var bodyText: String = "" var body: some View { - NavigationStack { - Form { - Section { - TextField("Title", text: $titleText) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .accessibilityIdentifier("custom_notification_title_input") - TextField("Body", text: $bodyText) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .accessibilityIdentifier("custom_notification_body_input") - } - } - .navigationTitle("Custom Notification") - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .cancellationAction) { - Button("Cancel", action: onCancel) - .accessibilityIdentifier("custom_notification_cancel_button") - } - ToolbarItem(placement: .confirmationAction) { - Button("Send") { - onSend( - titleText.trimmingCharacters(in: .whitespaces), - bodyText.trimmingCharacters(in: .whitespaces) - ) - } - .disabled(!isValid) - .accessibilityIdentifier("custom_notification_send_button") - } + OSDialog( + title: "Custom Notification", + confirmLabel: "Send", + isConfirmEnabled: isValid, + confirmAccessibilityID: "custom_notification_send_button", + cancelAccessibilityID: "custom_notification_cancel_button", + onConfirm: { + onSend( + titleText.trimmingCharacters(in: .whitespaces), + bodyText.trimmingCharacters(in: .whitespaces) + ) + }, + onCancel: onCancel + ) { + VStack(spacing: 12) { + OSTextField( + placeholder: "Title", + text: $titleText, + accessibilityID: "custom_notification_title_input" + ) + OSTextEditor( + placeholder: "Body", + text: $bodyText, + accessibilityID: "custom_notification_body_input" + ) } } - .presentationDetents([.medium]) - .presentationDragIndicator(.visible) + .osDialogPresentation() } private var isValid: Bool { diff --git a/examples/demo/App/Views/Components/KeyValueRow.swift b/examples/demo/App/Views/Components/KeyValueRow.swift index 6238b805e..dd4c23a16 100644 --- a/examples/demo/App/Views/Components/KeyValueRow.swift +++ b/examples/demo/App/Views/Components/KeyValueRow.swift @@ -27,7 +27,8 @@ import SwiftUI -/// Single label/value horizontal row used inside the App / User / Push info cards +/// Single label/value horizontal row used inside the App / User / Push info cards. +/// Label is 14pt, value is 12pt (monospaced when a value is an ID). struct InfoRow: View { let label: String let value: String @@ -42,13 +43,14 @@ struct InfoRow: View { } var body: some View { - HStack { + HStack(alignment: .center, spacing: 12) { Text(label) - .foregroundColor(.secondary) - Spacer() + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.bodyText) + Spacer(minLength: 0) Text(value) - .font(isMonospaced ? .system(.body, design: .monospaced) : .body) - .foregroundColor(.primary) + .font(isMonospaced ? OS.Font.mono12 : OS.Font.bodySmall) + .foregroundColor(OS.Color.bodyText) .lineLimit(1) .truncationMode(.middle) .accessibilityIdentifier(valueAccessibilityID ?? "") diff --git a/examples/demo/App/Views/Components/ListWidgets.swift b/examples/demo/App/Views/Components/ListWidgets.swift index ce9c1cc54..eeb907f10 100644 --- a/examples/demo/App/Views/Components/ListWidgets.swift +++ b/examples/demo/App/Views/Components/ListWidgets.swift @@ -27,122 +27,215 @@ import SwiftUI -/// List of pair items (key + value with optional remove button) +// MARK: - Shared list-card chrome + +private struct ListCardEmpty: View { + let text: String + let accessibilityID: String + + var body: some View { + Text(text) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.grey600) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.vertical, OS.Spacing.cardPadding) + .accessibilityIdentifier(accessibilityID) + .osCard() + } +} + +private struct ItemDivider: View { + var body: some View { + Rectangle() + .fill(OS.Color.divider) + .frame(height: OS.Layout.dividerHeight) + } +} + +private struct DeleteButton: View { + let accessibilityID: String + let action: () -> Void + + var body: some View { + Button(action: action) { + Image(systemName: "xmark") + .font(.system(size: OS.Layout.infoIconSize, weight: .semibold)) + .foregroundColor(OS.Color.primary) + .frame(width: 28, height: 28) + } + .buttonStyle(.plain) + .accessibilityIdentifier(accessibilityID) + } +} + +private struct MoreLink: View { + let hidden: Int + let onExpand: () -> Void + let accessibilityID: String + + var body: some View { + Button(action: onExpand) { + Text("\(hidden) more") + .font(OS.Font.bodyMedium.weight(.medium)) + .foregroundColor(OS.Color.primary) + .frame(maxWidth: .infinity) + .padding(.vertical, 4) + } + .buttonStyle(.plain) + .accessibilityIdentifier(accessibilityID) + } +} + +// MARK: - Stacked (key-value) list + +/// List of paired items. Each row shows a 14pt key on top and a 12pt grey value below, +/// with an optional close button to remove. Lists longer than `maxVisible` collapse +/// into a "N more" link. struct PairList: View { let items: [KeyValueItem] let emptyText: String let sectionKey: String let onRemove: ((String) -> Void)? + let maxVisible: Int + + @State private var expanded = false init( items: [KeyValueItem], emptyText: String, sectionKey: String, - onRemove: ((String) -> Void)? = nil + onRemove: ((String) -> Void)? = nil, + maxVisible: Int = OS.Layout.listMaxVisible ) { self.items = items self.emptyText = emptyText self.sectionKey = sectionKey self.onRemove = onRemove + self.maxVisible = maxVisible } + private var visibleItems: [KeyValueItem] { + expanded ? items : Array(items.prefix(maxVisible)) + } + + private var hiddenCount: Int { max(0, items.count - maxVisible) } + var body: some View { - Group { - if items.isEmpty { - Text(emptyText) - .foregroundColor(.secondary) - .font(.subheadline) - .frame(maxWidth: .infinity, alignment: .center) - .padding(.vertical, 12) - .background(Color(.systemBackground)) - .cornerRadius(8) - .accessibilityIdentifier("\(sectionKey)_empty") - } else { - VStack(spacing: 0) { - ForEach(items.indices, id: \.self) { index in - let item = items[index] - HStack(alignment: .center) { - VStack(alignment: .leading, spacing: 2) { - Text(item.key) - .font(.caption) - .foregroundColor(.secondary) - .accessibilityIdentifier("\(sectionKey)_pair_key_\(item.key)") - Text(item.value) - .font(.body) - .accessibilityIdentifier("\(sectionKey)_pair_value_\(item.key)") - } - Spacer() - if let onRemove = onRemove { - Button { - onRemove(item.key) - } label: { - Image(systemName: "xmark.circle.fill") - .foregroundColor(.secondary) - } - .buttonStyle(.plain) - .accessibilityIdentifier("\(sectionKey)_remove_\(item.key)") - } + if items.isEmpty { + ListCardEmpty(text: emptyText, accessibilityID: "\(sectionKey)_empty") + } else { + VStack(spacing: 0) { + ForEach(visibleItems.indices, id: \.self) { index in + let item = visibleItems[index] + HStack(alignment: .center, spacing: 8) { + VStack(alignment: .leading, spacing: 2) { + Text(item.key) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.bodyText) + .accessibilityIdentifier("\(sectionKey)_pair_key_\(item.key)") + Text(item.value) + .font(OS.Font.bodySmall) + .foregroundColor(OS.Color.grey600) + .accessibilityIdentifier("\(sectionKey)_pair_value_\(item.key)") } - .padding(12) - if index < items.count - 1 { - Divider().padding(.leading, 12) + Spacer(minLength: 0) + if let onRemove = onRemove { + DeleteButton( + accessibilityID: "\(sectionKey)_remove_\(item.key)", + action: { onRemove(item.key) } + ) } } + .padding(.vertical, 4) + .padding(.horizontal, 4) + + if index < visibleItems.count - 1 { + ItemDivider() + } + } + if !expanded && hiddenCount > 0 { + ItemDivider() + MoreLink( + hidden: hiddenCount, + onExpand: { expanded = true }, + accessibilityID: "\(sectionKey)_more" + ) } - .background(Color(.systemBackground)) - .cornerRadius(8) } + .osCard() } } } -/// List of single-string items with optional remove button (emails, sms numbers) +// MARK: - Unstacked (single-string) list + +/// List of plain string items (emails, sms numbers). Single 14pt line per row. struct SingleList: View { let items: [String] let emptyText: String let sectionKey: String let onRemove: ((String) -> Void)? + let maxVisible: Int + + @State private var expanded = false + + init( + items: [String], + emptyText: String, + sectionKey: String, + onRemove: ((String) -> Void)? = nil, + maxVisible: Int = OS.Layout.listMaxVisible + ) { + self.items = items + self.emptyText = emptyText + self.sectionKey = sectionKey + self.onRemove = onRemove + self.maxVisible = maxVisible + } + + private var visibleItems: [String] { + expanded ? items : Array(items.prefix(maxVisible)) + } + + private var hiddenCount: Int { max(0, items.count - maxVisible) } var body: some View { - Group { - if items.isEmpty { - Text(emptyText) - .foregroundColor(.secondary) - .font(.subheadline) - .frame(maxWidth: .infinity, alignment: .center) - .padding(.vertical, 12) - .background(Color(.systemBackground)) - .cornerRadius(8) - .accessibilityIdentifier("\(sectionKey)_empty") - } else { - VStack(spacing: 0) { - ForEach(items.indices, id: \.self) { index in - let item = items[index] - HStack { - Text(item) - .font(.body) - .accessibilityIdentifier("\(sectionKey)_value_\(item)") - Spacer() - if let onRemove = onRemove { - Button { - onRemove(item) - } label: { - Image(systemName: "xmark.circle.fill") - .foregroundColor(.secondary) - } - .buttonStyle(.plain) - .accessibilityIdentifier("\(sectionKey)_remove_\(item)") - } - } - .padding(12) - if index < items.count - 1 { - Divider().padding(.leading, 12) + if items.isEmpty { + ListCardEmpty(text: emptyText, accessibilityID: "\(sectionKey)_empty") + } else { + VStack(spacing: 0) { + ForEach(visibleItems.indices, id: \.self) { index in + let item = visibleItems[index] + HStack(alignment: .center, spacing: 8) { + Text(item) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.bodyText) + .accessibilityIdentifier("\(sectionKey)_value_\(item)") + Spacer(minLength: 0) + if let onRemove = onRemove { + DeleteButton( + accessibilityID: "\(sectionKey)_remove_\(item)", + action: { onRemove(item) } + ) } } + .padding(.vertical, 4) + .padding(.horizontal, 4) + + if index < visibleItems.count - 1 { + ItemDivider() + } + } + if !expanded && hiddenCount > 0 { + ItemDivider() + MoreLink( + hidden: hiddenCount, + onExpand: { expanded = true }, + accessibilityID: "\(sectionKey)_more" + ) } - .background(Color(.systemBackground)) - .cornerRadius(8) } + .osCard() } } } diff --git a/examples/demo/App/Views/Components/MultiPairInputSheet.swift b/examples/demo/App/Views/Components/MultiPairInputSheet.swift index 94fe426ff..f689fc6bf 100644 --- a/examples/demo/App/Views/Components/MultiPairInputSheet.swift +++ b/examples/demo/App/Views/Components/MultiPairInputSheet.swift @@ -42,62 +42,75 @@ struct MultiPairInputSheet: View { } var body: some View { - NavigationStack { - Form { - ForEach(rows.indices, id: \.self) { index in - Section { - TextField(type.keyPlaceholder, text: $rows[index].key) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .accessibilityIdentifier("multipair_key_\(index)") - TextField(type.valuePlaceholder, text: $rows[index].value) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .accessibilityIdentifier("multipair_value_\(index)") - if rows.count > 1 { - Button(role: .destructive) { - rows.remove(at: index) - } label: { - Label("Remove Row", systemImage: "minus.circle") + OSDialog( + title: type.rawValue, + confirmLabel: "Add All", + isConfirmEnabled: isValid, + confirmAccessibilityID: "multipair_confirm_button", + cancelAccessibilityID: "multipair_cancel_button", + onConfirm: { + let pairs = rows.compactMap { row -> (String, String)? in + let key = row.key.trimmingCharacters(in: .whitespaces) + let value = row.value.trimmingCharacters(in: .whitespaces) + guard !key.isEmpty, !value.isEmpty else { return nil } + return (key, value) + } + onAdd(pairs) + }, + onCancel: onCancel + ) { + ScrollView { + VStack(spacing: 12) { + ForEach(rows.indices, id: \.self) { index in + VStack(spacing: 8) { + HStack(spacing: 8) { + OSTextField( + placeholder: type.keyPlaceholder, + text: $rows[index].key, + accessibilityID: "multipair_key_\(index)" + ) + OSTextField( + placeholder: type.valuePlaceholder, + text: $rows[index].value, + accessibilityID: "multipair_value_\(index)" + ) + if rows.count > 1 { + Button { + rows.remove(at: index) + } label: { + Image(systemName: "xmark") + .font(.system(size: OS.Layout.infoIconSize, weight: .semibold)) + .foregroundColor(OS.Color.primary) + .frame(width: 28, height: 28) + } + .buttonStyle(.plain) + .accessibilityIdentifier("multipair_remove_row_\(index)") + } + } + if index < rows.count - 1 { + Rectangle() + .fill(OS.Color.divider) + .frame(height: OS.Layout.dividerHeight) } - .accessibilityIdentifier("multipair_remove_row_\(index)") } } - } - Section { Button { rows.append(Row()) } label: { - Label("Add Row", systemImage: "plus.circle") + Text("+ Add another") + .font(OS.Font.bodyMedium.weight(.bold)) + .foregroundColor(OS.Color.primary) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.vertical, 4) } + .buttonStyle(.plain) .accessibilityIdentifier("multipair_add_row_button") } } - .navigationTitle(type.rawValue) - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .cancellationAction) { - Button("Cancel", action: onCancel) - .accessibilityIdentifier("multipair_cancel_button") - } - ToolbarItem(placement: .confirmationAction) { - Button("Add All") { - let pairs = rows.compactMap { row -> (String, String)? in - let key = row.key.trimmingCharacters(in: .whitespaces) - let value = row.value.trimmingCharacters(in: .whitespaces) - guard !key.isEmpty, !value.isEmpty else { return nil } - return (key, value) - } - onAdd(pairs) - } - .disabled(!isValid) - .accessibilityIdentifier("multipair_confirm_button") - } - } + .frame(maxHeight: 320) } - .presentationDetents([.large]) - .presentationDragIndicator(.visible) + .osDialogPresentation() } private var isValid: Bool { diff --git a/examples/demo/App/Views/Components/OSDialog.swift b/examples/demo/App/Views/Components/OSDialog.swift new file mode 100644 index 000000000..7797c15af --- /dev/null +++ b/examples/demo/App/Views/Components/OSDialog.swift @@ -0,0 +1,220 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +// MARK: - Dialog container + +/// Standard dialog body. Wraps the supplied content in a vertical stack with +/// 24pt outer padding, places a 24pt-weight-regular title above it, and pins +/// an action row (Cancel / confirm) to the bottom. +struct OSDialog: View { + let title: String + let confirmLabel: String + let isConfirmEnabled: Bool + let confirmAccessibilityID: String + let cancelAccessibilityID: String + let onConfirm: () -> Void + let onCancel: () -> Void + @ViewBuilder let content: () -> Content + + init( + title: String, + confirmLabel: String = "Save", + isConfirmEnabled: Bool = true, + confirmAccessibilityID: String = "dialog_confirm_button", + cancelAccessibilityID: String = "dialog_cancel_button", + onConfirm: @escaping () -> Void, + onCancel: @escaping () -> Void, + @ViewBuilder content: @escaping () -> Content + ) { + self.title = title + self.confirmLabel = confirmLabel + self.isConfirmEnabled = isConfirmEnabled + self.confirmAccessibilityID = confirmAccessibilityID + self.cancelAccessibilityID = cancelAccessibilityID + self.onConfirm = onConfirm + self.onCancel = onCancel + self.content = content + } + + var body: some View { + VStack(alignment: .leading, spacing: 16) { + Text(title) + .font(.system(size: 24, weight: .regular)) + .foregroundColor(OS.Color.bodyText) + + content() + + HStack(spacing: 8) { + Spacer(minLength: 0) + OSDialogActionButton( + title: "Cancel", + accessibilityID: cancelAccessibilityID, + isEnabled: true, + action: onCancel + ) + OSDialogActionButton( + title: confirmLabel, + accessibilityID: confirmAccessibilityID, + isEnabled: isConfirmEnabled, + action: onConfirm + ) + } + .padding(.top, 8) + } + .padding(24) + .frame(maxWidth: .infinity, alignment: .leading) + .background(OS.Color.cardBackground) + } +} + +// MARK: - Dialog action button + +/// Text-style action button for dialog footers. +/// Spec: 14pt, weight medium/500, color osPrimary, 12 horizontal / 8 vertical padding. +struct OSDialogActionButton: View { + let title: String + let accessibilityID: String + let isEnabled: Bool + let action: () -> Void + + var body: some View { + Button(action: action) { + Text(title) + .font(OS.Font.bodyMedium.weight(.medium)) + .foregroundColor(isEnabled ? OS.Color.primary : OS.Color.grey500) + .padding(.horizontal, 12) + .padding(.vertical, 8) + } + .buttonStyle(.plain) + .disabled(!isEnabled) + .accessibilityIdentifier(accessibilityID) + } +} + +// MARK: - Dialog text inputs + +/// Bordered text field used inside dialogs. Spec: 8 corner radius, +/// 12 horizontal / 14 vertical content padding, 1px solid grey700 border, +/// 2px solid osPrimary on focus. +struct OSTextField: View { + let placeholder: String + @Binding var text: String + var keyboardType: UIKeyboardType = .default + var autocorrect: Bool = false + var capitalization: TextInputAutocapitalization = .never + var accessibilityID: String + + @FocusState private var focused: Bool + + var body: some View { + TextField(placeholder, text: $text) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.bodyText) + .keyboardType(keyboardType) + .textInputAutocapitalization(capitalization) + .autocorrectionDisabled(!autocorrect) + .padding(.horizontal, 12) + .padding(.vertical, 14) + .focused($focused) + .background( + RoundedRectangle(cornerRadius: OS.Radius.input) + .strokeBorder( + focused ? OS.Color.primary : OS.Color.grey700, + lineWidth: focused ? 2 : 1 + ) + ) + .accessibilityIdentifier(accessibilityID) + } +} + +/// Bordered multi-line text editor mirroring `OSTextField`'s visual. +struct OSTextEditor: View { + let placeholder: String + @Binding var text: String + var minHeight: CGFloat = 90 + var accessibilityID: String + + @FocusState private var focused: Bool + + var body: some View { + ZStack(alignment: .topLeading) { + if text.isEmpty { + Text(placeholder) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.grey600) + .padding(.horizontal, 16) + .padding(.vertical, 18) + .allowsHitTesting(false) + } + + TextEditor(text: $text) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.bodyText) + .scrollContentBackground(.hidden) + .padding(.horizontal, 8) + .padding(.vertical, 8) + .focused($focused) + .frame(minHeight: minHeight) + .accessibilityIdentifier(accessibilityID) + } + .background( + RoundedRectangle(cornerRadius: OS.Radius.input) + .strokeBorder( + focused ? OS.Color.primary : OS.Color.grey700, + lineWidth: focused ? 2 : 1 + ) + ) + } +} + +// MARK: - Sheet presentation helper + +extension View { + /// Standard sheet treatment shared by every dialog: medium detent, 28-corner + /// pull tab on iOS 16.4+, transparent backdrop tinted with `OS.Color.backdrop`. + func osDialogPresentation() -> some View { + modifier(OSDialogPresentation()) + } +} + +private struct OSDialogPresentation: ViewModifier { + func body(content: Content) -> some View { + if #available(iOS 16.4, *) { + content + .presentationDetents([.medium, .large]) + .presentationDragIndicator(.visible) + .presentationCornerRadius(OS.Radius.modal) + .presentationBackground(OS.Color.cardBackground) + } else { + content + .presentationDetents([.medium, .large]) + .presentationDragIndicator(.visible) + } + } +} diff --git a/examples/demo/App/Views/Components/OutcomeSheet.swift b/examples/demo/App/Views/Components/OutcomeSheet.swift index 9cee736da..93c09c086 100644 --- a/examples/demo/App/Views/Components/OutcomeSheet.swift +++ b/examples/demo/App/Views/Components/OutcomeSheet.swift @@ -27,7 +27,7 @@ import SwiftUI -/// Sheet for sending an outcome (normal, unique, or with value) +/// Sheet for sending an outcome (normal, unique, or with value). struct OutcomeSheet: View { let onSend: (String, OutcomeMode, Double?) -> Void let onCancel: () -> Void @@ -37,60 +37,46 @@ struct OutcomeSheet: View { @State private var valueText: String = "" var body: some View { - NavigationStack { - Form { - Section("Type") { - ForEach(OutcomeMode.allCases) { option in - Button { - mode = option - } label: { - HStack { - Image(systemName: mode == option ? "largecircle.fill.circle" : "circle") - .foregroundColor(.accentColor) - Text(option.rawValue) - .foregroundColor(.primary) - Spacer() - } - } - .accessibilityIdentifier("outcome_type_\(option.accessibilityKey)_radio") - } + OSDialog( + title: "Send Outcome", + confirmLabel: "Send", + isConfirmEnabled: isValid, + confirmAccessibilityID: "outcome_send_button", + cancelAccessibilityID: "outcome_cancel_button", + onConfirm: { + let trimmed = name.trimmingCharacters(in: .whitespaces) + let value: Double? = mode == .value ? Double(valueText) : nil + onSend(trimmed, mode, value) + }, + onCancel: onCancel + ) { + VStack(spacing: 14) { + ForEach(OutcomeMode.allCases) { option in + OutcomeRadioRow( + title: option.rawValue, + isSelected: mode == option, + accessibilityID: "outcome_type_\(option.accessibilityKey)_radio", + onTap: { mode = option } + ) } - Section { - TextField("Outcome Name", text: $name) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .accessibilityIdentifier("outcome_name_input") - } + OSTextField( + placeholder: "Outcome Name", + text: $name, + accessibilityID: "outcome_name_input" + ) if mode == .value { - Section { - TextField("Outcome Value", text: $valueText) - .keyboardType(.decimalPad) - .accessibilityIdentifier("outcome_value_input") - } - } - } - .navigationTitle("Send Outcome") - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .cancellationAction) { - Button("Cancel", action: onCancel) - .accessibilityIdentifier("outcome_cancel_button") - } - ToolbarItem(placement: .confirmationAction) { - Button("Send") { - let trimmed = name.trimmingCharacters(in: .whitespaces) - let value: Double? = mode == .value ? Double(valueText) : nil - onSend(trimmed, mode, value) - } - .disabled(!isValid) - .accessibilityIdentifier("outcome_send_button") + OSTextField( + placeholder: "Outcome Value", + text: $valueText, + keyboardType: .decimalPad, + accessibilityID: "outcome_value_input" + ) } } } - .presentationDetents([.medium, .large]) - .presentationDragIndicator(.visible) + .osDialogPresentation() } private var isValid: Bool { @@ -102,3 +88,26 @@ struct OutcomeSheet: View { return true } } + +private struct OutcomeRadioRow: View { + let title: String + let isSelected: Bool + let accessibilityID: String + let onTap: () -> Void + + var body: some View { + Button(action: onTap) { + HStack(alignment: .center, spacing: 12) { + Image(systemName: isSelected ? "largecircle.fill.circle" : "circle") + .font(.system(size: 24)) + .foregroundColor(isSelected ? OS.Color.primary : OS.Color.grey700) + Text(title) + .font(OS.Font.bodyLarge) + .foregroundColor(OS.Color.bodyText) + Spacer(minLength: 0) + } + } + .buttonStyle(.plain) + .accessibilityIdentifier(accessibilityID) + } +} diff --git a/examples/demo/App/Views/Components/RemoveMultiSheet.swift b/examples/demo/App/Views/Components/RemoveMultiSheet.swift index 47babe200..39c6e074d 100644 --- a/examples/demo/App/Views/Components/RemoveMultiSheet.swift +++ b/examples/demo/App/Views/Components/RemoveMultiSheet.swift @@ -27,7 +27,7 @@ import SwiftUI -/// Sheet that lets the user pick multiple keys to remove (Remove Tags / Remove Triggers) +/// Sheet that lets the user pick multiple keys to remove (Remove Tags / Remove Triggers). struct RemoveMultiSheet: View { let type: RemoveMultiItemType let items: [KeyValueItem] @@ -37,60 +37,79 @@ struct RemoveMultiSheet: View { @State private var selected: Set = [] var body: some View { - NavigationStack { - Group { - if items.isEmpty { - VStack(spacing: 12) { - Image(systemName: "tray") - .font(.largeTitle) - .foregroundColor(.secondary) - Text("Nothing to remove") - .foregroundColor(.secondary) - } - .frame(maxWidth: .infinity, maxHeight: .infinity) + OSDialog( + title: type.rawValue, + confirmLabel: selected.isEmpty ? "Remove" : "Remove (\(selected.count))", + isConfirmEnabled: !selected.isEmpty, + confirmAccessibilityID: "multiselect_confirm_button", + cancelAccessibilityID: "multiselect_cancel_button", + onConfirm: { onRemove(Array(selected)) }, + onCancel: onCancel + ) { + if items.isEmpty { + Text("Nothing to remove") + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.grey600) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.vertical, OS.Spacing.cardPadding) .accessibilityIdentifier("remove_multi_empty") - } else { - Form { - ForEach(items) { item in - Toggle(isOn: Binding( - get: { selected.contains(item.key) }, - set: { isOn in - if isOn { + } else { + ScrollView { + VStack(spacing: 0) { + ForEach(items.indices, id: \.self) { index in + let item = items[index] + CheckboxRow( + item: item, + isChecked: selected.contains(item.key), + onToggle: { isChecked in + if isChecked { selected.insert(item.key) } else { selected.remove(item.key) } } - )) { - VStack(alignment: .leading) { - Text(item.key) - Text(item.value) - .font(.caption) - .foregroundColor(.secondary) - } + ) + if index < items.count - 1 { + Rectangle() + .fill(OS.Color.divider) + .frame(height: OS.Layout.dividerHeight) } - .accessibilityIdentifier("remove_checkbox_\(item.key)") } } } + .frame(maxHeight: 320) } - .navigationTitle(type.rawValue) - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .cancellationAction) { - Button("Cancel", action: onCancel) - .accessibilityIdentifier("multiselect_cancel_button") - } - ToolbarItem(placement: .confirmationAction) { - Button("Remove (\(selected.count))") { - onRemove(Array(selected)) - } - .disabled(selected.isEmpty) - .accessibilityIdentifier("multiselect_confirm_button") + } + .osDialogPresentation() + } +} + +private struct CheckboxRow: View { + let item: KeyValueItem + let isChecked: Bool + let onToggle: (Bool) -> Void + + var body: some View { + Button { + onToggle(!isChecked) + } label: { + HStack(alignment: .center, spacing: 14) { + Image(systemName: isChecked ? "checkmark.square.fill" : "square") + .font(.system(size: 24)) + .foregroundColor(isChecked ? OS.Color.primary : OS.Color.grey700) + VStack(alignment: .leading, spacing: 2) { + Text(item.key) + .font(OS.Font.bodyLarge) + .foregroundColor(OS.Color.bodyText) + Text(item.value) + .font(OS.Font.bodySmall) + .foregroundColor(OS.Color.grey600) } + Spacer(minLength: 0) } + .padding(.vertical, 10) } - .presentationDetents([.medium, .large]) - .presentationDragIndicator(.visible) + .buttonStyle(.plain) + .accessibilityIdentifier("remove_checkbox_\(item.key)") } } diff --git a/examples/demo/App/Views/Components/SectionCard.swift b/examples/demo/App/Views/Components/SectionCard.swift index 28ce109c8..30a7fe987 100644 --- a/examples/demo/App/Views/Components/SectionCard.swift +++ b/examples/demo/App/Views/Components/SectionCard.swift @@ -27,7 +27,9 @@ import SwiftUI -/// Card with a section title (ALL CAPS) and optional info icon. Mirrors the Capacitor SectionCard. +/// Section container. Renders a section header (12pt bold uppercase, osGrey700, +/// letter spacing 0.5) above a vertical stack of children. Per the design spec +/// children supply their own card chrome — this view only owns the header. struct SectionCard: View { let title: String let sectionKey: String @@ -47,35 +49,35 @@ struct SectionCard: View { } var body: some View { - VStack(alignment: .leading, spacing: 10) { - HStack { + VStack(alignment: .leading, spacing: OS.Spacing.cardGap) { + HStack(alignment: .center, spacing: 0) { Text(title.uppercased()) - .font(.subheadline.weight(.bold)) - .kerning(0.5) - .foregroundColor(.secondary) - Spacer() + .font(OS.Font.bodySmall.weight(.bold)) + .tracking(0.5) + .foregroundColor(OS.Color.grey700) + Spacer(minLength: 0) if let onInfoTap = onInfoTap { Button(action: onInfoTap) { Image(systemName: "info.circle") - .imageScale(.medium) - .foregroundColor(.accentColor) + .font(.system(size: OS.Layout.infoIconSize)) + .foregroundColor(OS.Color.grey500) + .frame(width: 32, height: 32) } .buttonStyle(.plain) .accessibilityIdentifier("\(sectionKey)_info_icon") } } - content() + VStack(alignment: .leading, spacing: OS.Spacing.cardGap) { + content() + } } - .padding(16) - .background(Color(.secondarySystemGroupedBackground)) - .cornerRadius(12) - .padding(.vertical, 6) .accessibilityIdentifier("\(sectionKey)_section") } } -/// Generic value card used at the top of sections (App ID, Push ID, Status, etc.) +/// Generic value card used at the top of sections (App ID, Push ID, Status, etc.). +/// Renders rows with a 14pt label and a 12pt value (monospace by default for IDs). struct ValueCard: View { struct Row { let label: String @@ -97,26 +99,28 @@ struct ValueCard: View { VStack(spacing: 0) { ForEach(rows.indices, id: \.self) { index in let row = rows[index] - HStack { + HStack(alignment: .center, spacing: 12) { Text(row.label) - .foregroundColor(.secondary) - Spacer() + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.bodyText) + Spacer(minLength: 0) Text(row.value) - .font(row.monospaced ? .system(.footnote, design: .monospaced) : .body) - .foregroundColor(.primary) + .font(row.monospaced ? OS.Font.mono12 : OS.Font.bodySmall) + .foregroundColor(OS.Color.bodyText) .lineLimit(1) .truncationMode(.middle) .accessibilityIdentifier(row.valueAccessibilityID ?? "") } - .padding(.vertical, 12) - .padding(.horizontal, 12) + .padding(.vertical, 4) if index < rows.count - 1 { - Divider().padding(.leading, 12) + Rectangle() + .fill(OS.Color.divider) + .frame(height: OS.Layout.dividerHeight) + .padding(.vertical, 4) } } } - .background(Color(.systemBackground)) - .cornerRadius(8) + .osCard() } } diff --git a/examples/demo/App/Views/Components/ToggleRow.swift b/examples/demo/App/Views/Components/ToggleRow.swift index a03665fba..59d1ceeba 100644 --- a/examples/demo/App/Views/Components/ToggleRow.swift +++ b/examples/demo/App/Views/Components/ToggleRow.swift @@ -27,7 +27,8 @@ import SwiftUI -/// Bordered toggle row with label + supporting subtitle (matches the Capacitor ToggleRow) +/// Toggle row inside a card. Label (14) + optional supporting subtitle (12 osGrey600) +/// on the left, native switch on the right. struct ToggleRow: View { let label: String let description: String? @@ -50,23 +51,24 @@ struct ToggleRow: View { } var body: some View { - HStack(alignment: .center) { + HStack(alignment: .center, spacing: 12) { VStack(alignment: .leading, spacing: 2) { Text(label) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.bodyText) if let description = description { Text(description) - .font(.caption) - .foregroundColor(.secondary) + .font(OS.Font.bodySmall) + .foregroundColor(OS.Color.grey600) } } - Spacer() + Spacer(minLength: 0) Toggle("", isOn: isOn) .labelsHidden() + .tint(OS.Color.primary) .disabled(isDisabled) .accessibilityIdentifier(accessibilityID) } - .padding(12) - .background(Color(.systemBackground)) - .cornerRadius(8) + .osCard() } } diff --git a/examples/demo/App/Views/Components/TooltipSheet.swift b/examples/demo/App/Views/Components/TooltipSheet.swift index c4c6b0d1a..773631b8e 100644 --- a/examples/demo/App/Views/Components/TooltipSheet.swift +++ b/examples/demo/App/Views/Components/TooltipSheet.swift @@ -27,45 +27,63 @@ import SwiftUI -/// Simple info sheet shown when the user taps a section's info icon +/// Simple info sheet shown when the user taps a section's info icon. +/// Single OK action — no Cancel. struct TooltipSheet: View { let tooltip: TooltipData let onClose: () -> Void var body: some View { - NavigationStack { + VStack(alignment: .leading, spacing: 16) { + Text(tooltip.title) + .font(.system(size: 24, weight: .regular)) + .foregroundColor(OS.Color.bodyText) + ScrollView { - VStack(alignment: .leading, spacing: 16) { + VStack(alignment: .leading, spacing: 12) { Text(tooltip.description) - .font(.body) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.bodyText) .accessibilityIdentifier("tooltip_description") if let options = tooltip.options, !options.isEmpty { - Divider() - ForEach(options, id: \.name) { option in - VStack(alignment: .leading, spacing: 4) { - Text(option.name) - .font(.subheadline.weight(.semibold)) - Text(option.description) - .font(.body) - .foregroundColor(.secondary) + Rectangle() + .fill(OS.Color.divider) + .frame(height: OS.Layout.dividerHeight) + .padding(.vertical, 4) + + VStack(alignment: .leading, spacing: 12) { + ForEach(options, id: \.name) { option in + VStack(alignment: .leading, spacing: 4) { + Text(option.name) + .font(OS.Font.bodyMedium.weight(.semibold)) + .foregroundColor(OS.Color.bodyText) + Text(option.description) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.grey600) + } } } } } - .padding() } - .navigationTitle(tooltip.title) - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .confirmationAction) { - Button("OK", action: onClose) - .accessibilityIdentifier("tooltip_ok_button") - } + .frame(maxHeight: 360) + + HStack { + Spacer() + OSDialogActionButton( + title: "OK", + accessibilityID: "tooltip_ok_button", + isEnabled: true, + action: onClose + ) } + .padding(.top, 8) } - .presentationDetents([.medium, .large]) - .presentationDragIndicator(.visible) + .padding(24) + .frame(maxWidth: .infinity, alignment: .leading) + .background(OS.Color.cardBackground) .accessibilityIdentifier("tooltip_sheet") + .osDialogPresentation() } } diff --git a/examples/demo/App/Views/Components/TrackEventSheet.swift b/examples/demo/App/Views/Components/TrackEventSheet.swift index e5fa0a5af..7a5bb0f4a 100644 --- a/examples/demo/App/Views/Components/TrackEventSheet.swift +++ b/examples/demo/App/Views/Components/TrackEventSheet.swift @@ -27,7 +27,7 @@ import SwiftUI -/// Sheet that captures an event name plus an optional JSON properties payload +/// Sheet that captures an event name plus an optional JSON properties payload. struct TrackEventSheet: View { let onTrack: (String, [String: Any]?) -> Void let onCancel: () -> Void @@ -37,46 +37,42 @@ struct TrackEventSheet: View { @State private var error: String? var body: some View { - NavigationStack { - Form { - Section { - TextField("Event Name", text: $name) - .textInputAutocapitalization(.never) - .autocorrectionDisabled() - .accessibilityIdentifier("event_name_input") - } + OSDialog( + title: "Track Event", + confirmLabel: "Track", + isConfirmEnabled: isValid, + confirmAccessibilityID: "event_track_button", + cancelAccessibilityID: "event_cancel_button", + onConfirm: submit, + onCancel: onCancel + ) { + VStack(alignment: .leading, spacing: 12) { + OSTextField( + placeholder: "Event Name", + text: $name, + accessibilityID: "event_name_input" + ) - Section("Properties (JSON, optional)") { - TextEditor(text: $propertiesText) - .frame(minHeight: 120) - .font(.system(.body, design: .monospaced)) - .autocorrectionDisabled() - .accessibilityIdentifier("event_properties_input") + Text("Properties (JSON, optional)") + .font(OS.Font.bodySmall) + .foregroundColor(OS.Color.grey600) - if let error = error { - Text(error) - .font(.caption) - .foregroundColor(.red) - .accessibilityIdentifier("event_properties_error") - } - } - } - .navigationTitle("Track Event") - .navigationBarTitleDisplayMode(.inline) - .toolbar { - ToolbarItem(placement: .cancellationAction) { - Button("Cancel", action: onCancel) - .accessibilityIdentifier("event_cancel_button") - } - ToolbarItem(placement: .confirmationAction) { - Button("Track") { submit() } - .disabled(!isValid) - .accessibilityIdentifier("event_track_button") + OSTextEditor( + placeholder: "{ \"key\": \"value\" }", + text: $propertiesText, + minHeight: 120, + accessibilityID: "event_properties_input" + ) + + if let error = error { + Text(error) + .font(OS.Font.bodySmall) + .foregroundColor(OS.Color.primary) + .accessibilityIdentifier("event_properties_error") } } } - .presentationDetents([.medium, .large]) - .presentationDragIndicator(.visible) + .osDialogPresentation() } private var isValid: Bool { diff --git a/examples/demo/App/Views/ContentView.swift b/examples/demo/App/Views/ContentView.swift index 284ec57c8..c88f589d1 100644 --- a/examples/demo/App/Views/ContentView.swift +++ b/examples/demo/App/Views/ContentView.swift @@ -35,7 +35,7 @@ struct ContentView: View { var body: some View { NavigationStack { ScrollView { - VStack(spacing: 4) { + VStack(alignment: .leading, spacing: OS.Spacing.sectionGap) { AppSection() UserSection() PushSection() @@ -52,13 +52,16 @@ struct ContentView: View { LocationSection() LiveActivitySection() } - .padding(.horizontal, 12) - .padding(.vertical, 8) + .padding(.horizontal, OS.Spacing.pagePadding) + .padding(.top, OS.Spacing.pagePadding) + .padding(.bottom, OS.Spacing.sectionGap) .accessibilityIdentifier("main_scroll_view") } - .background(Color(.systemGroupedBackground).ignoresSafeArea()) - .navigationTitle("OneSignal") + .background(OS.Color.lightBackground.ignoresSafeArea()) .navigationBarTitleDisplayMode(.inline) + .toolbarBackground(OS.Color.primary, for: .navigationBar) + .toolbarBackground(.visible, for: .navigationBar) + .toolbarColorScheme(.dark, for: .navigationBar) .toolbar { toolbarContent } } .sheet(isPresented: $viewModel.showingAddSheet) { @@ -134,6 +137,20 @@ struct ContentView: View { @ToolbarContentBuilder private var toolbarContent: some ToolbarContent { + ToolbarItem(placement: .principal) { + HStack(spacing: 6) { + Image("onesignal_logo") + .renderingMode(.template) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(height: 22) + .foregroundColor(.white) + Text("iOS") + .font(OS.Font.bodyMedium) + .foregroundColor(.white) + } + .accessibilityIdentifier("brand_title") + } ToolbarItem(placement: .navigationBarTrailing) { Button { Task { @@ -142,9 +159,10 @@ struct ContentView: View { } } label: { if viewModel.isLoading { - ProgressView() + ProgressView().tint(.white) } else { Image(systemName: "arrow.clockwise") + .foregroundColor(.white) } } .accessibilityIdentifier("refresh_button") diff --git a/examples/demo/App/Views/Sections/LiveActivitySection.swift b/examples/demo/App/Views/Sections/LiveActivitySection.swift index 558f2b270..095e11c54 100644 --- a/examples/demo/App/Views/Sections/LiveActivitySection.swift +++ b/examples/demo/App/Views/Sections/LiveActivitySection.swift @@ -32,8 +32,8 @@ import SwiftUI struct LiveActivitySection: View { @EnvironmentObject var viewModel: OneSignalViewModel - @State private var activityId: String = "order-1" - @State private var orderNumber: String = "ORD-1234" + @State private var activityId: String = "" + @State private var orderNumber: String = "" @State private var statusIndex: Int = 0 private let statuses: [LiveActivityStatus] = [.preparing, .onTheWay, .delivered] @@ -83,8 +83,9 @@ struct LiveActivitySection: View { if !LiveActivityController.hasApiKey { Text("Set ONESIGNAL_API_KEY in Secrets.plist to enable update & end") - .font(.caption) - .foregroundColor(.secondary) + .font(OS.Font.bodySmall) + .foregroundColor(OS.Color.grey600) + .frame(maxWidth: .infinity, alignment: .center) .accessibilityIdentifier("live_activities_hint") } } @@ -103,32 +104,41 @@ struct LiveActivitySection: View { } private var inputCard: some View { - VStack(spacing: 0) { - HStack { - Text("Activity ID").foregroundColor(.secondary) - Spacer() - TextField("Activity ID", text: $activityId) - .multilineTextAlignment(.trailing) - .autocorrectionDisabled() - .textInputAutocapitalization(.never) - .accessibilityIdentifier("live_activity_id_input") - } - .padding(12) - - Divider().padding(.leading, 12) + VStack(spacing: 4) { + inlineRow( + label: "Activity ID", + placeholder: "Activity ID", + text: $activityId, + accessibilityID: "live_activity_id_input" + ) + inlineRow( + label: "Order #", + placeholder: "Order #", + text: $orderNumber, + accessibilityID: "live_activity_order_number" + ) + } + .osCard() + } - HStack { - Text("Order #").foregroundColor(.secondary) - Spacer() - TextField("Order #", text: $orderNumber) - .multilineTextAlignment(.trailing) - .autocorrectionDisabled() - .textInputAutocapitalization(.never) - .accessibilityIdentifier("live_activity_order_number") - } - .padding(12) + private func inlineRow( + label: String, + placeholder: String, + text: Binding, + accessibilityID: String + ) -> some View { + HStack(alignment: .center, spacing: 8) { + Text(label) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.grey600) + .frame(minWidth: OS.Layout.inlineLabelMinWidth, alignment: .leading) + TextField(placeholder, text: text) + .font(OS.Font.bodyMedium) + .foregroundColor(OS.Color.bodyText) + .multilineTextAlignment(.trailing) + .autocorrectionDisabled() + .textInputAutocapitalization(.never) + .accessibilityIdentifier(accessibilityID) } - .background(Color(.systemBackground)) - .cornerRadius(8) } } diff --git a/examples/demo/App/Views/Theme.swift b/examples/demo/App/Views/Theme.swift new file mode 100644 index 000000000..645f5bf0b --- /dev/null +++ b/examples/demo/App/Views/Theme.swift @@ -0,0 +1,119 @@ +/** + * Modified MIT License + * + * Copyright 2024 OneSignal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * 1. The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * 2. All copies of substantial portions of the Software may only be used in connection + * with services provided by OneSignal. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +import SwiftUI + +/// Design tokens shared across the demo. Mirrors the CSS variables and tables in +/// `sdk-shared/demo/styles.md`. +enum OS { + + // MARK: Colors + + enum Color { + static let primary = SwiftUI.Color(red: 0xE5/255, green: 0x4B/255, blue: 0x4D/255) + static let primaryPressed = SwiftUI.Color(red: 0xC3/255, green: 0x3F/255, blue: 0x41/255) + static let success = SwiftUI.Color(red: 0x34/255, green: 0xA8/255, blue: 0x53/255) + static let grey700 = SwiftUI.Color(red: 0x61/255, green: 0x61/255, blue: 0x61/255) + static let grey600 = SwiftUI.Color(red: 0x75/255, green: 0x75/255, blue: 0x75/255) + static let grey500 = SwiftUI.Color(red: 0x9E/255, green: 0x9E/255, blue: 0x9E/255) + static let lightBackground = SwiftUI.Color(red: 0xF8/255, green: 0xF9/255, blue: 0xFA/255) + static let cardBackground = SwiftUI.Color.white + static let cardBorder = SwiftUI.Color.black.opacity(0.1) + static let divider = SwiftUI.Color(red: 0xE8/255, green: 0xEA/255, blue: 0xED/255) + static let warningBackground = SwiftUI.Color(red: 0xFF/255, green: 0xF8/255, blue: 0xE1/255) + static let backdrop = SwiftUI.Color.black.opacity(0.54) + static let bodyText = SwiftUI.Color(red: 0x21/255, green: 0x21/255, blue: 0x21/255) + } + + // MARK: Spacing + + enum Spacing { + static let cardGap: CGFloat = 8 + static let sectionGap: CGFloat = 24 + static let pagePadding: CGFloat = 16 + static let cardPadding: CGFloat = 12 + } + + // MARK: Radii + + enum Radius { + static let card: CGFloat = 12 + static let button: CGFloat = 8 + static let input: CGFloat = 8 + static let modal: CGFloat = 28 + } + + // MARK: Typography + + enum Font { + static let bodyLarge = SwiftUI.Font.system(size: 16, weight: .regular) + static let bodyMedium = SwiftUI.Font.system(size: 14, weight: .regular) + static let bodySmall = SwiftUI.Font.system(size: 12, weight: .regular) + static let mono12 = SwiftUI.Font.system(size: 12, weight: .regular, design: .monospaced) + static let mono14 = SwiftUI.Font.system(size: 14, weight: .regular, design: .monospaced) + } + + // MARK: Layout constants + + enum Layout { + static let buttonHeight: CGFloat = 48 + static let cardBorderWidth: CGFloat = 2 + static let inputBorderWidth: CGFloat = 1 + static let dividerHeight: CGFloat = 1 + static let infoIconSize: CGFloat = 18 + static let inlineLabelMinWidth: CGFloat = 80 + static let listMaxVisible: Int = 5 + } +} + +// MARK: - Card chrome modifier + +/// Applies the standard demo card visual: white background, 12 corner radius, +/// 2px border, no shadow, 12 px inner padding. +struct CardChrome: ViewModifier { + var padding: CGFloat = OS.Spacing.cardPadding + var background: Color = OS.Color.cardBackground + + func body(content: Content) -> some View { + content + .padding(padding) + .frame(maxWidth: .infinity, alignment: .leading) + .background(background) + .clipShape(RoundedRectangle(cornerRadius: OS.Radius.card)) + .overlay( + RoundedRectangle(cornerRadius: OS.Radius.card) + .strokeBorder(OS.Color.cardBorder, lineWidth: OS.Layout.cardBorderWidth) + ) + } +} + +extension View { + /// Wraps the receiver in the demo's standard card chrome. + func osCard(padding: CGFloat = OS.Spacing.cardPadding, background: Color = OS.Color.cardBackground) -> some View { + modifier(CardChrome(padding: padding, background: background)) + } +} diff --git a/examples/demo/App/vine_boom.wav b/examples/demo/App/vine_boom.wav new file mode 100644 index 0000000000000000000000000000000000000000..626bd5cc56158d73a0e2c652cd1fd3b780c75590 GIT binary patch literal 802076 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

0`rJ1`~l;%;E&gN;B(dIdpS>}b7 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�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 z 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 I{~dw<27U>q9{>OV literal 0 HcmV?d00001 diff --git a/examples/demo/build.md b/examples/demo/build.md index dd1963ade..ba0ce4ad5 100644 --- a/examples/demo/build.md +++ b/examples/demo/build.md @@ -179,11 +179,7 @@ The widget target's deployment target is `16.2` (project-wide is `16.0`) because ### Custom Notification Sound -Copy `vine_boom.wav` from [sdk-shared/assets](https://github.com/OneSignal/sdk-shared/tree/main/assets) and place it in the main app bundle so the WITH SOUND payload can resolve it: - -- `examples/demo/App/vine_boom.wav` (add to the App target's "Copy Bundle Resources" build phase — XcodeGen picks it up automatically because the `sources: - path: App` block includes everything under `App/`) - -Then in `NotificationSender.swift` the WITH SOUND payload sets `ios_sound = "vine_boom.wav"` (currently the demo uses `"default"` as a placeholder; switch to `"vine_boom.wav"` once the file is bundled). +The demo bundles `examples/demo/App/vine_boom.wav` (sourced from [sdk-shared/assets](https://github.com/OneSignal/sdk-shared/tree/main/assets)). XcodeGen picks it up automatically via the `sources: - path: App` block, and `NotificationSender.swift`'s WITH SOUND payload sets `ios_sound = "vine_boom.wav"` to play it. ### App ID configuration diff --git a/examples/demo/project.yml b/examples/demo/project.yml index 6afb6685a..5d3714bdd 100644 --- a/examples/demo/project.yml +++ b/examples/demo/project.yml @@ -37,7 +37,7 @@ targets: settings: base: PRODUCT_NAME: "$(TARGET_NAME)" - PRODUCT_BUNDLE_IDENTIFIER: com.onesignal.example.App + PRODUCT_BUNDLE_IDENTIFIER: com.onesignal.example INFOPLIST_FILE: App/Info.plist CODE_SIGN_ENTITLEMENTS: App.entitlements TARGETED_DEVICE_FAMILY: "1,2" @@ -98,7 +98,7 @@ targets: settings: base: PRODUCT_NAME: "$(TARGET_NAME)" - PRODUCT_BUNDLE_IDENTIFIER: com.onesignal.example.App.OneSignalNotificationServiceExtension + PRODUCT_BUNDLE_IDENTIFIER: com.onesignal.example.OneSignalNotificationServiceExtension INFOPLIST_FILE: OneSignalNotificationServiceExtension/Info.plist CODE_SIGN_ENTITLEMENTS: OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements TARGETED_DEVICE_FAMILY: "1,2" @@ -127,7 +127,7 @@ targets: settings: base: PRODUCT_NAME: "$(TARGET_NAME)" - PRODUCT_BUNDLE_IDENTIFIER: com.onesignal.example.App.OneSignalWidget + PRODUCT_BUNDLE_IDENTIFIER: com.onesignal.example.OneSignalWidget INFOPLIST_FILE: OneSignalWidget/Info.plist TARGETED_DEVICE_FAMILY: "1,2" LD_RUNPATH_SEARCH_PATHS: "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks" From 6e00a4b89c1f4d6ea06379bfd5808cd7b9522b21 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Sun, 24 May 2026 14:11:57 -0700 Subject: [PATCH 09/23] feat(demo): configure iOS launch screen assets --- .../AppIcon.appiconset/AppIcon.png | Bin 81225 -> 194959 bytes .../LaunchBackground.colorset/Contents.json | 20 +++++++++++++++ .../Contents.json | 23 ++++++++++++++++++ .../onesignal_launch_icon@1x.png | Bin 0 -> 9932 bytes .../onesignal_launch_icon@2x.png | Bin 0 -> 25362 bytes .../onesignal_launch_icon@3x.png | Bin 0 -> 47044 bytes examples/demo/App/Info.plist | 11 +++++++-- 7 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 examples/demo/App/Assets.xcassets/LaunchBackground.colorset/Contents.json create mode 100644 examples/demo/App/Assets.xcassets/onesignal_launch_icon.imageset/Contents.json create mode 100644 examples/demo/App/Assets.xcassets/onesignal_launch_icon.imageset/onesignal_launch_icon@1x.png create mode 100644 examples/demo/App/Assets.xcassets/onesignal_launch_icon.imageset/onesignal_launch_icon@2x.png create mode 100644 examples/demo/App/Assets.xcassets/onesignal_launch_icon.imageset/onesignal_launch_icon@3x.png diff --git a/examples/demo/App/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/examples/demo/App/Assets.xcassets/AppIcon.appiconset/AppIcon.png index 4ff809f42fb7874d4ee50b85b273e7225090ac74..a4d02a3bcfc69462f34f764282d05f695379544b 100644 GIT binary patch literal 194959 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%0DMS$<0BOY;L8tN|I7C@6Y)aB3F;-Mb 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

0k>KsDp1x$VOFr*Sx~yyjKj`gC>>o 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%0Ax>rJ0{$EOna2W|% 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%0Du=`I*@nWIV{|q`fkoo>j(Mf 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 YMKt<8 literal 81225 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

)I9g&-?>(d~(pLN9#|4ZbLG5{IPKROx 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 diff --git a/examples/demo/App/Assets.xcassets/LaunchBackground.colorset/Contents.json b/examples/demo/App/Assets.xcassets/LaunchBackground.colorset/Contents.json new file mode 100644 index 000000000..97650a1a6 --- /dev/null +++ b/examples/demo/App/Assets.xcassets/LaunchBackground.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/demo/App/Assets.xcassets/onesignal_launch_icon.imageset/Contents.json b/examples/demo/App/Assets.xcassets/onesignal_launch_icon.imageset/Contents.json new file mode 100644 index 000000000..f6b59d0ab --- /dev/null +++ b/examples/demo/App/Assets.xcassets/onesignal_launch_icon.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "onesignal_launch_icon@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "onesignal_launch_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "onesignal_launch_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/examples/demo/App/Assets.xcassets/onesignal_launch_icon.imageset/onesignal_launch_icon@1x.png b/examples/demo/App/Assets.xcassets/onesignal_launch_icon.imageset/onesignal_launch_icon@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..5898d09a692e10292a3265907261f0c9f96c64e2 GIT binary patch literal 9932 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