diff --git a/ios/BigBlueButton Tablet.xcodeproj/project.pbxproj b/ios/BigBlueButton Tablet.xcodeproj/project.pbxproj index 1381310..6a9c079 100644 --- a/ios/BigBlueButton Tablet.xcodeproj/project.pbxproj +++ b/ios/BigBlueButton Tablet.xcodeproj/project.pbxproj @@ -676,7 +676,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "BigBlueButton Broadcast/BigBlueButton Broadcast.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 18; + CURRENT_PROJECT_VERSION = 19; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = N69T9W23TC; ENABLE_BITCODE = NO; @@ -691,7 +691,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.3; + MARKETING_VERSION = 1.4; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = "org.bigbluebutton.tablet.BigBlueButton-Broadcast"; @@ -718,7 +718,7 @@ CODE_SIGN_ENTITLEMENTS = "BigBlueButton Broadcast/BigBlueButton Broadcast.entitlements"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 18; + CURRENT_PROJECT_VERSION = 19; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = N69T9W23TC; ENABLE_BITCODE = NO; @@ -733,7 +733,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.3; + MARKETING_VERSION = 1.4; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = "org.bigbluebutton.tablet.BigBlueButton-Broadcast"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/ios/Podfile.lock b/ios/Podfile.lock index cbf847d..f938df7 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -368,6 +368,8 @@ PODS: - React-perflogger (= 0.69.4) - RNCAsyncStorage (1.17.9): - React-Core + - RNDeviceInfo (10.3.0): + - React-Core - RNGestureHandler (2.5.0): - React-Core - RNLanguages (3.0.2): @@ -472,6 +474,7 @@ DEPENDENCIES: - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" + - RNDeviceInfo (from `../node_modules/react-native-device-info`) - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNLanguages (from `../node_modules/react-native-languages`) - RNReanimated (from `../node_modules/react-native-reanimated`) @@ -573,6 +576,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" RNCAsyncStorage: :path: "../node_modules/@react-native-async-storage/async-storage" + RNDeviceInfo: + :path: "../node_modules/react-native-device-info" RNGestureHandler: :path: "../node_modules/react-native-gesture-handler" RNLanguages: @@ -637,6 +642,7 @@ SPEC CHECKSUMS: React-runtimeexecutor: 61ee22a8cdf8b6bb2a7fb7b4ba2cc763e5285196 ReactCommon: 8f67bd7e0a6afade0f20718f859dc8c2275f2e83 RNCAsyncStorage: b2489b49e38c85e10ed45a888d13a2a4c7b32ea1 + RNDeviceInfo: 4701f0bf2a06b34654745053db0ce4cb0c53ada7 RNGestureHandler: bad495418bcbd3ab47017a38d93d290ebd406f50 RNLanguages: 962e562af0d34ab1958d89bcfdb64fafc37c513e RNReanimated: 7faa787e8d4493fbc95fab2ad331fa7625828cfa diff --git a/package.json b/package.json index 0432cfb..7640460 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "i18next": "^21.9.1", "react": "18.0.0", "react-native": "0.69.4", + "react-native-device-info": "^10.3.0", "react-native-gesture-handler": "^2.5.0", "react-native-languages": "^3.0.2", "react-native-modalize": "^2.1.1", diff --git a/react-native/app/pages/list_portals/component.tsx b/react-native/app/pages/list_portals/component.tsx index f3f4c27..94e760d 100644 --- a/react-native/app/pages/list_portals/component.tsx +++ b/react-native/app/pages/list_portals/component.tsx @@ -9,6 +9,7 @@ import { ItemList, TextButtonOpen, TextWithoutPortal, + TextVersionInfo, WrapperItemListText, WrapperListContainer, WrapperViewAdd, @@ -25,8 +26,13 @@ import i18next from 'i18next'; import {initTranslation} from '../../translations/index'; import {TouchableOpacity} from 'react-native'; import {createNewPortal} from '../utils/createNewPortal'; +import DeviceInfo from 'react-native-device-info'; export const ListPortals = ({navigation}: IListPortalsDTO) => { + const version = DeviceInfo.getVersion(); + const buildNum = DeviceInfo.getBuildNumber(); + const versionString = `${version} (#${buildNum})`; + initTranslation(); const icon = ( @@ -175,6 +181,7 @@ export const ListPortals = ({navigation}: IListPortalsDTO) => { )} + V{versionString} ); }; diff --git a/react-native/app/pages/list_portals/styles.ts b/react-native/app/pages/list_portals/styles.ts index 1f3e650..142bafd 100644 --- a/react-native/app/pages/list_portals/styles.ts +++ b/react-native/app/pages/list_portals/styles.ts @@ -82,6 +82,14 @@ export const TextWithoutPortal = styled.Text` display: flex; `; +export const TextVersionInfo = styled.Text` + margin-top: 100px; + color: #555; + font-size: 12px; + text-align: center; + display: flex; +`; + export const BlockTextWithoutPortal = styled.View` flex-direction: row; padding: 20px; diff --git a/react-native/app/routes/component.tsx b/react-native/app/routes/component.tsx index b79b5c3..c187b50 100644 --- a/react-native/app/routes/component.tsx +++ b/react-native/app/routes/component.tsx @@ -8,7 +8,7 @@ import i18next from 'i18next'; import {createDrawerNavigator} from '@react-navigation/drawer'; import SdkContainer from '../../bootstrap/sdk/container'; import {initTranslation} from '../translations/index'; -import { Alert, Linking } from 'react-native'; +import { Alert, Linking, Text } from 'react-native'; import { createNewPortal } from '../pages/utils/createNewPortal'; import { emitter } from '../emitter/emitter'; import { IPortal } from '../pages/utils/types'; @@ -34,7 +34,11 @@ const DeepLink = ()=>{ return Alert.alert(i18next.t('mobileApp.portals.handleWithoutURL')) } - const linkParts = linkWithoutScheme.split('/https://'); + // + + + let linkParts = linkWithoutScheme.split('/' + encodeURIComponent("https://")); + let portalName = linkParts[0]; let portalLink = linkParts[1]; @@ -144,29 +148,31 @@ export const Routes = () => { }, []); return ( - - - - - {portals && portals.length - ? portals.map((item: { name: React.Key | null | undefined; url: string; }) => { - return ( - } - /> - ); - }) - : null} - - + <> + + + + + {portals && portals.length + ? portals.map((item: { name: React.Key | null | undefined; url: string; }) => { + return ( + } + /> + ); + }) + : null} + + + ); }; diff --git a/yarn.lock b/yarn.lock index 4973484..faced8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5966,6 +5966,11 @@ react-native-codegen@^0.69.1: jscodeshift "^0.13.1" nullthrows "^1.1.1" +react-native-device-info@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-10.3.0.tgz#6bab64d84d3415dd00cc446c73ec5e2e61fddbe7" + integrity sha512-/ziZN1sA1REbJTv5mQZ4tXggcTvSbct+u5kCaze8BmN//lbxcTvWsU6NQd4IihLt89VkbX+14IGc9sVApSxd/w== + react-native-gesture-handler@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.5.0.tgz#61385583570ed0a45a9ed142425e35f8fe8274fb"