diff --git a/arkoala-arkts/arkui/src/Application.ts b/arkoala-arkts/arkui/src/Application.ts index 4c611d4956935d8797bf9fc22b146065410b6a98..fb15ff2e49dfeda5f3c9c4e665ad0e7502ffa2e3 100644 --- a/arkoala-arkts/arkui/src/Application.ts +++ b/arkoala-arkts/arkui/src/Application.ts @@ -81,10 +81,7 @@ export function createUiDetachedRoot( const node = manager.updatableNode(peerFactory(), (context: StateContext) => { const frozen = manager.frozen manager.frozen = true - memoEntry(context, 0, - /** @memo */ - () => WithAppRouter(builder) - ) + memoEntry(context, 0, builder) manager.frozen = frozen }) detachedRoots.set(node.value.peer.ptr, node) diff --git a/arkoala-arkts/arkui/src/generated/ArkSystemOpsMaterialized.ts b/arkoala-arkts/arkui/src/generated/ArkSystemOpsMaterialized.ts index b04c3424157d25b6c96cc95bb59869c10e8f0394..85efbde92914387ee7c73868b12aec5259049d12 100644 --- a/arkoala-arkts/arkui/src/generated/ArkSystemOpsMaterialized.ts +++ b/arkoala-arkts/arkui/src/generated/ArkSystemOpsMaterialized.ts @@ -57,6 +57,12 @@ export class SystemOps implements MaterializedBase { SystemOps.EndFrame_serialize(root_casted) return } + public static getResourceId(bundleName: string, moduleName: string, params: Array): int32 { + const bundleName_casted = bundleName as (string) + const moduleName_casted = moduleName as (string) + const params_casted = params as (Array) + return SystemOps.getResourceId_serialize(bundleName_casted, moduleName_casted, params_casted) + } private static StartFrame_serialize(): KPointer { const retval = ArkUIGeneratedNativeModule._SystemOps_StartFrame() return retval @@ -64,4 +70,15 @@ export class SystemOps implements MaterializedBase { private static EndFrame_serialize(root: KPointer): void { ArkUIGeneratedNativeModule._SystemOps_EndFrame(root) } + private static getResourceId_serialize(bundleName: string, moduleName: string, params: Array): int32 { + const thisSerializer : Serializer = Serializer.hold() + thisSerializer.writeInt32(params.length as int32) + for (let i = 0; i < params.length; i++) { + const params_element : string = params[i] + thisSerializer.writeString(params_element) + } + const retval = ArkUIGeneratedNativeModule._SystemOps_getResourceId(bundleName, moduleName, thisSerializer.asArray(), thisSerializer.length()) + thisSerializer.release() + return retval + } } diff --git a/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ts b/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ts index 805d68fbcaef12999b12f03b6aab6a25fe913c31..fd209ff08eed674eec65b691cc27d7597ef636d7 100644 --- a/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ts +++ b/arkoala-arkts/arkui/src/generated/arkts/ArkUIGeneratedNativeModule.ts @@ -1581,6 +1581,7 @@ export class ArkUIGeneratedNativeModule { native static _SystemOps_getFinalizer(): KPointer native static _SystemOps_StartFrame(): KPointer native static _SystemOps_EndFrame(root: KPointer): void + native static _SystemOps_getResourceId(bundleName: KStringPtr, moduleName: KStringPtr, thisArray: KUint8ArrayPtr, thisLength: int32): int32 native static _DrawingCanvas_ctor(pixelmap: KPointer): KPointer native static _DrawingCanvas_getFinalizer(): KPointer native static _DrawingCanvas_drawRect(ptr: KPointer, left: number, top: number, right: number, bottom: number): void diff --git a/arkoala-arkts/arkui/src/handwritten/resources.ts b/arkoala-arkts/arkui/src/handwritten/resources.ts index 44c16b051866f69debd04f7263dbadbf8624ad72..c6174280cc4beed1420c9b762b2e5cf9ba9497be 100644 --- a/arkoala-arkts/arkui/src/handwritten/resources.ts +++ b/arkoala-arkts/arkui/src/handwritten/resources.ts @@ -1,32 +1,58 @@ import { Resource } from "../generated"; +import { int32 } from "@koalaui/common" +import { ArkUIGeneratedNativeModule } from "#components"; +import { Serializer } from "../generated/peers/Serializer" -export function _r(bundleName: string, moduleName: string, name: string): Resource { - const param: string = name.split(".")[1]; - let res_type = 20000; +class ArkResource implements Resource { + bundleName: string = ""; + moduleName: string = ""; + params?: Array; + type?: number; + _id:number = -1; - switch (param) { - case 'media': - res_type = 20000; - break; - case 'color': - res_type = 10001; - break; - case 'string': - res_type = 10003; - break; - case 'float': - res_type = 10002; - break; + constructor(resourceName: string, bundleName: string, moduleName: string) { + this.bundleName = bundleName; + this.moduleName = moduleName; + this.params = new Array(resourceName); + this._id = -1; + const param: string = resourceName.split(".")[1]; + this.type = 20000; + switch(param) { + case 'media': + this.type = 20000; + break; + case 'color': + this.type = 10001; + break; + case 'string': + this.type = 10003; + break; + case 'float': + this.type = 10002; + break; + } } + set setId(value: number) { + this._id = value; + } - return { - "id": -1, - "type": res_type, - "params": new Array(name), - "bundleName": bundleName, - "moduleName": moduleName - } as Resource + get getId(): number { + if (this._id == -1) { + console.info("wll getId a"); + if (this.params == null || this.params == undefined) { + return this._id; + } + this._id = ArkUIGeneratedNativeModule._SystemOps_getResourceId(this.bundleName, this.moduleName, this.params, this.params.length) + console.info("wll getId b" + this._id); + } + return this._id; + } +} + +export function _r(bundleName: string, moduleName: string, name: string): Resource { + console.info("wll _r a"); + return new ArkResource(name, bundleName, moduleName); } export function _rawfile(bundleName: string, moduleName: string, name: string): Resource { diff --git a/arkoala-arkts/shopping/user/src/ets/pages/collect/collected.ets b/arkoala-arkts/shopping/user/src/ets/pages/collect/collected.ets index dde8f2651dc0a4a7fc55fe0ac61960e63848daf1..f684846d5ada49bfdcdc31542dd5308d33c60a5d 100644 --- a/arkoala-arkts/shopping/user/src/ets/pages/collect/collected.ets +++ b/arkoala-arkts/shopping/user/src/ets/pages/collect/collected.ets @@ -15,7 +15,7 @@ //import mediaquery from '@ohos.mediaquery' //import mediaQuery from '@ohos.mediaquery' -import router from '@ohos.router' +// import router from '@ohos.router' import { NullPage } from './nullPage' import { SinglePage1 } from './singlePage1' import { SinglePage2 } from './singlePage2' @@ -34,9 +34,9 @@ struct CollectedPage { //listener = mediaQuery.matchMediaSync('(orientation:landscape)') onPageShow() { - const params = router.getParams() as SearchParam; // 获取传递过来的参数对象 - this.width1 = params.num - this.ratio = params.ratio + // const params = router.getParams() as SearchParam; // 获取传递过来的参数对象 + // this.width1 = params.num + // this.ratio = params.ratio } aboutToAppear() { @@ -62,7 +62,7 @@ struct CollectedPage { .width(30 * this.ratio) .aspectRatio(1) .onClick((e?: ClickEvent) => { - router.back() + // router.back() }) Text() { Span('我的收藏') diff --git a/arkoala-arkts/shopping/user/src/ets/pages/detailPage/detail.ets b/arkoala-arkts/shopping/user/src/ets/pages/detailPage/detail.ets index 21c6c5f32f0e51d3133e4913eb9830ccf41dfab6..dfae27abbb921e27077ab8295499721bb953f4f0 100644 --- a/arkoala-arkts/shopping/user/src/ets/pages/detailPage/detail.ets +++ b/arkoala-arkts/shopping/user/src/ets/pages/detailPage/detail.ets @@ -14,7 +14,7 @@ */ //import mediaQuery from '@ohos.mediaquery'; -import router from '@ohos.router'; +// import router from '@ohos.router'; import { SwiperModel, PhoneTypeModel, ShowImgModel, RecommendDataModel, GoodsInfoModel, ListDataModel } from "../../model/detailModel" import { swiperData, phoneTypeData, showImgData, recommendData, goodsInfoData, listData } from '../../data/detailData' diff --git a/arkoala-arkts/shopping/user/src/ets/pages/homePage/User.ets b/arkoala-arkts/shopping/user/src/ets/pages/homePage/User.ets index a75593f0cbdf646b1f939113b470f0976e2344f6..9593b18412bb1e17973dbe6afdd66efb9500d6ed 100644 --- a/arkoala-arkts/shopping/user/src/ets/pages/homePage/User.ets +++ b/arkoala-arkts/shopping/user/src/ets/pages/homePage/User.ets @@ -13,7 +13,7 @@ * limitations under the License. */ -import router from '@ohos.router'; +// import router from '@ohos.router'; import { RecordModel, OrderModel, DiscountModel, ServiceModel } from '../../model/homeModel' import { recordData, orderData, discountData, serviceData } from '../../data/homeData' import { Core2 } from './core2' @@ -105,13 +105,13 @@ export struct User { .fontSize(10 * this.ratio) } .onClick((e?: ClickEvent) => { - router.pushUrl({ - url: item.uri, - params: { - num: this.num, - ratio: this.ratio - } as SearchParam - }) + // router.pushUrl({ + // url: item.uri, + // params: { + // num: this.num, + // ratio: this.ratio + // } as SearchParam + // }) }) }, (item: RecordModel, index: number) => JSON.stringify(item)) } diff --git a/arkoala-arkts/shopping/user/src/ets/pages/search/searchPage.ets b/arkoala-arkts/shopping/user/src/ets/pages/search/searchPage.ets index 7b0bf6bc74a3712fac15b9ae09e0d5051bb8fa65..c7450911fcf57ca7ac7c2f7be5455f73db07980d 100644 --- a/arkoala-arkts/shopping/user/src/ets/pages/search/searchPage.ets +++ b/arkoala-arkts/shopping/user/src/ets/pages/search/searchPage.ets @@ -14,7 +14,7 @@ */ //import mediaQuery from '@ohos.mediaquery'; -import router from '@ohos.router'; +// import router from '@ohos.router'; import { ExampleDataModel, SearchDataModel } from '../../model/searchModel'; import { exampleData, searchData } from '../../data/searchData' import { BaseRouteParam, SearchParam } from '../../model/routeModel' diff --git a/arkoala/framework/native/src/generated/arkoala_api_generated.h b/arkoala/framework/native/src/generated/arkoala_api_generated.h index 720404d322c530fca071412805e42d5a7683bb9f..ff6243081f48b1b1fd211baf2dd6324ce6d56a76 100644 --- a/arkoala/framework/native/src/generated/arkoala_api_generated.h +++ b/arkoala/framework/native/src/generated/arkoala_api_generated.h @@ -19477,6 +19477,9 @@ typedef struct GENERATED_ArkUISystemOpsAccessor { Ark_NativePointer (*getFinalizer)(); Ark_NativePointer (*StartFrame)(); void (*EndFrame)(Ark_NativePointer root); + Ark_Int32 (*getResourceId)(const Ark_String* bundleName, + const Ark_String* moduleName, + const Array_String* params); } GENERATED_ArkUISystemOpsAccessor; typedef struct GENERATED_ArkUIDrawingCanvasAccessor { diff --git a/arkoala/framework/native/src/generated/bridge_generated.cc b/arkoala/framework/native/src/generated/bridge_generated.cc index 431cf9c300abf89d610fc37beb24dae52c3d02a4..f234d08ea6ab36c51c058e6a7dbe6b614e57427f 100644 --- a/arkoala/framework/native/src/generated/bridge_generated.cc +++ b/arkoala/framework/native/src/generated/bridge_generated.cc @@ -17118,6 +17118,19 @@ void impl_SystemOps_EndFrame(Ark_NativePointer root) { GetAccessors()->getSystemOpsAccessor()->EndFrame(root); } KOALA_INTEROP_V1(SystemOps_EndFrame, Ark_NativePointer) +Ark_Int32 impl_SystemOps_getResourceId(const KStringPtr& bundleName, const KStringPtr& moduleName, uint8_t* thisArray, int32_t thisLength) { + Deserializer thisDeserializer(thisArray, thisLength); + const Ark_Int32 params_value_buf_length = thisDeserializer.readInt32(); + Array_String params_value_buf = {}; + thisDeserializer.resizeArray::type, + std::decay::type>(¶ms_value_buf, params_value_buf_length); + for (int params_value_buf_i = 0; params_value_buf_i < params_value_buf_length; params_value_buf_i++) { + params_value_buf.array[params_value_buf_i] = static_cast(thisDeserializer.readString()); + } + Array_String params_value = params_value_buf;; + return GetAccessors()->getSystemOpsAccessor()->getResourceId((const Ark_String*) (&bundleName), (const Ark_String*) (&moduleName), (const Array_String*)¶ms_value); +} +KOALA_INTEROP_4(SystemOps_getResourceId, Ark_Int32, KStringPtr, KStringPtr, uint8_t*, int32_t) Ark_NativePointer impl_DrawingCanvas_ctor(Ark_NativePointer pixelmap) { return GetAccessors()->getDrawingCanvasAccessor()->ctor(static_cast(pixelmap)); } diff --git a/arkoala/framework/native/src/generated/dummy_impl.cc b/arkoala/framework/native/src/generated/dummy_impl.cc index 9ee7492178795c218eef9742dfd641a3dd9c52c7..811dd71d081f45a204c9db620c3643eee5c310b4 100644 --- a/arkoala/framework/native/src/generated/dummy_impl.cc +++ b/arkoala/framework/native/src/generated/dummy_impl.cc @@ -20355,6 +20355,23 @@ namespace OHOS::Ace::NG::GeneratedModifier { out.append(") \n"); appendGroupedLog(1, out); } + Ark_Int32 GetResourceIdImpl(const Ark_String* bundleName, + const Ark_String* moduleName, + const Array_String* params) + { + if (!needGroupedLog(1)) + return 0; + string out("getResourceId("); + WriteToString(&out, bundleName); + out.append(", "); + WriteToString(&out, moduleName); + out.append(", "); + WriteToString(&out, params); + out.append(") \n"); + out.append("[return 0] \n"); + appendGroupedLog(1, out); + return 0; + } } // SystemOpsAccessor namespace DrawingCanvasAccessor { void DestroyPeerImpl(Ark_DrawingCanvas peer) @@ -34398,6 +34415,7 @@ namespace OHOS::Ace::NG::GeneratedModifier { SystemOpsAccessor::GetFinalizerImpl, SystemOpsAccessor::StartFrameImpl, SystemOpsAccessor::EndFrameImpl, + SystemOpsAccessor::GetResourceIdImpl, }; return &SystemOpsAccessorImpl; } diff --git a/arkoala/framework/native/src/generated/real_impl.cc b/arkoala/framework/native/src/generated/real_impl.cc index 2d9da5d33138925d892e2b38999081cd25020031..20355f58f33e66258c459b22d266fc817fa4efd6 100644 --- a/arkoala/framework/native/src/generated/real_impl.cc +++ b/arkoala/framework/native/src/generated/real_impl.cc @@ -10534,6 +10534,12 @@ namespace OHOS::Ace::NG::GeneratedModifier { //auto convValue = Converter::OptConvert(root); // for enums //undefinedModelNG::SetEndFrame(frameNode, convValue); } + Ark_Int32 GetResourceIdImpl(const Ark_String* bundleName, + const Ark_String* moduleName, + const Array_String* params) + { + return {}; + } } // SystemOpsAccessor namespace DrawingCanvasAccessor { void DestroyPeerImpl(Ark_DrawingCanvas peer) @@ -16900,6 +16906,7 @@ namespace OHOS::Ace::NG::GeneratedModifier { SystemOpsAccessor::GetFinalizerImpl, SystemOpsAccessor::StartFrameImpl, SystemOpsAccessor::EndFrameImpl, + SystemOpsAccessor::GetResourceIdImpl, }; return &SystemOpsAccessorImpl; }