From a2d277f740d8ee95137d42679a1ffd872962a108 Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Thu, 14 Mar 2024 12:21:47 -0700 Subject: [PATCH] Flag missing DefaultHardwareBackBtnHandler interface in bridgeless too (#43487) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43487 Inconsistent between bridge and bridgeless, but if you forget to implement this interface, ReactDelegate will silently not do anything in bridgeless. Changelog: [Android] Enforce Activities using ReactDelegate implement DefaultHardwareBackBtnHandler. Reviewed By: arushikesarwani94 Differential Revision: D54900747 fbshipit-source-id: 5dd31d4f81e4ec37e1c3ee906be836a8a9c6a944 --- .../com/facebook/react/ReactDelegate.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index 0e4584f5422..d18226b58e7 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -82,20 +82,17 @@ public class ReactDelegate { } public void onHostResume() { + if (!(mActivity instanceof DefaultHardwareBackBtnHandler)) { + throw new ClassCastException( + "Host Activity does not implement DefaultHardwareBackBtnHandler"); + } if (ReactFeatureFlags.enableBridgelessArchitecture) { - if (mActivity instanceof DefaultHardwareBackBtnHandler) { - mReactHost.onHostResume(mActivity, (DefaultHardwareBackBtnHandler) mActivity); - } + mReactHost.onHostResume(mActivity, (DefaultHardwareBackBtnHandler) mActivity); } else { if (getReactNativeHost().hasInstance()) { - if (mActivity instanceof DefaultHardwareBackBtnHandler) { - getReactNativeHost() - .getReactInstanceManager() - .onHostResume(mActivity, (DefaultHardwareBackBtnHandler) mActivity); - } else { - throw new ClassCastException( - "Host Activity does not implement DefaultHardwareBackBtnHandler"); - } + getReactNativeHost() + .getReactInstanceManager() + .onHostResume(mActivity, (DefaultHardwareBackBtnHandler) mActivity); } } }