From 5d997ae22bfd56fd38d592b1ca0665c89038eb5f Mon Sep 17 00:00:00 2001 From: enahum Date: Tue, 28 Mar 2017 23:29:08 -0300 Subject: [PATCH] PLT-5931 Adds splash screen (#413) * Adds splash screen * Increase font size for IOS modal options --- android/app/build.gradle | 1 + .../java/com/mattermost/MainActivity.java | 8 ++ .../java/com/mattermost/MainApplication.java | 2 + .../app/src/main/res/drawable-hdpi/splash.png | Bin 0 -> 12597 bytes .../app/src/main/res/drawable-mdpi/splash.png | Bin 0 -> 7748 bytes .../src/main/res/drawable-xhdpi/splash.png | Bin 0 -> 20827 bytes .../src/main/res/drawable-xxhdpi/splash.png | Bin 0 -> 28349 bytes .../src/main/res/drawable-xxxhdpi/splash.png | Bin 0 -> 29718 bytes android/app/src/main/res/values/styles.xml | 1 + android/settings.gradle | 2 + app/components/root/root.js | 48 ++++++++---- app/constants/index.js | 2 + app/constants/splash_screen.js | 8 ++ app/scenes/channel/channel.js | 2 + .../options_modal/options_modal_list.ios.js | 4 +- app/scenes/select_server/select_server.js | 10 ++- ios/Mattermost.xcodeproj/project.pbxproj | 74 ++++++++++++------ ios/Mattermost/AppDelegate.m | 3 + ios/Mattermost/Base.lproj/LaunchScreen.xib | 42 ---------- ios/SplashScreenResource/LaunchScreen.xib | 36 +++++++++ ios/SplashScreenResource/splash.png | Bin 0 -> 20827 bytes package.json | 1 + 22 files changed, 158 insertions(+), 86 deletions(-) create mode 100644 android/app/src/main/res/drawable-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/splash.png create mode 100644 app/constants/splash_screen.js delete mode 100644 ios/Mattermost/Base.lproj/LaunchScreen.xib create mode 100644 ios/SplashScreenResource/LaunchScreen.xib create mode 100644 ios/SplashScreenResource/splash.png diff --git a/android/app/build.gradle b/android/app/build.gradle index f2ec7cff9..541e477b4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -144,6 +144,7 @@ android { } dependencies { + compile project(':react-native-smart-splashscreen') compile project(':react-native-orientation') compile project(':react-native-bottom-sheet') compile project(':react-native-push-notification') diff --git a/android/app/src/main/java/com/mattermost/MainActivity.java b/android/app/src/main/java/com/mattermost/MainActivity.java index 63fb8478f..76f26b7f9 100644 --- a/android/app/src/main/java/com/mattermost/MainActivity.java +++ b/android/app/src/main/java/com/mattermost/MainActivity.java @@ -7,6 +7,8 @@ import com.BV.LinearGradient.LinearGradientPackage; import com.reactnative.ivpusic.imagepicker.PickerPackage; import android.content.Intent; import android.content.res.Configuration; +import android.os.Bundle; +import com.reactnativecomponent.splashscreen.RCTSplashScreen; public class MainActivity extends ReactActivity { @@ -19,6 +21,12 @@ public class MainActivity extends ReactActivity { return "Mattermost"; } + @Override + protected void onCreate(Bundle savedInstanceState) { + RCTSplashScreen.openSplashScreen(this); + super.onCreate(savedInstanceState); + } + @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); diff --git a/android/app/src/main/java/com/mattermost/MainApplication.java b/android/app/src/main/java/com/mattermost/MainApplication.java index 3b55bf2b1..7b06dbb5c 100644 --- a/android/app/src/main/java/com/mattermost/MainApplication.java +++ b/android/app/src/main/java/com/mattermost/MainApplication.java @@ -17,6 +17,7 @@ import com.facebook.react.shell.MainReactPackage; import com.facebook.soloader.SoLoader; import com.BV.LinearGradient.LinearGradientPackage; import com.reactnative.ivpusic.imagepicker.PickerPackage; +import com.reactnativecomponent.splashscreen.RCTSplashScreenPackage; import com.github.yamill.orientation.OrientationPackage; import java.util.Arrays; @@ -34,6 +35,7 @@ public class MainApplication extends Application implements ReactApplication { protected List getPackages() { return Arrays.asList( new MainReactPackage(), + new RCTSplashScreenPackage(), new RNBottomSheetPackage(), new RNDeviceInfo(), new CookieManagerPackage(), diff --git a/android/app/src/main/res/drawable-hdpi/splash.png b/android/app/src/main/res/drawable-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..a99a0b1ae2f4ff155e9771993c2875aadfe9aa91 GIT binary patch literal 12597 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..8cbcc176f4e66adea88a72b382f1526ca208942d GIT binary patch literal 20827 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 b(k89iIm=5?RnWu0uyg9#r&CT|fBb&|GdD@+ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 319eb0ca1..778e66aaa 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -3,6 +3,7 @@ diff --git a/android/settings.gradle b/android/settings.gradle index 62a6eb648..3d0a39ce9 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,4 +1,6 @@ rootProject.name = 'Mattermost' +include ':react-native-smart-splashscreen' +project(':react-native-smart-splashscreen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-smart-splash-screen/android') include ':react-native-bottom-sheet' project(':react-native-bottom-sheet').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-bottom-sheet/android') include ':react-native-device-info' diff --git a/app/components/root/root.js b/app/components/root/root.js index f5e3ce1cb..07bb0edf5 100644 --- a/app/components/root/root.js +++ b/app/components/root/root.js @@ -14,13 +14,15 @@ import { } from 'react-native'; import {IntlProvider} from 'react-intl'; import DeviceInfo from 'react-native-device-info'; +import SplashScreen from 'react-native-smart-splash-screen'; import semver from 'semver'; -import Config from 'assets/config'; - import PushNotification from 'app/components/push_notification'; +import {SplashScreenTypes} from 'app/constants'; import {getTranslations} from 'app/i18n'; +import Config from 'assets/config'; + import Client from 'mattermost-redux/client'; import {Constants} from 'mattermost-redux/constants'; import EventEmitter from 'mattermost-redux/utils/event_emitter'; @@ -55,6 +57,7 @@ export default class Root extends Component { componentDidMount() { AppState.addEventListener('change', this.handleAppStateChange); EventEmitter.on(Constants.CONFIG_CHANGED, this.handleConfigChanged); + EventEmitter.on(SplashScreenTypes.CLOSE, this.handleCloseSplashScreen); Client.setUserAgent(DeviceInfo.getUserAgent()); if (Platform.OS === 'android') { @@ -65,6 +68,7 @@ export default class Root extends Component { componentWillUnmount() { AppState.removeEventListener('change', this.handleAppStateChange); EventEmitter.off(Constants.CONFIG_CHANGED, this.handleConfigChanged); + EventEmitter.off(SplashScreenTypes.CLOSE, this.handleCloseSplashScreen); if (Platform.OS === 'android') { BackAndroid.removeEventListener('hardwareBackPress', this.handleAndroidBack); @@ -103,22 +107,14 @@ export default class Root extends Component { return false; }; - handleVersionUpgrade = async () => { - const {closeDrawers, logout, unrenderDrawer} = this.props.actions; + handleCloseSplashScreen = (options = {}) => { + const opts = { + animationType: SplashScreen.animationType.scale, + duration: 850, + delay: 500 + }; - Client.serverVersion = ''; - - const storage = await AsyncStorage.getItem('storage'); - if (storage) { - setTimeout(async () => { - const {token} = JSON.parse(await AsyncStorage.getItem('storage')); - if (token) { - closeDrawers(); - unrenderDrawer(); - InteractionManager.runAfterInteractions(logout); - } - }, 1000); - } + SplashScreen.close(Object.assign({}, opts, options)); }; handleConfigChanged = (serverVersion) => { @@ -140,6 +136,24 @@ export default class Root extends Component { } }; + handleVersionUpgrade = async () => { + const {closeDrawers, logout, unrenderDrawer} = this.props.actions; + + Client.serverVersion = ''; + + const storage = await AsyncStorage.getItem('storage'); + if (storage) { + setTimeout(async () => { + const {token} = JSON.parse(await AsyncStorage.getItem('storage')); + if (token) { + closeDrawers(); + unrenderDrawer(); + InteractionManager.runAfterInteractions(logout); + } + }, 1000); + } + }; + render() { const locale = this.props.locale; diff --git a/app/constants/index.js b/app/constants/index.js index 76d9737d0..580efadbf 100644 --- a/app/constants/index.js +++ b/app/constants/index.js @@ -4,9 +4,11 @@ import NavigationTypes from './navigation'; import StorageTypes from './storage'; import ViewTypes from './view'; +import SplashScreenTypes from './splash_screen'; export { NavigationTypes, + SplashScreenTypes, StorageTypes, ViewTypes }; diff --git a/app/constants/splash_screen.js b/app/constants/splash_screen.js new file mode 100644 index 000000000..09d9eb3c9 --- /dev/null +++ b/app/constants/splash_screen.js @@ -0,0 +1,8 @@ +// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import keyMirror from 'mattermost-redux/utils/key_mirror'; + +export default keyMirror({ + CLOSE: null +}); diff --git a/app/scenes/channel/channel.js b/app/scenes/channel/channel.js index 7500d4899..d5ef7b341 100644 --- a/app/scenes/channel/channel.js +++ b/app/scenes/channel/channel.js @@ -8,6 +8,7 @@ import { View } from 'react-native'; +import {SplashScreenTypes} from 'app/constants'; import KeyboardLayout from 'app/components/layout/keyboard_layout'; import Loading from 'app/components/loading'; import PostTextbox from 'app/components/post_textbox'; @@ -67,6 +68,7 @@ export default class Channel extends React.PureComponent { componentDidMount() { this.props.actions.startPeriodicStatusUpdates(); this.props.actions.renderDrawer(); + EventEmitter.emit(SplashScreenTypes.CLOSE); } componentWillReceiveProps(nextProps) { diff --git a/app/scenes/options_modal/options_modal_list.ios.js b/app/scenes/options_modal/options_modal_list.ios.js index b86da8454..83d620698 100644 --- a/app/scenes/options_modal/options_modal_list.ios.js +++ b/app/scenes/options_modal/options_modal_list.ios.js @@ -122,6 +122,7 @@ const style = StyleSheet.create({ optionCancelText: { color: '#CC3239', flex: 1, + fontSize: 20, textAlign: 'center' }, optionContainer: { @@ -136,7 +137,8 @@ const style = StyleSheet.create({ }, optionText: { color: '#4E8ACC', - flex: 1 + flex: 1, + fontSize: 20 }, optionTitleText: { color: '#7f8180', diff --git a/app/scenes/select_server/select_server.js b/app/scenes/select_server/select_server.js index 120e8b0fb..17879f273 100644 --- a/app/scenes/select_server/select_server.js +++ b/app/scenes/select_server/select_server.js @@ -12,6 +12,12 @@ import { } from 'react-native'; import Button from 'react-native-button'; + +import {RequestStatus} from 'mattermost-redux/constants'; +import Client from 'mattermost-redux/client'; +import EventEmitter from 'mattermost-redux/utils/event_emitter'; + +import {SplashScreenTypes} from 'app/constants'; import ErrorText from 'app/components/error_text'; import FormattedText from 'app/components/formatted_text'; import KeyboardLayout from 'app/components/layout/keyboard_layout'; @@ -22,9 +28,6 @@ import {isValidUrl, stripTrailingSlashes} from 'app/utils/url'; import logo from 'assets/images/logo.png'; -import {RequestStatus} from 'mattermost-redux/constants'; -import Client from 'mattermost-redux/client'; - export default class SelectServer extends PureComponent { static propTypes = { transition: PropTypes.bool.isRequired, @@ -54,6 +57,7 @@ export default class SelectServer extends PureComponent { if (Platform.OS === 'android') { Keyboard.addListener('keyboardDidHide', this.handleAndroidKeyboard); } + EventEmitter.emit(SplashScreenTypes.CLOSE); } componentWillReceiveProps(nextProps) { diff --git a/ios/Mattermost.xcodeproj/project.pbxproj b/ios/Mattermost.xcodeproj/project.pbxproj index b2caaf98f..8c004c77d 100644 --- a/ios/Mattermost.xcodeproj/project.pbxproj +++ b/ios/Mattermost.xcodeproj/project.pbxproj @@ -18,7 +18,6 @@ 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; @@ -37,6 +36,10 @@ 587E8EEB59DB4EC38F6940BF /* libimageCropPicker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 37A98FBBA38D48E786B32BAD /* libimageCropPicker.a */; }; 5E1AF7B72B8D4A4E9E53FF9D /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 005346E5C0E542BFABAE1411 /* FontAwesome.ttf */; }; 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; + 7F292A711E8AB73400A450A3 /* SplashScreenResource in Resources */ = {isa = PBXBuildFile; fileRef = 7F292A701E8AB73400A450A3 /* SplashScreenResource */; }; + 7F292AA31E8AB78600A450A3 /* libRCTSplashScreen.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F292AA21E8AB77700A450A3 /* libRCTSplashScreen.a */; }; + 7F292AA61E8ABB1100A450A3 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7F292AA41E8ABB1100A450A3 /* LaunchScreen.xib */; }; + 7F292AA71E8ABB1100A450A3 /* splash.png in Resources */ = {isa = PBXBuildFile; fileRef = 7F292AA51E8ABB1100A450A3 /* splash.png */; }; 7F63D2841E6C9585001FAE12 /* libRCTPushNotification.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F63D2811E6C957C001FAE12 /* libRCTPushNotification.a */; }; 7F6877B31E7836070094B63F /* libToolTipMenu.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F6877B01E7835E50094B63F /* libToolTipMenu.a */; }; 7FBB5E9A1E1F5A4B000DE18A /* libRNSVG.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7FDF28E11E1F4B1F00DBBE56 /* libRNSVG.a */; }; @@ -254,6 +257,13 @@ remoteGlobalIDString = 134814201AA4EA6300B7C361; remoteInfo = RCTLinking; }; + 7F292AA11E8AB77700A450A3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7F292A9D1E8AB77700A450A3 /* RCTSplashScreen.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 9F90C2241D619E9400F3E238; + remoteInfo = RCTSplashScreen; + }; 7F4890681E3B7D3B008EDBEA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 59954D479A89488091EB588F /* RNSearchBar.xcodeproj */; @@ -351,7 +361,6 @@ 13B07F961A680F5B00A75B9A /* Mattermost.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Mattermost.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Mattermost/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = Mattermost/AppDelegate.m; sourceTree = ""; }; - 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Mattermost/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Mattermost/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Mattermost/main.m; sourceTree = ""; }; @@ -371,6 +380,10 @@ 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; 7DCC3D826CE640AF8F491692 /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = BVLinearGradient.xcodeproj; path = "../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = ""; }; + 7F292A701E8AB73400A450A3 /* SplashScreenResource */ = {isa = PBXFileReference; lastKnownFileType = folder; path = SplashScreenResource; sourceTree = ""; }; + 7F292A9D1E8AB77700A450A3 /* RCTSplashScreen.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSplashScreen.xcodeproj; path = "../node_modules/react-native-smart-splash-screen/ios/RCTSplashScreen/RCTSplashScreen.xcodeproj"; sourceTree = ""; }; + 7F292AA41E8ABB1100A450A3 /* LaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = LaunchScreen.xib; path = SplashScreenResource/LaunchScreen.xib; sourceTree = ""; }; + 7F292AA51E8ABB1100A450A3 /* splash.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = splash.png; path = SplashScreenResource/splash.png; sourceTree = ""; }; 7F63D27B1E6C957C001FAE12 /* RCTPushNotification.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTPushNotification.xcodeproj; path = "../node_modules/react-native/Libraries/PushNotificationIOS/RCTPushNotification.xcodeproj"; sourceTree = ""; }; 7F63D2C21E6DD98A001FAE12 /* Mattermost.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = Mattermost.entitlements; path = Mattermost/Mattermost.entitlements; sourceTree = ""; }; 7F6877AA1E7835E50094B63F /* ToolTipMenu.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ToolTipMenu.xcodeproj; path = "../node_modules/react-native-tooltip/ToolTipMenu.xcodeproj"; sourceTree = ""; }; @@ -410,6 +423,7 @@ 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, + 7F292AA31E8AB78600A450A3 /* libRCTSplashScreen.a in Frameworks */, 374634801E8480C2005E1244 /* libRCTOrientation.a in Frameworks */, 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, @@ -524,12 +538,13 @@ 13B07FAE1A68108700A75B9A /* Mattermost */ = { isa = PBXGroup; children = ( + 7F292AA41E8ABB1100A450A3 /* LaunchScreen.xib */, + 7F292AA51E8ABB1100A450A3 /* splash.png */, 7F63D2C21E6DD98A001FAE12 /* Mattermost.entitlements */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 13B07FB01A68108700A75B9A /* AppDelegate.m */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, 13B07FB71A68108700A75B9A /* main.m */, ); name = Mattermost; @@ -600,6 +615,14 @@ name = Products; sourceTree = ""; }; + 7F292A9E1E8AB77700A450A3 /* Products */ = { + isa = PBXGroup; + children = ( + 7F292AA21E8AB77700A450A3 /* libRCTSplashScreen.a */, + ); + name = Products; + sourceTree = ""; + }; 7F48904C1E3B7D3B008EDBEA /* Products */ = { isa = PBXGroup; children = ( @@ -653,6 +676,7 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( + 7F292A9D1E8AB77700A450A3 /* RCTSplashScreen.xcodeproj */, 7F6877AA1E7835E50094B63F /* ToolTipMenu.xcodeproj */, 7F63D27B1E6C957C001FAE12 /* RCTPushNotification.xcodeproj */, 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, @@ -690,6 +714,7 @@ 83CBB9F61A601CBA00E9B192 = { isa = PBXGroup; children = ( + 7F292A701E8AB73400A450A3 /* SplashScreenResource */, 37DA4BA81E6F55D3002B058E /* QBImagePicker.framework */, 37DA4BA51E6F55D3002B058E /* RSKImageCropper.framework */, 13B07FAE1A68108700A75B9A /* Mattermost */, @@ -766,7 +791,7 @@ }; 13B07F861A680F5B00A75B9A = { DevelopmentTeam = UQ8HT4Q2XM; - ProvisioningStyle = Manual; + ProvisioningStyle = Automatic; SystemCapabilities = { com.apple.Push = { enabled = 1; @@ -831,6 +856,10 @@ ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; }, + { + ProductGroup = 7F292A9E1E8AB77700A450A3 /* Products */; + ProjectRef = 7F292A9D1E8AB77700A450A3 /* RCTSplashScreen.xcodeproj */; + }, { ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; @@ -1077,6 +1106,13 @@ remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + 7F292AA21E8AB77700A450A3 /* libRCTSplashScreen.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTSplashScreen.a; + remoteRef = 7F292AA11E8AB77700A450A3 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; 7F4890691E3B7D3B008EDBEA /* libRNSearchBar.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; @@ -1155,7 +1191,6 @@ buildActionMask = 2147483647; files = ( 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 895C9A56B94A45C1BAF568FE /* Entypo.ttf in Resources */, 3D38ABA732A34A9BB3294F90 /* EvilIcons.ttf in Resources */, 5E1AF7B72B8D4A4E9E53FF9D /* FontAwesome.ttf in Resources */, @@ -1163,7 +1198,10 @@ C337E8708D2845C6A8DBB47E /* Ionicons.ttf in Resources */, C035DB50ED2045F09923FFAE /* MaterialCommunityIcons.ttf in Resources */, F006936FC2884C24A1321FC0 /* MaterialIcons.ttf in Resources */, + 7F292AA71E8ABB1100A450A3 /* splash.png in Resources */, 420A7328E12C4B72AEF420CE /* Octicons.ttf in Resources */, + 7F292AA61E8ABB1100A450A3 /* LaunchScreen.xib in Resources */, + 7F292A711E8AB73400A450A3 /* SplashScreenResource in Resources */, 2B4C9B708010475DA575B81D /* SimpleLineIcons.ttf in Resources */, 1BCA51319AC6442991C6A208 /* Zocial.ttf in Resources */, ); @@ -1216,18 +1254,6 @@ }; /* End PBXTargetDependency section */ -/* Begin PBXVariantGroup section */ - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 13B07FB21A68108700A75B9A /* Base */, - ); - name = LaunchScreen.xib; - path = Mattermost; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ 00E356F61AD99517003FC87E /* Debug */ = { isa = XCBuildConfiguration; @@ -1275,13 +1301,14 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 20; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = UQ8HT4Q2XM; HEADER_SEARCH_PATHS = ( "$(SRCROOT)/../node_modules/react-native/Libraries/PushNotificationIOS/**", "$(SRCROOT)/../node_modules/react-native-orientation/iOS/RCTOrientation/**", + "$(SRCROOT)/../node_modules/react-native-smart-splash-screen/ios/RCTSplashScreen/RCTSplashScreen/**", ); INFOPLIST_FILE = Mattermost/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1292,8 +1319,8 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.react.native; PRODUCT_NAME = Mattermost; - PROVISIONING_PROFILE = "49d041fa-5540-475b-90c7-4cc99954c615"; - PROVISIONING_PROFILE_SPECIFIER = "match AdHoc com.mattermost.react.native"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -1303,13 +1330,14 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 20; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = UQ8HT4Q2XM; HEADER_SEARCH_PATHS = ( "$(SRCROOT)/../node_modules/react-native/Libraries/PushNotificationIOS/**", "$(SRCROOT)/../node_modules/react-native-orientation/iOS/RCTOrientation/**", + "$(SRCROOT)/../node_modules/react-native-smart-splash-screen/ios/RCTSplashScreen/RCTSplashScreen/**", ); INFOPLIST_FILE = Mattermost/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -1320,8 +1348,8 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.react.native; PRODUCT_NAME = Mattermost; - PROVISIONING_PROFILE = "4d7f7521-3286-4c38-b9c0-e1055f5a0ff6"; - PROVISIONING_PROFILE_SPECIFIER = "match AppStore com.mattermost.react.native"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; diff --git a/ios/Mattermost/AppDelegate.m b/ios/Mattermost/AppDelegate.m index 4b109f197..084106cbb 100644 --- a/ios/Mattermost/AppDelegate.m +++ b/ios/Mattermost/AppDelegate.m @@ -12,6 +12,7 @@ #import #import #import "Orientation.h" +#import "RCTSplashScreen.h" @implementation AppDelegate @@ -25,6 +26,8 @@ moduleName:@"Mattermost" initialProperties:nil launchOptions:launchOptions]; + + [RCTSplashScreen open:rootView withImageNamed:@"splash"]; rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; diff --git a/ios/Mattermost/Base.lproj/LaunchScreen.xib b/ios/Mattermost/Base.lproj/LaunchScreen.xib deleted file mode 100644 index 725db11a9..000000000 --- a/ios/Mattermost/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ios/SplashScreenResource/LaunchScreen.xib b/ios/SplashScreenResource/LaunchScreen.xib new file mode 100644 index 000000000..a7761993e --- /dev/null +++ b/ios/SplashScreenResource/LaunchScreen.xib @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/SplashScreenResource/splash.png b/ios/SplashScreenResource/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..8cbcc176f4e66adea88a72b382f1526ca208942d GIT binary patch literal 20827 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