feat: add continuous retained render ranges
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
This commit is contained in:
@@ -67,6 +67,9 @@ class WeatherRuntimeBridgeModule(private val context: ReactApplicationContext) :
|
||||
map.setRetainedUnderlayEnabled(enabled)
|
||||
promise.resolve("ACCEPTED")
|
||||
}
|
||||
@ReactMethod override fun setContinuousLayerRange(reactTag: Double, startLayerId: String, endLayerId: String, promise: Promise) = withMap(reactTag, promise) { map ->
|
||||
promise.resolve(if (map.setContinuousLayerRange(startLayerId, endLayerId)) "ACCEPTED" else "REJECTED")
|
||||
}
|
||||
@ReactMethod override fun getRetainedUnderlayDiagnostics(reactTag: Double, promise: Promise) = withMap(reactTag, promise) { map ->
|
||||
val value = map.retainedUnderlayDiagnostics
|
||||
promise.resolve(Arguments.createMap().apply {
|
||||
@@ -76,6 +79,21 @@ class WeatherRuntimeBridgeModule(private val context: ReactApplicationContext) :
|
||||
putDouble("fallback", value.fallback.toDouble())
|
||||
putDouble("invalidation", value.invalidation.toDouble())
|
||||
putString("lastReason", value.lastReason)
|
||||
putBoolean("rangeConfigured", value.rangeConfigured)
|
||||
putBoolean("rangeValid", value.rangeValid)
|
||||
putString("startLayerId", value.startLayerId)
|
||||
putString("endLayerId", value.endLayerId)
|
||||
putInt("startIndex", value.startIndex)
|
||||
putInt("endIndex", value.endIndex)
|
||||
putBoolean("bottomPresent", value.bottomPresent)
|
||||
putDouble("bottomBuild", value.bottomBuild.toDouble())
|
||||
putDouble("bottomReuse", value.bottomReuse.toDouble())
|
||||
putDouble("bottomInvalidation", value.bottomInvalidation.toDouble())
|
||||
putBoolean("topPresent", value.topPresent)
|
||||
putDouble("topBuild", value.topBuild.toDouble())
|
||||
putDouble("topReuse", value.topReuse.toDouble())
|
||||
putDouble("topInvalidation", value.topInvalidation.toDouble())
|
||||
putBoolean("fallback", value.fallback)
|
||||
})
|
||||
}
|
||||
@ReactMethod override fun clearWindFields(reactTag: Double, promise: Promise) = command(reactTag, promise) { it.clearWindFields() }
|
||||
|
||||
@@ -164,12 +164,23 @@ RCT_EXPORT_MODULE(WeatherRuntimeBridge)
|
||||
resolve(@"ACCEPTED");
|
||||
}];
|
||||
}
|
||||
- (void)setContinuousLayerRange:(double)reactTag startLayerId:(NSString *)startLayerId endLayerId:(NSString *)endLayerId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
||||
[self withMapForTag:reactTag requireRuntime:NO resolve:resolve reject:reject action:^(MLNMapView *map, MLNParticleFieldRuntime *runtime) {
|
||||
resolve([map setContinuousLayerRangeFromLayerIdentifier:startLayerId toLayerIdentifier:endLayerId] ? @"ACCEPTED" : @"REJECTED");
|
||||
}];
|
||||
}
|
||||
- (void)getRetainedUnderlayDiagnostics:(double)reactTag resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
||||
[self withMapForTag:reactTag requireRuntime:NO resolve:resolve reject:reject action:^(MLNMapView *map, MLNParticleFieldRuntime *runtime) {
|
||||
MLNRetainedUnderlayDiagnostics *value = map.retainedUnderlayDiagnostics;
|
||||
resolve(@{ @"enabled": @(value.enabled), @"build": @(value.build), @"reuse": @(value.reuse),
|
||||
@"fallback": @(value.fallback), @"invalidation": @(value.invalidation),
|
||||
@"lastReason": value.lastReason });
|
||||
@"lastReason": value.lastReason, @"rangeConfigured": @(value.rangeConfigured),
|
||||
@"rangeValid": @(value.rangeValid), @"startLayerId": value.startLayerId,
|
||||
@"endLayerId": value.endLayerId, @"startIndex": @(value.startIndex), @"endIndex": @(value.endIndex),
|
||||
@"bottomPresent": @(value.bottomPresent), @"bottomBuild": @(value.bottomBuild),
|
||||
@"bottomReuse": @(value.bottomReuse), @"bottomInvalidation": @(value.bottomInvalidation),
|
||||
@"topPresent": @(value.topPresent), @"topBuild": @(value.topBuild),
|
||||
@"topReuse": @(value.topReuse), @"topInvalidation": @(value.topInvalidation) });
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
@@ -9,12 +9,18 @@ type FieldSubmitResult = "REJECTED_SOURCE_MODE" | "REJECTED_ADAPTER" | "REJECTED
|
||||
type EncodedFieldSubmitResult = "ACCEPTED_INSERTED" | "ACCEPTED_REPLACED_REVISION" | "DUPLICATE" | "REJECTED_DECODE" | "REJECTED_CONTRACT" | "REJECTED_INVALID_FIELD_KEY" | "REJECTED_IDENTITY_CONFLICT" | "REJECTED_STALE_REVISION" | "REJECTED_INCOMPATIBLE" | "REJECTED_CAPACITY";
|
||||
type ColorStop = { speedMps: number; red: number; green: number; blue: number; alpha: number };
|
||||
type RuntimeSnapshot = { state: RuntimeState; playbackState: PlaybackState; targetFps: TargetFps; disposed: boolean };
|
||||
type RetainedUnderlaySnapshot = { enabled: boolean; build: number; reuse: number; fallback: number; invalidation: number; lastReason: string };
|
||||
type RetainedUnderlaySnapshot = {
|
||||
enabled: boolean; build: number; reuse: number; fallback: number; invalidation: number; lastReason: string;
|
||||
rangeConfigured: boolean; rangeValid: boolean; startLayerId: string; endLayerId: string;
|
||||
startIndex: number; endIndex: number; bottomPresent: boolean; bottomBuild: number; bottomReuse: number;
|
||||
bottomInvalidation: number; topPresent: boolean; topBuild: number; topReuse: number; topInvalidation: number;
|
||||
};
|
||||
export interface Spec extends TurboModule {
|
||||
attach(reactTag: number): Promise<RuntimeSnapshot>;
|
||||
detach(reactTag: number): Promise<void>;
|
||||
getState(reactTag: number): Promise<RuntimeSnapshot>;
|
||||
setRetainedUnderlayEnabled(reactTag: number, enabled: boolean): Promise<CommandResult>;
|
||||
setContinuousLayerRange(reactTag: number, startLayerId: string, endLayerId: string): Promise<CommandResult>;
|
||||
getRetainedUnderlayDiagnostics(reactTag: number): Promise<RetainedUnderlaySnapshot>;
|
||||
clearWindFields(reactTag: number): Promise<CommandResult>;
|
||||
submitWindField(reactTag: number, metadataJson: string, payloadFileUri: string): Promise<FieldSubmitResult>;
|
||||
|
||||
@@ -13,6 +13,10 @@ function nativeBridge() {
|
||||
export const RendererRuntime = {
|
||||
setRetainedUnderlayEnabled: (reactTag: number, enabled: boolean): Promise<CommandResult> =>
|
||||
nativeBridge().setRetainedUnderlayEnabled(reactTag, enabled),
|
||||
setContinuousLayerRange: (reactTag: number, startLayerId: string, endLayerId: string): Promise<CommandResult> => {
|
||||
if (startLayerId.length === 0 || endLayerId.length === 0) return Promise.resolve("REJECTED");
|
||||
return nativeBridge().setContinuousLayerRange(reactTag, startLayerId, endLayerId);
|
||||
},
|
||||
getRetainedUnderlayDiagnostics: (reactTag: number): Promise<RetainedUnderlayDiagnostics> =>
|
||||
nativeBridge().getRetainedUnderlayDiagnostics(reactTag),
|
||||
} as const;
|
||||
|
||||
@@ -28,4 +28,18 @@ export type RetainedUnderlayDiagnostics = Readonly<{
|
||||
fallback: number;
|
||||
invalidation: number;
|
||||
lastReason: string;
|
||||
rangeConfigured: boolean;
|
||||
rangeValid: boolean;
|
||||
startLayerId: string;
|
||||
endLayerId: string;
|
||||
startIndex: number;
|
||||
endIndex: number;
|
||||
bottomPresent: boolean;
|
||||
bottomBuild: number;
|
||||
bottomReuse: number;
|
||||
bottomInvalidation: number;
|
||||
topPresent: boolean;
|
||||
topBuild: number;
|
||||
topReuse: number;
|
||||
topInvalidation: number;
|
||||
}>;
|
||||
|
||||
Reference in New Issue
Block a user