Skip to content

Commit acacab6

Browse files
committed
Handle activity theme
1 parent 15d5083 commit acacab6

5 files changed

Lines changed: 15 additions & 14 deletions

File tree

packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/GenerateEntryPointTask.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ abstract class GenerateEntryPointTask : DefaultTask() {
9797
DefaultNewArchitectureEntryPoint.load();
9898
}
9999
100-
WindowUtilKt.initEdgeToEdge(context, {{packageName}}.BuildConfig.IS_EDGE_TO_EDGE_ENABLED);
100+
if ({{packageName}}.BuildConfig.IS_EDGE_TO_EDGE_ENABLED) {
101+
WindowUtilKt.setEdgeToEdgeFeatureFlagOn();
102+
}
101103
}
102104
}
103105
"""

packages/gradle-plugin/react-native-gradle-plugin/src/test/kotlin/com/facebook/react/tasks/GenerateEntryPointTaskTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ class GenerateEntryPointTaskTest {
8080
DefaultNewArchitectureEntryPoint.load();
8181
}
8282
83-
WindowUtilKt.initEdgeToEdge(context, com.facebook.react.BuildConfig.IS_EDGE_TO_EDGE_ENABLED);
83+
if (com.facebook.react.BuildConfig.IS_EDGE_TO_EDGE_ENABLED) {
84+
WindowUtilKt.setEdgeToEdgeFeatureFlagOn();
85+
}
8486
}
8587
}
8688
"""

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6545,7 +6545,6 @@ public final class com/facebook/react/views/view/ReactViewManager$Companion {
65456545
public final class com/facebook/react/views/view/WindowUtilKt {
65466546
public static final fun isEdgeToEdgeFeatureFlagOn ()Z
65476547
public static final fun setEdgeToEdgeFeatureFlagOn ()V
6548-
public static final fun initEdgeToEdge (Landroid/content/Context;Z)V
65496548
}
65506549

65516550
public final class com/facebook/react/views/virtual/VirtualViewMode : java/lang/Enum {

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
138138
if (mActivity != null) {
139139
Window window = mActivity.getWindow();
140140
if (window != null) {
141-
if (WindowUtilKt.isDeviceRunningEdgeToEdge()) {
142-
WindowUtilKt.enableEdgeToEdge(window);
143-
}
141+
WindowUtilKt.initEdgeToEdge(mActivity);
144142
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && isWideColorGamutEnabled()) {
145143
window.setColorMode(ActivityInfo.COLOR_MODE_WIDE_COLOR_GAMUT);
146144
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
package com.facebook.react.views.view
99

10-
import android.content.Context
10+
import android.app.Activity
1111
import android.graphics.Color
1212
import android.os.Build
1313
import android.view.Window
@@ -48,18 +48,14 @@ public fun setEdgeToEdgeFeatureFlagOn() {
4848
isEdgeToEdgeFeatureFlagOn = true
4949
}
5050

51-
public fun initEdgeToEdge(context: Context, flag: Boolean) {
52-
if (flag) {
53-
setEdgeToEdgeFeatureFlagOn()
54-
}
55-
51+
internal fun initEdgeToEdge(activity: Activity) {
5652
isDeviceRunningEdgeToEdge =
5753
when {
58-
!AndroidVersion.isAtLeastTargetSdk35(context) -> flag
54+
!AndroidVersion.isAtLeastTargetSdk35(activity) -> isEdgeToEdgeFeatureFlagOn
5955
Build.VERSION.SDK_INT >= AndroidVersion.VERSION_CODE_BAKLAVA -> true
6056
else -> {
6157
val attributes = intArrayOf(AndroidVersion.ATTR_WINDOW_OPT_OUT_EDGE_TO_EDGE_ENFORCEMENT)
62-
val typedArray = context.theme.obtainStyledAttributes(attributes)
58+
val typedArray = activity.theme.obtainStyledAttributes(attributes)
6359

6460
try {
6561
!typedArray.getBoolean(0, false)
@@ -68,6 +64,10 @@ public fun initEdgeToEdge(context: Context, flag: Boolean) {
6864
}
6965
}
7066
}
67+
68+
if (isDeviceRunningEdgeToEdge) {
69+
activity.window.enableEdgeToEdge()
70+
}
7171
}
7272

7373
@Suppress("DEPRECATION")

0 commit comments

Comments
 (0)