diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api
index e45682536635b1..0a50cc37974935 100644
--- a/packages/react-native/ReactAndroid/api/ReactAndroid.api
+++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api
@@ -6050,6 +6050,7 @@ public final class com/facebook/react/views/text/DefaultStyleValuesUtil {
public static final fun getDefaultTextColor (Landroid/content/Context;)Landroid/content/res/ColorStateList;
public static final fun getDefaultTextColorHighlight (Landroid/content/Context;)I
public static final fun getDefaultTextColorHint (Landroid/content/Context;)Landroid/content/res/ColorStateList;
+ public static final fun getTextColorSecondary (Landroid/content/Context;)Landroid/content/res/ColorStateList;
}
public abstract class com/facebook/react/views/text/ReactBaseTextShadowNode : com/facebook/react/uimanager/LayoutShadowNode {
diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt
index e3c20324d03ad0..79b09fca56dbe1 100644
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt
@@ -17,6 +17,7 @@ import android.content.DialogInterface
import android.content.Intent
import android.content.IntentFilter
import android.content.pm.PackageManager
+import android.content.res.ColorStateList
import android.graphics.Typeface
import android.hardware.SensorManager
import android.os.Build
@@ -74,6 +75,8 @@ import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatur
import com.facebook.react.modules.core.RCTNativeAppEventEmitter
import com.facebook.react.modules.debug.interfaces.DeveloperSettings
import com.facebook.react.packagerconnection.RequestHandler
+import com.facebook.react.views.common.UiModeUtils
+import com.facebook.react.views.text.DefaultStyleValuesUtil
import java.io.File
import java.net.MalformedURLException
import java.net.URL
@@ -547,7 +550,11 @@ public abstract class DevSupportManagerBase(
isEnabled = isEnabled(position)
if (this is TextView) {
setTextColor(
- if (isEnabled) android.graphics.Color.WHITE else android.graphics.Color.GRAY
+ if (isEnabled) {
+ safeGetDefaultTextColor(context)
+ } else {
+ safeGetTextColorSecondary(context)
+ }
)
}
}
@@ -1011,6 +1018,17 @@ public abstract class DevSupportManagerBase(
}
}
+ private fun safeGetDefaultTextColor(context: Context): ColorStateList {
+ return DefaultStyleValuesUtil.getDefaultTextColor(context)
+ ?: if (UiModeUtils.isDarkMode(context)) ColorStateList.valueOf(android.graphics.Color.WHITE)
+ else ColorStateList.valueOf(android.graphics.Color.BLACK)
+ }
+
+ private fun safeGetTextColorSecondary(context: Context): ColorStateList {
+ return DefaultStyleValuesUtil.getTextColorSecondary(context)
+ ?: ColorStateList.valueOf(android.graphics.Color.GRAY)
+ }
+
override fun openDebugger(panel: String?) {
devServerHelper.openDebugger(
currentReactContext,
diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/DefaultStyleValuesUtil.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/DefaultStyleValuesUtil.kt
index c1a046f9beeedd..84b67cd2d44e45 100644
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/DefaultStyleValuesUtil.kt
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/DefaultStyleValuesUtil.kt
@@ -41,6 +41,10 @@ public object DefaultStyleValuesUtil {
public fun getDefaultTextColor(context: Context): ColorStateList? =
getDefaultTextAttribute(context, android.R.attr.textColor)
+ @JvmStatic
+ public fun getTextColorSecondary(context: Context): ColorStateList? =
+ getDefaultTextAttribute(context, android.R.attr.textColorSecondary)
+
/**
* Utility method that returns the default text highlight color as define by the theme
*
diff --git a/packages/rn-tester/android/app/src/main/res/values-night/colors.xml b/packages/rn-tester/android/app/src/main/res/values-night/colors.xml
new file mode 100644
index 00000000000000..b3331488e2c449
--- /dev/null
+++ b/packages/rn-tester/android/app/src/main/res/values-night/colors.xml
@@ -0,0 +1,4 @@
+
+ #FFFFFF
+ #888888
+
\ No newline at end of file
diff --git a/packages/rn-tester/android/app/src/main/res/values-night/styles.xml b/packages/rn-tester/android/app/src/main/res/values-night/styles.xml
new file mode 100644
index 00000000000000..027e9efdc410cd
--- /dev/null
+++ b/packages/rn-tester/android/app/src/main/res/values-night/styles.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
diff --git a/packages/rn-tester/android/app/src/main/res/values/colors.xml b/packages/rn-tester/android/app/src/main/res/values/colors.xml
new file mode 100644
index 00000000000000..4bccbad4e1d1c0
--- /dev/null
+++ b/packages/rn-tester/android/app/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #000000
+ #888888
+
diff --git a/packages/rn-tester/android/app/src/main/res/values/styles.xml b/packages/rn-tester/android/app/src/main/res/values/styles.xml
index 24bc061368750c..027e9efdc410cd 100644
--- a/packages/rn-tester/android/app/src/main/res/values/styles.xml
+++ b/packages/rn-tester/android/app/src/main/res/values/styles.xml
@@ -3,6 +3,8 @@