diff options
7 files changed, 26 insertions, 28 deletions
diff --git a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt index bac555233..52b4daa30 100644 --- a/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt +++ b/modules/expo-bluesky-swiss-army/android/src/main/java/expo/modules/blueskyswissarmy/referrer/ExpoBlueskyReferrerModule.kt @@ -23,7 +23,7 @@ class ExpoBlueskyReferrerModule : Module() { activityReferrer = appContext.currentActivity?.referrer } - AsyncFunction("getReferrerInfoAsync") { + Function("getReferrerInfo") { val intentReferrer = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { intent?.getParcelableExtra(Intent.EXTRA_REFERRER, Uri::class.java) @@ -40,7 +40,7 @@ class ExpoBlueskyReferrerModule : Module() { "hostname" to intentReferrer.host, ) intent = null - return@AsyncFunction res + return@Function res } // In all other cases, we'll just record the app that sent the intent. @@ -52,10 +52,10 @@ class ExpoBlueskyReferrerModule : Module() { "hostname" to (activityReferrer?.host ?: ""), ) activityReferrer = null - return@AsyncFunction res + return@Function res } - return@AsyncFunction null + return@Function null } AsyncFunction("getGooglePlayReferrerInfoAsync") { promise: Promise -> diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts index ec2bcb57d..795c6146c 100644 --- a/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.android.ts @@ -8,6 +8,6 @@ export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo return NativeModule.getGooglePlayReferrerInfoAsync() } -export function getReferrerInfoAsync(): Promise<ReferrerInfo | null> { - return NativeModule.getReferrerInfoAsync() +export function getReferrerInfo(): Promise<ReferrerInfo | null> { + return NativeModule.getReferrerInfo() } diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts index 2bf1497a0..e76893d30 100644 --- a/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.ios.ts @@ -6,7 +6,7 @@ export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo throw new NotImplementedError() } -export function getReferrerInfoAsync(): Promise<ReferrerInfo | null> { +export function getReferrerInfo(): ReferrerInfo | null { const referrer = SharedPrefs.getString('referrer') if (referrer) { SharedPrefs.removeValue('referrer') @@ -19,7 +19,7 @@ export function getReferrerInfoAsync(): Promise<ReferrerInfo | null> { } catch (e) { return { referrer, - hostname: undefined, + hostname: referrer, } } } diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.ts index a60f7b6db..ac594402b 100644 --- a/modules/expo-bluesky-swiss-army/src/Referrer/index.ts +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.ts @@ -5,6 +5,6 @@ export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo throw new NotImplementedError() } -export function getReferrerInfoAsync(): Promise<ReferrerInfo | null> { +export function getReferrerInfo(): ReferrerInfo | null { throw new NotImplementedError() } diff --git a/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts b/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts index c092a67e7..cfd42642d 100644 --- a/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts +++ b/modules/expo-bluesky-swiss-army/src/Referrer/index.web.ts @@ -7,7 +7,7 @@ export function getGooglePlayReferrerInfoAsync(): Promise<GooglePlayReferrerInfo throw new NotImplementedError() } -export async function getReferrerInfoAsync(): Promise<ReferrerInfo | null> { +export function getReferrerInfo(): ReferrerInfo | null { if ( Platform.OS === 'web' && // for ssr diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 8c815a3fe..9e9b49443 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -771,15 +771,14 @@ function logModuleInitTime() { }) if (isWeb) { - Referrer.getReferrerInfoAsync().then(info => { - if (info && info.hostname !== 'bsky.app') { - logEvent('deepLink:referrerReceived', { - to: window.location.href, - referrer: info?.referrer, - hostname: info?.hostname, - }) - } - }) + const referrerInfo = Referrer.getReferrerInfo() + if (referrerInfo && referrerInfo.hostname !== 'bsky.app') { + logEvent('deepLink:referrerReceived', { + to: window.location.href, + referrer: referrerInfo?.referrer, + hostname: referrerInfo?.hostname, + }) + } } if (__DEV__) { diff --git a/src/lib/hooks/useIntentHandler.ts b/src/lib/hooks/useIntentHandler.ts index 3235e1a6a..460df3753 100644 --- a/src/lib/hooks/useIntentHandler.ts +++ b/src/lib/hooks/useIntentHandler.ts @@ -18,15 +18,14 @@ export function useIntentHandler() { React.useEffect(() => { const handleIncomingURL = (url: string) => { - Referrer.getReferrerInfoAsync().then(info => { - if (info && info.hostname !== 'bsky.app') { - logEvent('deepLink:referrerReceived', { - to: url, - referrer: info?.referrer, - hostname: info?.hostname, - }) - } - }) + const referrerInfo = Referrer.getReferrerInfo() + if (referrerInfo && referrerInfo.hostname !== 'bsky.app') { + logEvent('deepLink:referrerReceived', { + to: url, + referrer: referrerInfo?.referrer, + hostname: referrerInfo?.hostname, + }) + } // We want to be able to support bluesky:// deeplinks. It's unnatural for someone to use a deeplink with three // slashes, like bluesky:///intent/follow. However, supporting just two slashes causes us to have to take care |