From a342b0f98f4bc78dc9793e07d7c5d4e1faa25109 Mon Sep 17 00:00:00 2001 From: Rory Hinnen Date: Sat, 25 Jul 2026 20:09:20 -0500 Subject: [PATCH] update to function --- .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + .../Assets.xcassets/Contents.json | 6 + .../ContentView.swift | 26 ++ .../Interject__WatchApp.swift | 25 + .../Interject__Watch_Watch_AppTests.swift | 19 + .../Interject__Watch_Watch_AppUITests.swift | 43 ++ ...t__Watch_Watch_AppUITestsLaunchTests.swift | 35 ++ .../MainInterface.storyboard | 44 +- .../MessagesViewController.swift | 11 +- .../Interject!.xcodeproj/project.pbxproj | 435 +++++++++++++++++- .../UserInterfaceState.xcuserstate | Bin 45102 -> 91450 bytes .../xcschemes/Interject!.xcscheme | 2 +- .../xcschemes/xcschememanagement.plist | 5 + interject/Interject!/Intents.swift | 22 +- interject/Interject!/View/Interject_App.swift | 5 + interject/Interject!/words.json | 2 +- 17 files changed, 664 insertions(+), 40 deletions(-) create mode 100644 interject/Interject! Watch Watch App/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 interject/Interject! Watch Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 interject/Interject! Watch Watch App/Assets.xcassets/Contents.json create mode 100644 interject/Interject! Watch Watch App/ContentView.swift create mode 100644 interject/Interject! Watch Watch App/Interject__WatchApp.swift create mode 100644 interject/Interject! Watch Watch AppTests/Interject__Watch_Watch_AppTests.swift create mode 100644 interject/Interject! Watch Watch AppUITests/Interject__Watch_Watch_AppUITests.swift create mode 100644 interject/Interject! Watch Watch AppUITests/Interject__Watch_Watch_AppUITestsLaunchTests.swift diff --git a/interject/Interject! Watch Watch App/Assets.xcassets/AccentColor.colorset/Contents.json b/interject/Interject! Watch Watch App/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/interject/Interject! Watch Watch App/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/interject/Interject! Watch Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json b/interject/Interject! Watch Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..49c81cd --- /dev/null +++ b/interject/Interject! Watch Watch App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "watchos", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/interject/Interject! Watch Watch App/Assets.xcassets/Contents.json b/interject/Interject! Watch Watch App/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/interject/Interject! Watch Watch App/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/interject/Interject! Watch Watch App/ContentView.swift b/interject/Interject! Watch Watch App/ContentView.swift new file mode 100644 index 0000000..31e0b29 --- /dev/null +++ b/interject/Interject! Watch Watch App/ContentView.swift @@ -0,0 +1,26 @@ +// +// ContentView.swift +// Interject! Watch Watch App +// +// Created by Rory on 7/12/26. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + Spacer() + VStack { + Text(Sentence().word(.first, safe: true)) + Text(Sentence().word(.second, safe: true)) + Text(Sentence().word(.noun, safe: true)) + } + Spacer() + Text("SFW") + .padding() + } +} + +#Preview { + ContentView() +} diff --git a/interject/Interject! Watch Watch App/Interject__WatchApp.swift b/interject/Interject! Watch Watch App/Interject__WatchApp.swift new file mode 100644 index 0000000..01ecfc2 --- /dev/null +++ b/interject/Interject! Watch Watch App/Interject__WatchApp.swift @@ -0,0 +1,25 @@ +// +// Interject__WatchApp.swift +// Interject! Watch Watch App +// +// Created by Rory on 7/12/26. +// + +import SwiftUI + +extension String { + var uppercaseFirst: String { + return prefix(1).uppercased() + dropFirst() + } +} + +@main +struct Interject__Watch_Watch_AppApp: App { + var safeForWork = true; + var phrase = Sentence() + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/interject/Interject! Watch Watch AppTests/Interject__Watch_Watch_AppTests.swift b/interject/Interject! Watch Watch AppTests/Interject__Watch_Watch_AppTests.swift new file mode 100644 index 0000000..92a289b --- /dev/null +++ b/interject/Interject! Watch Watch AppTests/Interject__Watch_Watch_AppTests.swift @@ -0,0 +1,19 @@ +// +// Interject__Watch_Watch_AppTests.swift +// Interject! Watch Watch AppTests +// +// Created by Rory on 7/12/26. +// + +import Testing +@testable import Interject__Watch_Watch_App + +struct Interject__Watch_Watch_AppTests { + + @Test func example() async throws { + // Write your test here and use APIs like `#expect(...)` to check expected conditions. + // Swift Testing Documentation + // https://developer.apple.com/documentation/testing + } + +} diff --git a/interject/Interject! Watch Watch AppUITests/Interject__Watch_Watch_AppUITests.swift b/interject/Interject! Watch Watch AppUITests/Interject__Watch_Watch_AppUITests.swift new file mode 100644 index 0000000..96ba33b --- /dev/null +++ b/interject/Interject! Watch Watch AppUITests/Interject__Watch_Watch_AppUITests.swift @@ -0,0 +1,43 @@ +// +// Interject__Watch_Watch_AppUITests.swift +// Interject! Watch Watch AppUITests +// +// Created by Rory on 7/12/26. +// + +import XCTest + +final class Interject__Watch_Watch_AppUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + @MainActor + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + // XCUIAutomation Documentation + // https://developer.apple.com/documentation/xcuiautomation + } + + @MainActor + func testLaunchPerformance() throws { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } +} diff --git a/interject/Interject! Watch Watch AppUITests/Interject__Watch_Watch_AppUITestsLaunchTests.swift b/interject/Interject! Watch Watch AppUITests/Interject__Watch_Watch_AppUITestsLaunchTests.swift new file mode 100644 index 0000000..84c6584 --- /dev/null +++ b/interject/Interject! Watch Watch AppUITests/Interject__Watch_Watch_AppUITestsLaunchTests.swift @@ -0,0 +1,35 @@ +// +// Interject__Watch_Watch_AppUITestsLaunchTests.swift +// Interject! Watch Watch AppUITests +// +// Created by Rory on 7/12/26. +// + +import XCTest + +final class Interject__Watch_Watch_AppUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + @MainActor + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + // XCUIAutomation Documentation + // https://developer.apple.com/documentation/xcuiautomation + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} diff --git a/interject/Interject! iMessage/MainInterface.storyboard b/interject/Interject! iMessage/MainInterface.storyboard index 326d211..c96a5c3 100644 --- a/interject/Interject! iMessage/MainInterface.storyboard +++ b/interject/Interject! iMessage/MainInterface.storyboard @@ -1,8 +1,8 @@ - + - + @@ -28,8 +28,19 @@ - + + + + @@ -38,6 +49,17 @@ + + + @@ -55,10 +77,6 @@ - - - - @@ -68,16 +86,8 @@ - - - - - - - - - - + + diff --git a/interject/Interject! iMessage/MessagesViewController.swift b/interject/Interject! iMessage/MessagesViewController.swift index f01f800..d9f88ae 100644 --- a/interject/Interject! iMessage/MessagesViewController.swift +++ b/interject/Interject! iMessage/MessagesViewController.swift @@ -21,6 +21,8 @@ class MessagesViewController: MSMessagesAppViewController { // MARK: UI VARS @IBOutlet weak var sfwLabel: UIBarButtonItem! @IBOutlet weak var phraseLabel: UILabel! + @IBOutlet weak var newLabel: UIBarButtonItem! + @IBOutlet weak var sendLabel: UIBarButtonItem! // MARK: Local Vars @@ -32,7 +34,8 @@ class MessagesViewController: MSMessagesAppViewController { // first load, Let's explain what the need to do. override func viewDidLoad() { super.viewDidLoad() - phraseLabel.text = "Swipe down for new words, up to send." + sentence = Sentence().new(current: sentence) + updatePhraseLabel() } // Toggle sfw @@ -57,7 +60,11 @@ class MessagesViewController: MSMessagesAppViewController { // Send a phrase to messages @IBAction func sendPhrase(_ sender: Any) { let conversation = self.activeConversation - conversation?.insertText(phraseLabel.text!) { error in } + conversation?.insertText(phraseLabel.text!) { [weak self] error in + DispatchQueue.main.async { + self?.requestPresentationStyle(.compact) + } + } } // Update the label diff --git a/interject/Interject!.xcodeproj/project.pbxproj b/interject/Interject!.xcodeproj/project.pbxproj index c29c751..4374b99 100644 --- a/interject/Interject!.xcodeproj/project.pbxproj +++ b/interject/Interject!.xcodeproj/project.pbxproj @@ -12,6 +12,8 @@ 761EDD593003F176006FC7FB /* Interject! iMessage.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 761EDD4C3003F175006FC7FB /* Interject! iMessage.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 761EDD6E3003F269006FC7FB /* words.json in Resources */ = {isa = PBXBuildFile; fileRef = 765F5A4B30029EC7004C2F29 /* words.json */; }; 761EDD703003F5FF006FC7FB /* Words.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98D0A2DE274721620084F7F9 /* Words.swift */; }; + 761EDD9530040902006FC7FB /* Interject! Watch Watch App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 761EDD7530040900006FC7FB /* Interject! Watch Watch App.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 761EDDA030040B14006FC7FB /* Words.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98D0A2DE274721620084F7F9 /* Words.swift */; }; 762C51A22BC33AE5000689D9 /* Tips.swift in Sources */ = {isa = PBXBuildFile; fileRef = 762C51A12BC33AE5000689D9 /* Tips.swift */; }; 762C51A42BCAD9BC000689D9 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 762C51A32BCAD9BC000689D9 /* StoreKit.framework */; }; 762C51A62BCADA1C000689D9 /* Products.storekit in Resources */ = {isa = PBXBuildFile; fileRef = 762C51A52BCADA1C000689D9 /* Products.storekit */; }; @@ -46,6 +48,27 @@ remoteGlobalIDString = 761EDD4B3003F175006FC7FB; remoteInfo = "Interject! iMessage"; }; + 761EDD8230040902006FC7FB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 98D0A29D27471FF80084F7F9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 761EDD7430040900006FC7FB; + remoteInfo = "Interject! Watch Watch App"; + }; + 761EDD8C30040902006FC7FB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 98D0A29D27471FF80084F7F9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 761EDD7430040900006FC7FB; + remoteInfo = "Interject! Watch Watch App"; + }; + 761EDD9330040902006FC7FB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 98D0A29D27471FF80084F7F9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 761EDD7430040900006FC7FB; + remoteInfo = "Interject! Watch Watch App"; + }; 98D0A2B627471FF90084F7F9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 98D0A29D27471FF80084F7F9 /* Project object */; @@ -63,6 +86,17 @@ /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ + 761EDD9930040902006FC7FB /* Embed Watch Content */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; + dstSubfolderSpec = 16; + files = ( + 761EDD9530040902006FC7FB /* Interject! Watch Watch App.app in Embed Watch Content */, + ); + name = "Embed Watch Content"; + runOnlyForDeploymentPostprocessing = 0; + }; 98EA0F4F2863963F00B4E136 /* Embed Foundation Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -79,6 +113,9 @@ /* Begin PBXFileReference section */ 761EDD463003EB67006FC7FB /* Intents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Intents.swift; sourceTree = ""; }; 761EDD4C3003F175006FC7FB /* Interject! iMessage.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Interject! iMessage.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 761EDD7530040900006FC7FB /* Interject! Watch Watch App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Interject! Watch Watch App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 761EDD8130040902006FC7FB /* Interject! Watch Watch AppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Interject! Watch Watch AppTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 761EDD8B30040902006FC7FB /* Interject! Watch Watch AppUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Interject! Watch Watch AppUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 762C51A12BC33AE5000689D9 /* Tips.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tips.swift; sourceTree = ""; }; 762C51A32BCAD9BC000689D9 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; 762C51A52BCADA1C000689D9 /* Products.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = Products.storekit; sourceTree = ""; }; @@ -121,6 +158,9 @@ /* Begin PBXFileSystemSynchronizedRootGroup section */ 761EDD4E3003F175006FC7FB /* Interject! iMessage */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (761EDD6F3003F317006FC7FB /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = "Interject! iMessage"; sourceTree = ""; }; + 761EDD7630040900006FC7FB /* Interject! Watch Watch App */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = "Interject! Watch Watch App"; sourceTree = ""; }; + 761EDD8430040902006FC7FB /* Interject! Watch Watch AppTests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = "Interject! Watch Watch AppTests"; sourceTree = ""; }; + 761EDD8E30040902006FC7FB /* Interject! Watch Watch AppUITests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = "Interject! Watch Watch AppUITests"; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -132,6 +172,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 761EDD7230040900006FC7FB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 761EDD7E30040902006FC7FB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 761EDD8830040902006FC7FB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 98D0A2A227471FF80084F7F9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -181,6 +242,9 @@ 98D0A2B827471FF90084F7F9 /* Interject!Tests */, 98D0A2C227471FF90084F7F9 /* Interject!UITests */, 761EDD4E3003F175006FC7FB /* Interject! iMessage */, + 761EDD7630040900006FC7FB /* Interject! Watch Watch App */, + 761EDD8430040902006FC7FB /* Interject! Watch Watch AppTests */, + 761EDD8E30040902006FC7FB /* Interject! Watch Watch AppUITests */, 9879879A2865299F00E82AF6 /* Frameworks */, 98D0A2A627471FF80084F7F9 /* Products */, ); @@ -193,6 +257,9 @@ 98D0A2B527471FF90084F7F9 /* Interject!Tests.xctest */, 98D0A2BF27471FF90084F7F9 /* Interject!UITests.xctest */, 761EDD4C3003F175006FC7FB /* Interject! iMessage.appex */, + 761EDD7530040900006FC7FB /* Interject! Watch Watch App.app */, + 761EDD8130040902006FC7FB /* Interject! Watch Watch AppTests.xctest */, + 761EDD8B30040902006FC7FB /* Interject! Watch Watch AppUITests.xctest */, ); name = Products; sourceTree = ""; @@ -291,6 +358,74 @@ productReference = 761EDD4C3003F175006FC7FB /* Interject! iMessage.appex */; productType = "com.apple.product-type.app-extension.messages"; }; + 761EDD7430040900006FC7FB /* Interject! Watch Watch App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 761EDD9630040902006FC7FB /* Build configuration list for PBXNativeTarget "Interject! Watch Watch App" */; + buildPhases = ( + 761EDD7130040900006FC7FB /* Sources */, + 761EDD7230040900006FC7FB /* Frameworks */, + 761EDD7330040900006FC7FB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + 761EDD7630040900006FC7FB /* Interject! Watch Watch App */, + ); + name = "Interject! Watch Watch App"; + packageProductDependencies = ( + ); + productName = "Interject! Watch Watch App"; + productReference = 761EDD7530040900006FC7FB /* Interject! Watch Watch App.app */; + productType = "com.apple.product-type.application"; + }; + 761EDD8030040902006FC7FB /* Interject! Watch Watch AppTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 761EDD9A30040902006FC7FB /* Build configuration list for PBXNativeTarget "Interject! Watch Watch AppTests" */; + buildPhases = ( + 761EDD7D30040902006FC7FB /* Sources */, + 761EDD7E30040902006FC7FB /* Frameworks */, + 761EDD7F30040902006FC7FB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 761EDD8330040902006FC7FB /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + 761EDD8430040902006FC7FB /* Interject! Watch Watch AppTests */, + ); + name = "Interject! Watch Watch AppTests"; + packageProductDependencies = ( + ); + productName = "Interject! Watch Watch AppTests"; + productReference = 761EDD8130040902006FC7FB /* Interject! Watch Watch AppTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 761EDD8A30040902006FC7FB /* Interject! Watch Watch AppUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 761EDD9D30040902006FC7FB /* Build configuration list for PBXNativeTarget "Interject! Watch Watch AppUITests" */; + buildPhases = ( + 761EDD8730040902006FC7FB /* Sources */, + 761EDD8830040902006FC7FB /* Frameworks */, + 761EDD8930040902006FC7FB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 761EDD8D30040902006FC7FB /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + 761EDD8E30040902006FC7FB /* Interject! Watch Watch AppUITests */, + ); + name = "Interject! Watch Watch AppUITests"; + packageProductDependencies = ( + ); + productName = "Interject! Watch Watch AppUITests"; + productReference = 761EDD8B30040902006FC7FB /* Interject! Watch Watch AppUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; 98D0A2A427471FF80084F7F9 /* Interject! */ = { isa = PBXNativeTarget; buildConfigurationList = 98D0A2C927471FF90084F7F9 /* Build configuration list for PBXNativeTarget "Interject!" */; @@ -299,11 +434,13 @@ 98D0A2A227471FF80084F7F9 /* Frameworks */, 98D0A2A327471FF80084F7F9 /* Resources */, 98EA0F4F2863963F00B4E136 /* Embed Foundation Extensions */, + 761EDD9930040902006FC7FB /* Embed Watch Content */, ); buildRules = ( ); dependencies = ( 761EDD583003F176006FC7FB /* PBXTargetDependency */, + 761EDD9430040902006FC7FB /* PBXTargetDependency */, ); name = "Interject!"; productName = "Interject!"; @@ -354,12 +491,23 @@ attributes = { BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 2650; - LastUpgradeCheck = 2650; + LastUpgradeCheck = 2700; TargetAttributes = { 761EDD4B3003F175006FC7FB = { CreatedOnToolsVersion = 26.5; LastSwiftMigration = 2650; }; + 761EDD7430040900006FC7FB = { + CreatedOnToolsVersion = 26.5; + }; + 761EDD8030040902006FC7FB = { + CreatedOnToolsVersion = 26.5; + TestTargetID = 761EDD7430040900006FC7FB; + }; + 761EDD8A30040902006FC7FB = { + CreatedOnToolsVersion = 26.5; + TestTargetID = 761EDD7430040900006FC7FB; + }; 98D0A2A427471FF80084F7F9 = { CreatedOnToolsVersion = 13.1; }; @@ -390,6 +538,9 @@ 98D0A2B427471FF90084F7F9 /* Interject!Tests */, 98D0A2BE27471FF90084F7F9 /* Interject!UITests */, 761EDD4B3003F175006FC7FB /* Interject! iMessage */, + 761EDD7430040900006FC7FB /* Interject! Watch Watch App */, + 761EDD8030040902006FC7FB /* Interject! Watch Watch AppTests */, + 761EDD8A30040902006FC7FB /* Interject! Watch Watch AppUITests */, ); }; /* End PBXProject section */ @@ -403,6 +554,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 761EDD7330040900006FC7FB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 761EDD7F30040902006FC7FB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 761EDD8930040902006FC7FB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 98D0A2A327471FF80084F7F9 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -441,6 +613,28 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 761EDD7130040900006FC7FB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 761EDDA030040B14006FC7FB /* Words.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 761EDD7D30040902006FC7FB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 761EDD8730040902006FC7FB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 98D0A2A127471FF80084F7F9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -488,6 +682,21 @@ target = 761EDD4B3003F175006FC7FB /* Interject! iMessage */; targetProxy = 761EDD573003F176006FC7FB /* PBXContainerItemProxy */; }; + 761EDD8330040902006FC7FB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 761EDD7430040900006FC7FB /* Interject! Watch Watch App */; + targetProxy = 761EDD8230040902006FC7FB /* PBXContainerItemProxy */; + }; + 761EDD8D30040902006FC7FB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 761EDD7430040900006FC7FB /* Interject! Watch Watch App */; + targetProxy = 761EDD8C30040902006FC7FB /* PBXContainerItemProxy */; + }; + 761EDD9430040902006FC7FB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 761EDD7430040900006FC7FB /* Interject! Watch Watch App */; + targetProxy = 761EDD9330040902006FC7FB /* PBXContainerItemProxy */; + }; 98D0A2B727471FF90084F7F9 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 98D0A2A427471FF80084F7F9 /* Interject! */; @@ -514,7 +723,7 @@ INFOPLIST_FILE = "Interject! iMessage/Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = "Interject! iMessage"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 26.5; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -549,7 +758,7 @@ INFOPLIST_FILE = "Interject! iMessage/Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = "Interject! iMessage"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 26.5; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -569,6 +778,187 @@ }; name = Release; }; + 761EDD9730040902006FC7FB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + ENABLE_PREVIEWS = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Interject! Watch"; + INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + INFOPLIST_KEY_WKCompanionAppBundleIdentifier = "us.hinnen.Interject-"; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 3.04; + PRODUCT_BUNDLE_IDENTIFIER = "us.hinnen.Interject-.watchkitapp"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 26.6; + }; + name = Debug; + }; + 761EDD9830040902006FC7FB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + ENABLE_PREVIEWS = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Interject! Watch"; + INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + INFOPLIST_KEY_WKCompanionAppBundleIdentifier = "us.hinnen.Interject-"; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 3.04; + PRODUCT_BUNDLE_IDENTIFIER = "us.hinnen.Interject-.watchkitapp"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 26.6; + }; + name = Release; + }; + 761EDD9B30040902006FC7FB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 5P9XB49J6K; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "us.hinnen.Interject-.Interject--Watch-Watch-AppTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Interject! Watch Watch App.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Interject! Watch Watch App"; + WATCHOS_DEPLOYMENT_TARGET = 26.5; + }; + name = Debug; + }; + 761EDD9C30040902006FC7FB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 5P9XB49J6K; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "us.hinnen.Interject-.Interject--Watch-Watch-AppTests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Interject! Watch Watch App.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Interject! Watch Watch App"; + WATCHOS_DEPLOYMENT_TARGET = 26.5; + }; + name = Release; + }; + 761EDD9E30040902006FC7FB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 5P9XB49J6K; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "us.hinnen.Interject-.Interject--Watch-Watch-AppUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TEST_TARGET_NAME = "Interject! Watch Watch App"; + WATCHOS_DEPLOYMENT_TARGET = 26.5; + }; + name = Debug; + }; + 761EDD9F30040902006FC7FB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 5P9XB49J6K; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "us.hinnen.Interject-.Interject--Watch-Watch-AppUITests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TEST_TARGET_NAME = "Interject! Watch Watch App"; + WATCHOS_DEPLOYMENT_TARGET = 26.5; + }; + name = Release; + }; 98D0A2C727471FF90084F7F9 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -632,6 +1022,7 @@ STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = 1; }; name = Debug; }; @@ -691,6 +1082,7 @@ STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = 1; VALIDATE_PRODUCT = YES; }; name = Release; @@ -712,7 +1104,7 @@ INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -743,7 +1135,7 @@ INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -764,7 +1156,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -787,7 +1179,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -809,6 +1201,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -830,6 +1223,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = "$(RECOMMENDED_IPHONEOS_DEPLOYMENT_TARGET)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -857,6 +1251,33 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 761EDD9630040902006FC7FB /* Build configuration list for PBXNativeTarget "Interject! Watch Watch App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 761EDD9730040902006FC7FB /* Debug */, + 761EDD9830040902006FC7FB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 761EDD9A30040902006FC7FB /* Build configuration list for PBXNativeTarget "Interject! Watch Watch AppTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 761EDD9B30040902006FC7FB /* Debug */, + 761EDD9C30040902006FC7FB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 761EDD9D30040902006FC7FB /* Build configuration list for PBXNativeTarget "Interject! Watch Watch AppUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 761EDD9E30040902006FC7FB /* Debug */, + 761EDD9F30040902006FC7FB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 98D0A2A027471FF80084F7F9 /* Build configuration list for PBXProject "Interject!" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/interject/Interject!.xcodeproj/project.xcworkspace/xcuserdata/roryhinnen.xcuserdatad/UserInterfaceState.xcuserstate b/interject/Interject!.xcodeproj/project.xcworkspace/xcuserdata/roryhinnen.xcuserdatad/UserInterfaceState.xcuserstate index 3882ca6edf2dd07a7c093c2c0b79b4e8a36c5d98..5772d875bdfcd3a76acefc3c3875e532dd1b20db 100644 GIT binary patch literal 91450 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 F`+tO#LJa@_ literal 45102 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 SchemeUserState + Interject! Watch Watch App.xcscheme_^#shared#^_ + + orderHint + 2 + Interject! iMessage MessagesExtension.xcscheme_^#shared#^_ orderHint diff --git a/interject/Interject!/Intents.swift b/interject/Interject!/Intents.swift index 9f6c045..0ceaed8 100644 --- a/interject/Interject!/Intents.swift +++ b/interject/Interject!/Intents.swift @@ -5,35 +5,33 @@ import AppIntents -@available(iOS 16.0, *) -struct GenerateInsultIntent: AppIntent { - static var title: LocalizedStringResource = "Generate Insult" - static var description = IntentDescription("Generates a new random insult phrase.") +struct GenerateDescriptorIntent: AppIntent { + static var title: LocalizedStringResource = "Interject" + static var description = IntentDescription("Generates a new random descriptive phrase.") func perform() async throws -> some IntentResult & ReturnsValue { // Fall back to true (safe mode) if the app hasn't set the preference yet let isSfw = UserDefaults.standard.object(forKey: "SFW") as? Bool ?? true let sentence = Sentence().new(current: Sentence()) - let insult = [ + let interjection = [ sentence.word(.first, safe: isSfw), sentence.word(.second, safe: isSfw), sentence.word(.noun, safe: isSfw) ].joined(separator: " ") - return .result(value: insult) + return .result(value: interjection, dialog: IntentDialog(stringLiteral: interjection)) } } -@available(iOS 16.0, *) struct InterjectShortcuts: AppShortcutsProvider { static var appShortcuts: [AppShortcut] { AppShortcut( - intent: GenerateInsultIntent(), + intent: GenerateDescriptorIntent(), phrases: [ - "Generate an insult with \(.applicationName)", - "Insult me with \(.applicationName)", - "Give me an insult from \(.applicationName)" + "Generate an interjection with \(.applicationName)", + "Describe me with \(.applicationName)", + "Give me an interjection from \(.applicationName)" ], - shortTitle: "Generate Insult", + shortTitle: "Generate Interjection", systemImageName: "bubble.left.fill" ) } diff --git a/interject/Interject!/View/Interject_App.swift b/interject/Interject!/View/Interject_App.swift index f1ddb45..130c284 100644 --- a/interject/Interject!/View/Interject_App.swift +++ b/interject/Interject!/View/Interject_App.swift @@ -6,6 +6,7 @@ // import SwiftUI +import AppIntents @main @@ -13,6 +14,10 @@ struct Interject_App: App { @StateObject var settings = Settings() @StateObject var store = Store() + init() { + InterjectShortcuts.updateAppShortcutParameters() + } + var body: some Scene { WindowGroup { ContentView() diff --git a/interject/Interject!/words.json b/interject/Interject!/words.json index 4f7124f..789e2ed 100644 --- a/interject/Interject!/words.json +++ b/interject/Interject!/words.json @@ -24,7 +24,7 @@ {"word": "clay-brained", "meaning": "Rock head"}, {"word": "clouted", "meaning": "Senseless, reeling from being beat"}, {"word": "cockered", "meaning": "Spoiled"}, - {"word": "couch-loving", "meaning": "A less than attractive person", "nsfw": "couch-fucking", "nsfwMeaning": "J.D. Vance"}, + {"word": "couch-loving", "meaning": "The amourous intention of a rural poet", "nsfw": "couch-fucking", "nsfwMeaning": "The sexual target of a rural poet"}, {"word": "common-kissing", "meaning": "Rogue, a rascal, grabs others without permission"}, {"word": "craven", "meaning": "Cowardly"}, {"word": "crook-pated", "meaning": "A thug, a thief who takes by violence"},