Commit ddb75ea2 by Giang Tran

update code

parent 1d08f5bb
...@@ -132,8 +132,8 @@ android { ...@@ -132,8 +132,8 @@ android {
applicationId "com.dcv.invest" applicationId "com.dcv.invest"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 20 versionCode 23
versionName "2.4" versionName "2.7"
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
} }
splits { splits {
......
...@@ -905,7 +905,7 @@ ...@@ -905,7 +905,7 @@
CODE_SIGN_ENTITLEMENTS = Invest/InvestDebug.entitlements; CODE_SIGN_ENTITLEMENTS = Invest/InvestDebug.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 16; CURRENT_PROJECT_VERSION = 18;
DEVELOPMENT_TEAM = MXZ24GRH48; DEVELOPMENT_TEAM = MXZ24GRH48;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
GCC_PREPROCESSOR_DEFINITIONS = ( GCC_PREPROCESSOR_DEFINITIONS = (
...@@ -914,7 +914,7 @@ ...@@ -914,7 +914,7 @@
); );
INFOPLIST_FILE = Invest/Info.plist; INFOPLIST_FILE = Invest/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 2.3.2; MARKETING_VERSION = 2.3.4;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -939,11 +939,11 @@ ...@@ -939,11 +939,11 @@
CODE_SIGN_ENTITLEMENTS = Invest/Invest.entitlements; CODE_SIGN_ENTITLEMENTS = Invest/Invest.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 16; CURRENT_PROJECT_VERSION = 18;
DEVELOPMENT_TEAM = MXZ24GRH48; DEVELOPMENT_TEAM = MXZ24GRH48;
INFOPLIST_FILE = Invest/Info.plist; INFOPLIST_FILE = Invest/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 2.3.2; MARKETING_VERSION = 2.3.4;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
......
...@@ -61,13 +61,13 @@ ...@@ -61,13 +61,13 @@
</dict> </dict>
</dict> </dict>
<key>NSCameraUsageDescription</key> <key>NSCameraUsageDescription</key>
<string>Accect connect camera</string> <string>Cho phép truy cp vào máy nh và thư vin để ti nh lên ng dng</string>
<key>NSFaceIDUsageDescription</key> <key>NSFaceIDUsageDescription</key>
<string>Enabling Face ID allows you quick and secure access to your account.</string> <string>Enabling Face ID allows you quick and secure access to your account.</string>
<key>NSLocationWhenInUseUsageDescription</key> <key>NSLocationWhenInUseUsageDescription</key>
<string></string> <string></string>
<key>NSPhotoLibraryUsageDescription</key> <key>NSPhotoLibraryUsageDescription</key>
<string>To upload images</string> <string>Upload nh lên ng dng</string>
<key>UIAppFonts</key> <key>UIAppFonts</key>
<array> <array>
<string>AntDesign.ttf</string> <string>AntDesign.ttf</string>
......
...@@ -64,9 +64,10 @@ const Login = (props) => { ...@@ -64,9 +64,10 @@ const Login = (props) => {
const getLoginByBiometry = async () => { const getLoginByBiometry = async () => {
let loginByBiometry = await AsyncStorage.getItem(KEY.IS_LOGIN_BY_BIOMETRY); let loginByBiometry = await AsyncStorage.getItem(KEY.IS_LOGIN_BY_BIOMETRY);
if (loginByBiometry) { if (loginByBiometry) {
loginByBiometry = JSON.parse(loginByBiometry) loginByBiometry = JSON.parse(loginByBiometry);
setIsShowBiometryLogin(loginByBiometry.isLoginByBiometry); setIsShowBiometryLogin(loginByBiometry.isLoginByBiometry);
loginByBiometry.isLoginByBiometry && Keychain.getSupportedBiometryType({}).then((biometryType) => { loginByBiometry.isLoginByBiometry &&
Keychain.getSupportedBiometryType({}).then((biometryType) => {
setBiometryType(biometryType); setBiometryType(biometryType);
}); });
} }
...@@ -100,21 +101,23 @@ const Login = (props) => { ...@@ -100,21 +101,23 @@ const Login = (props) => {
}; };
const credentials = await Keychain.getGenericPassword(options); const credentials = await Keychain.getGenericPassword(options);
if (credentials) { if (credentials) {
console.log( console.log('Credentials successfully loaded for user ', credentials);
'Credentials successfully loaded for user ', credentials,
);
onSubmitLogin(credentials.username, credentials.password); onSubmitLogin(credentials.username, credentials.password);
} else { } else {
showAlert( showAlert(
TYPE.ERROR, TYPE.ERROR,
I18n.t('Notification'), I18n.t('Notification'),
I18n.t('HaveNotCredential', {type: biometryType == 'FaceID' ? I18n.t('FaceId') : I18n.t('Fingerprint')}), I18n.t('HaveNotCredential', {
type:
biometryType == 'FaceID'
? I18n.t('FaceId')
: I18n.t('Fingerprint'),
}),
); );
console.log('No credentials stored'); console.log('No credentials stored');
} }
} catch (error) { } catch (error) {
console.log('Keychain couldn\'t be accessed!', error); console.log("Keychain couldn't be accessed!", error);
} }
}; };
const onSubmitLogin = async (email, pass) => { const onSubmitLogin = async (email, pass) => {
...@@ -188,7 +191,7 @@ const Login = (props) => { ...@@ -188,7 +191,7 @@ const Login = (props) => {
<TouchableOpacity <TouchableOpacity
onPress={() => navigate.navigate(CONFIRMEMAIL)} onPress={() => navigate.navigate(CONFIRMEMAIL)}
style={styles.forgotView}> style={styles.forgotView}>
<AppText i18nKey={'ForgotPassword'} style={styles.txtTitle}/> <AppText i18nKey={'ForgotPassword'} style={styles.txtTitle} />
</TouchableOpacity> </TouchableOpacity>
<View <View
...@@ -199,41 +202,46 @@ const Login = (props) => { ...@@ -199,41 +202,46 @@ const Login = (props) => {
<TouchableOpacity <TouchableOpacity
onPress={() => onSubmitLogin(email, pass)} onPress={() => onSubmitLogin(email, pass)}
style={styles.wrapLogin}> style={styles.wrapLogin}>
<AppText i18nKey={'Login'} style={styles.txtLogin}/> <AppText i18nKey={'Login'} style={styles.txtLogin} />
<Image source={R.images.iconRight1} style={styles.imgIcon}/> <Image source={R.images.iconRight1} style={styles.imgIcon} />
</TouchableOpacity> </TouchableOpacity>
{isShowBiometryLogin ? {isShowBiometryLogin ? (
<View style={{flexDirection: 'row', marginTop: WIDTHXD(70)}}> <View style={{flexDirection: 'row', marginTop: WIDTHXD(70)}}>
{biometryType == 'FaceID' ? {biometryType == 'FaceID' ? (
<TouchableOpacity <TouchableOpacity
onPress={() => { onPress={() => {
getCredentialInfo(); getCredentialInfo();
}}> }}>
<Image source={R.images.iconFaceId} style={[styles.imgIconBiometry, {tintColor: R.colors.main}]}/> <Image
source={R.images.iconFaceId}
style={[styles.imgIconBiometry, {tintColor: R.colors.main}]}
/>
</TouchableOpacity> </TouchableOpacity>
: ) : (
<TouchableOpacity <TouchableOpacity
onPress={() => { onPress={() => {
getCredentialInfo(); getCredentialInfo();
}}> }}>
<Image source={R.images.fingerprint} style={styles.imgIconBiometry}/> <Image
source={R.images.fingerprint}
style={styles.imgIconBiometry}
/>
</TouchableOpacity> </TouchableOpacity>
)}
}
</View> </View>
: null} ) : null}
<View style={styles.row}> <View style={styles.row}>
<AppText i18nKey={'Have_account'} style={styles.txtTitle}/> <AppText i18nKey={'Have_account'} style={styles.txtTitle} />
<TouchableOpacity <TouchableOpacity
onPress={() => { onPress={() => {
navigation.navigate('REGISTOR'); navigation.navigate('REGISTOR');
}}> }}>
<AppText i18nKey={'Register'} style={styles.txtRegistor}/> <AppText i18nKey={'Register'} style={styles.txtRegistor} />
</TouchableOpacity> </TouchableOpacity>
</View> </View>
</View> </View>
<View style={{height: 100}}/> <View style={{height: 100}} />
</View> </View>
); );
}; };
......
...@@ -38,6 +38,7 @@ const FirebaseNotification = (props) => { ...@@ -38,6 +38,7 @@ const FirebaseNotification = (props) => {
const unsubscribe = messaging().onMessage(async (remoteMessage) => { const unsubscribe = messaging().onMessage(async (remoteMessage) => {
console.log('A new FCM message arrived!', remoteMessage.data); console.log('A new FCM message arrived!', remoteMessage.data);
const {action_type, body, title, record_id} = remoteMessage.data; const {action_type, body, title, record_id} = remoteMessage.data;
if (action_type == 'REDIRECT') {
props.showNotificaton({ props.showNotificaton({
title, title,
content: body, content: body,
...@@ -45,6 +46,15 @@ const FirebaseNotification = (props) => { ...@@ -45,6 +46,15 @@ const FirebaseNotification = (props) => {
id_record: record_id, id_record: record_id,
link: remoteMessage.data?.redirect_to, link: remoteMessage.data?.redirect_to,
}); });
} else {
props.showNotificaton({
title,
content: body,
screen: convertScreen(action_type),
id_record: record_id,
link: null,
});
}
if (action_type != 'CUSTOMER_NEWS') refetchDataUser(); if (action_type != 'CUSTOMER_NEWS') refetchDataUser();
}); });
......
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