react-native-bootsplash 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -28,9 +28,9 @@ Show a bootsplash during app startup. Hide it when you are ready.<br>
28
28
  ## Installation
29
29
 
30
30
  ```bash
31
- $ npm install --save react-native-bootsplash@next
31
+ $ npm install --save react-native-bootsplash
32
32
  # --- or ---
33
- $ yarn add react-native-bootsplash@next
33
+ $ yarn add react-native-bootsplash
34
34
  ```
35
35
 
36
36
  Don't forget going into the `ios` directory to execute a `pod install`.
@@ -110,7 +110,7 @@ $ yarn react-native generate-bootsplash --help
110
110
  The command can take multiple arguments:
111
111
 
112
112
  ```bash
113
- react-native generate-bootsplash <logoPath>
113
+ yarn react-native generate-bootsplash <logoPath>
114
114
 
115
115
  Generate a launch screen using an original logo file
116
116
 
@@ -21,7 +21,7 @@ import com.facebook.react.bridge.UiThreadUtil;
21
21
  import com.facebook.react.common.ReactConstants;
22
22
  import com.facebook.react.module.annotations.ReactModule;
23
23
 
24
- import java.util.ArrayList;
24
+ import java.util.Stack;
25
25
  import java.util.Timer;
26
26
  import java.util.TimerTask;
27
27
 
@@ -40,9 +40,9 @@ public class RNBootSplashModule extends ReactContextBaseJavaModule implements Li
40
40
  @Nullable
41
41
  private static SplashScreen mSplashScreen = null;
42
42
 
43
- private static final ArrayList<RNBootSplashTask> mTaskQueue = new ArrayList<>();
43
+ private static final Stack<RNBootSplashTask> mTaskStack = new Stack<>();
44
44
  private static Status mStatus = Status.HIDDEN;
45
- private static boolean mIsAppInBackground = false;
45
+ private static boolean mIsAppInForeground = true;
46
46
  private static boolean mShouldFade = false;
47
47
  private static boolean mShouldKeepOnScreen = true;
48
48
 
@@ -99,29 +99,27 @@ public class RNBootSplashModule extends ReactContextBaseJavaModule implements Li
99
99
 
100
100
  @Override
101
101
  public void onHostDestroy() {
102
- mIsAppInBackground = true;
102
+ mIsAppInForeground = false;
103
103
  }
104
104
 
105
105
  @Override
106
106
  public void onHostPause() {
107
- mIsAppInBackground = true;
107
+ mIsAppInForeground = false;
108
108
  }
109
109
 
110
110
  @Override
111
111
  public void onHostResume() {
112
- mIsAppInBackground = false;
112
+ mIsAppInForeground = true;
113
113
  shiftNextTask();
114
114
  }
115
115
 
116
116
  private void shiftNextTask() {
117
- boolean shouldSkipTick = mStatus == Status.TRANSITIONING
118
- || mIsAppInBackground
119
- || mTaskQueue.isEmpty();
120
-
121
- if (shouldSkipTick) return;
122
-
123
- RNBootSplashTask task = mTaskQueue.remove(0);
124
- hideWithTask(task);
117
+ if (mStatus != Status.TRANSITIONING &&
118
+ mIsAppInForeground &&
119
+ mTaskStack.size() > 0) {
120
+ RNBootSplashTask task = mTaskStack.pop();
121
+ hideWithTask(task);
122
+ }
125
123
  }
126
124
 
127
125
  private void waitAndRetry() {
@@ -170,8 +168,8 @@ public class RNBootSplashModule extends ReactContextBaseJavaModule implements Li
170
168
  @Override
171
169
  public void run() {
172
170
  mStatus = Status.HIDDEN;
173
- promise.resolve(true);
174
171
  timer.cancel();
172
+ promise.resolve(true);
175
173
  shiftNextTask();
176
174
  }
177
175
  }, ANIMATION_DURATION);
@@ -184,7 +182,7 @@ public class RNBootSplashModule extends ReactContextBaseJavaModule implements Li
184
182
  if (mSplashScreen == null || mStatus == Status.HIDDEN) {
185
183
  promise.resolve(true);
186
184
  } else {
187
- mTaskQueue.add(new RNBootSplashTask(fade, promise));
185
+ mTaskStack.push(new RNBootSplashTask(fade, promise));
188
186
  shiftNextTask();
189
187
  }
190
188
  }
@@ -3,7 +3,7 @@
3
3
  #import <React/RCTBridge.h>
4
4
  #import <React/RCTUtils.h>
5
5
 
6
- static NSMutableArray<RNBootSplashTask *> *_taskQueue = nil;
6
+ static NSMutableArray<RNBootSplashTask *> *_taskStack = nil;
7
7
  static RCTRootView *_rootView = nil;
8
8
  static RNBootSplashStatus _status = RNBootSplashStatusHidden;
9
9
 
@@ -37,7 +37,7 @@ RCT_EXPORT_MODULE();
37
37
  rootView:(RCTRootView * _Nonnull)rootView {
38
38
  _rootView = rootView;
39
39
  _status = RNBootSplashStatusVisible;
40
- _taskQueue = [[NSMutableArray alloc] init];
40
+ _taskStack = [[NSMutableArray alloc] init];
41
41
 
42
42
  UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
43
43
  [_rootView setLoadingView:[[storyboard instantiateInitialViewController] view]];
@@ -85,16 +85,14 @@ RCT_EXPORT_MODULE();
85
85
  }
86
86
 
87
87
  + (void)shiftNextTask {
88
- bool shouldSkipTick = _status == RNBootSplashStatusTransitioning
89
- || [_taskQueue count] == 0
90
- || [[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground;
88
+ if (_status != RNBootSplashStatusTransitioning &&
89
+ [_taskStack count] > 0 &&
90
+ [[UIApplication sharedApplication] applicationState] != UIApplicationStateBackground) {
91
+ RNBootSplashTask *task = [_taskStack objectAtIndex:0];
92
+ [_taskStack removeObjectAtIndex:0];
91
93
 
92
- if (shouldSkipTick) return;
93
-
94
- RNBootSplashTask *task = [_taskQueue objectAtIndex:0];
95
- [_taskQueue removeObjectAtIndex:0];
96
-
97
- return [self hideWithTask:task];
94
+ [self hideWithTask:task];
95
+ }
98
96
  }
99
97
 
100
98
  + (void)hideWithTask:(RNBootSplashTask *)task {
@@ -143,7 +141,7 @@ RCT_REMAP_METHOD(hide,
143
141
  RNBootSplashTask *task = [[RNBootSplashTask alloc] initWithFade:fade
144
142
  resolver:resolve];
145
143
 
146
- [_taskQueue addObject:task];
144
+ [_taskStack addObject:task];
147
145
  [RNBootSplash shiftNextTask];
148
146
  }
149
147
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-bootsplash",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "license": "MIT",
5
5
  "description": "Display a bootsplash on your app starts. Hide it when you want.",
6
6
  "author": "Mathieu Acthernoene <zoontek@gmail.com>",