diff --git a/ios/Podfile b/ios/Podfile index c5ebe70..cc1e393 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -39,7 +39,7 @@ target 'Runner' do inherit! :search_paths end - target 'NotificationService' do + target 'SolianNotificationService' do inherit! :search_paths pod 'Kingfisher', '~> 8.0' pod 'Alamofire' diff --git a/ios/Podfile.lock b/ios/Podfile.lock index a404c0b..9bcb861 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -344,6 +344,6 @@ SPEC CHECKSUMS: wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556 WebRTC-SDK: dff00a3892bc570b6014e046297782084071657e -PODFILE CHECKSUM: f5ad824c068cb5da52a3e19417c4e0de970c1231 +PODFILE CHECKSUM: 0c13198c20d0416ef589aeb2e1dac5c50262254f COCOAPODS: 1.16.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 37bf9d7..7123e13 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -10,15 +10,15 @@ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 73268D1C2DEAFD670076E970 /* NotificationService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 73268D152DEAFD670076E970 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 73CDD6812DEC00480059D95D /* SolianNotificationService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 73CDD67A2DEC00480059D95D /* SolianNotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 73D4264B2DEB815D006C0AAE /* NotifyDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D4264A2DEB815D006C0AAE /* NotifyDelegate.swift */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 755557017FD1B99AFC4F9127 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29812C17FFBE7DBBC7203981 /* Pods_RunnerTests.framework */; }; - 8529D00678947B00A0162116 /* Pods_NotificationService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA0CA8A3E15DEE023BB27438 /* Pods_NotificationService.framework */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; B87C0E607033790E71B54D73 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6D834CA86410B09796B312B /* Pods_Runner.framework */; }; + D1772CE196985AE8E8C9F2E5 /* Pods_SolianNotificationService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 39FE4CC6223F0D3C0E1FFD04 /* Pods_SolianNotificationService.framework */; }; E7A0B456EF7AAA71D1397081 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 9AE244813FCDFAA941430393 /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ @@ -30,12 +30,12 @@ remoteGlobalIDString = 97C146ED1CF9000F007C117D; remoteInfo = Runner; }; - 73268D1A2DEAFD670076E970 /* PBXContainerItemProxy */ = { + 73CDD67F2DEC00480059D95D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 97C146E61CF9000F007C117D /* Project object */; proxyType = 1; - remoteGlobalIDString = 73268D142DEAFD670076E970; - remoteInfo = NotificationService; + remoteGlobalIDString = 73CDD6792DEC00480059D95D; + remoteInfo = SolianNotificationService; }; /* End PBXContainerItemProxy section */ @@ -46,7 +46,7 @@ dstPath = ""; dstSubfolderSpec = 13; files = ( - 73268D1C2DEAFD670076E970 /* NotificationService.appex in Embed Foundation Extensions */, + 73CDD6812DEC00480059D95D /* SolianNotificationService.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -75,14 +75,16 @@ 2D2457F8B2E6EF9C0F935035 /* Pods-NotificationService.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.profile.xcconfig"; path = "Target Support Files/Pods-NotificationService/Pods-NotificationService.profile.xcconfig"; sourceTree = ""; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 39FE4CC6223F0D3C0E1FFD04 /* Pods_SolianNotificationService.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SolianNotificationService.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3A1C47BD29CC6AC2587D4DBE /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 73268D152DEAFD670076E970 /* NotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 737E920B2DB6A9FF00BE9CDB /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; + 73CDD67A2DEC00480059D95D /* SolianNotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = SolianNotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 73D4264A2DEB815D006C0AAE /* NotifyDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotifyDelegate.swift; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 8B40620B1EEBB09456406A3C /* Pods-SolianNotificationService.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SolianNotificationService.profile.xcconfig"; path = "Target Support Files/Pods-SolianNotificationService/Pods-SolianNotificationService.profile.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -93,44 +95,46 @@ 9AE244813FCDFAA941430393 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; A499FDB2082EB000933AA8C5 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; AA0CA8A3E15DEE023BB27438 /* Pods_NotificationService.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_NotificationService.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B93771F2A63E4148DC6142F7 /* Pods-SolianNotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SolianNotificationService.release.xcconfig"; path = "Target Support Files/Pods-SolianNotificationService/Pods-SolianNotificationService.release.xcconfig"; sourceTree = ""; }; E6B10A9A85BECA2E576C91FF /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; F6D834CA86410B09796B312B /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F830F535CB92E3F2E1653A11 /* Pods-SolianNotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SolianNotificationService.debug.xcconfig"; path = "Target Support Files/Pods-SolianNotificationService/Pods-SolianNotificationService.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 73268D212DEAFD670076E970 /* Exceptions for "NotificationService" folder in "NotificationService" target */ = { + 73CDD6822DEC00480059D95D /* Exceptions for "SolianNotificationService" folder in "SolianNotificationService" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, ); - target = 73268D142DEAFD670076E970 /* NotificationService */; + target = 73CDD6792DEC00480059D95D /* SolianNotificationService */; }; - 73268D2B2DEB013D0076E970 /* Exceptions for "Services" folder in "NotificationService" target */ = { + 73CDD68E2DEC00BE0059D95D /* Exceptions for "Services" folder in "SolianNotificationService" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( CloudFile.swift, ); - target = 73268D142DEAFD670076E970 /* NotificationService */; + target = 73CDD6792DEC00480059D95D /* SolianNotificationService */; }; /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - 73268D162DEAFD670076E970 /* NotificationService */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - 73268D212DEAFD670076E970 /* Exceptions for "NotificationService" folder in "NotificationService" target */, - ); - path = NotificationService; - sourceTree = ""; - }; 73268D272DEB012A0076E970 /* Services */ = { isa = PBXFileSystemSynchronizedRootGroup; exceptions = ( - 73268D2B2DEB013D0076E970 /* Exceptions for "Services" folder in "NotificationService" target */, + 73CDD68E2DEC00BE0059D95D /* Exceptions for "Services" folder in "SolianNotificationService" target */, ); path = Services; sourceTree = ""; }; + 73CDD67B2DEC00480059D95D /* SolianNotificationService */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + 73CDD6822DEC00480059D95D /* Exceptions for "SolianNotificationService" folder in "SolianNotificationService" target */, + ); + path = SolianNotificationService; + sourceTree = ""; + }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -142,11 +146,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 73268D122DEAFD670076E970 /* Frameworks */ = { + 73CDD6772DEC00480059D95D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8529D00678947B00A0162116 /* Pods_NotificationService.framework in Frameworks */, + D1772CE196985AE8E8C9F2E5 /* Pods_SolianNotificationService.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -175,6 +179,7 @@ F6D834CA86410B09796B312B /* Pods_Runner.framework */, 29812C17FFBE7DBBC7203981 /* Pods_RunnerTests.framework */, AA0CA8A3E15DEE023BB27438 /* Pods_NotificationService.framework */, + 39FE4CC6223F0D3C0E1FFD04 /* Pods_SolianNotificationService.framework */, ); name = Frameworks; sourceTree = ""; @@ -191,6 +196,9 @@ 192FDACE67D7CB6AED15C634 /* Pods-NotificationService.debug.xcconfig */, 252A83CE6862573BB856ED8E /* Pods-NotificationService.release.xcconfig */, 2D2457F8B2E6EF9C0F935035 /* Pods-NotificationService.profile.xcconfig */, + F830F535CB92E3F2E1653A11 /* Pods-SolianNotificationService.debug.xcconfig */, + B93771F2A63E4148DC6142F7 /* Pods-SolianNotificationService.release.xcconfig */, + 8B40620B1EEBB09456406A3C /* Pods-SolianNotificationService.profile.xcconfig */, ); path = Pods; sourceTree = ""; @@ -211,7 +219,7 @@ children = ( 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, - 73268D162DEAFD670076E970 /* NotificationService */, + 73CDD67B2DEC00480059D95D /* SolianNotificationService */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, 91E124CE95BCB4DCD890160D /* Pods */, @@ -225,7 +233,7 @@ children = ( 97C146EE1CF9000F007C117D /* Runner.app */, 331C8081294A63A400263BE5 /* RunnerTests.xctest */, - 73268D152DEAFD670076E970 /* NotificationService.appex */, + 73CDD67A2DEC00480059D95D /* SolianNotificationService.appex */, ); name = Products; sourceTree = ""; @@ -270,25 +278,25 @@ productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 73268D142DEAFD670076E970 /* NotificationService */ = { + 73CDD6792DEC00480059D95D /* SolianNotificationService */ = { isa = PBXNativeTarget; - buildConfigurationList = 73268D222DEAFD670076E970 /* Build configuration list for PBXNativeTarget "NotificationService" */; + buildConfigurationList = 73CDD6832DEC00480059D95D /* Build configuration list for PBXNativeTarget "SolianNotificationService" */; buildPhases = ( - 042F7A1E06D2751BE114E578 /* [CP] Check Pods Manifest.lock */, - 73268D112DEAFD670076E970 /* Sources */, - 73268D122DEAFD670076E970 /* Frameworks */, - 73268D132DEAFD670076E970 /* Resources */, + 5FC5C1EF9F17B7166B432FF2 /* [CP] Check Pods Manifest.lock */, + 73CDD6762DEC00480059D95D /* Sources */, + 73CDD6772DEC00480059D95D /* Frameworks */, + 73CDD6782DEC00480059D95D /* Resources */, ); buildRules = ( ); dependencies = ( ); fileSystemSynchronizedGroups = ( - 73268D162DEAFD670076E970 /* NotificationService */, + 73CDD67B2DEC00480059D95D /* SolianNotificationService */, ); - name = NotificationService; - productName = NotificationService; - productReference = 73268D152DEAFD670076E970 /* NotificationService.appex */; + name = SolianNotificationService; + productName = SolianNotificationService; + productReference = 73CDD67A2DEC00480059D95D /* SolianNotificationService.appex */; productType = "com.apple.product-type.app-extension"; }; 97C146ED1CF9000F007C117D /* Runner */ = { @@ -309,7 +317,7 @@ buildRules = ( ); dependencies = ( - 73268D1B2DEAFD670076E970 /* PBXTargetDependency */, + 73CDD6802DEC00480059D95D /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( 73268D272DEB012A0076E970 /* Services */, @@ -334,7 +342,7 @@ CreatedOnToolsVersion = 14.0; TestTargetID = 97C146ED1CF9000F007C117D; }; - 73268D142DEAFD670076E970 = { + 73CDD6792DEC00480059D95D = { CreatedOnToolsVersion = 16.4; }; 97C146ED1CF9000F007C117D = { @@ -358,7 +366,7 @@ targets = ( 97C146ED1CF9000F007C117D /* Runner */, 331C8080294A63A400263BE5 /* RunnerTests */, - 73268D142DEAFD670076E970 /* NotificationService */, + 73CDD6792DEC00480059D95D /* SolianNotificationService */, ); }; /* End PBXProject section */ @@ -371,7 +379,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 73268D132DEAFD670076E970 /* Resources */ = { + 73CDD6782DEC00480059D95D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -393,28 +401,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 042F7A1E06D2751BE114E578 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-NotificationService-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -470,6 +456,28 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; showEnvVarsInLog = 0; }; + 5FC5C1EF9F17B7166B432FF2 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-SolianNotificationService-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; 8C0351B03869BBF493808288 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -535,7 +543,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 73268D112DEAFD670076E970 /* Sources */ = { + 73CDD6762DEC00480059D95D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -560,10 +568,10 @@ target = 97C146ED1CF9000F007C117D /* Runner */; targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; }; - 73268D1B2DEAFD670076E970 /* PBXTargetDependency */ = { + 73CDD6802DEC00480059D95D /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 73268D142DEAFD670076E970 /* NotificationService */; - targetProxy = 73268D1A2DEAFD670076E970 /* PBXContainerItemProxy */; + target = 73CDD6792DEC00480059D95D /* SolianNotificationService */; + targetProxy = 73CDD67F2DEC00480059D95D /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -714,9 +722,9 @@ }; name = Profile; }; - 73268D1E2DEAFD670076E970 /* Debug */ = { + 73CDD6842DEC00480059D95D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 192FDACE67D7CB6AED15C634 /* Pods-NotificationService.debug.xcconfig */; + baseConfigurationReference = F830F535CB92E3F2E1653A11 /* Pods-SolianNotificationService.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -731,8 +739,8 @@ ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = NotificationService/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = NotificationService; + INFOPLIST_FILE = SolianNotificationService/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = SolianNotificationService; INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 18.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -744,7 +752,7 @@ MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = dev.solsynth.solian.NotificationService; + PRODUCT_BUNDLE_IDENTIFIER = dev.solsynth.solian.SolianNotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; @@ -755,9 +763,9 @@ }; name = Debug; }; - 73268D1F2DEAFD670076E970 /* Release */ = { + 73CDD6852DEC00480059D95D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 252A83CE6862573BB856ED8E /* Pods-NotificationService.release.xcconfig */; + baseConfigurationReference = B93771F2A63E4148DC6142F7 /* Pods-SolianNotificationService.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -772,8 +780,8 @@ ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = NotificationService/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = NotificationService; + INFOPLIST_FILE = SolianNotificationService/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = SolianNotificationService; INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 18.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -784,7 +792,7 @@ LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = dev.solsynth.solian.NotificationService; + PRODUCT_BUNDLE_IDENTIFIER = dev.solsynth.solian.SolianNotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; @@ -793,9 +801,9 @@ }; name = Release; }; - 73268D202DEAFD670076E970 /* Profile */ = { + 73CDD6862DEC00480059D95D /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2D2457F8B2E6EF9C0F935035 /* Pods-NotificationService.profile.xcconfig */; + baseConfigurationReference = 8B40620B1EEBB09456406A3C /* Pods-SolianNotificationService.profile.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -810,8 +818,8 @@ ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = NotificationService/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = NotificationService; + INFOPLIST_FILE = SolianNotificationService/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = SolianNotificationService; INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 18.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -822,7 +830,7 @@ LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = dev.solsynth.solian.NotificationService; + PRODUCT_BUNDLE_IDENTIFIER = dev.solsynth.solian.SolianNotificationService; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; @@ -1006,12 +1014,12 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 73268D222DEAFD670076E970 /* Build configuration list for PBXNativeTarget "NotificationService" */ = { + 73CDD6832DEC00480059D95D /* Build configuration list for PBXNativeTarget "SolianNotificationService" */ = { isa = XCConfigurationList; buildConfigurations = ( - 73268D1E2DEAFD670076E970 /* Debug */, - 73268D1F2DEAFD670076E970 /* Release */, - 73268D202DEAFD670076E970 /* Profile */, + 73CDD6842DEC00480059D95D /* Debug */, + 73CDD6852DEC00480059D95D /* Release */, + 73CDD6862DEC00480059D95D /* Profile */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/ios/Runner/NativeViews/BlurHashDecoder.swift b/ios/Runner/NativeViews/BlurHashDecoder.swift deleted file mode 100644 index 017ae83..0000000 --- a/ios/Runner/NativeViews/BlurHashDecoder.swift +++ /dev/null @@ -1,153 +0,0 @@ -// -// BlurHashDecoder.swift -// Runner -// -// Created by LittleSheep on 2025/4/21. -// - -import UIKit - -extension UIImage { - public convenience init?(blurHash: String, size: CGSize, punch: Float = 1) { - guard blurHash.count >= 6 else { return nil } - - let sizeFlag = String(blurHash[0]).decode83() - let numY = (sizeFlag / 9) + 1 - let numX = (sizeFlag % 9) + 1 - - let quantisedMaximumValue = String(blurHash[1]).decode83() - let maximumValue = Float(quantisedMaximumValue + 1) / 166 - - guard blurHash.count == 4 + 2 * numX * numY else { return nil } - - let colours: [(Float, Float, Float)] = (0 ..< numX * numY).map { i in - if i == 0 { - let value = String(blurHash[2 ..< 6]).decode83() - return decodeDC(value) - } else { - let value = String(blurHash[4 + i * 2 ..< 4 + i * 2 + 2]).decode83() - return decodeAC(value, maximumValue: maximumValue * punch) - } - } - - let width = Int(size.width) - let height = Int(size.height) - let bytesPerRow = width * 3 - guard let data = CFDataCreateMutable(kCFAllocatorDefault, bytesPerRow * height) else { return nil } - CFDataSetLength(data, bytesPerRow * height) - guard let pixels = CFDataGetMutableBytePtr(data) else { return nil } - - for y in 0 ..< height { - for x in 0 ..< width { - var r: Float = 0 - var g: Float = 0 - var b: Float = 0 - - for j in 0 ..< numY { - for i in 0 ..< numX { - let basis = cos(Float.pi * Float(x) * Float(i) / Float(width)) * cos(Float.pi * Float(y) * Float(j) / Float(height)) - let colour = colours[i + j * numX] - r += colour.0 * basis - g += colour.1 * basis - b += colour.2 * basis - } - } - - let intR = UInt8(linearTosRGB(r)) - let intG = UInt8(linearTosRGB(g)) - let intB = UInt8(linearTosRGB(b)) - - pixels[3 * x + 0 + y * bytesPerRow] = intR - pixels[3 * x + 1 + y * bytesPerRow] = intG - pixels[3 * x + 2 + y * bytesPerRow] = intB - } - } - - let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.none.rawValue) - - guard let provider = CGDataProvider(data: data) else { return nil } - guard let cgImage = CGImage(width: width, height: height, bitsPerComponent: 8, bitsPerPixel: 24, bytesPerRow: bytesPerRow, - space: CGColorSpaceCreateDeviceRGB(), bitmapInfo: bitmapInfo, provider: provider, decode: nil, shouldInterpolate: true, intent: .defaultIntent) else { return nil } - - self.init(cgImage: cgImage) - } -} - -private func decodeDC(_ value: Int) -> (Float, Float, Float) { - let intR = value >> 16 - let intG = (value >> 8) & 255 - let intB = value & 255 - return (sRGBToLinear(intR), sRGBToLinear(intG), sRGBToLinear(intB)) -} - -private func decodeAC(_ value: Int, maximumValue: Float) -> (Float, Float, Float) { - let quantR = value / (19 * 19) - let quantG = (value / 19) % 19 - let quantB = value % 19 - - let rgb = ( - signPow((Float(quantR) - 9) / 9, 2) * maximumValue, - signPow((Float(quantG) - 9) / 9, 2) * maximumValue, - signPow((Float(quantB) - 9) / 9, 2) * maximumValue - ) - - return rgb -} - -private func signPow(_ value: Float, _ exp: Float) -> Float { - return copysign(pow(abs(value), exp), value) -} - -private func linearTosRGB(_ value: Float) -> Int { - let v = max(0, min(1, value)) - if v <= 0.0031308 { return Int(v * 12.92 * 255 + 0.5) } - else { return Int((1.055 * pow(v, 1 / 2.4) - 0.055) * 255 + 0.5) } -} - -private func sRGBToLinear(_ value: Type) -> Float { - let v = Float(Int64(value)) / 255 - if v <= 0.04045 { return v / 12.92 } - else { return pow((v + 0.055) / 1.055, 2.4) } -} - -private let encodeCharacters: [String] = { - return "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$%*+,-.:;=?@[]^_{|}~".map { String($0) } -}() - -private let decodeCharacters: [String: Int] = { - var dict: [String: Int] = [:] - for (index, character) in encodeCharacters.enumerated() { - dict[character] = index - } - return dict -}() - -extension String { - func decode83() -> Int { - var value: Int = 0 - for character in self { - if let digit = decodeCharacters[String(character)] { - value = value * 83 + digit - } - } - return value - } -} - -private extension String { - subscript (offset: Int) -> Character { - return self[index(startIndex, offsetBy: offset)] - } - - subscript (bounds: CountableClosedRange) -> Substring { - let start = index(startIndex, offsetBy: bounds.lowerBound) - let end = index(startIndex, offsetBy: bounds.upperBound) - return self[start...end] - } - - subscript (bounds: CountableRange) -> Substring { - let start = index(startIndex, offsetBy: bounds.lowerBound) - let end = index(startIndex, offsetBy: bounds.upperBound) - return self[start.. RoundCornerImageProcessor(cornerRadius: 20) - - self.kf.indicatorType = .activity - self.kf.setImage( - with: url, - placeholder: placeholderImage, - options: [ - .processor(processor), - .transition(.fade(0.3)) - ] - ) - } -} diff --git a/ios/Runner/NativeViews/NativeImage.swift b/ios/Runner/NativeViews/NativeImage.swift deleted file mode 100644 index 9775582..0000000 --- a/ios/Runner/NativeViews/NativeImage.swift +++ /dev/null @@ -1,62 +0,0 @@ -// -// NativeImage.swift -// Runner -// -// Created by LittleSheep on 2025/4/21. -// - -import Flutter -import UIKit -import Kingfisher - -class FLNativeImageFactory : NSObject, FlutterPlatformViewFactory { - private var messenger: FlutterBinaryMessenger - - init(messenger: FlutterBinaryMessenger) { - self.messenger = messenger - super.init() - } - - func create( - withFrame frame: CGRect, - viewIdentifier viewId: Int64, - arguments args: Any? - ) -> FlutterPlatformView { - return FLNativeImage( - frame: frame, - viewIdentifier: viewId, - arguments: args, - binaryMessenger: messenger) - } - - /// Implementing this method is only necessary when the `arguments` in `createWithFrame` is not `nil`. - public func createArgsCodec() -> FlutterMessageCodec & NSObjectProtocol { - return FlutterStandardMessageCodec.sharedInstance() - } -} - -class FLNativeImage : NSObject, FlutterPlatformView { - private var _view: ImageView - - init( - frame: CGRect, - viewIdentifier viewId: Int64, - arguments args: Any?, - binaryMessenger messenger: FlutterBinaryMessenger? - ) { - _view = ImageView(frame: frame) - super.init() - - let argsMap = args as! [AnyHashable: Any] - let source = argsMap["src"] as! String - let blurHash = argsMap["blur"] as? String - - if let url = URL(string: source) { - _view.setImage(from: url, blurHash: blurHash) - } - } - - func view() -> UIView { - return _view - } -} diff --git a/ios/NotificationService/Info.plist b/ios/SolianNotificationService/Info.plist similarity index 82% rename from ios/NotificationService/Info.plist rename to ios/SolianNotificationService/Info.plist index ad04f44..57421eb 100644 --- a/ios/NotificationService/Info.plist +++ b/ios/SolianNotificationService/Info.plist @@ -2,10 +2,6 @@ - NSUserActivityTypes - - INSendMessageIntent - NSExtension NSExtensionPointIdentifier diff --git a/ios/NotificationService/NotificationService.swift b/ios/SolianNotificationService/NotificationService.swift similarity index 100% rename from ios/NotificationService/NotificationService.swift rename to ios/SolianNotificationService/NotificationService.swift diff --git a/pubspec.yaml b/pubspec.yaml index 6b7ab47..615c0e0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 3.0.0+98 +version: 3.0.0+99 environment: sdk: ^3.7.2