diff --git a/Libraries/Settings/JSIUtils.h b/Libraries/Settings/JSIUtils.h new file mode 100644 index 000000000000..f87c740e69ff --- /dev/null +++ b/Libraries/Settings/JSIUtils.h @@ -0,0 +1,50 @@ +#import +#import +#import + +using namespace facebook; + +jsi::Value convertNSNumberToJSIBoolean(jsi::Runtime &runtime, NSNumber *value); +jsi::Value convertNSNumberToJSINumber(jsi::Runtime &runtime, NSNumber *value); +jsi::String convertNSStringToJSIString(jsi::Runtime &runtime, NSString *value); +jsi::Value convertObjCObjectToJSIValue(jsi::Runtime &runtime, id value);; +jsi::Object convertNSDictionaryToJSIObject(jsi::Runtime &runtime, NSDictionary *value); +jsi::Array convertNSArrayToJSIArray(jsi::Runtime &runtime, NSArray *value); +std::vector convertNSArrayToStdVector(jsi::Runtime &runtime, NSArray *value); +jsi::Value convertObjCObjectToJSIValue(jsi::Runtime &runtime, id value); +id convertJSIValueToObjCObject( + jsi::Runtime &runtime, + const jsi::Value &value); +NSString* convertJSIStringToNSString(jsi::Runtime &runtime, const jsi::String &value); +NSArray* convertJSIArrayToNSArray( + jsi::Runtime &runtime, + const jsi::Array &value); +NSDictionary *convertJSIObjectToNSDictionary( + jsi::Runtime &runtime, + const jsi::Object &value); +RCTResponseSenderBlock convertJSIFunctionToCallback( + jsi::Runtime &runtime, + const jsi::Function &value); +id convertJSIValueToObjCObject( + jsi::Runtime &runtime, + const jsi::Value &value); +RCTResponseSenderBlock convertJSIFunctionToCallback( + jsi::Runtime &runtime, + const jsi::Function &value); + +struct Promise { + Promise(jsi::Runtime &rt, jsi::Function resolve, jsi::Function reject); + + void resolve(const jsi::Value &result); + void reject(const std::string &error); + + jsi::Runtime &runtime_; + jsi::Function resolve_; + jsi::Function reject_; +}; + +using PromiseSetupFunctionType = +std::function)>; +jsi::Value createPromiseAsJSIValue( + jsi::Runtime &rt, + const PromiseSetupFunctionType func); \ No newline at end of file diff --git a/Libraries/Settings/JSIUtils.mm b/Libraries/Settings/JSIUtils.mm new file mode 100644 index 000000000000..196316d8962d --- /dev/null +++ b/Libraries/Settings/JSIUtils.mm @@ -0,0 +1,186 @@ +#include "JSIUtils.h" +#import +#import + +/** + * All helper functions are ObjC++ specific. + */ +jsi::Value convertNSNumberToJSIBoolean(jsi::Runtime &runtime, NSNumber *value) +{ + return jsi::Value((bool)[value boolValue]); +} + +jsi::Value convertNSNumberToJSINumber(jsi::Runtime &runtime, NSNumber *value) +{ + return jsi::Value([value doubleValue]); +} + +jsi::String convertNSStringToJSIString(jsi::Runtime &runtime, NSString *value) +{ + return jsi::String::createFromUtf8(runtime, [value UTF8String] ?: ""); +} + +jsi::Value convertObjCObjectToJSIValue(jsi::Runtime &runtime, id value); + +jsi::Object convertNSDictionaryToJSIObject(jsi::Runtime &runtime, NSDictionary *value) +{ + jsi::Object result = jsi::Object(runtime); + for (NSString *k in value) { + result.setProperty(runtime, [k UTF8String], convertObjCObjectToJSIValue(runtime, value[k])); + } + return result; +} + +jsi::Array convertNSArrayToJSIArray(jsi::Runtime &runtime, NSArray *value) +{ + jsi::Array result = jsi::Array(runtime, value.count); + for (size_t i = 0; i < value.count; i++) { + result.setValueAtIndex(runtime, i, convertObjCObjectToJSIValue(runtime, value[i])); + } + return result; +} + +std::vector convertNSArrayToStdVector(jsi::Runtime &runtime, NSArray *value) +{ + std::vector result; + for (size_t i = 0; i < value.count; i++) { + result.emplace_back(convertObjCObjectToJSIValue(runtime, value[i])); + } + return result; +} + +jsi::Value convertObjCObjectToJSIValue(jsi::Runtime &runtime, id value) +{ + if ([value isKindOfClass:[NSString class]]) { + return convertNSStringToJSIString(runtime, (NSString *)value); + } else if ([value isKindOfClass:[NSNumber class]]) { + if ([value isKindOfClass:[@YES class]]) { + return convertNSNumberToJSIBoolean(runtime, (NSNumber *)value); + } + return convertNSNumberToJSINumber(runtime, (NSNumber *)value); + } else if ([value isKindOfClass:[NSDictionary class]]) { + return convertNSDictionaryToJSIObject(runtime, (NSDictionary *)value); + } else if ([value isKindOfClass:[NSArray class]]) { + return convertNSArrayToJSIArray(runtime, (NSArray *)value); + } else if (value == (id)kCFNull) { + return jsi::Value::null(); + } + return jsi::Value::undefined(); +} + +id convertJSIValueToObjCObject(jsi::Runtime &runtime, const jsi::Value &value); + +NSString *convertJSIStringToNSString(jsi::Runtime &runtime, const jsi::String &value) +{ + return [NSString stringWithUTF8String:value.utf8(runtime).c_str()]; +} + +NSArray *convertJSIArrayToNSArray(jsi::Runtime &runtime, + const jsi::Array &value) +{ + size_t size = value.size(runtime); + NSMutableArray *result = [NSMutableArray new]; + for (size_t i = 0; i < size; i++) { + // Insert kCFNull when it's `undefined` value to preserve the indices. + [result + addObject:convertJSIValueToObjCObject(runtime, value.getValueAtIndex(runtime, i)) ?: (id)kCFNull]; + } + return [result copy]; +} + +NSDictionary *convertJSIObjectToNSDictionary(jsi::Runtime &runtime, + const jsi::Object &value) +{ + jsi::Array propertyNames = value.getPropertyNames(runtime); + size_t size = propertyNames.size(runtime); + NSMutableDictionary *result = [NSMutableDictionary new]; + for (size_t i = 0; i < size; i++) { + jsi::String name = propertyNames.getValueAtIndex(runtime, i).getString(runtime); + NSString *k = convertJSIStringToNSString(runtime, name); + id v = convertJSIValueToObjCObject(runtime, value.getProperty(runtime, name)); + if (v) { + result[k] = v; + } + } + return [result copy]; +} + +RCTResponseSenderBlock convertJSIFunctionToCallback(jsi::Runtime &runtime, + const jsi::Function &value) +{ + __block auto cb = value.getFunction(runtime); + + return ^(NSArray *responses) { + cb.call(runtime, convertNSArrayToJSIArray(runtime, responses), 2); + }; +} + +id convertJSIValueToObjCObject(jsi::Runtime &runtime, + const jsi::Value &value) +{ + if (value.isUndefined() || value.isNull()) { + return nil; + } + if (value.isBool()) { + return @(value.getBool()); + } + if (value.isNumber()) { + return @(value.getNumber()); + } + if (value.isString()) { + return convertJSIStringToNSString(runtime, value.getString(runtime)); + } + if (value.isObject()) { + jsi::Object o = value.getObject(runtime); + if (o.isArray(runtime)) { + return convertJSIArrayToNSArray(runtime, o.getArray(runtime)); + } + if (o.isFunction(runtime)) { + return convertJSIFunctionToCallback(runtime, + std::move(o.getFunction(runtime))); + } + return convertJSIObjectToNSDictionary(runtime, o); + } + + throw std::runtime_error("Unsupported jsi::jsi::Value kind"); +} + +Promise::Promise(jsi::Runtime &rt, jsi::Function resolve, jsi::Function reject) +: runtime_(rt), resolve_(std::move(resolve)), reject_(std::move(reject)) {} + +void Promise::resolve(const jsi::Value &result) +{ + resolve_.call(runtime_, result); +} + +void Promise::reject(const std::string &message) +{ + jsi::Object error(runtime_); + error.setProperty(runtime_, + "message", + jsi::String::createFromUtf8(runtime_, message)); + reject_.call(runtime_, error); +} + +jsi::Value createPromiseAsJSIValue(jsi::Runtime &rt, + const PromiseSetupFunctionType func) +{ + jsi::Function JSPromise = rt.global().getPropertyAsFunction(rt, "Promise"); + jsi::Function fn = jsi::Function::createFromHostFunction(rt, + jsi::PropNameID::forAscii(rt, "fn"), + 2, + [func](jsi::Runtime &rt2, + const jsi::Value &thisVal, + const jsi::Value *args, + size_t count) { + jsi::Function resolve = args[0].getObject(rt2).getFunction(rt2); + jsi::Function reject = args[1].getObject(rt2).getFunction(rt2); + auto wrapper = std::make_shared(rt2, + std::move(resolve), + std::move(reject)); + func(rt2, wrapper); + return jsi::Value::undefined(); + }); + + return JSPromise.callAsConstructor(rt, fn); +} \ No newline at end of file diff --git a/Libraries/Settings/NativeSettingsManager.js b/Libraries/Settings/NativeSettingsManager.js index d64309a7d9cc..ad4d2344fdeb 100644 --- a/Libraries/Settings/NativeSettingsManager.js +++ b/Libraries/Settings/NativeSettingsManager.js @@ -17,6 +17,8 @@ export interface Spec extends TurboModule { |}; +setValues: (values: Object) => void; +deleteValues: (values: Array) => void; + +fetchConfigAsync: () => Promise; + +install: () => boolean; } export default (TurboModuleRegistry.getEnforcing( diff --git a/Libraries/Settings/RCTSettingsManager.h b/Libraries/Settings/RCTSettingsManager.h index 1e0263c47363..2bd85b4d4ba8 100644 --- a/Libraries/Settings/RCTSettingsManager.h +++ b/Libraries/Settings/RCTSettingsManager.h @@ -13,4 +13,10 @@ - (instancetype)initWithUserDefaults:(NSUserDefaults *)defaults NS_DESIGNATED_INITIALIZER; +/* + * Remove this when new architecture is enabld for turbo modules + */ + +@property (nonatomic, assign) BOOL setBridgeOnMainQueue; + @end diff --git a/Libraries/Settings/RCTSettingsManager.mm b/Libraries/Settings/RCTSettingsManager.mm index 4badb6068eba..7dfd54a6a6ca 100644 --- a/Libraries/Settings/RCTSettingsManager.mm +++ b/Libraries/Settings/RCTSettingsManager.mm @@ -12,6 +12,8 @@ #import #import #import +#import +#import "JSIUtils.h" #import "RCTSettingsPlugins.h" @@ -25,6 +27,7 @@ @implementation RCTSettingsManager } @synthesize moduleRegistry = _moduleRegistry; +@synthesize bridge = _bridge; RCT_EXPORT_MODULE() @@ -38,6 +41,106 @@ - (instancetype)init return [self initWithUserDefaults:[NSUserDefaults standardUserDefaults]]; } +- (void)setBridge:(RCTBridge *)bridge { + _bridge = bridge; + _setBridgeOnMainQueue = RCTIsMainQueue(); + + RCTCxxBridge *cxxBridge = (RCTCxxBridge *)self.bridge; + if (!cxxBridge.runtime) { + return; + } + + installJsiBindings(*(jsi::Runtime *)cxxBridge.runtime, self); +} + +static void installJsiBindings(jsi::Runtime &jsiRuntime, RCTSettingsManager *rctSettingsManager) { + auto fetchConfigSync = jsi::Function::createFromHostFunction( + jsiRuntime, + jsi::PropNameID::forAscii(jsiRuntime, "fetchConfig"), + 1, + [rctSettingsManager](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* arguments, size_t count) -> jsi::Value { + NSUserDefaults* currentDefaults = rctSettingsManager->_defaults; + auto result = convertNSDictionaryToJSIObject(runtime, ([currentDefaults dictionaryRepresentation])); + return result; + } + ); + + auto fetchConfigAsync = jsi::Function::createFromHostFunction(jsiRuntime, jsi::PropNameID::forAscii(jsiRuntime, "fetchConfigAsync"), + 0, [rctSettingsManager](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* arguments, size_t count) -> jsi::Value { + auto promise = runtime.global().getPropertyAsFunction(runtime, "Promise"); + return promise.callAsConstructor(runtime, jsi::Function::createFromHostFunction(runtime, + jsi::PropNameID::forAscii(runtime, "executor"), + 2, + [rctSettingsManager](jsi::Runtime& runtime, + const jsi::Value& thisValue, + const jsi::Value* args, + size_t count) -> jsi::Value { + + // Execte Promise stuff here + auto resolve = std::make_shared(runtime, args[0]); + auto reject = std::make_shared(runtime, args[1]); + + NSUserDefaults* currentDefaults = rctSettingsManager->_defaults; + + auto value = convertNSDictionaryToJSIObject(runtime, ([currentDefaults dictionaryRepresentation])); + resolve->asObject(runtime).asFunction(runtime).call(runtime, value); + return {}; + })); + }); + + auto setSettingASync = jsi::Function::createFromHostFunction( + jsiRuntime, + jsi::PropNameID::forAscii(jsiRuntime, "setSettingsSync"), + 1, + [rctSettingsManager](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* arguments, size_t count) -> jsi::Value { + if (!arguments[0].isObject()) + throw jsi::JSError(runtime, "setSettingsSync First argument has to be a settings Object"); + + auto settings = arguments[0].asObject(runtime); + auto promise = runtime.global().getPropertyAsFunction(runtime, "Promise"); + return promise.callAsConstructor(runtime, jsi::Function::createFromHostFunction(runtime, + jsi::PropNameID::forAscii(runtime, "executor"), + 2, + [rctSettingsManager, &settings](jsi::Runtime& runtime, + const jsi::Value& thisValue, + const jsi::Value* args, + size_t count) -> jsi::Value { + + // Execte Promise stuff here + auto resolve = std::make_shared(runtime, args[0]); + auto reject = std::make_shared(runtime, args[1]); + + NSDictionary *settingsDictionary = convertJSIObjectToNSDictionary(runtime, settings); + rctSettingsManager->_ignoringUpdates = YES; + [settingsDictionary enumerateKeysAndObjectsUsingBlock:^(NSString *key, id json, BOOL *stop) { + id plist = [RCTConvert NSPropertyList:json]; + if (plist) { + [rctSettingsManager->_defaults setObject:plist forKey:key]; + } else { + [rctSettingsManager->_defaults removeObjectForKey:key]; + } + }]; + + [rctSettingsManager->_defaults synchronize]; + rctSettingsManager->_ignoringUpdates = NO; + + resolve->asObject(runtime).asFunction(runtime).call(runtime, jsi::Value::undefined()); + return {}; + })); + }); + + + @try { + jsiRuntime.global().setProperty(jsiRuntime, "fetchConfigSync", std::move(fetchConfigSync)); + jsiRuntime.global().setProperty(jsiRuntime, "fetchConfigAsync", std::move(fetchConfigAsync)); + jsiRuntime.global().setProperty(jsiRuntime, "setSettingASync", std::move(setSettingASync)); + } @catch (NSException *exception) { + + } @finally { + + } +} + - (instancetype)initWithUserDefaults:(NSUserDefaults *)defaults { if ((self = [super init])) { @@ -74,7 +177,7 @@ - (void)userDefaultsDidChange:(NSNotification *)note #pragma clang diagnostic ignored "-Wdeprecated-declarations" [[_moduleRegistry moduleForName:"EventDispatcher"] sendDeviceEventWithName:@"settingsUpdated" - body:RCTJSONClean([_defaults dictionaryRepresentation])]; + body:@"updatedConfig"]; #pragma clang diagnostic pop } @@ -112,11 +215,38 @@ - (void)userDefaultsDidChange:(NSNotification *)note _ignoringUpdates = NO; } +- (void)fetchConfigAsync:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject { + resolve(RCTJSONClean([_defaults dictionaryRepresentation])); +} + + - (std::shared_ptr)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params { return std::make_shared(params); } +RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install) { + NSLog(@"Installing Runtime Manually..."); + RCTBridge *bridge = [RCTBridge currentBridge]; + RCTCxxBridge *cxxBridge = (RCTCxxBridge *)bridge; + if (cxxBridge == nil) { + return @false; + } + + using namespace facebook; + + auto jsiRuntime = (jsi::Runtime *)cxxBridge.runtime; + if (jsiRuntime == nil) { + return @false; + } + auto &runtime = *jsiRuntime; + auto callInvoker = bridge.jsCallInvoker; + + + installJsiBindings(runtime, self); + return @true; +} + @end Class RCTSettingsManagerCls(void) diff --git a/Libraries/Settings/Settings.ios.js b/Libraries/Settings/Settings.ios.js index 994e92201817..a9bef06979fa 100644 --- a/Libraries/Settings/Settings.ios.js +++ b/Libraries/Settings/Settings.ios.js @@ -30,7 +30,19 @@ const Settings = { set(settings: Object) { // $FlowFixMe[object-this-reference] this._settings = Object.assign(this._settings, settings); - NativeSettingsManager.setValues(settings); + try { + if (!global.setSettingASync) { + if (NativeSettingsManager && NativeSettingsManager.install()) { + global.setSettingASync(settings); + } + } else { + global.setSettingASync(settings); + } + } catch (error) { + NativeSettingsManager.setValues(settings); + } + //NativeSettingsManager.setValues(settings); + // In case of any issue umcomment above line }, watchKeys(keys: string | Array, callback: Function): number { @@ -73,9 +85,46 @@ const Settings = { }, }; -RCTDeviceEventEmitter.addListener( - 'settingsUpdated', - Settings._sendObservations.bind(Settings), -); +/** + * Uncomment this for development / Debugging in Chrome v8 runtime + */ +// RCTDeviceEventEmitter.addListener( +// 'settingsUpdated', +// Settings._sendObservations.bind(Settings), +// ); + +function fetchConfig(): void { + global + .fetchConfigAsync() + .then(val => { + Settings._sendObservations.call(Settings, val); + }) + .catch(e => { + console.error(e); + // const config = global.fetchConfigSync(); + // Settings._sendObservations.call(Settings, config); + }); +} + +RCTDeviceEventEmitter.addListener('settingsUpdated', function (command) { + try { + if (!global.fetchConfigAsync) { + if (NativeSettingsManager && NativeSettingsManager.install()) { + fetchConfig(); + } + } else { + fetchConfig(); + } + } catch (error) { + console.error(error, 'Settings Fetch Broke'); + } + + // global.fetchConfigAsync().then((val) => { + // Settings._sendObservations.call(Settings, val); + // }).catch(() => { + // const config = global.fetchConfigSync(); + // Settings._sendObservations.call(Settings, config); + // }) +}); module.exports = Settings; diff --git a/React/Views/RCTModalHostView.m b/React/Views/RCTModalHostView.m index 65428a037d7a..ff9e0578e3a0 100644 --- a/React/Views/RCTModalHostView.m +++ b/React/Views/RCTModalHostView.m @@ -126,18 +126,19 @@ - (void)didMoveToWindow { [super didMoveToWindow]; - // In the case where there is a LayoutAnimation, we will be reinserted into the view hierarchy but only for aesthetic - // purposes. In such a case, we should NOT represent the . - if (!self.userInteractionEnabled && ![self.superview.reactSubviews containsObject:self]) { - return; - } - [self ensurePresentedOnlyIfNeeded]; } - (void)didMoveToSuperview { [super didMoveToSuperview]; + + // In the case where there is a LayoutAnimation, we will be reinserted into the view hierarchy but only for aesthetic + // purposes. In such a case, we should NOT represent the . + if (!self.userInteractionEnabled && ![self.superview.reactSubviews containsObject:self]) { + return; + } + [self ensurePresentedOnlyIfNeeded]; } diff --git a/React/Views/RCTModalHostViewManager.m b/React/Views/RCTModalHostViewManager.m index 7fab70ef6363..6f2d6f862148 100644 --- a/React/Views/RCTModalHostViewManager.m +++ b/React/Views/RCTModalHostViewManager.m @@ -78,12 +78,15 @@ - (void)presentModalHostView:(RCTModalHostView *)modalHostView if (_presentationBlock) { _presentationBlock([modalHostView reactViewController], viewController, animated, completionBlock); } else { - [[modalHostView reactViewController] presentViewController:viewController - animated:animated - completion:completionBlock]; + RCTExecuteOnMainQueue(^{ + [[modalHostView reactViewController] presentViewController:viewController + animated:animated + completion:completionBlock]; + }); } } + - (void)dismissModalHostView:(RCTModalHostView *)modalHostView withViewController:(RCTModalHostViewController *)viewController animated:(BOOL)animated @@ -96,7 +99,9 @@ - (void)dismissModalHostView:(RCTModalHostView *)modalHostView if (_dismissalBlock) { _dismissalBlock([modalHostView reactViewController], viewController, animated, completionBlock); } else { - [viewController.presentingViewController dismissViewControllerAnimated:animated completion:completionBlock]; + RCTExecuteOnMainQueue(^{ + [viewController.presentingViewController dismissViewControllerAnimated:animated completion:completionBlock]; + }); } } diff --git a/ReactAndroid/build.gradle b/ReactAndroid/build.gradle index ac64bb28004a..c9bd164b19da 100644 --- a/ReactAndroid/build.gradle +++ b/ReactAndroid/build.gradle @@ -279,7 +279,7 @@ task androidSourcesJar(type: Jar) { } android { - compileSdkVersion 31 + compileSdkVersion 33 // Used to override the NDK path/version on internal CI or by allowing // users to customize the NDK path/version from their root project (e.g. for M1 support) diff --git a/ReactAndroid/gradle.properties b/ReactAndroid/gradle.properties index 4ef639a426f7..a56f0d18c26c 100644 --- a/ReactAndroid/gradle.properties +++ b/ReactAndroid/gradle.properties @@ -13,7 +13,7 @@ JUNIT_VERSION=4.12 ANDROIDX_TEST_VERSION=1.1.0 FRESCO_VERSION=2.5.0 OKHTTP_VERSION=4.9.2 -SO_LOADER_VERSION=0.10.4 +SO_LOADER_VERSION=0.10.5 BOOST_VERSION=1_63_0 DOUBLE_CONVERSION_VERSION=1.1.6 diff --git a/ReactAndroid/src/main/java/com/facebook/react/animated/FrameBasedAnimationDriver.java b/ReactAndroid/src/main/java/com/facebook/react/animated/FrameBasedAnimationDriver.java index 798fcffd7442..1d58b9991c4d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/animated/FrameBasedAnimationDriver.java +++ b/ReactAndroid/src/main/java/com/facebook/react/animated/FrameBasedAnimationDriver.java @@ -7,9 +7,12 @@ package com.facebook.react.animated; +import com.facebook.common.logging.FLog; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.ReadableType; +import com.facebook.react.common.ReactConstants; +import com.facebook.react.common.build.ReactBuildConfig; /** * Implementation of {@link AnimationDriver} which provides a support for simple time-based @@ -70,7 +73,14 @@ public void runAnimationStep(long frameTimeNanos) { long timeFromStartMillis = (frameTimeNanos - mStartFrameTimeNanos) / 1000000; int frameIndex = (int) Math.round(timeFromStartMillis / FRAME_TIME_MILLIS); if (frameIndex < 0) { - throw new IllegalStateException("Calculated frame index should never be lower than 0"); + String message = "Calculated frame index should never be lower than 0. Called with frameTimeNanos " + + frameTimeNanos + " and mStartFrameTimeNanos " + mStartFrameTimeNanos; + if (ReactBuildConfig.DEBUG) { + throw new IllegalStateException(message); + } else { + FLog.w(ReactConstants.TAG, message); + return; + } } else if (mHasFinished) { // nothing to do here return; diff --git a/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java b/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java index 8321acffb825..e14119b12bce 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java @@ -36,6 +36,7 @@ import java.util.ListIterator; import java.util.Map; import java.util.Queue; +import com.facebook.react.common.build.ReactBuildConfig; /** * This is the main class that coordinates how native animated JS implementation drives UI changes. @@ -167,10 +168,13 @@ public void dropAnimatedNode(int tag) { public void startListeningToAnimatedNodeValue(int tag, AnimatedNodeValueListener listener) { AnimatedNode node = mAnimatedNodes.get(tag); if (node == null || !(node instanceof ValueAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "startListeningToAnimatedNodeValue: Animated node [" - + tag - + "] does not exist, or is not a 'value' node"); + + tag + + "] does not exist, or is not a 'value' node"); + } + return; } ((ValueAnimatedNode) node).setValueListener(listener); } @@ -179,10 +183,13 @@ public void startListeningToAnimatedNodeValue(int tag, AnimatedNodeValueListener public void stopListeningToAnimatedNodeValue(int tag) { AnimatedNode node = mAnimatedNodes.get(tag); if (node == null || !(node instanceof ValueAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( - "startListeningToAnimatedNodeValue: Animated node [" - + tag - + "] does not exist, or is not a 'value' node"); + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( + "stopListeningToAnimatedNodeValue: Animated node [" + + tag + + "] does not exist, or is not a 'value' node"); + } + return; } ((ValueAnimatedNode) node).setValueListener(null); } @@ -191,10 +198,13 @@ public void stopListeningToAnimatedNodeValue(int tag) { public void setAnimatedNodeValue(int tag, double value) { AnimatedNode node = mAnimatedNodes.get(tag); if (node == null || !(node instanceof ValueAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "setAnimatedNodeValue: Animated node [" - + tag - + "] does not exist, or is not a 'value' node"); + + tag + + "] does not exist, or is not a 'value' node"); + } + return; } stopAnimationsForNode(node); ((ValueAnimatedNode) node).mValue = value; @@ -205,10 +215,13 @@ public void setAnimatedNodeValue(int tag, double value) { public void setAnimatedNodeOffset(int tag, double offset) { AnimatedNode node = mAnimatedNodes.get(tag); if (node == null || !(node instanceof ValueAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "setAnimatedNodeOffset: Animated node [" - + tag - + "] does not exist, or is not a 'value' node"); + + tag + + "] does not exist, or is not a 'value' node"); + } + return; } ((ValueAnimatedNode) node).mOffset = offset; mUpdatedNodes.put(tag, node); @@ -218,10 +231,13 @@ public void setAnimatedNodeOffset(int tag, double offset) { public void flattenAnimatedNodeOffset(int tag) { AnimatedNode node = mAnimatedNodes.get(tag); if (node == null || !(node instanceof ValueAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "flattenAnimatedNodeOffset: Animated node [" - + tag - + "] does not exist, or is not a 'value' node"); + + tag + + "] does not exist, or is not a 'value' node"); + } + return; } ((ValueAnimatedNode) node).flattenOffset(); } @@ -230,10 +246,13 @@ public void flattenAnimatedNodeOffset(int tag) { public void extractAnimatedNodeOffset(int tag) { AnimatedNode node = mAnimatedNodes.get(tag); if (node == null || !(node instanceof ValueAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( - "extractAnimatedNodeOffset: Animated node [" - + tag - + "] does not exist, or is not a 'value' node"); + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( + "flattenAnimatedNodeOffset: Animated node [" + + tag + + "] does not exist, or is not a 'value' node"); + } + return; } ((ValueAnimatedNode) node).extractOffset(); } @@ -243,15 +262,21 @@ public void startAnimatingNode( int animationId, int animatedNodeTag, ReadableMap animationConfig, Callback endCallback) { AnimatedNode node = mAnimatedNodes.get(animatedNodeTag); if (node == null) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "startAnimatingNode: Animated node [" + animatedNodeTag + "] does not exist"); + } + return; } if (!(node instanceof ValueAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "startAnimatingNode: Animated node [" - + animatedNodeTag - + "] should be of type " - + ValueAnimatedNode.class.getName()); + + animatedNodeTag + + "] should be of type " + + ValueAnimatedNode.class.getName()); + } + return; } final AnimationDriver existingDriver = mActiveAnimations.get(animationId); @@ -330,17 +355,27 @@ public void stopAnimation(int animationId) { public void connectAnimatedNodes(int parentNodeTag, int childNodeTag) { AnimatedNode parentNode = mAnimatedNodes.get(parentNodeTag); if (parentNode == null) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "connectAnimatedNodes: Animated node with tag (parent) [" - + parentNodeTag - + "] does not exist"); + + parentNodeTag + + "] does not exist"); + } + dropAnimatedNode(parentNodeTag); + return; + } AnimatedNode childNode = mAnimatedNodes.get(childNodeTag); if (childNode == null) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "connectAnimatedNodes: Animated node with tag (child) [" - + childNodeTag - + "] does not exist"); + + childNodeTag + + "] does not exist"); + } + dropAnimatedNode(childNodeTag); + return; + } parentNode.addChild(childNode); mUpdatedNodes.put(childNodeTag, childNode); @@ -349,17 +384,27 @@ public void connectAnimatedNodes(int parentNodeTag, int childNodeTag) { public void disconnectAnimatedNodes(int parentNodeTag, int childNodeTag) { AnimatedNode parentNode = mAnimatedNodes.get(parentNodeTag); if (parentNode == null) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "disconnectAnimatedNodes: Animated node with tag (parent) [" - + parentNodeTag - + "] does not exist"); + + parentNodeTag + + "] does not exist"); + } + + return; + } AnimatedNode childNode = mAnimatedNodes.get(childNodeTag); if (childNode == null) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "disconnectAnimatedNodes: Animated node with tag (child) [" - + childNodeTag - + "] does not exist"); + + childNodeTag + + "] does not exist"); + } + + return; + } parentNode.removeChild(childNode); mUpdatedNodes.put(childNodeTag, childNode); @@ -369,17 +414,27 @@ public void disconnectAnimatedNodes(int parentNodeTag, int childNodeTag) { public void connectAnimatedNodeToView(int animatedNodeTag, int viewTag) { AnimatedNode node = mAnimatedNodes.get(animatedNodeTag); if (node == null) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "connectAnimatedNodeToView: Animated node with tag [" - + animatedNodeTag - + "] does not exist"); + + animatedNodeTag + + "] does not exist"); + } + dropAnimatedNode(animatedNodeTag); + return; + } if (!(node instanceof PropsAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "connectAnimatedNodeToView: Animated node connected to view [" - + viewTag - + "] should be of type " - + PropsAnimatedNode.class.getName()); + + viewTag + + "] should be of type " + + PropsAnimatedNode.class.getName()); + } + + return; + } if (mReactApplicationContext == null) { throw new IllegalStateException( @@ -408,17 +463,26 @@ public void connectAnimatedNodeToView(int animatedNodeTag, int viewTag) { public void disconnectAnimatedNodeFromView(int animatedNodeTag, int viewTag) { AnimatedNode node = mAnimatedNodes.get(animatedNodeTag); if (node == null) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "disconnectAnimatedNodeFromView: Animated node with tag [" - + animatedNodeTag - + "] does not exist"); + + animatedNodeTag + + "] does not exist"); + } + return; + } if (!(node instanceof PropsAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "disconnectAnimatedNodeFromView: Animated node connected to view [" - + viewTag - + "] should be of type " - + PropsAnimatedNode.class.getName()); + + viewTag + + "] should be of type " + + PropsAnimatedNode.class.getName()); + } + + return; + } PropsAnimatedNode propsAnimatedNode = (PropsAnimatedNode) node; propsAnimatedNode.disconnectFromView(viewTag); @@ -428,8 +492,12 @@ public void disconnectAnimatedNodeFromView(int animatedNodeTag, int viewTag) { public void getValue(int tag, Callback callback) { AnimatedNode node = mAnimatedNodes.get(tag); if (node == null || !(node instanceof ValueAnimatedNode)) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "getValue: Animated node with tag [" + tag + "] does not exist or is not a 'value' node"); + } + return; + } callback.invoke(((ValueAnimatedNode) node).getValue()); } @@ -458,8 +526,13 @@ public void addAnimatedEventToView(int viewTag, String eventName, ReadableMap ev int nodeTag = eventMapping.getInt("animatedValueTag"); AnimatedNode node = mAnimatedNodes.get(nodeTag); if (node == null) { - throw new JSApplicationIllegalArgumentException( + if (ReactBuildConfig.DEBUG) { + throw new JSApplicationIllegalArgumentException( "addAnimatedEventToView: Animated node with tag [" + nodeTag + "] does not exist"); + } + dropAnimatedNode(nodeTag); + return; + } if (!(node instanceof ValueAnimatedNode)) { throw new JSApplicationIllegalArgumentException( diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java index f4d0e82dddc8..d65d34cbe6d5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java @@ -63,6 +63,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import android.os.Build; public abstract class DevSupportManagerBase implements DevSupportManager { @@ -1107,7 +1108,11 @@ private void reload() { if (!mIsReceiverRegistered) { IntentFilter filter = new IntentFilter(); filter.addAction(getReloadAppAction(mApplicationContext)); - mApplicationContext.registerReceiver(mReloadAppBroadcastReceiver, filter); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + mApplicationContext.registerReceiver(mReloadAppBroadcastReceiver, filter, Context.RECEIVER_EXPORTED); + } else { + mApplicationContext.registerReceiver(mReloadAppBroadcastReceiver, filter); + } mIsReceiverRegistered = true; } diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar index aa7ccd36fb78..047eb382fc38 100644 Binary files a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar and b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar differ diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.md5 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.md5 index 6d0c4a84090d..6afc335c7352 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.md5 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.md5 @@ -1 +1 @@ -5348b35447652b18f99dced8848320c6 \ No newline at end of file +90adc2b3b939808eb04a093816177712 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha1 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha1 index 401f88f85da7..e0c120f01e1e 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha1 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha1 @@ -1 +1 @@ -b0531b5b92aaffaaad11db692fd9b4f523cd0677 \ No newline at end of file +49e447969431f9264ed68b529deaf34cbd8ee7d2 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha256 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha256 index 67bdf5861c56..91edde94864e 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha256 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha256 @@ -1 +1 @@ -2b99861578ce6e0752e90e92b67ef4f46318807015348020d1f7330520f85fc6 \ No newline at end of file +637c6c93193094b9ef23fb0da8e0f1822ef57b7b3eddeaad8925a4a1262ac746 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha512 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha512 index 5b72f266c27b..ad7069a265ec 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha512 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5-sources.jar.sha512 @@ -1 +1 @@ -5a4c19fcd45f850ce6884799874e68e8666d1785bf33c51ca81564e1f09d2169444fb76c4fcd27901c72779219254dc4f934a6555b43f07ba2e19799ede2e915 \ No newline at end of file +31a7889bf4c477d1efa052a987a3951d63b3d7a686635b4b9e3128e46629c21df2207fbba06ca4db3db390c6484e7c9d093847337e260a8144992c14632bc483 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar index 3a8a34d094c6..630e09aff005 100644 Binary files a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar and b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar differ diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.md5 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.md5 index 919b7a2fd9e0..c7a66ab95c72 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.md5 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.md5 @@ -1 +1 @@ -fea12f7e0faaa602ce1951fb11e2ee0a \ No newline at end of file +def8fcf952f6eb6adc6eba703eea9a6d \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha1 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha1 index bb8eeb2958b6..745be7d5e5c3 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha1 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha1 @@ -1 +1 @@ -a05f87766b3331d34453cd9dbecda94558f37fcb \ No newline at end of file +e6099b7c4765b95b1ab22452a942d84f1b7af70f \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha256 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha256 index 0053ef8373cc..a6774c2bf5e8 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha256 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha256 @@ -1 +1 @@ -0458ef9c18ee23075672896708bb9e0c668d566b34a2c3a76daf263c4e556a00 \ No newline at end of file +598c67f0dfa214f7c37cbf794177022a79e52bd3425ab262d676fca649462b12 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha512 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha512 index 2a4620032a55..458d0b678bd1 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha512 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.aar.sha512 @@ -1 +1 @@ -bc54913126c9842d389cb12fcf13bc7196a7d92ed59826d3debda9242d3f16ca57a4bb1072998fdf38a204f238880566a0aecfb5540bf1474a0e9c68aafe2753 \ No newline at end of file +4e74b47107574183d03fa3e0362e7b8fcf599bd9c740a76a6b16b1cad5962d2d07f5dcc68ec69c50c438660c66dbebcd3b74aa23bd42975ac7594f0a2ddb8f35 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module index de2995da7983..50377a85973b 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module @@ -90,7 +90,7 @@ "group": "com.facebook.soloader", "module": "soloader", "version": { - "requires": "0.10.4" + "requires": "0.10.5" } }, { @@ -133,11 +133,11 @@ { "name": "react-native-0.68.5.aar", "url": "react-native-0.68.5.aar", - "size": 15450892, - "sha512": "bc54913126c9842d389cb12fcf13bc7196a7d92ed59826d3debda9242d3f16ca57a4bb1072998fdf38a204f238880566a0aecfb5540bf1474a0e9c68aafe2753", - "sha256": "0458ef9c18ee23075672896708bb9e0c668d566b34a2c3a76daf263c4e556a00", - "sha1": "a05f87766b3331d34453cd9dbecda94558f37fcb", - "md5": "fea12f7e0faaa602ce1951fb11e2ee0a" + "size": 15451576, + "sha512": "4e74b47107574183d03fa3e0362e7b8fcf599bd9c740a76a6b16b1cad5962d2d07f5dcc68ec69c50c438660c66dbebcd3b74aa23bd42975ac7594f0a2ddb8f35", + "sha256": "598c67f0dfa214f7c37cbf794177022a79e52bd3425ab262d676fca649462b12", + "sha1": "e6099b7c4765b95b1ab22452a942d84f1b7af70f", + "md5": "def8fcf952f6eb6adc6eba703eea9a6d" } ] }, @@ -217,7 +217,7 @@ "group": "com.facebook.soloader", "module": "soloader", "version": { - "requires": "0.10.4" + "requires": "0.10.5" } }, { @@ -260,11 +260,11 @@ { "name": "react-native-0.68.5.aar", "url": "react-native-0.68.5.aar", - "size": 15450892, - "sha512": "bc54913126c9842d389cb12fcf13bc7196a7d92ed59826d3debda9242d3f16ca57a4bb1072998fdf38a204f238880566a0aecfb5540bf1474a0e9c68aafe2753", - "sha256": "0458ef9c18ee23075672896708bb9e0c668d566b34a2c3a76daf263c4e556a00", - "sha1": "a05f87766b3331d34453cd9dbecda94558f37fcb", - "md5": "fea12f7e0faaa602ce1951fb11e2ee0a" + "size": 15451576, + "sha512": "4e74b47107574183d03fa3e0362e7b8fcf599bd9c740a76a6b16b1cad5962d2d07f5dcc68ec69c50c438660c66dbebcd3b74aa23bd42975ac7594f0a2ddb8f35", + "sha256": "598c67f0dfa214f7c37cbf794177022a79e52bd3425ab262d676fca649462b12", + "sha1": "e6099b7c4765b95b1ab22452a942d84f1b7af70f", + "md5": "def8fcf952f6eb6adc6eba703eea9a6d" } ] } diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.md5 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.md5 index 58a126b223df..136c116c38d4 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.md5 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.md5 @@ -1 +1 @@ -86254c5ac67f2114a6d0bc3871beaf1e \ No newline at end of file +dd8ccaed2af75d123fe641100b11c6c3 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha1 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha1 index 75c9a5de3b27..a0ef70dc5622 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha1 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha1 @@ -1 +1 @@ -4d171845e48523ff1b3a6e931d0e00e2c0b06989 \ No newline at end of file +769f7726023838795560e343997bdef0137c1304 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha256 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha256 index 25b7c182a9fd..892670f480f8 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha256 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha256 @@ -1 +1 @@ -cb68b546ac78946b7ff836a19c0b6d664be65e141aa06cbd375b6e7c90e5cb65 \ No newline at end of file +30bff9b54d46c4f0fa9385ade416f7280137081c349d12aeeade8c1efa9f0535 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha512 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha512 index 9308bf33364c..c6cc9afa7411 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha512 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.module.sha512 @@ -1 +1 @@ -50339099894cf75eed1c2c2609b1a788752732211296349b513cd7e9356de25a1b38648f1042cb0a28e0ce82f61e60bf1ab0d261153a5aef260e845d32d49a63 \ No newline at end of file +ab5c098faeb3ce918b2063502cca6d6ec35a5c0a7582aaad1eaa0fdd460a45942357ca6683aa899936c7d40cae6f4de13cdc8997f8ca06f5aa957d563be45e2d \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom index 5c5fa4a05cfe..9c41a3f8d5a7 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom @@ -90,7 +90,7 @@ com.facebook.soloader soloader - 0.10.4 + 0.10.5 compile diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.md5 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.md5 index 83a3d7fbf1e1..39416cc567de 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.md5 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.md5 @@ -1 +1 @@ -4f47c940f7fd67293ed3a97c59a70363 \ No newline at end of file +e64b24a2ff01ac3574b7c02c4273673d \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha1 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha1 index d6eba36a05d4..2a015482acae 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha1 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha1 @@ -1 +1 @@ -0ca50837d2366824d40dd9d91e27a1b9e8d8c3a8 \ No newline at end of file +c6f61c9990039b80cb0d675f486b263fe3293167 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha256 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha256 index 727905899e87..2d1c585312e3 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha256 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha256 @@ -1 +1 @@ -4173f9c6023f606ae23bd268cfc16b49ba5f9035cbc3f6b0e335623545296198 \ No newline at end of file +336aea6e15837114a3bc3acfa4e2282e4100a990f566fec0cf309661f3951726 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha512 b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha512 index dbfe9d3cdc26..44bd0a7aa364 100644 --- a/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha512 +++ b/android/com/facebook/react/react-native/0.68.5/react-native-0.68.5.pom.sha512 @@ -1 +1 @@ -55b2c2e06f1fbbc8634e0ba08af28fbc9ae3961bcaf7d8dc837b9ad7025309c09a0d1d4ce927231f8694b4e0f8063b5495a099bc583d3e21c4366a3cb14b61a7 \ No newline at end of file +b92c0af0ad75a3702ca23142c1a25dde8beeee58bc4e2646d504c0009109f07b58c36f454ded592d64b7dd2b967615f2942a4aa085b7be863a6d66f43de8e34e \ No newline at end of file diff --git a/android/com/facebook/react/react-native/maven-metadata.xml b/android/com/facebook/react/react-native/maven-metadata.xml index 626c8cc7e1d7..79aed5832229 100644 --- a/android/com/facebook/react/react-native/maven-metadata.xml +++ b/android/com/facebook/react/react-native/maven-metadata.xml @@ -8,6 +8,6 @@ 0.68.5 - 20221212072608 + 20240508125440 diff --git a/android/com/facebook/react/react-native/maven-metadata.xml.md5 b/android/com/facebook/react/react-native/maven-metadata.xml.md5 index 0536fb5cb4aa..31809af28e7b 100644 --- a/android/com/facebook/react/react-native/maven-metadata.xml.md5 +++ b/android/com/facebook/react/react-native/maven-metadata.xml.md5 @@ -1 +1 @@ -f22aeadad45c1ab5c76f54f8556d52e7 \ No newline at end of file +3631f164f5b9a79e1d7295d48b9061ee \ No newline at end of file diff --git a/android/com/facebook/react/react-native/maven-metadata.xml.sha1 b/android/com/facebook/react/react-native/maven-metadata.xml.sha1 index 3780a79327e6..272a77fa5847 100644 --- a/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +++ b/android/com/facebook/react/react-native/maven-metadata.xml.sha1 @@ -1 +1 @@ -10d6cac38b81000c1830771c2bae5138c4a115ea \ No newline at end of file +6c20c7c6b62935effd235d7eb6ec7a75ea501ba0 \ No newline at end of file diff --git a/android/com/facebook/react/react-native/maven-metadata.xml.sha256 b/android/com/facebook/react/react-native/maven-metadata.xml.sha256 index 91d32a25d2c1..9f98a501d1cd 100644 --- a/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +++ b/android/com/facebook/react/react-native/maven-metadata.xml.sha256 @@ -1 +1 @@ -eab0c8855dd6e56117ed42d1dc537b24db1c577dce124e9609bcb9e64d2f7026 \ No newline at end of file +77439efc51944104eeef6f81f59cccac11cc4bdf5c05fea719d843ec5b4b941c \ No newline at end of file diff --git a/android/com/facebook/react/react-native/maven-metadata.xml.sha512 b/android/com/facebook/react/react-native/maven-metadata.xml.sha512 index 5c24c71c4d57..c506b4594f4f 100644 --- a/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +++ b/android/com/facebook/react/react-native/maven-metadata.xml.sha512 @@ -1 +1 @@ -cf9de4c672fda1409b602bbf501df0df314d36a06f4e9f3f6f2938365fcf8310c69f29e06ee6cac91cbb658eeec882711923042d44410e26fdeaf09d72f30e46 \ No newline at end of file +9ff2e1914b7546f7427db82c398bd5b799c5252c5fbb875235cbf902da31157893b486c960c337d083c8e33c143ef41cf8967a12e19c93e4105e3d1e41293b04 \ No newline at end of file diff --git a/third-party-podspecs/boost.podspec b/third-party-podspecs/boost.podspec index 2f1fcc4b5ef0..fa8213485217 100644 --- a/third-party-podspecs/boost.podspec +++ b/third-party-podspecs/boost.podspec @@ -10,7 +10,7 @@ Pod::Spec.new do |spec| spec.homepage = 'http://www.boost.org' spec.summary = 'Boost provides free peer-reviewed portable C++ source libraries.' spec.authors = 'Rene Rivera' - spec.source = { :http => 'https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2', + spec.source = { :http => 'https://archives.boost.io/release/1.76.0/source/boost_1_76_0.tar.bz2', :sha256 => 'f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41' } # Pinning to the same version as React.podspec.