diff --git a/android/app/build.gradle b/android/app/build.gradle index ea845e3a3..2842e0d2f 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -144,6 +144,7 @@ android { } dependencies { + compile project(':react-native-splash-screen') compile project(':react-native-video') compile project(':react-native-push-notification') compile project(':react-native-svg') diff --git a/android/app/src/main/java/com/rocketchatrn/MainActivity.java b/android/app/src/main/java/com/rocketchatrn/MainActivity.java index 80d1f552e..2dcc53324 100644 --- a/android/app/src/main/java/com/rocketchatrn/MainActivity.java +++ b/android/app/src/main/java/com/rocketchatrn/MainActivity.java @@ -1,6 +1,8 @@ package chat.rocket.reactnative; +import android.os.Bundle; import com.facebook.react.ReactActivity; +import org.devio.rn.splashscreen.SplashScreen; public class MainActivity extends ReactActivity { @@ -12,4 +14,10 @@ public class MainActivity extends ReactActivity { protected String getMainComponentName() { return "RocketChatRN"; } + + @Override + protected void onCreate(Bundle savedInstanceState) { + SplashScreen.show(this); + super.onCreate(savedInstanceState); + } } diff --git a/android/app/src/main/java/com/rocketchatrn/MainApplication.java b/android/app/src/main/java/com/rocketchatrn/MainApplication.java index d4ef8c951..1fdfe134a 100644 --- a/android/app/src/main/java/com/rocketchatrn/MainApplication.java +++ b/android/app/src/main/java/com/rocketchatrn/MainApplication.java @@ -17,6 +17,7 @@ import com.dieam.reactnativepushnotification.ReactNativePushNotificationPackage; import com.brentvatne.react.ReactVideoPackage; import java.util.Arrays; import java.util.List; +import org.devio.rn.splashscreen.SplashScreenReactPackage; public class MainApplication extends Application implements ReactApplication { @@ -37,7 +38,8 @@ public class MainApplication extends Application implements ReactApplication { new ZeroconfReactPackage(), new RealmReactPackage(), new ReactNativePushNotificationPackage(), - new ReactVideoPackage() + new ReactVideoPackage(), + new SplashScreenReactPackage() ); } }; diff --git a/android/app/src/main/res/drawable-hdpi/launch_screen.png b/android/app/src/main/res/drawable-hdpi/launch_screen.png new file mode 100644 index 000000000..f2dee7926 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/launch_screen.png differ diff --git a/android/app/src/main/res/drawable-mdpi/launch_screen.png b/android/app/src/main/res/drawable-mdpi/launch_screen.png new file mode 100644 index 000000000..1b7967402 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/launch_screen.png differ diff --git a/android/app/src/main/res/drawable-xhdpi/launch_screen.png b/android/app/src/main/res/drawable-xhdpi/launch_screen.png new file mode 100644 index 000000000..1c0eef013 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/launch_screen.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/launch_screen.png b/android/app/src/main/res/drawable-xxhdpi/launch_screen.png new file mode 100644 index 000000000..b9a85b34b Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/launch_screen.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/launch_screen.png b/android/app/src/main/res/drawable-xxxhdpi/launch_screen.png new file mode 100644 index 000000000..603e7c1fa Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/launch_screen.png differ diff --git a/android/app/src/main/res/layout/launch_screen.xml b/android/app/src/main/res/layout/launch_screen.xml new file mode 100644 index 000000000..86d6a72e7 --- /dev/null +++ b/android/app/src/main/res/layout/launch_screen.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 000000000..56779d1e1 --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1 @@ + #660B0B0B \ No newline at end of file diff --git a/android/settings.gradle b/android/settings.gradle index 192ad0401..5472ba6d0 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,4 +1,6 @@ rootProject.name = 'RocketChatRN' +include ':react-native-splash-screen' +project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android') include ':react-native-video' project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android') include ':react-native-svg' diff --git a/app/containers/Routes.js b/app/containers/Routes.js index 8772306cf..4c8a82c17 100644 --- a/app/containers/Routes.js +++ b/app/containers/Routes.js @@ -2,11 +2,11 @@ import PropTypes from 'prop-types'; import React from 'react'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; +import SplashScreen from 'react-native-splash-screen'; import { appInit } from '../actions'; import AuthRoutes from './routes/AuthRoutes'; import PublicRoutes from './routes/PublicRoutes'; -import Loading from '../presentation/Loading'; import * as NavigationService from './routes/NavigationService'; @connect( @@ -30,16 +30,18 @@ export default class Routes extends React.Component { return !this.props.app.ready && this.props.appInit(); } + componentWillReceiveProps(nextProps) { + if (!nextProps.app.starting && this.props.app.starting !== nextProps.app.starting) { + SplashScreen.hide(); + } + } + componentDidUpdate() { NavigationService.setNavigator(this.navigator); } render() { - const { login, app } = this.props; - - if (app.starting) { - return (); - } + const { login } = this.props; if (!login.token || login.isRegistering) { return ( this.navigator = nav} />); diff --git a/app/presentation/Loading.js b/app/presentation/Loading.js deleted file mode 100644 index b5c24631a..000000000 --- a/app/presentation/Loading.js +++ /dev/null @@ -1,79 +0,0 @@ -import React, { Component } from 'react'; -import { View, StyleSheet, Animated, Dimensions } from 'react-native'; - -const logo = require('../images/logo.png'); - - -const styles = StyleSheet.create({ - container: { - flex: 1, - width: '100%', - alignItems: 'center', - justifyContent: 'center' - }, - background: { - width: Dimensions.get('window').width, - height: Dimensions.get('window').height, - alignItems: 'center', - justifyContent: 'center' - }, - logo: { - width: Dimensions.get('window').width - 100, - height: Dimensions.get('window').width - 100, - resizeMode: 'contain' - } -}); - -export default class Loading extends Component { - constructor(props) { - super(props); - - this.scale = new Animated.Value(1.0); - } - - componentDidMount() { - requestAnimationFrame(() => { - this.animate(); - }); - } - - animate = () => { - Animated.sequence([ - Animated.timing( - this.scale, - { - toValue: 0.8, - duration: 1000, - useNativeDriver: true - } - ), - Animated.timing( - this.scale, - { - toValue: 1, - duration: 1000, - useNativeDriver: true - } - ) - ]).start(() => { - this.animate(); - }); - } - - render() { - return ( - - - - ); - } -} diff --git a/ios/RocketChatRN.xcodeproj/project.pbxproj b/ios/RocketChatRN.xcodeproj/project.pbxproj index 41056a1c2..167166fe6 100644 --- a/ios/RocketChatRN.xcodeproj/project.pbxproj +++ b/ios/RocketChatRN.xcodeproj/project.pbxproj @@ -5,6 +5,7 @@ }; objectVersion = 46; objects = { + /* Begin PBXBuildFile section */ 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; @@ -14,6 +15,7 @@ 00E356F31AD99517003FC87E /* RocketChatRNTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* RocketChatRNTests.m */; }; 0C6E2DE448364EA896869ADF /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B37C79D9BD0742CE936B6982 /* libc++.tbd */; }; 0DC38A29B0E54AF4AF96CB95 /* MaterialCommunityIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2EADB1731B5E47D093292B59 /* MaterialCommunityIcons.ttf */; }; + 0F026E58B8A6427D9A204D89 /* libSplashScreen.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B2607FA180F14E6584301101 /* libSplashScreen.a */; }; 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; @@ -308,6 +310,13 @@ remoteGlobalIDString = 641E28441F0EEC8500443AF6; remoteInfo = "RCTVideo-tvOS"; }; + 7ADCFEBF1FEA8A7A00763ED8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 30FCE1B6376C423E94C9FBB0 /* SplashScreen.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D7682761D8E76B80014119E; + remoteInfo = SplashScreen; + }; 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; @@ -415,6 +424,7 @@ 2D02E4901E0B4A5D006451C7 /* RocketChatRN-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "RocketChatRN-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 2EADB1731B5E47D093292B59 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; }; 2F5CA2CDA66D46E99B8C184A /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; + 30FCE1B6376C423E94C9FBB0 /* SplashScreen.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = SplashScreen.xcodeproj; path = "../node_modules/react-native-splash-screen/ios/SplashScreen.xcodeproj"; sourceTree = ""; }; 3B696712EE2345A59F007A88 /* libRNImagePicker.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNImagePicker.a; sourceTree = ""; }; 41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNZeroconf.xcodeproj; path = "../node_modules/react-native-zeroconf/ios/RNZeroconf.xcodeproj"; sourceTree = ""; }; 4B38C7E37A8748E0BC665078 /* RNImagePicker.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNImagePicker.xcodeproj; path = "../node_modules/react-native-image-picker/ios/RNImagePicker.xcodeproj"; sourceTree = ""; }; @@ -431,6 +441,7 @@ 9A1E1766CCB84C91A62BD5A6 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; A18EFC3B0CFE40E0918A8F0C /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; AD0379F2BCE84C968538CDAF /* RCTVideo.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTVideo.xcodeproj; path = "../node_modules/react-native-video/ios/RCTVideo.xcodeproj"; sourceTree = ""; }; + B2607FA180F14E6584301101 /* libSplashScreen.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libSplashScreen.a; sourceTree = ""; }; B37C79D9BD0742CE936B6982 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; B88F58361FBF55E200B352B8 /* RCTPushNotification.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTPushNotification.xcodeproj; path = "../node_modules/react-native/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj"; sourceTree = ""; }; B8C682611FD84CEF003A12C8 /* icomoon.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = icomoon.ttf; path = ../resources/fonts/icomoon.ttf; sourceTree = ""; }; @@ -477,6 +488,7 @@ 8A159EDB97C44E52AF62D69C /* libRNSVG.a in Frameworks */, C758F0BD5C3244E2BA073E61 /* libRNImagePicker.a in Frameworks */, 8ECBD927DDAC4987B98E102E /* libRCTVideo.a in Frameworks */, + 0F026E58B8A6427D9A204D89 /* libSplashScreen.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -671,6 +683,14 @@ name = Products; sourceTree = ""; }; + 7ADCFEBC1FEA8A7900763ED8 /* Products */ = { + isa = PBXGroup; + children = ( + 7ADCFEC01FEA8A7A00763ED8 /* libSplashScreen.a */, + ); + name = Products; + sourceTree = ""; + }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( @@ -693,6 +713,7 @@ C23AEF1D9EBE4A38A1A6B97B /* RNSVG.xcodeproj */, 4B38C7E37A8748E0BC665078 /* RNImagePicker.xcodeproj */, AD0379F2BCE84C968538CDAF /* RCTVideo.xcodeproj */, + 30FCE1B6376C423E94C9FBB0 /* SplashScreen.xcodeproj */, ); name = Libraries; sourceTree = ""; @@ -769,6 +790,7 @@ DA50CE47374C4C35BE6D9D58 /* libRNSVG.a */, 3B696712EE2345A59F007A88 /* libRNImagePicker.a */, 20CE3E407E0D4D9E8C9885F2 /* libRCTVideo.a */, + B2607FA180F14E6584301101 /* libSplashScreen.a */, ); name = "Recovered References"; sourceTree = ""; @@ -1006,6 +1028,10 @@ ProductGroup = 607C68741F36522C0096975F /* Products */; ProjectRef = 41FE03CD3B554249859F01BA /* RNZeroconf.xcodeproj */; }, + { + ProductGroup = 7ADCFEBC1FEA8A7900763ED8 /* Products */; + ProjectRef = 30FCE1B6376C423E94C9FBB0 /* SplashScreen.xcodeproj */; + }, ); projectRoot = ""; targets = ( @@ -1249,6 +1275,13 @@ remoteRef = 7A7F5C9A1FCC982500024129 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + 7ADCFEC01FEA8A7A00763ED8 /* libSplashScreen.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libSplashScreen.a; + remoteRef = 7ADCFEBF1FEA8A7A00763ED8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; @@ -1491,6 +1524,7 @@ "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native-video/ios", + "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", ); INFOPLIST_FILE = RocketChatRNTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; @@ -1501,6 +1535,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1528,6 +1563,7 @@ "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native-video/ios", + "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", ); INFOPLIST_FILE = RocketChatRNTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 8.0; @@ -1538,6 +1574,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1570,6 +1607,7 @@ "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj/**", "$(SRCROOT)/../node_modules/react-native-video/ios", + "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", ); INFOPLIST_FILE = RocketChatRN/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1607,6 +1645,7 @@ "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj/**", "$(SRCROOT)/../node_modules/react-native-video/ios", + "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", ); INFOPLIST_FILE = RocketChatRN/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1647,6 +1686,7 @@ "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native-video/ios", + "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", ); INFOPLIST_FILE = "RocketChatRN-tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1656,6 +1696,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1693,6 +1734,7 @@ "$(SRCROOT)/../node_modules/react-native-navigation/ios/**", "$(SRCROOT)/../node_modules/react-native-autogrow-textinput/ios", "$(SRCROOT)/../node_modules/react-native-video/ios", + "$(SRCROOT)/../node_modules/react-native-splash-screen/ios", ); INFOPLIST_FILE = "RocketChatRN-tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1702,6 +1744,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); OTHER_LDFLAGS = ( "-ObjC", @@ -1735,6 +1778,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RocketChatRN-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1764,6 +1808,7 @@ "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", "\"$(SRCROOT)/$(TARGET_NAME)\"", + "\"$(SRCROOT)/$(TARGET_NAME)\"", ); PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RocketChatRN-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/ios/RocketChatRN/AppDelegate.m b/ios/RocketChatRN/AppDelegate.m index 576c1e4dc..690a8196d 100644 --- a/ios/RocketChatRN/AppDelegate.m +++ b/ios/RocketChatRN/AppDelegate.m @@ -12,6 +12,7 @@ #import #import #import +#import "SplashScreen.h" @implementation AppDelegate @@ -32,6 +33,7 @@ rootViewController.view = rootView; self.window.rootViewController = rootViewController; [self.window makeKeyAndVisible]; + [SplashScreen show]; return YES; } diff --git a/ios/RocketChatRN/Base.lproj/LaunchScreen.xib b/ios/RocketChatRN/Base.lproj/LaunchScreen.xib index 231b20ddb..ef824a666 100644 --- a/ios/RocketChatRN/Base.lproj/LaunchScreen.xib +++ b/ios/RocketChatRN/Base.lproj/LaunchScreen.xib @@ -1,42 +1,39 @@ - - + + + + + - - + + - + - - + + + + + + + - + - - - - - - + + - + - + + + + \ No newline at end of file diff --git a/ios/RocketChatRN/Images.xcassets/Contents.json b/ios/RocketChatRN/Images.xcassets/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/ios/RocketChatRN/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/RocketChatRN/Images.xcassets/Image.imageset/1024x1024.png b/ios/RocketChatRN/Images.xcassets/Image.imageset/1024x1024.png new file mode 100644 index 000000000..5d42c70f8 Binary files /dev/null and b/ios/RocketChatRN/Images.xcassets/Image.imageset/1024x1024.png differ diff --git a/ios/RocketChatRN/Images.xcassets/Image.imageset/Contents.json b/ios/RocketChatRN/Images.xcassets/Image.imageset/Contents.json new file mode 100644 index 000000000..8f8b50a1a --- /dev/null +++ b/ios/RocketChatRN/Images.xcassets/Image.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "1024x1024.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 82f2cff5a..2f596e197 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12409,6 +12409,11 @@ "prop-types": "15.6.0" } }, + "react-native-splash-screen": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/react-native-splash-screen/-/react-native-splash-screen-3.0.6.tgz", + "integrity": "sha512-yaTnGAHRyhduLSfD85gP3Vsf0BRePHW3aNNtDXbkbUhwIIeafu2cJH86U/qKFuKLMYLnFOXteOkP80gaYVGAYg==" + }, "react-native-svg": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-6.0.0.tgz", diff --git a/package.json b/package.json index 8b21d0d9b..2b05ff739 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "react-native-optimized-flatlist": "^1.0.3", "react-native-push-notification": "^3.0.1", "react-native-slider": "^0.11.0", + "react-native-splash-screen": "^3.0.6", "react-native-svg": "^6.0.0", "react-native-svg-image": "^2.0.1", "react-native-vector-icons": "^4.4.2",