Commit 5e5c86bc by Nguyễn Thị Thúy

update version

parent e7ab62e4
......@@ -57,7 +57,7 @@
<key>NSCameraUsageDescription</key>
<string>Accect connect camera</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<string/>
<key>NSPhotoLibraryUsageDescription</key>
<string>To upload images</string>
<key>UIAppFonts</key>
......
......@@ -8,7 +8,8 @@ import {SkypeIndicator} from 'react-native-indicators';
import {enableScreens} from 'react-native-screens';
import NoInternetComponent from './components/NoInternet';
import {getVersion} from 'react-native-device-info';
import DeviceInfo from 'react-native-device-info';
import VersionChecker from './Screens/VersionChecker';
enableScreens();
......@@ -18,7 +19,7 @@ const RootView = (props) => {
}, []);
const checkVersion = (props) => {
const verCurrent = getVersion();
const verCurrent = DeviceInfo.getVersion();
console.log('version current', verCurrent);
};
......@@ -31,6 +32,7 @@ const RootView = (props) => {
<StackNavigation />
</View>
<VersionChecker/>
<NoInternetComponent />
</>
);
......
import React, {useEffect, useState} from 'react';
import {
View,
Text,
Modal,
TouchableOpacity,
StyleSheet,
Image,
TouchableWithoutFeedback,
Linking, Platform,
} from 'react-native';
import R from '../../assets/R';
import {getFontXD, getHeight, getWidth, HEIGHTXD, WIDTHXD} from '../../Config/Functions';
import I18n from '../../helper/i18/i18n';
import DeviceInfo from 'react-native-device-info';
import {getNewestVersionInfo} from '../../apis/Functions/users';
const VersionChecker = (props) => {
const [visible, setVisible] = useState(false);
const [isForceUpdate, setIsForceUpdate] = useState(false);
const [version, setVersion] = useState('1.0');
useEffect(() => {
checkVersion();
}, []);
const checkVersion = async () => {
const verCurrent = DeviceInfo.getVersion();
const res = await getNewestVersionInfo({
platform: Platform.OS,
});
if ((res.data.code = 200 && res.data.data)) {
console.log(res)
if(res.data.data[0].version_name !== verCurrent || res.data.data[0].build.toString() !== DeviceInfo.getBuildNumber) {
setVersion(res.data.data[0].version_name)
setVisible(true)
setIsForceUpdate(res.data.data[0].is_require_update == 0 ? false : true)
}
}
};
const setVisibleModal = (visible, version, isForceUpdate) => {
setVisible(visible);
setVersion(version);
setIsForceUpdate(isForceUpdate);
};
const _renderDivider = () => <View style={styles.dividerStyle}/>;
const onOutsidePressed = () => {
setVisible(false);
};
const onUpdatePressed = async () => {
try {
if (Platform.OS === 'ios') {
Linking.openURL('itms-apps://itunes.apple.com/us/app/id${id1556621903}?mt=8.');
} else {
}
} catch (error) {
}
setVisible(false);
};
const onRequestClose = () => null;
const renderBackdrop = () => {
return (
<View
style={{
backgroundColor: 'rgba(0,0,0,0.30)',
// backgroundColor: 'red',
position: 'absolute',
top: 0,
bottom: 0,
left: 0,
right: 0,
width: getWidth(),
height: getHeight(),
}}
/>
);
};
const cancelUpdate = () => {
setVisible(false);
};
return (
<Modal
onRequestClose={() => onRequestClose()}
transparent
animationType="fade"
style={{position: 'absolute'}}
visible={visible}
>
{renderBackdrop()}
<View pointerEvents="box-none" style={styles.containerStyle}>
<View style={styles.imageUpgradeContainer} zIndex={100}>
<Image
style={[styles.imageUpgradeStyle, {tintColor: R.colors.main}]}/>
</View>
<View style={styles.contentContainerStyle}>
<Text style={styles.titleStyle}>{I18n.t('Update')}</Text>
<Text style={styles.versionLabelStyle}>
{I18n.t('Version')}
{': '}
{version}
</Text>
<Text style={styles.descStyle}>{I18n.t('UpdateDescription')}</Text>
{_renderDivider()}
{isForceUpdate ?
<TouchableOpacity onPress={()=>onUpdatePressed()} style={styles.notNowContainerStyle}>
<Text
style={[styles.textNotNowStyle, {color: R.colors.main}]}>{I18n.t('Update')}</Text>
</TouchableOpacity>
:
<View style={[styles.notNowContainerStyle, {
flexDirection: 'row',
marginHorizontal: WIDTHXD(100),
}]}>
<TouchableOpacity onPress={()=>cancelUpdate()}
style={[styles.btnButton, {paddingRight: WIDTHXD(90)}]}>
<Text
style={[styles.textNotNowStyle, {color: R.colors.color777}]}>{I18n.t('Cancel')}</Text>
</TouchableOpacity>
<View style={styles.dividerStyleVertical}></View>
<TouchableOpacity onPress={()=>onUpdatePressed()}
style={[styles.btnButton, {paddingLeft: WIDTHXD(90)}]}>
<Text
style={[styles.textNotNowStyle, {color: R.colors.main}]}>{I18n.t('Update')}</Text>
</TouchableOpacity>
</View>
}
</View>
</View>
</Modal>
);
};
const styles = StyleSheet.create({
imageUpgradeStyle: {
width: 50,
height: 50,
tintColor: R.colors.primaryColor,
},
imageUpgradeContainer: {
width: 80,
height: 80,
borderRadius: 40,
backgroundColor: 'white',
alignItems: 'center',
justifyContent: 'center',
},
containerStyle: {
flex: 1,
width: getWidth() * 0.8,
alignSelf: 'center',
alignItems: 'center',
justifyContent: 'center',
},
contentContainerStyle: {
marginTop: -40,
paddingTop: 40,
width: getWidth() * 0.9,
backgroundColor: 'white',
alignItems: 'center',
justifyContent: 'center',
borderRadius: 15,
},
logoStyle: {
width: 65,
height: 65,
marginVertical: 20,
},
titleStyle: {
fontWeight: '600',
fontSize: 20,
color: 'black',
paddingHorizontal: 8,
textAlign: 'center',
},
versionLabelStyle: {
fontSize: 14,
color: R.colors.grey600,
marginTop: 5,
marginBottom: 15,
paddingHorizontal: 8,
textAlign: 'center',
},
descStyle: {
fontSize: getFontXD(46),
color: R.colors.grey900,
marginBottom: 20,
paddingHorizontal: 10,
textAlign: 'center',
},
notNowContainerStyle: {
height: HEIGHTXD(160),
width: '100%',
alignItems: 'center',
justifyContent: 'center',
},
btnButton: {
flex: 0,
},
textNotNowStyle: {
fontSize: getFontXD(46),
width: '100%',
textAlign: 'center',
color: R.colors.primaryColor,
},
starContainer: {
flexDirection: 'row',
width: '100%',
justifyContent: 'center',
alignItems: 'center',
height: 45,
},
dividerStyle: {
height: 0.5,
width: '100%',
backgroundColor: R.colors.borderC,
},
dividerStyleVertical: {
height: HEIGHTXD(160),
width: 0.5,
backgroundColor: R.colors.borderC,
},
});
export default VersionChecker;
......@@ -56,3 +56,8 @@ export const updateLangugeApi = async (body) =>
PostData(url.urlUpdateLanguage, body)
.then((res) => res)
.catch((err) => err);
export const getNewestVersionInfo = async (body) =>
GetData(url.urlGetNewestVersionInfo, body)
.then((res) => res)
.catch((err) => err);
......@@ -37,4 +37,5 @@ export default {
urlUpdateInforUser: root + 'api/v1/customers/update-general-info',
urlUpdateLanguage: root + 'api/v1/customers/update-language',
urlGetNewestVersionInfo: root + 'api/v1/settings/version',
};
......@@ -85,6 +85,7 @@ const images = {
iconHistoryMenu: require('./images/iconHistoryMenu1.png'),
iconProfileMenu: require('./images/iconProfileMenu.png'),
iconUpgrade: require('./images/iconUpgrade.png'),
};
export default images;
export default {
greeting: 'Hi!',
home: 'Home',
contact: 'Contact',
setting: 'Setting',
SetLanguage: ' Set language',
MyProfile: 'My Profile',
VerifyAccount: 'Verify account',
Payments: 'Payments',
Rose: 'Rose',
TeamBonus: 'Team bonus',
MyPartner: 'My partner',
Account: 'Account',
Notification: 'Notification',
News: 'News',
Deposit: 'Deposit',
Withdraw: 'Withdraw',
Transfer: 'Transfer',
History: 'History',
NotVerified: 'Not verified',
Verified: 'Verified',
WaitVerification: 'Waiting verification',
AccountWallet: 'Account wallet',
Wallet: 'Wallet',
AccountCQG: 'Account CQG',
WaitOpenCQG: 'Wait open CQG',
OpenAccountCQG: 'Open account CQG',
AccountVerify: 'Account verify',
Profit: 'Profit',
RevenueTeam: 'Revenue team',
RevenueDonors: 'Revenue donors',
Invset: 'Invest',
Contract: 'Contract',
PaymentSetting: 'Payment method setting',
CustomerCare: 'Customer care',
Feedback: 'Feedback',
LegalDocument: 'Legal document',
Setting: 'Setting',
Logout: 'Logout',
SelectPaymentMethod: 'Select Payment Method',
InvestmentDeposit: 'Investment deposit',
ForgotPassword: 'Forgot password',
VerifyOTP: 'Verify OTP',
ChangeNewPassword: 'Change new password',
SendFeedback: 'Send feedback',
GeneralBusiness: 'General business',
Customer: 'Customer',
Partnership: 'Partnership',
AddPaymentMethod: 'Add payment method',
DetailMethod: 'Detail method',
Detail: 'Detail',
DetailVideo: 'Detail video',
NoData: 'No data!',
All: 'All',
PriceTable: 'Price table',
Chart: 'Chart',
Calendar: 'Calendar',
Fullname: 'Full name',
Birth: 'Birth',
Male: 'Male',
Status: 'Status',
Phone: 'Phone',
Enter_Phone: 'Enter phone',
Address: 'Address',
Update: 'Update',
ContactCode: 'Contact code',
TraddingAccountName: 'Tradding account name',
TraddingAccountNumber: 'Tradding account number',
GeneralInformation: 'General information',
Profile: 'Profile',
CustomerAgreement: 'Customer agreement',
BusinessAgreement: 'Business agreement',
PartnershipAgreement: 'Partnership agreement',
Waiting: 'Waiting',
Success: 'Success',
Ok: 'Ok',
Can_not_get_data: "Can't get data",
Search: 'Search',
NullDataSearch: 'Data not found',
greeting: 'Hi!',
home: 'Home',
contact: 'Contact',
setting: 'Setting',
SetLanguage: ' Set language',
MyProfile: 'My Profile',
VerifyAccount: 'Verify account',
Payments: 'Payments',
Rose: 'Rose',
TeamBonus: 'Team bonus',
MyPartner: 'My partner',
Account: 'Account',
Notification: 'Notification',
News: 'News',
Deposit: 'Deposit',
Withdraw: 'Withdraw',
Transfer: 'Transfer',
History: 'History',
NotVerified: 'Not verified',
Verified: 'Verified',
WaitVerification: 'Waiting verification',
AccountWallet: 'Account wallet',
Wallet: 'Wallet',
AccountCQG: 'Account CQG',
WaitOpenCQG: 'Wait open CQG',
OpenAccountCQG: 'Open account CQG',
AccountVerify: 'Account verify',
Profit: 'Profit',
RevenueTeam: 'Revenue team',
RevenueDonors: 'Revenue donors',
Invset: 'Invest',
Contract: 'Contract',
PaymentSetting: 'Payment method setting',
CustomerCare: 'Customer care',
Feedback: 'Feedback',
LegalDocument: 'Legal document',
Setting: 'Setting',
Logout: 'Logout',
SelectPaymentMethod: 'Select Payment Method',
InvestmentDeposit: 'Investment deposit',
ForgotPassword: 'Forgot password',
VerifyOTP: 'Verify OTP',
ChangeNewPassword: 'Change new password',
SendFeedback: 'Send feedback',
GeneralBusiness: 'General business',
Customer: 'Customer',
Partnership: 'Partnership',
AddPaymentMethod: 'Add payment method',
DetailMethod: 'Detail method',
Detail: 'Detail',
DetailVideo: 'Detail video',
NoData: 'No data!',
All: 'All',
PriceTable: 'Price table',
Chart: 'Chart',
Calendar: 'Calendar',
Fullname: 'Full name',
Birth: 'Birth',
Male: 'Male',
Status: 'Status',
Phone: 'Phone',
Enter_Phone: 'Enter phone',
Address: 'Address',
Update: 'Update',
ContactCode: 'Contact code',
TraddingAccountName: 'Tradding account name',
TraddingAccountNumber: 'Tradding account number',
GeneralInformation: 'General information',
Profile: 'Profile',
CustomerAgreement: 'Customer agreement',
BusinessAgreement: 'Business agreement',
PartnershipAgreement: 'Partnership agreement',
Waiting: 'Waiting',
Success: 'Success',
Ok: 'Ok',
Can_not_get_data: 'Can\'t get data',
Search: 'Search',
NullDataSearch: 'Data not found',
Cancel: 'Cancel',
Close: 'Close',
No_Internet: 'No internet',
Check_Internet_Connect: 'Check internet connect',
Retry: 'Retry',
Select_source_image: 'Select the source of the image',
Photo_library: 'Photo library',
Take_photo: 'Take a photo',
EnableCQG: 'Enable CQG',
Request_Open_Account_CQG: 'Request open account CQG',
Waiting_for_Progress: 'Waiting for progress',
PopupVerifyAccount:
'Your account is not verified. Go to account verification?',
PopupOpenCQG: 'Would you like to open a CQG account to make investments?',
Free: 'Free',
Open_account: 'Open account',
Provisional: 'Provisional',
Here: 'Here',
Open_account_demo: 'You can open a demo account',
Features_develop: 'No data!',
Language: 'Language',
Email: 'Email',
Password: 'Password',
Login: 'Login',
Register: 'Register',
Confirm_pass: 'Confirm password',
Code_introduce: 'Code introduce',
Account_already: 'Do you already have an account?',
Have_account: 'Do not have an account?',
Verify_code: 'Verification codes:',
Continue: 'Continue',
Re_send: 'Re send',
Copied: 'Copied!',
Please_fill_in: 'Please fill in ',
RequestFilter: 'Request filter',
FromDate: 'From date:',
ToDate: 'To date:',
Failed: 'Failed',
SelectRequestStatus: 'Select request status',
TopVideo: 'Video watching a lot',
Delete: 'Delete',
SelectBank: 'Select Bank',
Branch: 'Branch',
OwnerAccountName: 'Owner account name',
AccountNumber: 'Account Number',
DeletePaymentMethodConfirm: 'Do you went delete this payment method?',
Forbidden: 'Forbidden',
OwnerAccount: 'Owner Account',
Add: 'Add',
Note_cqg:
'Note: The fee is calculated on a monthly basis and is applied until the end of the day 30/12/2021',
CardType: 'Card type',
BankCode: 'Bank code',
CardNumberOrAccount: 'Card number/Account',
Confirm: 'Confirm',
AmountOfMoney: 'Amount of money',
Note: 'Note',
SourceAccount: 'Source account',
ChooseBeneficiaryAccount: 'Choose the beneficiary account',
BeneficiaryAccount: 'the beneficiary account',
FromWallet: 'From wallet',
FromCQGAccount: 'From CQG account',
SettingPaymentMethodConfirm:
'You have not the payment method. Go to payment method setting?',
EnterEmailRequest: 'Please enter email',
EnterEmail: 'Enter email',
GetVerificationCode: 'Get the verification code',
BackToLogin: 'Back to login',
OTPValidFiveMinute: 'The OTP code is valid for 5 minutes',
EnterNewPassword: 'Please enter a new password',
EnterNewPasswordHint: 'Enter a new password',
ReEnterPassword: 'Reenter password',
ConfirmNewPassword: 'Confirm new password',
ChangePasswordSuccess: 'Change password success',
EnterAllInfo: 'Please complete all information ',
Date: 'Date',
ReviewService: 'Review service of DCV Invest',
VeryBad: 'Very bad',
Bad: 'Bad',
Normal: 'Normal',
Good: 'Good',
VeryGood: 'Very good',
ShareYourFeel: 'Share your feel about service',
UploadImage: 'Upload image',
BonusMoney: 'Bonus money',
Content: 'Content',
CopyLink: 'Copied referral link ',
CardAccount: 'Card account',
FirstLastName: 'First and last name',
Name: 'Name',
PhoneNumber: 'Phone number',
IdentityCard: 'Identity card',
Passport: 'Passport',
CitizenIdentification: 'Citizen identification',
IdentityCardFrontPhoto: 'Photo on front of ID card',
IdentityCitizenCardFrontPhoto: 'Photo on front of ID/Citizen card',
IdentityCardBackPhoto: 'Photo on the back of ID card',
IdentityCitizenCardBackPhoto: 'Photo on the back of ID/Citizen card',
SignPhoto: 'Sign photo',
EnterOTPRequest: 'Please enter OTP code',
OTPInvalid: 'OTP code invalid',
Username: 'Username',
EnterPassword: 'Enter password',
ConfirmPassword: 'Confirm password',
RegisterAccountSuccess: 'Register account success!',
EnterReferralCode: 'Enter a referral code if available',
Male2: 'Male',
Female: 'Female',
Bank: 'Bank',
OwnerAccount2: 'Owner account',
NothingChange: 'Nothing change',
Tradding: 'Tradding',
ContractDescription: 'Contract description',
QualityStandard: 'Quality Standard',
CommodityTransactions: 'Commodity transactions',
CommodityCode: 'Commodity code',
Escrow: 'Escrow',
PositionLimit: 'Position limit',
PaymentMethod: 'Payment method',
TimeTransaction: 'Time transaction',
Time: 'Time',
TransactionSession: 'Transaction session',
MaturityMonth: 'Maturity month',
RegisteredDeliveryDate: 'Registered delivery date',
PriceInfo: 'Price Information',
ListedUnit: 'Listed unit',
PriceStep: 'Price step',
ContactSize: 'Contact size',
PriceRange: 'Price range',
FirstNotifyDate: 'First notify date',
EndlessTransactionDate: 'Endless transaction date',
Finance: 'Finance',
Support: 'Hỗ trợ',
Support_Customer: 'Support Customer',
Price_List: 'Price list',
Time_Transaction: 'Time transaction',
Due_Date: 'Due date',
Cancel: 'Cancel',
Close: 'Close',
No_Internet: 'No internet',
Check_Internet_Connect: 'Check internet connect',
Retry: 'Retry',
Select_source_image: 'Select the source of the image',
Photo_library: 'Photo library',
Take_photo: 'Take a photo',
EnableCQG: 'Enable CQG',
Request_Open_Account_CQG: 'Request open account CQG',
Waiting_for_Progress: 'Waiting for progress',
PopupVerifyAccount:
'Your account is not verified. Go to account verification?',
PopupOpenCQG: 'Would you like to open a CQG account to make investments?',
Free: 'Free',
Open_account: 'Open account',
Provisional: 'Provisional',
Here: 'Here',
Open_account_demo: 'You can open a demo account',
Features_develop: 'No data!',
Language: 'Language',
Email: 'Email',
Password: 'Password',
Login: 'Login',
Register: 'Register',
Confirm_pass: 'Confirm password',
Code_introduce: 'Code introduce',
Account_already: 'Do you already have an account?',
Have_account: 'Do not have an account?',
Verify_code: 'Verification codes:',
Continue: 'Continue',
Re_send: 'Re send',
Copied: 'Copied!',
Please_fill_in: 'Please fill in ',
RequestFilter: 'Request filter',
FromDate: 'From date:',
ToDate: 'To date:',
Failed: 'Failed',
SelectRequestStatus: 'Select request status',
TopVideo: 'Video watching a lot',
Delete: 'Delete',
SelectBank: 'Select Bank',
Branch: 'Branch',
OwnerAccountName: 'Owner account name',
AccountNumber: 'Account Number',
DeletePaymentMethodConfirm: 'Do you went delete this payment method?',
Forbidden: 'Forbidden',
OwnerAccount: 'Owner Account',
Add: 'Add',
Note_cqg:
'Note: The fee is calculated on a monthly basis and is applied until the end of the day 30/12/2021',
CardType: 'Card type',
BankCode: 'Bank code',
CardNumberOrAccount: 'Card number/Account',
Confirm: 'Confirm',
AmountOfMoney: 'Amount of money',
Note: 'Note',
SourceAccount: 'Source account',
ChooseBeneficiaryAccount: 'Choose the beneficiary account',
BeneficiaryAccount: 'the beneficiary account',
FromWallet: 'From wallet',
FromCQGAccount: 'From CQG account',
SettingPaymentMethodConfirm:
'You have not the payment method. Go to payment method setting?',
EnterEmailRequest: 'Please enter email',
EnterEmail: 'Enter email',
GetVerificationCode: 'Get the verification code',
BackToLogin: 'Back to login',
OTPValidFiveMinute: 'The OTP code is valid for 5 minutes',
EnterNewPassword: 'Please enter a new password',
EnterNewPasswordHint: 'Enter a new password',
ReEnterPassword: 'Reenter password',
ConfirmNewPassword: 'Confirm new password',
ChangePasswordSuccess: 'Change password success',
EnterAllInfo: 'Please complete all information ',
Date: 'Date',
ReviewService: 'Review service of DCV Invest',
VeryBad: 'Very bad',
Bad: 'Bad',
Normal: 'Normal',
Good: 'Good',
VeryGood: 'Very good',
ShareYourFeel: 'Share your feel about service',
UploadImage: 'Upload image',
BonusMoney: 'Bonus money',
Content: 'Content',
CopyLink: 'Copied referral link ',
CardAccount: 'Card account',
FirstLastName: 'First and last name',
Name: 'Name',
PhoneNumber: 'Phone number',
IdentityCard: 'Identity card',
Passport: 'Passport',
CitizenIdentification: 'Citizen identification',
IdentityCardFrontPhoto: 'Photo on front of ID card',
IdentityCitizenCardFrontPhoto: 'Photo on front of ID/Citizen card',
IdentityCardBackPhoto: 'Photo on the back of ID card',
IdentityCitizenCardBackPhoto: 'Photo on the back of ID/Citizen card',
SignPhoto: 'Sign photo',
EnterOTPRequest: 'Please enter OTP code',
OTPInvalid: 'OTP code invalid',
Username: 'Username',
EnterPassword: 'Enter password',
ConfirmPassword: 'Confirm password',
RegisterAccountSuccess: 'Register account success!',
EnterReferralCode: 'Enter a referral code if available',
Male2: 'Male',
Female: 'Female',
Bank: 'Bank',
OwnerAccount2: 'Owner account',
NothingChange: 'Nothing change',
Tradding: 'Tradding',
ContractDescription: 'Contract description',
QualityStandard: 'Quality Standard',
CommodityTransactions: 'Commodity transactions',
CommodityCode: 'Commodity code',
Escrow: 'Escrow',
PositionLimit: 'Position limit',
PaymentMethod: 'Payment method',
TimeTransaction: 'Time transaction',
Time: 'Time',
TransactionSession: 'Transaction session',
MaturityMonth: 'Maturity month',
RegisteredDeliveryDate: 'Registered delivery date',
PriceInfo: 'Price Information',
ListedUnit: 'Listed unit',
PriceStep: 'Price step',
ContactSize: 'Contact size',
PriceRange: 'Price range',
FirstNotifyDate: 'First notify date',
EndlessTransactionDate: 'Endless transaction date',
Finance: 'Finance',
Support: 'Hỗ trợ',
Support_Customer: 'Support Customer',
Price_List: 'Price list',
Time_Transaction: 'Time transaction',
Due_Date: 'Due date',
Version: 'Version',
UpdateDescription: 'A new version of DCVInvest is available. Update now to continue using and experiencing the latest system features!',
};
......@@ -220,4 +220,6 @@ export default {
Time_Transaction: 'Thời gian GD',
Due_Date: 'Lịch đáo hạn',
Enter_Phone: 'Nhập số điện thoại',
Version: 'Phiên bản',
UpdateDescription: 'Đã có phiên bản DCVInvest mới. Cập nhật ngay để tiếp tục sử dụng và trải nghiệm những tính năng mới nhất của hệ thống!',
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment