From 25c252660a40e108e6f6097942147a950d80bbdb Mon Sep 17 00:00:00 2001 From: Karthikeyan S Date: Wed, 6 Dec 2023 14:33:58 +0530 Subject: [PATCH] fix(share_plus): reset isCalledBack on android correctly after closing share-sheet --- .../dev/fluttercommunity/plus/share/MethodCallHandler.kt | 2 ++ .../fluttercommunity/plus/share/ShareSuccessManager.kt | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/packages/share_plus/share_plus/android/src/main/kotlin/dev/fluttercommunity/plus/share/MethodCallHandler.kt b/packages/share_plus/share_plus/android/src/main/kotlin/dev/fluttercommunity/plus/share/MethodCallHandler.kt index 8329b826e9..23baef6a6d 100644 --- a/packages/share_plus/share_plus/android/src/main/kotlin/dev/fluttercommunity/plus/share/MethodCallHandler.kt +++ b/packages/share_plus/share_plus/android/src/main/kotlin/dev/fluttercommunity/plus/share/MethodCallHandler.kt @@ -40,6 +40,7 @@ internal class MethodCallHandler( isWithResult, ) + manager.signalShareSheetCalledBack() if (!isWithResult) { if (isResultRequested) { result.success("dev.fluttercommunity.plus/share/unavailable") @@ -62,6 +63,7 @@ internal class MethodCallHandler( isWithResult, ) + manager.signalShareSheetCalledBack() if (!isWithResult) { if (isResultRequested) { result.success("dev.fluttercommunity.plus/share/unavailable") diff --git a/packages/share_plus/share_plus/android/src/main/kotlin/dev/fluttercommunity/plus/share/ShareSuccessManager.kt b/packages/share_plus/share_plus/android/src/main/kotlin/dev/fluttercommunity/plus/share/ShareSuccessManager.kt index d73758b486..6f026abe89 100644 --- a/packages/share_plus/share_plus/android/src/main/kotlin/dev/fluttercommunity/plus/share/ShareSuccessManager.kt +++ b/packages/share_plus/share_plus/android/src/main/kotlin/dev/fluttercommunity/plus/share/ShareSuccessManager.kt @@ -34,6 +34,14 @@ internal class ShareSuccessManager(private val context: Context) : ActivityResul } } + /** + * Set the `isCalledBack` to `true`. Must be called in every share-sheet calling method + * before returning. + */ + fun signalShareSheetCalledBack(){ + isCalledBack.set(true) + } + /** * Must be called if `.startActivityForResult` is not available to avoid deadlocking. */