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",