react-native-legal 1.6.2 → 1.6.3

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.
@@ -2,13 +2,17 @@ package com.reactnativelegal
2
2
 
3
3
  import android.content.pm.PackageManager
4
4
  import android.content.res.Configuration
5
+ import android.graphics.Color
6
+ import android.os.Build
5
7
  import android.os.Bundle
6
8
  import android.view.MenuItem
7
9
  import android.view.View
10
+ import android.view.WindowManager
8
11
  import androidx.appcompat.app.AppCompatActivity
9
12
  import androidx.appcompat.widget.Toolbar
10
13
  import androidx.core.view.WindowCompat
11
14
  import androidx.core.view.WindowInsetsCompat
15
+ import androidx.core.view.WindowInsetsControllerCompat
12
16
  import androidx.core.view.updatePadding
13
17
  import com.mikepenz.aboutlibraries.LibsBuilder.Companion.BUNDLE_TITLE
14
18
  import com.mikepenz.aboutlibraries.ui.LibsSupportFragment
@@ -25,14 +29,7 @@ class ReactNativeLegalActivity : AppCompatActivity() {
25
29
  super.onCreate(savedInstanceState)
26
30
  setContentView(R.layout.activity_licenses)
27
31
 
28
- val isLightTheme =
29
- resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK !=
30
- Configuration.UI_MODE_NIGHT_YES
31
-
32
- WindowCompat.getInsetsController(window, window.decorView).apply {
33
- isAppearanceLightStatusBars = isLightTheme
34
- isAppearanceLightNavigationBars = isLightTheme
35
- }
32
+ setupEdgeToEdge()
36
33
 
37
34
  val bundle = intent.extras
38
35
  fragment = LibsSupportFragment().apply { arguments = bundle }
@@ -83,9 +80,9 @@ class ReactNativeLegalActivity : AppCompatActivity() {
83
80
  WindowInsetsCompat.toWindowInsetsCompat(insets)
84
81
  .getInsets(WindowInsetsCompat.Type.systemBars())
85
82
  v.updatePadding(
86
- left = v.paddingLeft + systemInsets.left,
87
- top = v.paddingTop + systemInsets.top,
88
- right = v.paddingRight + systemInsets.right,
83
+ left = systemInsets.left,
84
+ top = systemInsets.top,
85
+ right = systemInsets.right,
89
86
  )
90
87
 
91
88
  insets
@@ -106,4 +103,46 @@ class ReactNativeLegalActivity : AppCompatActivity() {
106
103
  )
107
104
  }
108
105
  }
106
+
107
+ /**
108
+ * Based on React Native's edge-to-edge util
109
+ * https://github.com/facebook/react-native/blob/6e7797d5ab1af6bab8d94b1c1ad62dddc1ec5474/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt#L106
110
+ */
111
+ private fun setupEdgeToEdge() {
112
+ WindowCompat.setDecorFitsSystemWindows(window, false)
113
+
114
+ val isLightTheme =
115
+ resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK !=
116
+ Configuration.UI_MODE_NIGHT_YES
117
+
118
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
119
+ window.isStatusBarContrastEnforced = false
120
+ window.isNavigationBarContrastEnforced = true
121
+ }
122
+
123
+ window.statusBarColor = Color.TRANSPARENT
124
+ window.navigationBarColor =
125
+ when {
126
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> Color.TRANSPARENT
127
+ // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/com/android/internal/policy/DecorView.java;drc=6ef0f022c333385dba2c294e35b8de544455bf19;l=142
128
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && isLightTheme ->
129
+ Color.argb(0xe6, 0xFF, 0xFF, 0xFF)
130
+ // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/res/remote_color_resources_res/values/colors.xml;l=67
131
+ else -> Color.argb(0x80, 0x1b, 0x1b, 0x1b)
132
+ }
133
+
134
+ WindowInsetsControllerCompat(window, window.decorView).apply {
135
+ isAppearanceLightStatusBars = isLightTheme
136
+ isAppearanceLightNavigationBars = isLightTheme
137
+ }
138
+
139
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
140
+ window.attributes.layoutInDisplayCutoutMode =
141
+ when {
142
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.R ->
143
+ WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
144
+ else -> WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
145
+ }
146
+ }
147
+ }
109
148
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-legal",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "Acknowledge OSS libraries used in your React Native app",
5
5
  "keywords": [
6
6
  "react-native",