mirror of
https://github.com/ecency/ecency-mobile.git
synced 2024-12-20 11:51:52 +03:00
commit
a9c08de51e
@ -92,6 +92,11 @@
|
||||
android:host="ecency.com"
|
||||
android:path="/signup"
|
||||
/>
|
||||
<data
|
||||
android:scheme="https"
|
||||
android:host="ecency.com"
|
||||
android:path="/purchase"
|
||||
/>
|
||||
</intent-filter>
|
||||
<intent-filter android:label="Ecency" >
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
@ -827,4 +827,4 @@ SPEC CHECKSUMS:
|
||||
|
||||
PODFILE CHECKSUM: 0282022703ad578ab2d9afbf3147ba3b373b4311
|
||||
|
||||
COCOAPODS: 1.11.2
|
||||
COCOAPODS: 1.11.3
|
||||
|
@ -21,7 +21,6 @@ import { Modal } from '../modal';
|
||||
// Styles
|
||||
import styles from './postBoostStyles';
|
||||
import { OptionsModal } from '../atoms';
|
||||
import { deepLinkParser } from '../../utils/deepLinkParser';
|
||||
import postUrlParser from '../../utils/postUrlParser';
|
||||
|
||||
class BoostPostScreen extends PureComponent {
|
||||
|
@ -585,7 +585,8 @@
|
||||
},
|
||||
"deep_link": {
|
||||
"no_existing_user": "No existing user",
|
||||
"no_existing_post": "No existing post"
|
||||
"no_existing_post": "No existing post",
|
||||
"invalid_link":"Url is invalid, you may try again with valid url or try opening it in web browser"
|
||||
},
|
||||
"search": {
|
||||
"posts": "Posts",
|
||||
|
@ -28,21 +28,8 @@ class InAppPurchaseContainer extends Component {
|
||||
}
|
||||
|
||||
// Component Life Cycle Functions
|
||||
async componentDidMount() {
|
||||
try {
|
||||
await RNIap.initConnection();
|
||||
if (Platform.OS === 'android') {
|
||||
await RNIap.flushFailedPurchasesCachedAsPendingAndroid();
|
||||
}
|
||||
|
||||
this._consumeAvailablePurchases()
|
||||
|
||||
} catch (err) {
|
||||
bugsnagInstance.notify(err);
|
||||
console.warn(err.code, err.message);
|
||||
}
|
||||
this._getItems();
|
||||
this._purchaseUpdatedListener();
|
||||
componentDidMount() {
|
||||
this._initContainer();
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
@ -59,6 +46,35 @@ class InAppPurchaseContainer extends Component {
|
||||
}
|
||||
|
||||
|
||||
_initContainer = async () => {
|
||||
const {
|
||||
intl,
|
||||
} = this.props;
|
||||
try {
|
||||
await RNIap.initConnection();
|
||||
if (Platform.OS === 'android') {
|
||||
await RNIap.flushFailedPurchasesCachedAsPendingAndroid();
|
||||
}
|
||||
|
||||
await this._consumeAvailablePurchases()
|
||||
this._getItems();
|
||||
this._purchaseUpdatedListener();
|
||||
|
||||
} catch (err) {
|
||||
bugsnagInstance.notify(err);
|
||||
console.warn(err.code, err.message);
|
||||
|
||||
Alert.alert(
|
||||
intl.formatMessage({
|
||||
id: 'alert.connection_issues',
|
||||
}),
|
||||
err.message
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//this snippet consumes all previously bought purchases
|
||||
//that are set to be consumed yet
|
||||
_consumeAvailablePurchases = async () => {
|
||||
@ -152,7 +168,7 @@ class InAppPurchaseContainer extends Component {
|
||||
const products = await RNIap.getProducts(skus);
|
||||
console.log(products);
|
||||
products.sort((a, b) => parseFloat(a.price) - parseFloat(b.price)).reverse();
|
||||
await this.setState({ productList: products });
|
||||
this.setState({ productList: products });
|
||||
} catch (err) {
|
||||
bugsnagInstance.notify(err);
|
||||
Alert.alert(
|
||||
@ -163,7 +179,7 @@ class InAppPurchaseContainer extends Component {
|
||||
);
|
||||
}
|
||||
|
||||
await this.setState({ isLoading: false });
|
||||
this.setState({ isLoading: false });
|
||||
};
|
||||
|
||||
_buyItem = async (sku) => {
|
||||
|
@ -91,6 +91,7 @@ import parseAuthUrl from '../../../utils/parseAuthUrl';
|
||||
import { purgeExpiredCache } from '../../../redux/actions/cacheActions';
|
||||
import { fetchSubscribedCommunities } from '../../../redux/actions/communitiesAction';
|
||||
import MigrationHelpers from '../../../utils/migrationHelpers';
|
||||
import { deepLinkParser } from '../../../utils/deepLinkParser';
|
||||
|
||||
// Workaround
|
||||
let previousAppState = 'background';
|
||||
@ -236,93 +237,25 @@ class ApplicationContainer extends Component {
|
||||
};
|
||||
|
||||
_handleDeepLink = async (url = '') => {
|
||||
if (!url || url.indexOf('ShareMedia://') >= 0) return;
|
||||
const { currentAccount, intl } = this.props;
|
||||
|
||||
let routeName;
|
||||
let params;
|
||||
let content;
|
||||
let profile;
|
||||
let keey;
|
||||
const { currentAccount } = this.props;
|
||||
|
||||
const postUrl = postUrlParser(url);
|
||||
const { author, permlink, feedType, tag } = postUrl || {};
|
||||
|
||||
try {
|
||||
if (author) {
|
||||
if (
|
||||
!permlink ||
|
||||
permlink === 'wallet' ||
|
||||
permlink === 'points' ||
|
||||
permlink === 'comments' ||
|
||||
permlink === 'replies' ||
|
||||
permlink === 'posts'
|
||||
) {
|
||||
let deepLinkFilter;
|
||||
if (permlink) {
|
||||
deepLinkFilter = permlink === 'points' ? 'wallet' : permlink;
|
||||
}
|
||||
|
||||
profile = await getUser(author);
|
||||
routeName = ROUTES.SCREENS.PROFILE;
|
||||
params = {
|
||||
username: get(profile, 'name'),
|
||||
reputation: get(profile, 'reputation'),
|
||||
deepLinkFilter, //TODO: process this in profile screen
|
||||
};
|
||||
keey = get(profile, 'name');
|
||||
} else if (permlink === 'communities') {
|
||||
routeName = ROUTES.SCREENS.WEB_BROWSER;
|
||||
params = {
|
||||
url: url,
|
||||
};
|
||||
keey = 'WebBrowser';
|
||||
} else if (permlink) {
|
||||
content = await getPost(author, permlink, currentAccount.name);
|
||||
routeName = ROUTES.SCREENS.POST;
|
||||
params = {
|
||||
content,
|
||||
};
|
||||
keey = `${author}/${permlink}`;
|
||||
}
|
||||
try{
|
||||
const deepLinkData = await deepLinkParser(url, currentAccount);
|
||||
const { routeName, params, key } = deepLinkData || {};
|
||||
|
||||
if (routeName && key) {
|
||||
navigate({
|
||||
routeName,
|
||||
params,
|
||||
key: key,
|
||||
});
|
||||
} else {
|
||||
throw new Error(intl.formatMessage({id:'deep_link.invalid_link'}))
|
||||
}
|
||||
|
||||
if (feedType === 'hot' || feedType === 'trending' || feedType === 'created') {
|
||||
if (!tag) {
|
||||
routeName = ROUTES.SCREENS.TAG_RESULT;
|
||||
} else if (/hive-[1-3]\d{4,6}$/.test(tag)) {
|
||||
routeName = ROUTES.SCREENS.COMMUNITY;
|
||||
} else {
|
||||
routeName = ROUTES.SCREENS.TAG_RESULT;
|
||||
}
|
||||
params = {
|
||||
tag,
|
||||
filter: feedType,
|
||||
};
|
||||
keey = `${feedType}/${tag || ''}`;
|
||||
}
|
||||
} catch (error) {
|
||||
this._handleAlert('deep_link.no_existing_user');
|
||||
}
|
||||
|
||||
if (!routeName) {
|
||||
const { mode, referredUser } = parseAuthUrl(url);
|
||||
if (mode === 'SIGNUP') {
|
||||
routeName = ROUTES.SCREENS.REGISTER;
|
||||
params = {
|
||||
referredUser,
|
||||
};
|
||||
keey = `${mode}/${referredUser || ''}`;
|
||||
}
|
||||
}
|
||||
|
||||
if (routeName && keey) {
|
||||
navigate({
|
||||
routeName,
|
||||
params,
|
||||
key: keey,
|
||||
});
|
||||
} catch(err){
|
||||
this._handleAlert(err.message)
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
_compareAndPromptForUpdate = async () => {
|
||||
|
Loading…
Reference in New Issue
Block a user