react-native-bootsplash 6.1.5 → 6.2.0

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.
Files changed (36) hide show
  1. package/android/build.gradle +6 -4
  2. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplash.kt +13 -0
  3. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplashDialog.kt +79 -0
  4. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplashModuleImpl.kt +242 -0
  5. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplashPackage.kt +37 -0
  6. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplashQueue.kt +26 -0
  7. package/android/src/main/res/values/colors.xml +8 -0
  8. package/android/src/main/res/values/styles.xml +13 -13
  9. package/android/src/main/res/values-night/styles.xml +1 -1
  10. package/android/src/main/res/values-v23/styles.xml +2 -2
  11. package/android/src/main/res/values-v29/styles.xml +1 -1
  12. package/android/src/main/res/values-v31/styles.xml +1 -1
  13. package/android/src/newarch/com/zoontek/rnbootsplash/RNBootSplashModule.kt +39 -0
  14. package/android/src/oldarch/com/zoontek/rnbootsplash/RNBootSplashModule.kt +43 -0
  15. package/dist/commonjs/addon/index.js +31 -31
  16. package/dist/commonjs/generate.js +14 -11
  17. package/dist/commonjs/generate.js.map +1 -1
  18. package/dist/commonjs/index.js +13 -4
  19. package/dist/commonjs/index.js.map +1 -1
  20. package/dist/module/addon/index.js +31 -31
  21. package/dist/module/generate.js +14 -11
  22. package/dist/module/generate.js.map +1 -1
  23. package/dist/module/index.js +13 -4
  24. package/dist/module/index.js.map +1 -1
  25. package/dist/typescript/generate.d.ts.map +1 -1
  26. package/dist/typescript/index.d.ts.map +1 -1
  27. package/package.json +7 -6
  28. package/src/generate.ts +22 -17
  29. package/src/index.ts +25 -6
  30. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplash.java +0 -13
  31. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplashDialog.java +0 -119
  32. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplashModuleImpl.java +0 -306
  33. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplashPackage.java +0 -46
  34. package/android/src/main/java/com/zoontek/rnbootsplash/RNBootSplashQueue.java +0 -31
  35. package/android/src/newarch/com/zoontek/rnbootsplash/RNBootSplashModule.java +0 -51
  36. package/android/src/oldarch/com/zoontek/rnbootsplash/RNBootSplashModule.java +0 -55
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { Platform, StyleSheet } from "react-native";
5
+ import { isEdgeToEdge } from "react-native-is-edge-to-edge";
5
6
  import NativeModule from "./NativeRNBootSplash";
6
7
  export function hide(config = {}) {
7
8
  const {
@@ -21,8 +22,8 @@ export function useHideAnimation(config) {
21
22
  brand: brandSrc,
22
23
  darkBrand: darkBrandSrc,
23
24
  animate,
24
- statusBarTranslucent = false,
25
- navigationBarTranslucent = false
25
+ statusBarTranslucent,
26
+ navigationBarTranslucent
26
27
  } = config;
27
28
  const skipLogo = logoSrc == null;
28
29
  const skipBrand = manifest.brand == null || brandSrc == null;
@@ -114,13 +115,21 @@ export function useHideAnimation(config) {
114
115
  brand
115
116
  };
116
117
  }
118
+ if (__DEV__) {
119
+ const hasNavigationBarOption = navigationBarTranslucent != null;
120
+ const hasStatusBarOption = statusBarTranslucent != null;
121
+ const hasBothOptions = hasStatusBarOption && hasNavigationBarOption;
122
+ if (isEdgeToEdge() && (hasStatusBarOption || hasNavigationBarOption)) {
123
+ console.warn(hasBothOptions ? "statusBarTranslucent and navigationBarTranslucent options are ignored when using react-native-edge-to-edge" : `${hasStatusBarOption ? "status" : "navigation"}BarTranslucent option is ignored when using react-native-edge-to-edge`);
124
+ }
125
+ }
117
126
  return {
118
127
  container: {
119
128
  ...container,
120
129
  style: {
121
130
  ...containerStyle,
122
- marginTop: statusBarTranslucent ? undefined : -statusBarHeight,
123
- marginBottom: navigationBarTranslucent ? undefined : -navigationBarHeight
131
+ marginTop: isEdgeToEdge() || (statusBarTranslucent ?? false) ? undefined : -statusBarHeight,
132
+ marginBottom: isEdgeToEdge() || (navigationBarTranslucent ?? false) ? undefined : -navigationBarHeight
124
133
  }
125
134
  },
126
135
  logo: {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","Platform","StyleSheet","NativeModule","hide","config","fade","then","isVisible","useHideAnimation","manifest","ready","logo","logoSrc","darkLogo","darkLogoSrc","brand","brandSrc","darkBrand","darkBrandSrc","animate","statusBarTranslucent","navigationBarTranslucent","skipLogo","skipBrand","logoWidth","width","logoHeight","height","brandBottom","bottom","brandWidth","brandHeight","darkModeEnabled","logoSizeRatio","navigationBarHeight","statusBarHeight","getConstants","backgroundColor","darkBackground","background","logoFinalSrc","undefined","brandFinalSrc","ref","layoutReady","logoReady","brandReady","userReady","animateHasBeenCalled","maybeRunAnimate","current","catch","containerStyle","absoluteFillObject","alignItems","justifyContent","container","style","onLayout","source","fadeDuration","resizeMode","onLoadEnd","position","OS","marginTop","marginBottom"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","Platform","StyleSheet","isEdgeToEdge","NativeModule","hide","config","fade","then","isVisible","useHideAnimation","manifest","ready","logo","logoSrc","darkLogo","darkLogoSrc","brand","brandSrc","darkBrand","darkBrandSrc","animate","statusBarTranslucent","navigationBarTranslucent","skipLogo","skipBrand","logoWidth","width","logoHeight","height","brandBottom","bottom","brandWidth","brandHeight","darkModeEnabled","logoSizeRatio","navigationBarHeight","statusBarHeight","getConstants","backgroundColor","darkBackground","background","logoFinalSrc","undefined","brandFinalSrc","ref","layoutReady","logoReady","brandReady","userReady","animateHasBeenCalled","maybeRunAnimate","current","catch","containerStyle","absoluteFillObject","alignItems","justifyContent","container","style","onLayout","source","fadeDuration","resizeMode","onLoadEnd","position","OS","__DEV__","hasNavigationBarOption","hasStatusBarOption","hasBothOptions","console","warn","marginTop","marginBottom"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/generate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,UAAU,EAGV,SAAS,EACV,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAE/B,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,wBAAgB,IAAI,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvD;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,oBAoL9D;;;;;;AAED,wBAIE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,UAAU,EAGV,SAAS,EACV,MAAM,cAAc,CAAC;AAItB,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAE/B,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,wBAAgB,IAAI,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvD;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,oBAsM9D;;;;;;AAED,wBAIE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-bootsplash",
3
- "version": "6.1.5",
3
+ "version": "6.2.0",
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>",
@@ -71,6 +71,7 @@
71
71
  "node-html-parser": "^6.1.13",
72
72
  "picocolors": "^1.1.0",
73
73
  "prettier": "^3.3.3",
74
+ "react-native-is-edge-to-edge": "^0.1.0",
74
75
  "sharp": "^0.32.6",
75
76
  "ts-dedent": "^2.2.0",
76
77
  "xml-formatter": "^3.6.3"
@@ -79,16 +80,16 @@
79
80
  "@babel/core": "^7.20.0",
80
81
  "@babel/preset-env": "^7.20.0",
81
82
  "@types/fs-extra": "^11.0.4",
82
- "@types/node": "^20.16.9",
83
- "@types/react": "^18.2.60",
83
+ "@types/node": "^20.16.11",
84
+ "@types/react": "^18.2.6",
84
85
  "@types/semver": "^7.5.8",
85
- "@typescript-eslint/eslint-plugin": "^8.7.0",
86
- "@typescript-eslint/parser": "^8.7.0",
86
+ "@typescript-eslint/eslint-plugin": "^8.8.1",
87
+ "@typescript-eslint/parser": "^8.8.1",
87
88
  "eslint": "^8.57.0",
88
89
  "eslint-plugin-react-hooks": "^4.6.2",
89
90
  "prettier-plugin-organize-imports": "^4.1.0",
90
91
  "react": "18.3.1",
91
- "react-native": "0.75.3",
92
+ "react-native": "0.75.4",
92
93
  "react-native-builder-bob": "^0.30.2",
93
94
  "semver": "^7.6.3",
94
95
  "typescript": "^5.5.3"
package/src/generate.ts CHANGED
@@ -439,8 +439,28 @@ const getAndroidOutputPath = ({
439
439
  if (!platforms.includes("android")) {
440
440
  return;
441
441
  }
442
+
443
+ const withSizeChecks = (assetsOutputPath: string) => {
444
+ if (logoWidth > 288 || logoHeight > 288) {
445
+ return log.warn(
446
+ "Logo size exceeding 288x288dp will be cropped by Android. Skipping Android assets generation…",
447
+ );
448
+ }
449
+ if (brandWidth > 200 || brandHeight > 80) {
450
+ return log.warn(
451
+ "Brand size exceeding 200x80dp will be cropped by Android. Skipping Android assets generation…",
452
+ );
453
+ }
454
+
455
+ if (logoWidth > 192 || logoHeight > 192) {
456
+ log.warn("Logo size exceeds 192x192dp. It might be cropped by Android.");
457
+ }
458
+
459
+ return assetsOutputPath;
460
+ };
461
+
442
462
  if (isExpo) {
443
- return path.resolve(assetsOutputPath, "android");
463
+ return withSizeChecks(path.resolve(assetsOutputPath, "android"));
444
464
  }
445
465
  if (android == null) {
446
466
  return;
@@ -463,22 +483,7 @@ const getAndroidOutputPath = ({
463
483
  );
464
484
  }
465
485
 
466
- if (logoWidth > 288 || logoHeight > 288) {
467
- return log.warn(
468
- "Logo size exceeding 288x288dp will be cropped by Android. Skipping Android assets generation…",
469
- );
470
- }
471
- if (brandWidth > 200 || brandHeight > 80) {
472
- return log.warn(
473
- "Brand size exceeding 200x80dp will be cropped by Android. Skipping Android assets generation…",
474
- );
475
- }
476
-
477
- if (logoWidth > 192 || logoHeight > 192) {
478
- log.warn("Logo size exceeds 192x192dp. It might be cropped by Android.");
479
- }
480
-
481
- return androidOutputPath;
486
+ return withSizeChecks(androidOutputPath);
482
487
  };
483
488
 
484
489
  const getIOSOutputPath = ({
package/src/index.ts CHANGED
@@ -8,6 +8,7 @@ import {
8
8
  StyleSheet,
9
9
  ViewStyle,
10
10
  } from "react-native";
11
+ import { isEdgeToEdge } from "react-native-is-edge-to-edge";
11
12
  import NativeModule from "./NativeRNBootSplash";
12
13
 
13
14
  export type Config = {
@@ -91,8 +92,8 @@ export function useHideAnimation(config: UseHideAnimationConfig) {
91
92
 
92
93
  animate,
93
94
 
94
- statusBarTranslucent = false,
95
- navigationBarTranslucent = false,
95
+ statusBarTranslucent,
96
+ navigationBarTranslucent,
96
97
  } = config;
97
98
 
98
99
  const skipLogo = logoSrc == null;
@@ -219,15 +220,33 @@ export function useHideAnimation(config: UseHideAnimationConfig) {
219
220
  return { container, logo, brand };
220
221
  }
221
222
 
223
+ if (__DEV__) {
224
+ const hasNavigationBarOption = navigationBarTranslucent != null;
225
+ const hasStatusBarOption = statusBarTranslucent != null;
226
+ const hasBothOptions = hasStatusBarOption && hasNavigationBarOption;
227
+
228
+ if (isEdgeToEdge() && (hasStatusBarOption || hasNavigationBarOption)) {
229
+ console.warn(
230
+ hasBothOptions
231
+ ? "statusBarTranslucent and navigationBarTranslucent options are ignored when using react-native-edge-to-edge"
232
+ : `${hasStatusBarOption ? "status" : "navigation"}BarTranslucent option is ignored when using react-native-edge-to-edge`,
233
+ );
234
+ }
235
+ }
236
+
222
237
  return {
223
238
  container: {
224
239
  ...container,
225
240
  style: {
226
241
  ...containerStyle,
227
- marginTop: statusBarTranslucent ? undefined : -statusBarHeight,
228
- marginBottom: navigationBarTranslucent
229
- ? undefined
230
- : -navigationBarHeight,
242
+ marginTop:
243
+ isEdgeToEdge() || (statusBarTranslucent ?? false)
244
+ ? undefined
245
+ : -statusBarHeight,
246
+ marginBottom:
247
+ isEdgeToEdge() || (navigationBarTranslucent ?? false)
248
+ ? undefined
249
+ : -navigationBarHeight,
231
250
  },
232
251
  },
233
252
  logo: {
@@ -1,13 +0,0 @@
1
- package com.zoontek.rnbootsplash;
2
-
3
- import android.app.Activity;
4
-
5
- import androidx.annotation.NonNull;
6
- import androidx.annotation.StyleRes;
7
-
8
- public class RNBootSplash {
9
-
10
- public static void init(@NonNull final Activity activity, @StyleRes int themeResId) {
11
- RNBootSplashModuleImpl.init(activity, themeResId);
12
- }
13
- }
@@ -1,119 +0,0 @@
1
- package com.zoontek.rnbootsplash;
2
-
3
- import android.app.Activity;
4
- import android.app.Dialog;
5
- import android.content.DialogInterface;
6
- import android.os.Bundle;
7
- import android.view.Window;
8
- import android.view.WindowManager;
9
-
10
- import androidx.annotation.NonNull;
11
- import androidx.annotation.StyleRes;
12
-
13
- public class RNBootSplashDialog extends Dialog {
14
-
15
- private final boolean mFade;
16
-
17
- public RNBootSplashDialog(@NonNull Activity activity, @StyleRes int themeResId, boolean fade) {
18
- super(activity, themeResId);
19
-
20
- mFade = fade;
21
-
22
- setOwnerActivity(activity);
23
- setCancelable(false);
24
- setCanceledOnTouchOutside(false);
25
- }
26
-
27
- @Override
28
- public void onBackPressed() {
29
- Activity activity = getOwnerActivity();
30
-
31
- if (activity != null) {
32
- activity.moveTaskToBack(true);
33
- }
34
- }
35
-
36
- @Override
37
- public void dismiss() {
38
- if (!isShowing()) {
39
- return;
40
- }
41
-
42
- try {
43
- super.dismiss();
44
- } catch (Exception ignored) {}
45
- }
46
-
47
- public void dismiss(@NonNull final Runnable callback) {
48
- if (!isShowing()) {
49
- callback.run();
50
- return;
51
- }
52
-
53
- setOnDismissListener(new OnDismissListener() {
54
- @Override
55
- public void onDismiss(DialogInterface dialog) {
56
- callback.run();
57
- }
58
- });
59
-
60
- try {
61
- super.dismiss();
62
- } catch (Exception ignored) {
63
- callback.run();
64
- }
65
- }
66
-
67
- @Override
68
- public void show() {
69
- if (isShowing()) {
70
- return;
71
- }
72
-
73
- try {
74
- super.show();
75
- } catch (Exception ignored) {}
76
- }
77
-
78
- public void show(@NonNull final Runnable callback) {
79
- if (isShowing()) {
80
- callback.run();
81
- return;
82
- }
83
-
84
- setOnShowListener(new DialogInterface.OnShowListener() {
85
- @Override
86
- public void onShow(DialogInterface dialog) {
87
- callback.run();
88
- }
89
- });
90
-
91
- try {
92
- super.show();
93
- } catch (Exception ignored) {
94
- callback.run();
95
- }
96
- }
97
-
98
- @Override
99
- protected void onCreate(Bundle savedInstanceState) {
100
- final Window window = getWindow();
101
-
102
- if (window != null) {
103
- window.setLayout(
104
- WindowManager.LayoutParams.MATCH_PARENT,
105
- WindowManager.LayoutParams.MATCH_PARENT
106
- );
107
-
108
- window.setWindowAnimations(mFade
109
- ? R.style.BootSplashFadeOutAnimation
110
- : R.style.BootSplashNoAnimation);
111
-
112
- if (RNBootSplashModuleImpl.isSamsungOneUI4()) {
113
- window.setBackgroundDrawableResource(R.drawable.compat_splash_screen_oneui_4);
114
- }
115
- }
116
-
117
- super.onCreate(savedInstanceState);
118
- }
119
- }
@@ -1,306 +0,0 @@
1
- package com.zoontek.rnbootsplash;
2
-
3
- import android.annotation.SuppressLint;
4
- import android.app.Activity;
5
- import android.content.res.Configuration;
6
- import android.content.res.Resources;
7
- import android.os.Build;
8
- import android.util.TypedValue;
9
- import android.view.View;
10
- import android.view.ViewConfiguration;
11
- import android.view.ViewTreeObserver;
12
- import android.window.SplashScreen;
13
- import android.window.SplashScreenView;
14
-
15
- import androidx.annotation.NonNull;
16
- import androidx.annotation.Nullable;
17
- import androidx.annotation.StyleRes;
18
-
19
- import com.facebook.common.logging.FLog;
20
- import com.facebook.react.bridge.Promise;
21
- import com.facebook.react.bridge.ReactApplicationContext;
22
- import com.facebook.react.bridge.UiThreadUtil;
23
- import com.facebook.react.common.ReactConstants;
24
- import com.facebook.react.uimanager.PixelUtil;
25
-
26
- import java.lang.reflect.Field;
27
- import java.util.HashMap;
28
- import java.util.Map;
29
- import java.util.Timer;
30
- import java.util.TimerTask;
31
-
32
- public class RNBootSplashModuleImpl {
33
-
34
- public static final String NAME = "RNBootSplash";
35
-
36
- private static final RNBootSplashQueue<Promise> mPromiseQueue = new RNBootSplashQueue<>();
37
-
38
- private enum Status {
39
- HIDDEN,
40
- HIDING,
41
- INITIALIZING,
42
- VISIBLE,
43
- }
44
-
45
- @NonNull
46
- private static Status mStatus = Status.HIDDEN;
47
-
48
- @StyleRes
49
- private static int mThemeResId = -1;
50
-
51
- @Nullable
52
- private static RNBootSplashDialog mInitialDialog = null;
53
- @Nullable
54
- private static RNBootSplashDialog mFadeOutDialog = null;
55
-
56
- protected static void init(
57
- @Nullable final Activity activity,
58
- @StyleRes int themeResId
59
- ) {
60
- if (mThemeResId != -1) {
61
- FLog.w(ReactConstants.TAG, NAME + ": Ignored initialization, module is already initialized.");
62
- return;
63
- }
64
-
65
- mThemeResId = themeResId;
66
-
67
- if (activity == null) {
68
- FLog.w(ReactConstants.TAG, NAME + ": Ignored initialization, current activity is null.");
69
- return;
70
- }
71
-
72
- // Apply postBootSplashTheme
73
- TypedValue typedValue = new TypedValue();
74
- Resources.Theme currentTheme = activity.getTheme();
75
-
76
- if (currentTheme
77
- .resolveAttribute(R.attr.postBootSplashTheme, typedValue, true)) {
78
- int finalThemeId = typedValue.resourceId;
79
-
80
- if (finalThemeId != 0) {
81
- activity.setTheme(finalThemeId);
82
- }
83
- }
84
-
85
- // Keep the splash screen on-screen until Dialog is shown
86
- final View contentView = activity.findViewById(android.R.id.content);
87
- mStatus = Status.INITIALIZING;
88
-
89
- contentView
90
- .getViewTreeObserver()
91
- .addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
92
- @Override
93
- public boolean onPreDraw() {
94
- if (mStatus == Status.INITIALIZING) {
95
- return false;
96
- }
97
-
98
- contentView
99
- .getViewTreeObserver()
100
- .removeOnPreDrawListener(this);
101
-
102
- return true;
103
- }
104
- });
105
-
106
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
107
- // This is not called on Android 12 when activity is started using intent
108
- // (Android studio / CLI / notification / widget…)
109
- SplashScreen.OnExitAnimationListener listener = new SplashScreen.OnExitAnimationListener() {
110
- @Override
111
- public void onSplashScreenExit(@NonNull SplashScreenView view) {
112
- view.remove(); // Remove it immediately, without animation
113
-
114
- activity
115
- .getSplashScreen()
116
- .clearOnExitAnimationListener();
117
- }
118
- };
119
-
120
- activity
121
- .getSplashScreen()
122
- .setOnExitAnimationListener(listener);
123
- }
124
-
125
- mInitialDialog = new RNBootSplashDialog(activity, mThemeResId, false);
126
-
127
- UiThreadUtil.runOnUiThread(new Runnable() {
128
- @Override
129
- public void run() {
130
- mInitialDialog.show(new Runnable() {
131
- @Override
132
- public void run() {
133
- mStatus = Status.VISIBLE;
134
- }
135
- });
136
- }
137
- });
138
- }
139
-
140
- private static void clearPromiseQueue() {
141
- while (!mPromiseQueue.isEmpty()) {
142
- Promise promise = mPromiseQueue.shift();
143
-
144
- if (promise != null) {
145
- promise.resolve(true);
146
- }
147
- }
148
- }
149
-
150
- private static @NonNull Runnable getHideSequenceRunnable() {
151
- final Runnable fadeOutDialogDismiss = new Runnable() {
152
- @Override
153
- public void run() {
154
- mFadeOutDialog = null;
155
- mStatus = Status.HIDDEN;
156
- clearPromiseQueue();
157
- }
158
- };
159
-
160
- final Runnable initialDialogDismiss = new Runnable() {
161
- @Override
162
- public void run() {
163
- mInitialDialog = null;
164
-
165
- if (mFadeOutDialog != null) {
166
- mFadeOutDialog.dismiss(fadeOutDialogDismiss);
167
- } else {
168
- fadeOutDialogDismiss.run();
169
- }
170
- }
171
- };
172
-
173
- return new Runnable() {
174
- @Override
175
- public void run() {
176
- if (mInitialDialog != null) {
177
- mInitialDialog.dismiss(initialDialogDismiss);
178
- } else {
179
- initialDialogDismiss.run();
180
- }
181
- }
182
- };
183
- }
184
-
185
- private static void hideAndClearPromiseQueue(
186
- final ReactApplicationContext reactContext,
187
- final boolean fade
188
- ) {
189
- UiThreadUtil.runOnUiThread(new Runnable() {
190
- @Override
191
- public void run() {
192
- final Activity activity = reactContext.getCurrentActivity();
193
-
194
- if (mStatus == Status.INITIALIZING
195
- || activity == null
196
- || activity.isFinishing()
197
- || activity.isDestroyed()
198
- ) {
199
- final Timer timer = new Timer();
200
-
201
- timer.schedule(new TimerTask() {
202
- @Override
203
- public void run() {
204
- timer.cancel();
205
- hideAndClearPromiseQueue(reactContext, fade);
206
- }
207
- }, 100);
208
-
209
- return;
210
- }
211
-
212
- if (mStatus == Status.HIDING) {
213
- return; // wait until fade out end for clearPromiseQueue
214
- }
215
-
216
- if (mStatus == Status.HIDDEN) {
217
- clearPromiseQueue();
218
- return; // both initial and fade out dialog are hidden
219
- }
220
-
221
- mStatus = Status.HIDING;
222
-
223
- if (fade) {
224
- // Create a new Dialog instance with fade out animation
225
- mFadeOutDialog = new RNBootSplashDialog(activity, mThemeResId, true);
226
- mFadeOutDialog.show(getHideSequenceRunnable());
227
- } else if (mInitialDialog != null) {
228
- mInitialDialog.dismiss(getHideSequenceRunnable());
229
- } else {
230
- getHideSequenceRunnable().run();
231
- }
232
- }
233
- });
234
- }
235
-
236
- // From https://stackoverflow.com/a/61062773
237
- public static boolean isSamsungOneUI4() {
238
- String name = "SEM_PLATFORM_INT";
239
-
240
- try {
241
- Field field = Build.VERSION.class.getDeclaredField(name);
242
- int version = (field.getInt(null) - 90000) / 10000;
243
- return version == 4;
244
- } catch (Exception ignored) {
245
- return false;
246
- }
247
- }
248
-
249
- protected static void onHostDestroy() {
250
- mStatus = Status.HIDDEN;
251
- mThemeResId = -1;
252
- clearPromiseQueue();
253
-
254
- if (mInitialDialog != null) {
255
- mInitialDialog.dismiss();
256
- mInitialDialog = null;
257
- }
258
- if (mFadeOutDialog != null) {
259
- mFadeOutDialog.dismiss();
260
- mFadeOutDialog = null;
261
- }
262
- }
263
-
264
- public static Map<String, Object> getConstants(final ReactApplicationContext reactContext) {
265
- final Resources resources = reactContext.getResources();
266
- HashMap<String, Object> constants = new HashMap<>();
267
-
268
- int uiMode =
269
- reactContext.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
270
-
271
- @SuppressLint({"InternalInsetResource", "DiscouragedApi"}) final int statusBarHeightResId =
272
- resources.getIdentifier("status_bar_height", "dimen", "android");
273
-
274
- @SuppressLint({"InternalInsetResource", "DiscouragedApi"}) final int navigationBarHeightResId =
275
- resources.getIdentifier("navigation_bar_height", "dimen", "android");
276
-
277
- float statusBarHeight = statusBarHeightResId > 0
278
- ? PixelUtil.toDIPFromPixel(resources.getDimensionPixelSize(statusBarHeightResId))
279
- : 0;
280
-
281
- float navigationBarHeight = navigationBarHeightResId > 0 &&
282
- !ViewConfiguration.get(reactContext).hasPermanentMenuKey()
283
- ? PixelUtil.toDIPFromPixel(resources.getDimensionPixelSize(navigationBarHeightResId))
284
- : 0;
285
-
286
- constants.put("darkModeEnabled", uiMode == Configuration.UI_MODE_NIGHT_YES);
287
- constants.put("logoSizeRatio", isSamsungOneUI4() ? 0.5 : 1);
288
- constants.put("navigationBarHeight", navigationBarHeight);
289
- constants.put("statusBarHeight", statusBarHeight);
290
-
291
- return constants;
292
- }
293
-
294
- public static void hide(
295
- final ReactApplicationContext reactContext,
296
- final boolean fade,
297
- final Promise promise
298
- ) {
299
- mPromiseQueue.push(promise);
300
- hideAndClearPromiseQueue(reactContext, fade);
301
- }
302
-
303
- public static void isVisible(final Promise promise) {
304
- promise.resolve(mStatus != Status.HIDDEN);
305
- }
306
- }