diff --git a/packages/react-native/ReactAndroid/src/main/AndroidManifest.xml b/packages/react-native/ReactAndroid/src/main/AndroidManifest.xml index ed881a552c0f..e971a033d806 100644 --- a/packages/react-native/ReactAndroid/src/main/AndroidManifest.xml +++ b/packages/react-native/ReactAndroid/src/main/AndroidManifest.xml @@ -8,7 +8,7 @@ up from the file to lint until it find an AndroidManifest with a minSdkVersion. This is then used as the min SDK to lint the file.--> diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 37845bc0ec27..3d38453ae401 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -12,7 +12,6 @@ import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.res.Configuration; -import android.os.Build; import android.os.Bundle; import android.view.KeyEvent; import android.view.Window; @@ -141,7 +140,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) { if (WindowUtilKt.isEdgeToEdgeFeatureFlagOn()) { WindowUtilKt.enableEdgeToEdge(window); } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && isWideColorGamutEnabled()) { + if (isWideColorGamutEnabled()) { window.setColorMode(ActivityInfo.COLOR_MODE_WIDE_COLOR_GAMUT); } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.kt index e4ad53e487b2..e4ab0e0b67b6 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.kt @@ -20,8 +20,6 @@ import com.facebook.react.common.ReactConstants public object ColorPropConverter { - private fun supportWideGamut(): Boolean = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O - private const val JSON_KEY = "resource_paths" private const val PREFIX_RESOURCE = "@" private const val PREFIX_ATTR = "?" @@ -78,14 +76,14 @@ public object ColorPropConverter { return null } - if (supportWideGamut() && value is Double) { + if (value is Double) { return Color.valueOf(value.toInt()) } checkNotNull(context) if (value is ReadableMap) { - if (supportWideGamut() && value.hasKey("space")) { + if (value.hasKey("space")) { val rawColorSpace = value.getString("space") val isDisplayP3 = rawColorSpace == "display-p3" val space = @@ -108,7 +106,7 @@ public object ColorPropConverter { for (i in 0 until resourcePaths.size()) { val result = resolveResourcePath(context, resourcePaths.getString(i)) - if (supportWideGamut() && result != null) { + if (result != null) { return Color.valueOf(result) } } @@ -124,11 +122,9 @@ public object ColorPropConverter { @JvmStatic public fun getColor(value: Any?, context: Context): Int? { try { - if (supportWideGamut()) { - val color = getColorInstance(value, context) - if (color != null) { - return color.toArgb() - } + val color = getColorInstance(value, context) + if (color != null) { + return color.toArgb() } } catch (ex: JSApplicationCausedNativeException) { FLog.w(ReactConstants.TAG, ex, "Error extracting color from WideGamut") diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DebugOverlayController.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DebugOverlayController.kt index 79f13c0e66ef..418226ded169 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DebugOverlayController.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DebugOverlayController.kt @@ -41,7 +41,7 @@ internal class DebugOverlayController(private val reactContext: ReactContext) { WindowManager.LayoutParams( WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT, - WindowOverlayCompat.TYPE_SYSTEM_OVERLAY, + WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, PixelFormat.TRANSLUCENT, diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/WindowOverlayCompat.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/WindowOverlayCompat.kt deleted file mode 100644 index 672af57e0ef1..000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/WindowOverlayCompat.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.devsupport - -import android.os.Build -import android.view.WindowManager - -/** - * Compatibility wrapper for apps targeting API level 26 or later. See - * https://developer.android.com/about/versions/oreo/android-8.0-changes.html#cwt - */ -internal object WindowOverlayCompat { - - private const val TYPE_APPLICATION_OVERLAY = 2038 - - @Suppress("DEPRECATION") - @JvmField - val TYPE_SYSTEM_OVERLAY: Int = - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) - WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY - else TYPE_APPLICATION_OVERLAY -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt index 3dabd790956f..5078fd90dc7a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt @@ -58,11 +58,6 @@ internal class FrameTimingsObserver( } private suspend fun captureScreenshot(): String? = suspendCoroutine { continuation -> - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - continuation.resume(null) - return@suspendCoroutine - } - val decorView = window.decorView val width = decorView.width val height = decorView.height @@ -119,18 +114,11 @@ internal class FrameTimingsObserver( fun start() { frameCounter = 0 - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - return - } window.addOnFrameMetricsAvailableListener(frameMetricsListener, handler) } fun stop() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - return - } - window.removeOnFrameMetricsAvailableListener(frameMetricsListener) handler.removeCallbacksAndMessages(null) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.kt index 1f47a52f54f3..3a23dbfccc25 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/VibrationModule.kt @@ -26,11 +26,7 @@ internal class VibrationModule(reactContext: ReactApplicationContext) : override fun vibrate(durationDouble: Double) { val duration = durationDouble.toInt() val v = getVibrator() ?: return - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - v.vibrate(VibrationEffect.createOneShot(duration.toLong(), VibrationEffect.DEFAULT_AMPLITUDE)) - } else { - @Suppress("DEPRECATION") v.vibrate(duration.toLong()) - } + v.vibrate(VibrationEffect.createOneShot(duration.toLong(), VibrationEffect.DEFAULT_AMPLITUDE)) } override fun vibrateByPattern(pattern: ReadableArray, repeatDouble: Double) { @@ -40,11 +36,7 @@ internal class VibrationModule(reactContext: ReactApplicationContext) : for (i in 0 until pattern.size()) { patternLong[i] = pattern.getInt(i).toLong() } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - v.vibrate(VibrationEffect.createWaveform(patternLong, repeat)) - } else { - @Suppress("DEPRECATION") v.vibrate(patternLong, repeat) - } + v.vibrate(VibrationEffect.createWaveform(patternLong, repeat)) } override fun cancel() { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt index d1293ee48d9c..64442007e461 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt @@ -19,9 +19,7 @@ import android.graphics.PixelFormat import android.graphics.PointF import android.graphics.Rect import android.graphics.RectF -import android.graphics.Region import android.graphics.drawable.Drawable -import android.os.Build import com.facebook.react.uimanager.FloatUtil.floatsEqual import com.facebook.react.uimanager.LengthPercentage import com.facebook.react.uimanager.PixelUtil.dpToPx @@ -413,12 +411,8 @@ internal class BorderDrawable( borderPaint.style = Paint.Style.FILL // Clip inner border - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - canvas.clipOutPath(checkNotNull(innerClipPathForBorderRadius)) - } else { - @Suppress("DEPRECATION") - canvas.clipPath(checkNotNull(innerClipPathForBorderRadius), Region.Op.DIFFERENCE) - } + canvas.clipOutPath(checkNotNull(innerClipPathForBorderRadius)) + val outerClipTempRect = checkNotNull(outerClipTempRectForBorderRadius) val left = outerClipTempRect.left val right = outerClipTempRect.right diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt index 8bc51730405d..d9fbf4fca068 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt @@ -11,11 +11,9 @@ import android.animation.Animator import android.animation.ValueAnimator import android.content.Context import android.graphics.Point -import android.os.Build import android.view.View import android.view.ViewGroup import android.widget.OverScroller -import androidx.annotation.RequiresApi import androidx.core.view.ViewCompat.FocusDirection import androidx.core.view.ViewCompat.FocusRealDirection import com.facebook.common.logging.FLog @@ -236,7 +234,6 @@ public object ReactScrollViewHelper { scrollListeners.add(WeakReference(listener)) } - @RequiresApi(Build.VERSION_CODES.N) @JvmStatic public fun removeScrollListener(listener: ScrollListener) { // Avoid using removeIf, only available in API 26+ @@ -255,7 +252,6 @@ public object ReactScrollViewHelper { layoutChangeListeners.add(WeakReference(listener)) } - @RequiresApi(Build.VERSION_CODES.N) @JvmStatic public fun removeLayoutChangeListener(listener: LayoutChangeListener) { // Avoid using removeIf, only available in API 26+ diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java index 80fba556da12..875e8d90cfed 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java @@ -10,7 +10,6 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Rect; -import android.os.Build; import android.text.Layout; import android.text.Spannable; import android.text.SpannableString; @@ -118,9 +117,7 @@ private void initView() { // https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/widget/TextView.java#L1061 setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE); setMovementMethod(getDefaultMovementMethod()); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - setJustificationMode(Layout.JUSTIFICATION_MODE_NONE); - } + setJustificationMode(Layout.JUSTIFICATION_MODE_NONE); // reset text setLayoutParams(EMPTY_LAYOUT_PARAMS); @@ -149,9 +146,7 @@ private void initView() { // mViewFlags = SOUND_EFFECTS_ENABLED | HAPTIC_FEEDBACK_ENABLED | // LAYOUT_DIRECTION_INHERIT; setEnabled(true); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - setFocusable(View.FOCUSABLE_AUTO); - } + setFocusable(View.FOCUSABLE_AUTO); setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_NONE); updateView(); // call after changing ellipsizeLocation in particular @@ -357,7 +352,7 @@ protected void onDraw(Canvas canvas) { // always passing ALIGN_NORMAL here should be fine, since this method doesn't depend on // how exactly lines are aligned, just their width Layout.Alignment.ALIGN_NORMAL, - (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) ? -1 : getJustificationMode(), + getJustificationMode(), getPaint()); setText(spanned); } @@ -402,10 +397,8 @@ public void setText(ReactTextUpdate update) { if (getBreakStrategy() != update.getTextBreakStrategy()) { setBreakStrategy(update.getTextBreakStrategy()); } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - if (getJustificationMode() != update.getJustificationMode()) { - setJustificationMode(update.getJustificationMode()); - } + if (getJustificationMode() != update.getJustificationMode()) { + setJustificationMode(update.getJustificationMode()); } // Ensure onLayout is called so the inline views can be repositioned. diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt index 2e3669c113d7..773cb1ece6b7 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt @@ -9,7 +9,6 @@ package com.facebook.react.views.text -import android.os.Build import android.text.Layout import android.text.Spannable import android.text.Spanned @@ -164,15 +163,13 @@ public constructor( TextAttributeProps.getTextBreakStrategy( paragraphAttributes.getString(TextLayoutManager.PA_KEY_TEXT_BREAK_STRATEGY) ) - val currentJustificationMode = - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) 0 else view.justificationMode return ReactTextUpdate( spanned, -1, // UNUSED FOR TEXT TextLayoutManager.getTextGravity(attributedString, spanned), textBreakStrategy, - TextAttributeProps.getJustificationMode(props, currentJustificationMode), + TextAttributeProps.getJustificationMode(props, view.justificationMode), ) } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt index 45c8bec4c2b8..bfc07e18d0ca 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt @@ -7,7 +7,6 @@ package com.facebook.react.views.text -import android.os.Build import android.text.Layout import android.text.TextUtils.TruncateAt import android.util.LayoutDirection @@ -387,8 +386,7 @@ public class TextAttributeProps private constructor() { private const val PROP_TEXT_TRANSFORM = "textTransform" private const val DEFAULT_TEXT_SHADOW_COLOR = 0x55000000 - private val DEFAULT_JUSTIFICATION_MODE = - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) 0 else Layout.JUSTIFICATION_MODE_NONE + private const val DEFAULT_JUSTIFICATION_MODE = Layout.JUSTIFICATION_MODE_NONE private const val DEFAULT_BREAK_STRATEGY = Layout.BREAK_STRATEGY_HIGH_QUALITY private const val DEFAULT_HYPHENATION_FREQUENCY = Layout.HYPHENATION_FREQUENCY_NONE @@ -499,7 +497,7 @@ public class TextAttributeProps private constructor() { } val textAlignPropValue = props.getString(ViewProps.TEXT_ALIGN) - if ("justify" == textAlignPropValue && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if ("justify" == textAlignPropValue) { return Layout.JUSTIFICATION_MODE_INTER_WORD } return DEFAULT_JUSTIFICATION_MODE diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt index d3ca40183401..5fa94127013b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt @@ -157,10 +157,6 @@ internal object TextLayoutManager { } private fun getTextJustificationMode(alignmentAttr: String?): Int { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - return -1 - } - if (alignmentAttr != null && alignmentAttr == "justified") { return Layout.JUSTIFICATION_MODE_INTER_WORD } @@ -715,9 +711,7 @@ internal object TextLayoutManager { builder.setEllipsize(ellipsizeMode).setMaxLines(maxNumberOfLines) } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - builder.setJustificationMode(justificationMode) - } + builder.setJustificationMode(justificationMode) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { builder.setUseLineSpacingFromFallbacks(true) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt index ff410da5caed..1ee065192615 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt @@ -214,10 +214,7 @@ public open class ReactEditText public constructor(context: Context) : AppCompat // Turn off hardware acceleration for Oreo (T40484798) // see https://issuetracker.google.com/issues/67102093 - if ( - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && - Build.VERSION.SDK_INT <= Build.VERSION_CODES.O_MR1 - ) { + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O_MR1) { setLayerType(LAYER_TYPE_SOFTWARE, null) } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt index 21fbfb4d06d9..d56b7ae1af62 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt @@ -271,18 +271,10 @@ public open class ReactTextInputManager public constructor() : } private fun setImportantForAutofill(view: ReactEditText, mode: Int) { - // Autofill hints were added in Android API 26. - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - return - } view.importantForAutofill = mode } private fun setAutofillHints(view: ReactEditText, vararg hints: String) { - // Autofill hints were added in Android API 26. - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - return - } view.setAutofillHints(*hints) } @@ -545,14 +537,10 @@ public open class ReactTextInputManager public constructor() : @ReactProp(name = ViewProps.TEXT_ALIGN) public fun setTextAlign(view: ReactEditText, textAlign: String?) { if ("justify" == textAlign) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - view.justificationMode = Layout.JUSTIFICATION_MODE_INTER_WORD - } + view.justificationMode = Layout.JUSTIFICATION_MODE_INTER_WORD view.gravityHorizontal = Gravity.LEFT } else { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - view.justificationMode = Layout.JUSTIFICATION_MODE_NONE - } + view.justificationMode = Layout.JUSTIFICATION_MODE_NONE when (textAlign) { null, @@ -1021,12 +1009,6 @@ public open class ReactTextInputManager public constructor() : TextAttributeProps.getTextBreakStrategy( paragraphAttributes.getString(TextLayoutManager.PA_KEY_TEXT_BREAK_STRATEGY.toInt()) ) - val currentJustificationMode = - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - 0 - } else { - view.justificationMode - } return buildReactTextUpdateFromState( spanned, @@ -1037,7 +1019,7 @@ public open class ReactTextInputManager public constructor() : view.gravityHorizontal, ), textBreakStrategy, - TextAttributeProps.getJustificationMode(props, currentJustificationMode), + TextAttributeProps.getJustificationMode(props, view.justificationMode), ) } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt index 0cff3bc458d8..53dc0349d03f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt @@ -117,8 +117,8 @@ internal fun Window.enableEdgeToEdge() { navigationBarColor = when { Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> Color.TRANSPARENT - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !isDarkMode -> LightNavigationBarColor - else -> DarkNavigationBarColor + isDarkMode -> DarkNavigationBarColor + else -> LightNavigationBarColor } WindowInsetsControllerCompat(this, decorView).run { diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.kt index 1fc4004dc540..5b5da1ea603f 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/views/textinput/ReactTextInputPropertyTest.kt @@ -12,7 +12,6 @@ package com.facebook.react.views.textinput import android.graphics.Color -import android.os.Build import android.text.InputFilter import android.text.InputFilter.AllCaps import android.text.InputType @@ -346,10 +345,8 @@ class ReactTextInputPropertyTest { manager.updateProperties(view, buildStyles("textAlign", null)) assertThat(view.gravity and Gravity.HORIZONTAL_GRAVITY_MASK).isEqualTo(defaultHorizontalGravity) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - manager.updateProperties(view, buildStyles("textAlign", "justify")) - assertThat(view.justificationMode).isEqualTo(Layout.JUSTIFICATION_MODE_INTER_WORD) - } + manager.updateProperties(view, buildStyles("textAlign", "justify")) + assertThat(view.justificationMode).isEqualTo(Layout.JUSTIFICATION_MODE_INTER_WORD) // endregion // region TextAlignVertical diff --git a/packages/react-native/gradle/libs.versions.toml b/packages/react-native/gradle/libs.versions.toml index f21668ffff84..4c9d129c5cc2 100644 --- a/packages/react-native/gradle/libs.versions.toml +++ b/packages/react-native/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] # Android versions -minSdk = "24" +minSdk = "27" targetSdk = "36" compileSdk = "36" buildTools = "36.0.0" diff --git a/private/helloworld/android/build.gradle b/private/helloworld/android/build.gradle index a4422696c1a4..b73902841975 100644 --- a/private/helloworld/android/build.gradle +++ b/private/helloworld/android/build.gradle @@ -8,7 +8,7 @@ buildscript { ext { buildToolsVersion = "36.0.0" - minSdkVersion = 24 + minSdkVersion = 27 compileSdkVersion = 36 targetSdkVersion = 35 ndkVersion = "27.1.12297006"