chore(dependencies): replace sharing intent plugin (#669)

This commit is contained in:
cogwheel 2026-08-26 22:33:33 +05:30 • committed by GitHub
parent 04e5a1327d
commit 8b94d30495
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 153 additions and 389 deletions

View file

@ -15,7 +15,7 @@ if (keystorePropertiesFile.exists()) {
android {
namespace = "app.cogwheel.conduit"
compileSdk = flutter.compileSdkVersion
compileSdk = 37
ndkVersion = "29.0.14206865"
defaultConfig {

View file

@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-all.zip

View file

@ -18,7 +18,7 @@ pluginManagement {
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "9.1.0" apply false
id("com.android.application") version "9.2.1" apply false
id("org.jetbrains.kotlin.android") version "2.4.0" apply false
}

View file

@ -1,258 +1,34 @@
PODS:
- audio_session (0.0.1):
- Flutter
- CocoaLumberjack (3.9.1):
- CocoaLumberjack/Core (= 3.9.1)
- CocoaLumberjack/Core (3.9.1)
- connectivity_plus (0.0.1):
- Flutter
- CryptoSwift (1.8.4)
- cupertino_native_better (0.0.1):
- Flutter
- SVGKit (~> 3.0)
- file_picker (0.0.1):
- Flutter
- FlutterMacOS
- Flutter (1.0.0)
- flutter_callkit_incoming (0.0.1):
- CryptoSwift
- Flutter
- flutter_image_compress_common (1.0.0):
- Flutter
- SDWebImage
- SDWebImageWebPCoder
- flutter_inappwebview_ios (0.0.1):
- Flutter
- flutter_inappwebview_ios/Core (= 0.0.1)
- swift-collections (~> 1.1.1)
- flutter_inappwebview_ios/Core (0.0.1):
- Flutter
- swift-collections (~> 1.1.1)
- flutter_local_notifications (0.0.1):
- Flutter
- flutter_secure_storage_darwin (10.0.0):
- Flutter
- FlutterMacOS
- flutter_sharing_intent (1.0.1):
- Flutter
- geolocator_apple (1.2.0):
- Flutter
- FlutterMacOS
- home_widget (0.0.1):
- Flutter
- image_picker_ios (0.0.1):
- Flutter
- InternalCollectionsUtilities (1.1.1)
- just_audio (0.0.1):
- Flutter
- FlutterMacOS
- libwebp (1.5.0):
- libwebp/demux (= 1.5.0)
- libwebp/mux (= 1.5.0)
- libwebp/sharpyuv (= 1.5.0)
- libwebp/webp (= 1.5.0)
- libwebp/demux (1.5.0):
- libwebp/webp
- libwebp/mux (1.5.0):
- libwebp/demux
- libwebp/sharpyuv (1.5.0)
- libwebp/webp (1.5.0):
- libwebp/sharpyuv
- onnxruntime-c (1.22.0)
- onnxruntime-objc (1.22.0):
- onnxruntime-objc/Core (= 1.22.0)
- onnxruntime-objc/Core (1.22.0):
- onnxruntime-c (= 1.22.0)
- package_info_plus (0.4.5):
- Flutter
- pdfium_flutter (0.1.5):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.4.8):
- Flutter
- quick_actions_ios (0.0.1):
- Flutter
- record_ios (2.0.0):
- Flutter
- SDWebImage (5.21.5):
- SDWebImage/Core (= 5.21.5)
- SDWebImage/Core (5.21.5)
- SDWebImageWebPCoder (0.15.0):
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.17)
- share_plus (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- sqflite_darwin (0.0.4):
- Flutter
- FlutterMacOS
- SVGKit (3.0.0):
- CocoaLumberjack (~> 3.0)
- swift-collections (1.1.1):
- swift-collections/BitCollections (= 1.1.1)
- swift-collections/DequeModule (= 1.1.1)
- swift-collections/HashTreeCollections (= 1.1.1)
- swift-collections/HeapModule (= 1.1.1)
- swift-collections/OrderedCollections (= 1.1.1)
- swift-collections/BitCollections (1.1.1):
- InternalCollectionsUtilities (= 1.1.1)
- swift-collections/DequeModule (1.1.1):
- InternalCollectionsUtilities (= 1.1.1)
- swift-collections/HashTreeCollections (1.1.1):
- InternalCollectionsUtilities (= 1.1.1)
- swift-collections/HeapModule (1.1.1):
- InternalCollectionsUtilities (= 1.1.1)
- swift-collections/OrderedCollections (1.1.1):
- InternalCollectionsUtilities (= 1.1.1)
- url_launcher_ios (0.0.1):
- Flutter
- vad (0.0.6):
- Flutter
- onnxruntime-objc (= 1.22.0)
- wakelock_plus (0.0.1):
- Flutter
- webview_flutter_wkwebview (0.0.1):
- Flutter
- FlutterMacOS
DEPENDENCIES:
- audio_session (from `.symlinks/plugins/audio_session/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
- cupertino_native_better (from `.symlinks/plugins/cupertino_native_better/ios`)
- file_picker (from `.symlinks/plugins/file_picker/darwin`)
- Flutter (from `Flutter`)
- flutter_callkit_incoming (from `.symlinks/plugins/flutter_callkit_incoming/ios`)
- flutter_image_compress_common (from `.symlinks/plugins/flutter_image_compress_common/ios`)
- flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_secure_storage_darwin (from `.symlinks/plugins/flutter_secure_storage_darwin/darwin`)
- flutter_sharing_intent (from `.symlinks/plugins/flutter_sharing_intent/ios`)
- geolocator_apple (from `.symlinks/plugins/geolocator_apple/darwin`)
- home_widget (from `.symlinks/plugins/home_widget/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- just_audio (from `.symlinks/plugins/just_audio/darwin`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- pdfium_flutter (from `.symlinks/plugins/pdfium_flutter/darwin`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- quick_actions_ios (from `.symlinks/plugins/quick_actions_ios/ios`)
- record_ios (from `.symlinks/plugins/record_ios/ios`)
- share_plus (from `.symlinks/plugins/share_plus/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- vad (from `.symlinks/plugins/vad/ios`)
- wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`)
SPEC REPOS:
trunk:
- CocoaLumberjack
- CryptoSwift
- InternalCollectionsUtilities
- libwebp
- onnxruntime-c
- onnxruntime-objc
- SDWebImage
- SDWebImageWebPCoder
- SVGKit
- swift-collections
EXTERNAL SOURCES:
audio_session:
:path: ".symlinks/plugins/audio_session/ios"
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/ios"
cupertino_native_better:
:path: ".symlinks/plugins/cupertino_native_better/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/darwin"
Flutter:
:path: Flutter
flutter_callkit_incoming:
:path: ".symlinks/plugins/flutter_callkit_incoming/ios"
flutter_image_compress_common:
:path: ".symlinks/plugins/flutter_image_compress_common/ios"
flutter_inappwebview_ios:
:path: ".symlinks/plugins/flutter_inappwebview_ios/ios"
flutter_local_notifications:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_secure_storage_darwin:
:path: ".symlinks/plugins/flutter_secure_storage_darwin/darwin"
flutter_sharing_intent:
:path: ".symlinks/plugins/flutter_sharing_intent/ios"
geolocator_apple:
:path: ".symlinks/plugins/geolocator_apple/darwin"
home_widget:
:path: ".symlinks/plugins/home_widget/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios"
just_audio:
:path: ".symlinks/plugins/just_audio/darwin"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
pdfium_flutter:
:path: ".symlinks/plugins/pdfium_flutter/darwin"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
quick_actions_ios:
:path: ".symlinks/plugins/quick_actions_ios/ios"
record_ios:
:path: ".symlinks/plugins/record_ios/ios"
share_plus:
:path: ".symlinks/plugins/share_plus/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
sqflite_darwin:
:path: ".symlinks/plugins/sqflite_darwin/darwin"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
vad:
:path: ".symlinks/plugins/vad/ios"
wakelock_plus:
:path: ".symlinks/plugins/wakelock_plus/ios"
webview_flutter_wkwebview:
:path: ".symlinks/plugins/webview_flutter_wkwebview/darwin"
SPEC CHECKSUMS:
audio_session: 9bb7f6c970f21241b19f5a3658097ae459681ba0
CocoaLumberjack: e4ba3b414dfca8c1916c6303d37f63b3a95134c6
connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd
CryptoSwift: e64e11850ede528a02a0f3e768cec8e9d92ecb90
cupertino_native_better: 48a6a9cd45efc9ea9e1eec30755b5a8ebe92f1f2
file_picker: 70164d9778c42c47218d6cd79ce435de0856b11a
Flutter: 71a624a5bc0c04062bf19101d501e466baf2fb47
flutter_callkit_incoming: a143995975818a3717524decd3566d5ca7a8c608
flutter_image_compress_common: 11d5dcfb36f4ded92320bfa896261813a073240e
flutter_inappwebview_ios: 9cde7869829d54b4110df350f3eedd192c5a4aea
flutter_local_notifications: 643a3eda1ce1c0599413ca31672536d423dee214
flutter_secure_storage_darwin: acdb3f316ed05a3e68f856e0353b133eec373a23
flutter_sharing_intent: 0c1e53949f09fa8df8ac2268505687bde8ff264c
geolocator_apple: ab36aa0e8b7d7a2d7639b3b4e48308394e8cef5e
home_widget: 54b4f6b36ed8d64cfee594a476225c35c3e45091
image_picker_ios: e0ece4aa2a75771a7de3fa735d26d90817041326
InternalCollectionsUtilities: af3f471602c4a67cbcb0bee0a80f6f55a33ae453
just_audio: 4e391f57b79cad2b0674030a00453ca5ce817eed
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
onnxruntime-c: 7f778680e96145956c0a31945f260321eed2611a
onnxruntime-objc: 83d28b87525bd971259a66e153ea32b5d023de19
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
pdfium_flutter: e5a6e881af0b182d5b0465ebad23a8a20caa28d4
permission_handler_apple: 92d754bbaa7361d436db2d6c3c1c2a0fdcec462e
quick_actions_ios: 500fcc11711d9f646739093395c4ae8eec25f779
record_ios: 390a30c7caaf8b5d0fb1cb1d2fd5064b48b4520c
SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838
SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
SVGKit: 1ad7513f8c74d9652f94ed64ddecda1a23864dea
swift-collections: ba248ecaf44ef500b27d5cf94d304218c89892ff
url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b
vad: 7934867589afe53567f492df66fb1615f2185822
wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556
webview_flutter_wkwebview: 8ebf4fded22593026f7dbff1fbff31ea98573c8d
PODFILE CHECKSUM: 1bed8b2262b594f89f58bee2826557447173bc56

View file

@ -10,6 +10,7 @@
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
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 */; };
@ -100,6 +101,7 @@
6DEBCC1D4A97BA7E06B4F749 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
@ -221,6 +223,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
D2A0B2262F5E4D6C7B8A9012 /* CarPlay.framework in Frameworks */,
CA4A256DAFB6E4374BC67B91 /* Pods_Runner.framework in Frameworks */,
);
@ -281,6 +284,7 @@
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
@ -384,8 +388,6 @@
F1DBCF1E2E601A39004C2540 /* Embed Foundation Extensions */,
9740EEB61CF901F6004384FC /* Run Script */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
24812099A551BA4570C59A8E /* [CP] Embed Pods Frameworks */,
C10E41C5BC1B71D016E9688D /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@ -394,6 +396,9 @@
F15AFED02EE5499E00A1FABB /* PBXTargetDependency */,
);
name = Runner;
packageProductDependencies = (
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
);
productName = Runner;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
productType = "com.apple.product-type.application";
@ -485,6 +490,9 @@
Base,
);
mainGroup = 97C146E51CF9000F007C117D;
packageReferences = (
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */,
);
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = "";
projectRoot = "";
@ -534,21 +542,6 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
24812099A551BA4570C59A8E /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@ -602,21 +595,6 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
C10E41C5BC1B71D016E9688D /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
DE631DFCBC56A5A8B5E0A4FD /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@ -1430,6 +1408,20 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
/* Begin XCLocalSwiftPackageReference section */
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
};
/* End XCLocalSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = {
isa = XCSwiftPackageProductDependency;
productName = FlutterGeneratedPluginSwiftPackage;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}

View file

@ -1,39 +1,30 @@
{
"pins" : [
{
"identity" : "cwlcatchexception",
"identity" : "cocoalumberjack",
"kind" : "remoteSourceControl",
"location" : "https://github.com/mattgallagher/CwlCatchException.git",
"location" : "https://github.com/CocoaLumberjack/CocoaLumberjack.git",
"state" : {
"revision" : "07b2ba21d361c223e25e3c1e924288742923f08c",
"version" : "2.2.1"
"revision" : "c5f2ed4d219866117e135cf648180dc7b66739d3",
"version" : "3.9.1"
}
},
{
"identity" : "dkcamera",
"identity" : "cryptoswift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/zhangao0086/DKCamera",
"location" : "https://github.com/krzyzanowskim/CryptoSwift.git",
"state" : {
"branch" : "master",
"revision" : "5c691d11014b910aff69f960475d70e65d9dcc96"
"revision" : "f2a627b84c1ff96f21ac2fcb623ab36142dd5512",
"version" : "1.10.0"
}
},
{
"identity" : "dkimagepickercontroller",
"identity" : "libwebp-xcode",
"kind" : "remoteSourceControl",
"location" : "https://github.com/zhangao0086/DKImagePickerController",
"location" : "https://github.com/SDWebImage/libwebp-Xcode.git",
"state" : {
"branch" : "4.3.9",
"revision" : "0bdfeacefa308545adde07bef86e349186335915"
}
},
{
"identity" : "dkphotogallery",
"kind" : "remoteSourceControl",
"location" : "https://github.com/zhangao0086/DKPhotoGallery",
"state" : {
"branch" : "master",
"revision" : "311c1bc7a94f1538f82773a79c84374b12a2ef3d"
"revision" : "2b5256c29ff4e20f2a0d5ee863b62b1a22144434",
"version" : "1.6.0"
}
},
{
@ -46,21 +37,39 @@
}
},
{
"identity" : "swiftygif",
"identity" : "sdwebimagewebpcoder",
"kind" : "remoteSourceControl",
"location" : "https://github.com/kirualex/SwiftyGif.git",
"location" : "https://github.com/SDWebImage/SDWebImageWebPCoder.git",
"state" : {
"revision" : "4430cbc148baa3907651d40562d96325426f409a",
"version" : "5.4.5"
"revision" : "12d83edbcc795fb7b5c0c3cb74d739108d3357d2",
"version" : "0.15.0"
}
},
{
"identity" : "tocropviewcontroller",
"identity" : "svgkit",
"kind" : "remoteSourceControl",
"location" : "https://github.com/TimOliver/TOCropViewController",
"location" : "https://github.com/SVGKit/SVGKit.git",
"state" : {
"revision" : "d4a6d8100f4b886fdbc8ae399bf144ff3e9afb7e",
"version" : "2.8.0"
"revision" : "58152b9f7c85eab239160b36ffdfd364aa43d666",
"version" : "3.0.0"
}
},
{
"identity" : "swift-collections",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-collections.git",
"state" : {
"revision" : "a0cb0954ecb21e4e31b0070e6ed5674e8556685a",
"version" : "1.6.0"
}
},
{
"identity" : "swift-log",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-log",
"state" : {
"revision" : "3ffafb9722d5d918c614feb496c8789a3b59d222",
"version" : "1.15.0"
}
}
],

View file

@ -5,6 +5,24 @@
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<PreActions>
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Run Prepare Flutter Framework Script"
scriptText = "/bin/sh &quot;$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh&quot; prepare&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
</ExecutionAction>
</PreActions>
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"

View file

@ -1,5 +1,4 @@
import Flutter
import flutter_sharing_intent
import UIKit
@objc class ConduitSceneDelegate: FlutterSceneDelegate {
@ -68,7 +67,7 @@ import UIKit
openURLContexts URLContexts: Set<UIOpenURLContext>
) {
let unhandledContexts = Set(URLContexts.filter { context in
!handleShareUrl(context.url, setInitialData: false)
!handleShareUrl(context.url)
})
if !unhandledContexts.isEmpty {
@ -79,35 +78,16 @@ import UIKit
private func handleInitialShareUrlContexts(
_ urlContexts: Set<UIOpenURLContext>
) {
for context in urlContexts where handleShareUrl(
context.url,
setInitialData: true
) {
for context in urlContexts where handleShareUrl(context.url) {
return
}
}
private func handleShareUrl(_ url: URL, setInitialData: Bool) -> Bool {
let plugin = SwiftFlutterSharingIntentPlugin.instance
guard plugin.hasSameSchemePrefix(url: url) else { return false }
defer {
(UIApplication.shared.delegate as? AppDelegate)?.notifyShareImportEvent()
}
if setInitialData {
let launchOptions: [AnyHashable: Any] = [
UIApplication.LaunchOptionsKey.url: url,
]
return plugin.application(
UIApplication.shared,
didFinishLaunchingWithOptions: launchOptions
)
}
return plugin.application(
UIApplication.shared,
open: url,
options: [:]
)
private func handleShareUrl(_ url: URL) -> Bool {
guard let bundleIdentifier = Bundle.main.bundleIdentifier,
url.absoluteString.hasPrefix("SharingMedia-\(bundleIdentifier)")
else { return false }
(UIApplication.shared.delegate as? AppDelegate)?.notifyShareImportEvent()
return true
}
}

View file

@ -6,8 +6,7 @@ import 'package:flutter/foundation.dart';
import 'package:material_ui/material_ui.dart';
import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_sharing_intent/flutter_sharing_intent.dart';
import 'package:flutter_sharing_intent/model/sharing_file.dart';
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import '../../features/auth/providers/unified_auth_providers.dart';
@ -33,7 +32,6 @@ const int _nativeShareImportMaxPollAttempts = 240;
const String _nativeShareImportTimedOutMessage =
'Could not finish importing shared attachments. Please try sharing again.';
const _androidShareTextChannel = MethodChannel('conduit/share_receiver_text');
const _sharingIntentChannel = MethodChannel('flutter_sharing_intent');
enum SharedPayloadProcessResult { processed, consumed, retry }
@ -244,7 +242,7 @@ class SharedPayload {
}
factory SharedPayload.fromSharedFiles(
List<SharedFile> files, {
List<SharedMediaFile> files, {
String? extraText,
}) {
final textParts = <String>[];
@ -279,14 +277,14 @@ class SharedPayload {
addText(extraText);
for (final file in files) {
addText(file.message);
final mainPath = _normalizeSharedFilePath(file.value);
final mainPath = _normalizeSharedFilePath(file.path);
deleteIgnoredSidecar(file.thumbnail, mainPath);
switch (_sharedFileKind(file)) {
case _SharedFileKind.text:
addText(file.value);
addText(file.path);
break;
case _SharedFileKind.file:
addFilePath(file.value);
addFilePath(file.path);
break;
}
}
@ -589,7 +587,7 @@ final shareReceiverInitializerProvider = Provider<void>((ref) {
Future<void> resetSharedIntent() async {
try {
await _sharingIntentChannel.invokeMethod<void>('reset');
await ReceiveSharingIntent.instance.reset();
} catch (error) {
DebugLogger.log(
'ShareReceiver: failed to reset shared intent',
@ -946,7 +944,7 @@ final shareReceiverInitializerProvider = Provider<void>((ref) {
}
};
Future<void> setPendingFromSharedMedia(List<SharedFile> media) async {
Future<void> setPendingFromSharedMedia(List<SharedMediaFile> media) async {
final extraText = await takePendingAndroidMultipleShareText();
final payload = SharedPayload.fromSharedFiles(media, extraText: extraText);
if (!payload.hasAnything) {
@ -1114,7 +1112,7 @@ final shareReceiverInitializerProvider = Provider<void>((ref) {
try {
await maybeStartNativeShareImportPolling();
if (Platform.isAndroid) {
final media = await FlutterSharingIntent.instance.getInitialSharing();
final media = await ReceiveSharingIntent.instance.getInitialMedia();
await setPendingFromSharedMedia(media);
}
} catch (error) {
@ -1127,8 +1125,9 @@ final shareReceiverInitializerProvider = Provider<void>((ref) {
});
// Handle subsequent shares while app is alive
final StreamSubscription<List<SharedFile>>? streamSub = Platform.isAndroid
? FlutterSharingIntent.instance.getMediaStream().listen((media) {
final StreamSubscription<List<SharedMediaFile>>? streamSub =
Platform.isAndroid
? ReceiveSharingIntent.instance.getMediaStream().listen((media) {
unawaited(
(() async {
try {
@ -1155,24 +1154,14 @@ final shareReceiverInitializerProvider = Provider<void>((ref) {
enum _SharedFileKind { text, file }
_SharedFileKind _sharedFileKind(SharedFile file) {
_SharedFileKind _sharedFileKind(SharedMediaFile file) {
switch (file.type) {
case SharedMediaType.TEXT:
case SharedMediaType.URL:
case SharedMediaType.WEB_SEARCH:
case SharedMediaType.text:
case SharedMediaType.url:
return _SharedFileKind.text;
case SharedMediaType.IMAGE:
case SharedMediaType.VIDEO:
case SharedMediaType.FILE:
return _SharedFileKind.file;
case SharedMediaType.OTHER:
final mimeType = file.mimeType?.toLowerCase();
final value = file.value?.trim();
if (mimeType?.startsWith('text/') == true ||
value?.startsWith('http://') == true ||
value?.startsWith('https://') == true) {
return _SharedFileKind.text;
}
case SharedMediaType.image:
case SharedMediaType.video:
case SharedMediaType.file:
return _SharedFileKind.file;
}
}
@ -1413,7 +1402,7 @@ Future<Directory?> _resolveLegacyPluginSourceRoot({
NativeShareStagingRootResolver? nativeStagingRootResolver,
}) async {
if (Platform.isAndroid) {
// flutter_sharing_intent materializes Android content URIs into the app's
// receive_sharing_intent materializes Android content URIs into the app's
// cache directory, exposed to Dart as Directory.systemTemp.
return Directory.systemTemp;
}

View file

@ -783,14 +783,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.1.3"
flutter_sharing_intent:
dependency: "direct main"
description:
name: flutter_sharing_intent
sha256: "16663db343f444236c15cc8223f4e9e4df2823e5a91f901fda0d46ae78d89287"
url: "https://pub.dev"
source: hosted
version: "2.0.4"
flutter_svg:
dependency: "direct main"
description:
@ -1683,6 +1675,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.1.0"
receive_sharing_intent:
dependency: "direct main"
description:
name: receive_sharing_intent
sha256: "72f229a38f2910029c11d840770c173b27072e348ef3376130b37514bc4556f6"
url: "https://pub.dev"
source: hosted
version: "1.9.0"
record:
dependency: "direct main"
description:

View file

@ -68,7 +68,7 @@ dependencies:
image_picker: ^1.2.3
# Retained on beta: latest stable 11.0.2 conflicts with share_plus via win32 as of 2026-06-10.
file_picker: ^12.0.0-beta.5
flutter_sharing_intent: ^2.0.4
receive_sharing_intent: ^1.9.0
flutter_image_compress: ^2.5.1
path_provider: ^2.1.4
@ -146,7 +146,7 @@ dev_dependencies:
flutter:
config:
enable-swift-package-manager: false
enable-swift-package-manager: true
uses-material-design: true
generate: true
# Localization

View file

@ -9,7 +9,7 @@ import 'package:dio/dio.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_sharing_intent/model/sharing_file.dart';
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
import 'package:path/path.dart' as p;
import 'package:drift/native.dart';
@ -49,14 +49,14 @@ void main() {
test('maps shared text and URLs into composer text', () {
final payload = SharedPayload.fromSharedFiles([
SharedFile(
value: ' hello from another app ',
type: SharedMediaType.TEXT,
SharedMediaFile(
path: ' hello from another app ',
type: SharedMediaType.text,
mimeType: 'text/plain',
),
SharedFile(
value: 'https://example.com/article',
type: SharedMediaType.URL,
SharedMediaFile(
path: 'https://example.com/article',
type: SharedMediaType.url,
),
]);
@ -69,19 +69,19 @@ void main() {
test('maps shared files, photos, and videos into file paths', () {
final payload = SharedPayload.fromSharedFiles([
SharedFile(
value: 'file:///tmp/shared%20photo.jpg',
type: SharedMediaType.IMAGE,
SharedMediaFile(
path: 'file:///tmp/shared%20photo.jpg',
type: SharedMediaType.image,
mimeType: 'image/jpeg',
),
SharedFile(
value: '/tmp/movie.mp4',
type: SharedMediaType.VIDEO,
SharedMediaFile(
path: '/tmp/movie.mp4',
type: SharedMediaType.video,
mimeType: 'video/mp4',
),
SharedFile(
value: '/tmp/doc.pdf',
type: SharedMediaType.FILE,
SharedMediaFile(
path: '/tmp/doc.pdf',
type: SharedMediaType.file,
mimeType: 'application/pdf',
),
]);
@ -96,14 +96,14 @@ void main() {
test('merges Android multi-file share text into composer text', () {
final payload = SharedPayload.fromSharedFiles([
SharedFile(
value: '/tmp/photo.jpg',
type: SharedMediaType.IMAGE,
SharedMediaFile(
path: '/tmp/photo.jpg',
type: SharedMediaType.image,
mimeType: 'image/jpeg',
),
SharedFile(
value: '/tmp/document.pdf',
type: SharedMediaType.FILE,
SharedMediaFile(
path: '/tmp/document.pdf',
type: SharedMediaType.file,
mimeType: 'application/pdf',
),
], extraText: ' shared caption ');
@ -114,19 +114,19 @@ void main() {
test('deduplicates iOS messages and malformed media values', () {
final payload = SharedPayload.fromSharedFiles([
SharedFile(
value: '/tmp/one.jpg',
type: SharedMediaType.IMAGE,
SharedMediaFile(
path: '/tmp/one.jpg',
type: SharedMediaType.image,
message: 'caption',
),
SharedFile(
value: '/tmp/two.jpg',
type: SharedMediaType.IMAGE,
SharedMediaFile(
path: '/tmp/two.jpg',
type: SharedMediaType.image,
message: 'caption',
),
SharedFile(value: '', type: SharedMediaType.FILE),
SharedFile(value: ' ', type: SharedMediaType.TEXT),
SharedFile(value: '/tmp/two.jpg', type: SharedMediaType.IMAGE),
SharedMediaFile(path: '', type: SharedMediaType.file),
SharedMediaFile(path: ' ', type: SharedMediaType.text),
SharedMediaFile(path: '/tmp/two.jpg', type: SharedMediaType.image),
]);
expect(payload.text, 'caption');
@ -148,10 +148,10 @@ void main() {
});
final payload = SharedPayload.fromSharedFiles([
SharedFile(
value: '/tmp/movie.mp4',
SharedMediaFile(
path: '/tmp/movie.mp4',
thumbnail: thumbnail.path,
type: SharedMediaType.VIDEO,
type: SharedMediaType.video,
mimeType: 'video/mp4',
),
]);