From 1cd297c9ad07aa1ff090e6ac1f0dc6828206d943 Mon Sep 17 00:00:00 2001 From: Gerzon Z Date: Thu, 29 Jul 2021 15:28:42 -0400 Subject: [PATCH] Add message parser to profile view and db --- app/constants/settings.js | 3 + app/i18n/locales/en.json | 1 + app/lib/database/model/Message.js | 2 + app/views/ProfileView/index.js | 52 ++++++--- ios/Pods/Pods.xcodeproj/project.pbxproj | 127 ++++++++++++++++++++- ios/RocketChatRN.xcodeproj/project.pbxproj | 4 +- package.json | 1 + yarn.lock | 5 + 8 files changed, 176 insertions(+), 19 deletions(-) diff --git a/app/constants/settings.js b/app/constants/settings.js index 14ad8fb36..312487ebe 100644 --- a/app/constants/settings.js +++ b/app/constants/settings.js @@ -202,5 +202,8 @@ export default { }, Jitsi_Enable_Channels: { type: 'valuesAsBoolean' + }, + Accounts_Default_User_Preferences_enableMessageParserEarlyAdoption: { + type: 'valueAsBoolean' } }; diff --git a/app/i18n/locales/en.json b/app/i18n/locales/en.json index 194031660..157d12286 100644 --- a/app/i18n/locales/en.json +++ b/app/i18n/locales/en.json @@ -220,6 +220,7 @@ "email": "e-mail", "Empty_title": "Empty title", "Enable_Auto_Translate": "Enable Auto-Translate", + "Enable_Message_Parser_Early_Adoption": "Enable message parser early adoption", "Enable_notifications": "Enable notifications", "Encrypted": "Encrypted", "Encrypted_message": "Encrypted message", diff --git a/app/lib/database/model/Message.js b/app/lib/database/model/Message.js index 52cf63f0c..5904c2076 100644 --- a/app/lib/database/model/Message.js +++ b/app/lib/database/model/Message.js @@ -83,4 +83,6 @@ export default class Message extends Model { @field('e2e') e2e; @field('tshow') tshow; + + @field('md') md; } diff --git a/app/views/ProfileView/index.js b/app/views/ProfileView/index.js index 7e97422df..ca440adbd 100644 --- a/app/views/ProfileView/index.js +++ b/app/views/ProfileView/index.js @@ -31,6 +31,7 @@ import { themes } from '../../constants/colors'; import { withTheme } from '../../theme'; import { getUserSelector } from '../../selectors/login'; import SafeAreaView from '../../containers/SafeAreaView'; +import SwitchContainer from '../RoomInfoEditView/SwitchContainer'; class ProfileView extends React.Component { static navigationOptions = ({ navigation, isMasterDetail }) => { @@ -54,22 +55,28 @@ class ProfileView extends React.Component { Accounts_AllowRealNameChange: PropTypes.bool, Accounts_AllowUserAvatarChange: PropTypes.bool, Accounts_AllowUsernameChange: PropTypes.bool, + Accounts_enableMessageParserEarlyAdoption: PropTypes.bool, Accounts_CustomFields: PropTypes.string, setUser: PropTypes.func, theme: PropTypes.string } - state = { - saving: false, - name: null, - username: null, - email: null, - newPassword: null, - currentPassword: null, - avatarUrl: null, - avatar: {}, - avatarSuggestions: {}, - customFields: {} + constructor(props) { + super(props); + const { Accounts_enableMessageParserEarlyAdoption } = this.props; + this.state = { + saving: false, + name: null, + username: null, + email: null, + newPassword: null, + currentPassword: null, + avatarUrl: null, + avatar: {}, + avatarSuggestions: {}, + customFields: {}, + enableMessageParser: Accounts_enableMessageParserEarlyAdoption + }; } async componentDidMount() { @@ -166,7 +173,7 @@ class ProfileView extends React.Component { this.setState({ saving: true }); const { - name, username, email, newPassword, currentPassword, avatar, customFields + name, username, email, newPassword, currentPassword, avatar, customFields, enableMessageParser } = this.state; const { user, setUser } = this.props; const params = {}; @@ -423,6 +430,11 @@ class ProfileView extends React.Component { } } + toggleEnableMessageParserEarlyAdoption = (value) => { + // logEvent(events.RI_EDIT_TOGGLE_SYSTEM_MSG); + this.setState({ enableMessageParser: value }); + } + logoutOtherLocations = () => { logEvent(events.PL_OTHER_LOCATIONS); showConfirmationAlert({ @@ -442,7 +454,7 @@ class ProfileView extends React.Component { render() { const { - name, username, email, newPassword, avatarUrl, customFields, avatar, saving + name, username, email, newPassword, avatarUrl, customFields, avatar, saving, enableMessageParser } = this.state; const { user, @@ -452,7 +464,8 @@ class ProfileView extends React.Component { Accounts_AllowRealNameChange, Accounts_AllowUserAvatarChange, Accounts_AllowUsernameChange, - Accounts_CustomFields + Accounts_CustomFields, + Accounts_enableMessageParserEarlyAdoption } = this.props; return ( @@ -538,6 +551,16 @@ class ProfileView extends React.Component { testID='profile-view-new-password' theme={theme} /> + this.setState({ enableMessageParser: value })} + labelContainerStyle={styles.hideSystemMessages} + leftLabelStyle={styles.systemMessagesLabel} + /> {this.renderCustomFields()} ({ Accounts_AllowUserAvatarChange: state.settings.Accounts_AllowUserAvatarChange, Accounts_AllowUsernameChange: state.settings.Accounts_AllowUsernameChange, Accounts_CustomFields: state.settings.Accounts_CustomFields, + Accounts_enableMessageParserEarlyAdoption: state.settings.Accounts_Default_User_Preferences_enableMessageParserEarlyAdoption, baseUrl: state.server.server }); diff --git a/ios/Pods/Pods.xcodeproj/project.pbxproj b/ios/Pods/Pods.xcodeproj/project.pbxproj index d79c2b5de..21f1e2ad9 100644 --- a/ios/Pods/Pods.xcodeproj/project.pbxproj +++ b/ios/Pods/Pods.xcodeproj/project.pbxproj @@ -27903,10 +27903,17 @@ isa = PBXNativeTarget; buildConfigurationList = F81785C975EC4B13D41AD12DB0FD45F4 /* Build configuration list for PBXNativeTarget "FBReactNativeSpec" */; buildPhases = ( +<<<<<<< Updated upstream 8CD73E24A416482310BBB269007E9E14 /* Headers */, A42E9530A98E0D506CF859F67001A8D6 /* [CP-User] Generate Specs */, C8935F11AC9EE2D5F5BB6D52AE2EB925 /* Sources */, A4475EB91C5C44D2A349A2ECD6B17401 /* Frameworks */, +======= + 39F2883A717B6D2F8D4BAFE8679E7F1D /* Headers */, + 91FBF340993B4C09427008A98480F368 /* [CP-User] Generate Specs */, + DD8D6945B600427BB34E08C076BC22B6 /* Sources */, + 5B6C5E8708BE022B93EC8821E8564DA3 /* Frameworks */, +>>>>>>> Stashed changes ); buildRules = ( ); @@ -28735,8 +28742,8 @@ BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1240; - LastUpgradeCheck = 1240; + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -28970,7 +28977,46 @@ shellPath = /bin/sh; shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/react_native_simple_crypto/react-native-simple-crypto.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/react_native_simple_crypto/react-native-simple-crypto-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; }; +<<<<<<< Updated upstream 1823C66040CEB06687F1EF0782B7BF34 /* Copy generated compatibility header */ = { +======= + 8A457D31C71892981F1B9D17D2EAAD44 /* [CP] Copy dSYMs */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/hermes-engine/destroot/Library/Frameworks/iphoneos/hermes.framework.dSYM", + ); + name = "[CP] Copy dSYMs"; + outputPaths = ( + "${DWARF_DSYM_FOLDER_PATH}/hermes.framework.dSYM", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/hermes-engine/hermes-engine-copy-dsyms.sh\"\n"; + showEnvVarsInLog = 0; + }; + 91FBF340993B4C09427008A98480F368 /* [CP-User] Generate Specs */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "/Users/gerzonc/Documents/GitHub/Rocket.Chat.ReactNative/node_modules/react-native/scripts/../Libraries", + ); + name = "[CP-User] Generate Specs"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/codegen-FBReactNativeSpec.log", + "/Users/gerzonc/Documents/GitHub/Rocket.Chat.ReactNative/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h", + "/Users/gerzonc/Documents/GitHub/Rocket.Chat.ReactNative/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -o pipefail\n\nbash -l -c 'SRCS_DIR=/Users/gerzonc/Documents/GitHub/Rocket.Chat.ReactNative/node_modules/react-native/scripts/../Libraries CODEGEN_MODULES_OUTPUT_DIR=/Users/gerzonc/Documents/GitHub/Rocket.Chat.ReactNative/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec CODEGEN_MODULES_LIBRARY_NAME=FBReactNativeSpec /Users/gerzonc/Documents/GitHub/Rocket.Chat.ReactNative/node_modules/react-native/scripts/generate-specs.sh' 2>&1 | tee \"${SCRIPT_OUTPUT_FILE_0}\""; + }; + 9D9B393568FBF72B52A30BA814D97FA8 /* Copy generated compatibility header */ = { +>>>>>>> Stashed changes isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -28994,6 +29040,7 @@ shellPath = /bin/sh; shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/YogaKit/YogaKit.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/YogaKit/YogaKit-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; }; +<<<<<<< Updated upstream 3E210BA784CEBA16D1C0882FF8BA30F7 /* [CP] Copy XCFrameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -29032,6 +29079,13 @@ }; B2DB92034D1C262AA0075292C432E764 /* [CP] Copy dSYMs */ = { isa = PBXShellScriptBuildPhase; +======= +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 01B4FBCB34E77F767333F283150C6F8A /* Sources */ = { + isa = PBXSourcesBuildPhase; +>>>>>>> Stashed changes buildActionMask = 2147483647; files = ( ); @@ -39014,6 +39068,73 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; +<<<<<<< Updated upstream +======= + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 903A0004D3E6651EFD5D2E16214D101B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; +>>>>>>> Stashed changes SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -40321,7 +40442,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; diff --git a/ios/RocketChatRN.xcodeproj/project.pbxproj b/ios/RocketChatRN.xcodeproj/project.pbxproj index 20db57b97..1db2ab79d 100644 --- a/ios/RocketChatRN.xcodeproj/project.pbxproj +++ b/ios/RocketChatRN.xcodeproj/project.pbxproj @@ -1923,7 +1923,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -1978,7 +1978,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/package.json b/package.json index ae3147925..626495280 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "@react-navigation/drawer": "5.12.5", "@react-navigation/native": "5.9.4", "@react-navigation/stack": "5.14.5", + "@rocket.chat/message-parser": "^0.27.0", "@rocket.chat/react-native-fast-image": "^8.2.0", "@rocket.chat/sdk": "RocketChat/Rocket.Chat.js.SDK#mobile", "@rocket.chat/ui-kit": "0.13.0", diff --git a/yarn.lock b/yarn.lock index e8cd3c094..c943e7a0f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3215,6 +3215,11 @@ resolved "https://registry.yarnpkg.com/@redux-saga/types/-/types-1.1.0.tgz#0e81ce56b4883b4b2a3001ebe1ab298b84237204" integrity sha512-afmTuJrylUU/0OtqzaRkbyYFFNgCF73Bvel/sw90pvGrWIZ+vyoIJqA6eMSoA6+nb443kTmulmBtC9NerXboNg== +"@rocket.chat/message-parser@^0.27.0": + version "0.27.0" + resolved "https://registry.yarnpkg.com/@rocket.chat/message-parser/-/message-parser-0.27.0.tgz#55a07887da649bffb9277aa11ae843a0f5d22895" + integrity sha512-CJxV1N4aSOrTeGKPX+685EeYiG7AMivp8N23SHMZpmbxF36IoVsrdFlxlLRw11Dq8ZMkz4TXAyVk0i4Pvu/psA== + "@rocket.chat/react-native-fast-image@^8.2.0": version "8.2.0" resolved "https://registry.yarnpkg.com/@rocket.chat/react-native-fast-image/-/react-native-fast-image-8.2.0.tgz#4f48858f95f40afcb10b39cee9b1239c150d6c51"