Skip to content

Commit 21411ef

Browse files
authored
fix(android): edge to edge guards on activity type (#11005)
1 parent 47f66f1 commit 21411ef

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed
864 Bytes
Binary file not shown.

packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/Utils.java

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.nativescript.widgets;
22

3+
import android.app.Activity;
34
import android.content.ContentResolver;
45
import android.content.Context;
56
import android.content.res.Resources;
@@ -74,20 +75,40 @@ public int getValue() {
7475
// https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/res/remote_color_resources_res/values/colors.xml;l=67
7576
static final int DefaultDarkScrim = Color.argb(0x80, 0x1b, 0x1b, 0x1b);
7677

77-
public static void enableEdgeToEdge(ComponentActivity activity) {
78-
androidx.activity.EdgeToEdge.enable(activity);
78+
public static void enableEdgeToEdge(Activity activity) {
79+
if (activity instanceof ComponentActivity) {
80+
androidx.activity.EdgeToEdge.enable((ComponentActivity) activity);
81+
}
7982
}
8083

81-
public static void enableEdgeToEdge(ComponentActivity activity, HandleDarkMode handleDarkMode) {
82-
androidx.activity.EdgeToEdge.enable(activity, SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT, resources -> handleDarkMode.onHandle(HandleDarkModeBar.status.getValue(), resources)), SystemBarStyle.auto(DefaultLightScrim, DefaultDarkScrim, resources -> handleDarkMode.onHandle(HandleDarkModeBar.navigation.getValue(), resources)));
84+
public static void enableEdgeToEdge(Activity activity, HandleDarkMode handleDarkMode) {
85+
if (activity instanceof ComponentActivity) {
86+
ComponentActivity componentActivity = (ComponentActivity) activity;
87+
androidx.activity.EdgeToEdge.enable(componentActivity,
88+
SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT, resources -> handleDarkMode.onHandle(HandleDarkModeBar.status.getValue(), resources)),
89+
SystemBarStyle.auto(DefaultLightScrim, DefaultDarkScrim, resources -> handleDarkMode.onHandle(HandleDarkModeBar.navigation.getValue(), resources))
90+
);
91+
}
8392
}
8493

85-
public static void enableEdgeToEdge(ComponentActivity activity, @ColorInt Integer statusBarLight, @ColorInt Integer statusBarDark, @ColorInt Integer navigationBarLight, @ColorInt Integer navigationBarDark) {
86-
androidx.activity.EdgeToEdge.enable(activity, SystemBarStyle.auto(statusBarLight, statusBarDark), SystemBarStyle.auto(navigationBarLight, navigationBarDark));
94+
public static void enableEdgeToEdge(Activity activity, @ColorInt Integer statusBarLight, @ColorInt Integer statusBarDark, @ColorInt Integer navigationBarLight, @ColorInt Integer navigationBarDark) {
95+
if (activity instanceof ComponentActivity) {
96+
ComponentActivity componentActivity = (ComponentActivity) activity;
97+
androidx.activity.EdgeToEdge.enable(componentActivity,
98+
SystemBarStyle.auto(statusBarLight, statusBarDark),
99+
SystemBarStyle.auto(navigationBarLight, navigationBarDark)
100+
);
101+
}
87102
}
88103

89-
public static void enableEdgeToEdge(ComponentActivity activity, @ColorInt Integer statusBarLight, @ColorInt Integer statusBarDark, @ColorInt Integer navigationBarLight, @ColorInt Integer navigationBarDark, HandleDarkMode handleDarkMode) {
90-
androidx.activity.EdgeToEdge.enable(activity, SystemBarStyle.auto(statusBarLight, statusBarDark, resources -> handleDarkMode.onHandle(HandleDarkModeBar.status.getValue(), resources)), SystemBarStyle.auto(navigationBarLight, navigationBarDark, resources -> handleDarkMode.onHandle(HandleDarkModeBar.navigation.getValue(), resources)));
104+
public static void enableEdgeToEdge(Activity activity, @ColorInt Integer statusBarLight, @ColorInt Integer statusBarDark, @ColorInt Integer navigationBarLight, @ColorInt Integer navigationBarDark, HandleDarkMode handleDarkMode) {
105+
if (activity instanceof ComponentActivity) {
106+
ComponentActivity componentActivity = (ComponentActivity) activity;
107+
androidx.activity.EdgeToEdge.enable(componentActivity,
108+
SystemBarStyle.auto(statusBarLight, statusBarDark, resources -> handleDarkMode.onHandle(HandleDarkModeBar.status.getValue(), resources)),
109+
SystemBarStyle.auto(navigationBarLight, navigationBarDark, resources -> handleDarkMode.onHandle(HandleDarkModeBar.navigation.getValue(), resources))
110+
);
111+
}
91112
}
92113

93114
public static Drawable getDrawable(String uri, Context context) {

0 commit comments

Comments
 (0)