diff --git a/App/Screens/Home/Footer/Footer.tsx b/App/Screens/Home/Footer/Footer.tsx index e41fbcbe..87cc6162 100644 --- a/App/Screens/Home/Footer/Footer.tsx +++ b/App/Screens/Home/Footer/Footer.tsx @@ -15,7 +15,7 @@ // along with Sh**t! I Smoke. If not, see . import React, { useContext } from 'react'; -import { Platform, Share, StyleSheet, View, ViewProps } from 'react-native'; +import { StyleSheet, View, ViewProps } from 'react-native'; import { NavigationInjectedProps } from 'react-navigation'; import { aboutSections } from '../../About'; @@ -56,17 +56,7 @@ export function Footer (props: FooterProps) { function handleShare () { track('HOME_SCREEN_SHARE_CLICK'); - // Share doesn't currently support images on Android, so the text version - if (Platform.OS === 'ios') { - props.navigation.navigate('ShareModal'); - } else { - Share.share({ - title: i18n.t('home_share_title'), - message: i18n.t('home_share_message', { - cigarettes: api!.shootISmoke.cigarettes.toFixed(2) - }) - }); - } + props.navigation.navigate('ShareModal'); } const renderBigButton = () => { diff --git a/App/Screens/ShareScreen/ShareScreen.tsx b/App/Screens/ShareScreen/ShareScreen.tsx index e34e4f1d..577b4147 100644 --- a/App/Screens/ShareScreen/ShareScreen.tsx +++ b/App/Screens/ShareScreen/ShareScreen.tsx @@ -15,9 +15,10 @@ // along with Sh**t! I Smoke. If not, see . import React, { useEffect, createRef } from 'react'; -import { Share, StyleSheet, View } from 'react-native'; +import { Share, StyleSheet, View, Platform } from 'react-native'; import { captureRef } from 'react-native-view-shot'; import { NavigationInjectedProps } from 'react-navigation'; +import * as Sharing from 'expo-sharing'; import { ShareImage } from './ShareImage'; import { i18n } from '../../localization'; @@ -37,9 +38,15 @@ export function ShareScreen (props: ShareScreenProps) { quality: 1 }); - await Share.share({ - url: uri - }); + if (Platform.OS === 'ios') { + await Share.share({ + url: uri + }); + } else { + await Sharing.shareAsync(uri, { + mimeType: 'image/png' + }); + } } catch (error) {} handleDismiss();