diff --git a/frameworks/ets/ani/BUILD.gn b/frameworks/ets/ani/BUILD.gn index 4bccd1b37cae1e4f74949455b0920dd1010e1650..0b5e04d5f1842697a268ba39eea32b75dd8a3044 100644 --- a/frameworks/ets/ani/BUILD.gn +++ b/frameworks/ets/ani/BUILD.gn @@ -27,7 +27,6 @@ group("ani_packages") { "${ability_runtime_path}/frameworks/ets/ani/form_extension_ability:form_extension_ability_etc", "${ability_runtime_path}/frameworks/ets/ani/insight_intent/insight_intent_driver:insight_intent_driver_ani_kit", "${ability_runtime_path}/frameworks/ets/ani/native_constructor:context_ani", - "${ability_runtime_path}/frameworks/ets/ani/uri_permission_manager:uri_permission_manager_abc_etc", "${ability_runtime_path}/frameworks/ets/ani/uri_permission_manager:uri_permission_manager_ani_kit", "${ability_runtime_path}/frameworks/ets/ani/wantagent:aniwantagent", "${ability_runtime_path}/frameworks/ets/ani/application:application_ani", diff --git a/frameworks/ets/ani/ani_common/src/ani_common_util.cpp b/frameworks/ets/ani/ani_common/src/ani_common_util.cpp index 51a122518bdf0626fac292fc512aa93f15c41b06..231d237ad2d93b2becafa0ed9f5569e8fb59b780 100644 --- a/frameworks/ets/ani/ani_common/src/ani_common_util.cpp +++ b/frameworks/ets/ani/ani_common/src/ani_common_util.cpp @@ -625,22 +625,26 @@ bool AsyncCallback(ani_env *env, ani_object call, ani_object error, ani_object r ani_class clsCall {}; if ((status = env->FindClass(CLASSNAME_ASYNC_CALLBACK_WRAPPER, &clsCall)) != ANI_OK) { - TAG_LOGE(AAFwkTag::JSNAPI, "status: %{public}d", status); + TAG_LOGE(AAFwkTag::JSNAPI, "FindClass status: %{public}d", status); return false; } ani_method method {}; - if ((status = env->Class_FindMethod( - clsCall, "invoke", "L@ohos/base/BusinessError;Lstd/core/Object;:V", &method)) != ANI_OK) { - TAG_LOGE(AAFwkTag::JSNAPI, "status: %{public}d", status); + if ((status = env->Class_FindMethod(clsCall, "invoke", nullptr, &method)) != ANI_OK) { + TAG_LOGE(AAFwkTag::JSNAPI, "Class_FindMethod status: %{public}d", status); return false; } - if (result == nullptr) { + if (error == nullptr) { ani_ref nullRef = nullptr; env->GetNull(&nullRef); - result = reinterpret_cast(nullRef); + error = reinterpret_cast(nullRef); + } + if (result == nullptr) { + ani_ref undefinedRef = nullptr; + env->GetUndefined(&undefinedRef); + result = reinterpret_cast(undefinedRef); } if ((status = env->Object_CallMethod_Void(call, method, error, result)) != ANI_OK) { - TAG_LOGE(AAFwkTag::JSNAPI, "status: %{public}d", status); + TAG_LOGE(AAFwkTag::JSNAPI, "Object_CallMethod_Void status: %{public}d", status); return false; } return true; diff --git a/frameworks/ets/ani/uri_permission_manager/BUILD.gn b/frameworks/ets/ani/uri_permission_manager/BUILD.gn index 45039ec05ed7f5b6dc3377d95a1ca637a48829d1..db4c22e2905d6954536192eaa98a7d9547744a97 100644 --- a/frameworks/ets/ani/uri_permission_manager/BUILD.gn +++ b/frameworks/ets/ani/uri_permission_manager/BUILD.gn @@ -82,24 +82,4 @@ ohos_shared_library("uri_permission_manager_ani_kit") { innerapi_tags = [ "platformsdk" ] subsystem_name = "ability" part_name = "ability_runtime" -} - -generate_static_abc("uri_permission_manager_abc") { - base_url = "./ets" - - files = [ "./ets/@ohos.application.uriPermissionManager.ets" ] - - dst_file = "$target_out_dir/uri_permission_manager.abc" - out_puts = [ "$target_out_dir/uri_permission_manager.abc" ] - - is_boot_abc = "True" - device_dst_file = "/system/framework/uri_permission_manager.abc" -} - -ohos_prebuilt_etc("uri_permission_manager_abc_etc") { - source = "$target_out_dir/uri_permission_manager.abc" - module_install_dir = "framework" - subsystem_name = "ability" - part_name = "ability_runtime" - deps = [ ":uri_permission_manager_abc" ] } \ No newline at end of file diff --git a/frameworks/ets/ani/uri_permission_manager/src/sts_uri_perm_mgr.cpp b/frameworks/ets/ani/uri_permission_manager/src/sts_uri_perm_mgr.cpp index 638650677fb2b7c6e57b637d2d2612bccad40551..a0e850698d08a30cc95cf7b500de7e6751115092 100644 --- a/frameworks/ets/ani/uri_permission_manager/src/sts_uri_perm_mgr.cpp +++ b/frameworks/ets/ani/uri_permission_manager/src/sts_uri_perm_mgr.cpp @@ -151,13 +151,13 @@ void StsUriPermissionManagerInit(ani_env *env) ani_native_function { "grantUriPermissionCallbackSync", "Lstd/core/String;L@ohos/app/ability/wantConstant/wantConstant/Flags;Lstd/core/String;D" - "L@ohos/application/uriPermissionManager/AsyncCallbackWrapper;:V", + "Lutils/AbilityUtils/AsyncCallbackWrapper;:V", reinterpret_cast(grantUriPermissionCallbackSync) }, ani_native_function { "revokeUriPermissionCallbackSync", "Lstd/core/String;Lstd/core/String;D" - "L@ohos/application/uriPermissionManager/AsyncCallbackWrapper;:V", + "Lutils/AbilityUtils/AsyncCallbackWrapper;:V", reinterpret_cast(revokeUriPermissionCallbackSync) }, }; diff --git a/frameworks/ets/ets/@ohos.app.ability.InsightIntentContext.ets b/frameworks/ets/ets/@ohos.app.ability.InsightIntentContext.ets index a8fceeb56bb19f8585e346ab93064edf53243878..f8ff010733011697551719e1b66892352d0cb239 100644 --- a/frameworks/ets/ets/@ohos.app.ability.InsightIntentContext.ets +++ b/frameworks/ets/ets/@ohos.app.ability.InsightIntentContext.ets @@ -19,14 +19,14 @@ import Want from '@ohos.app.ability.Want'; export default class InsightIntentContext { nativeContext: long; - public native nativeStartAbilitySync(want: Want): BusinessError; + public native nativeStartAbilitySync(want: Want): BusinessError; startAbility(want: Want, callback: AsyncCallback): void { - let p1 = taskpool.execute((): BusinessError => { + let p1 = taskpool.execute((): BusinessError => { return this.nativeStartAbilitySync(want); }); p1.then((e: NullishType) => { - let retError = e as BusinessError; + let retError = e as BusinessError; callback(retError, undefined); }, (err: Error): void => { callback(err as BusinessError, undefined); @@ -34,12 +34,12 @@ export default class InsightIntentContext { } startAbility(want: Want): Promise { - let p = new Promise((resolve: (v: undefined) => void, reject: (error: BusinessError) => void): void => { - let p1 = taskpool.execute((): BusinessError => { + let p = new Promise((resolve: (v: undefined) => void, reject: (error: BusinessError) => void): void => { + let p1 = taskpool.execute((): BusinessError => { return this.nativeStartAbilitySync(want); }); p1.then((e: NullishType) => { - let retError = e as BusinessError; + let retError = e as BusinessError; if (retError.code === 0) { resolve(undefined); } else { diff --git a/frameworks/ets/ets/@ohos.app.ability.UIAbility.ets b/frameworks/ets/ets/@ohos.app.ability.UIAbility.ets index dee014b5f1c503140220f2769430e63e5f05190c..783667f4e87a4a2a8d4dfcb87c44dcd43ab4664c 100644 --- a/frameworks/ets/ets/@ohos.app.ability.UIAbility.ets +++ b/frameworks/ets/ets/@ohos.app.ability.UIAbility.ets @@ -21,19 +21,26 @@ import window from '@ohos.window'; import { AbilityUtils } from './utils/AbilityUtils'; export type OnReleaseCallback = (msg: string) => void; + export type CalleeCallback = (indata: rpc.MessageSequence) => rpc.Parcelable; + export interface Caller { call(method: string, data: rpc.Parcelable): Promise; + onRelease(callback: OnReleaseCallback): void; + release(): void; } + export interface Callee { on(method: string, callback: CalleeCallback): void; } export default class UIAbility { private destroyCallbackPoint: long; + private native nativeOnDestroyCallback(): void; + private callOnDestroy(): boolean { const derivedClassType = AbilityUtils.getClassType(this); if (derivedClassType === undefined) { @@ -59,16 +66,35 @@ export default class UIAbility { lastRequestWant: Want = new Want(); callee: Callee | null = null; - onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {} - onWindowStageCreate(windowStage: window.WindowStage): void {} - onWindowStageWillDestroy(windowStage: window.WindowStage): void {} - onWindowStageDestroy(): void {} - onWindowStageRestore(windowStage: window.WindowStage): void {} - onDestroy(): void {} + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + } + + onWindowStageWillDestroy(windowStage: window.WindowStage): void { + } + + onWindowStageDestroy(): void { + } + + onWindowStageRestore(windowStage: window.WindowStage): void { + } + + onDestroy(): void { + } + onDestroyAsync(): Promise { - return new Promise((resolve: (a: undefined)=>void, reject: (err: Error)=>void): void => {}); + return new Promise((resolve: (a: undefined) => void, reject: (err: Error) => void): void => { + }); + } + + onForeground(): void { + } + + onBackground(): void { + } + + onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void { } - onForeground(): void {} - onBackground(): void {} - onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {} } diff --git a/frameworks/ets/ets/@ohos.app.ability.UIExtensionContentSession.ets b/frameworks/ets/ets/@ohos.app.ability.UIExtensionContentSession.ets index 64066274f0fc4b10972509ef3686851fea241597..d7ef4faf27003319f21a3871775ffa08e5fce6c9 100644 --- a/frameworks/ets/ets/@ohos.app.ability.UIExtensionContentSession.ets +++ b/frameworks/ets/ets/@ohos.app.ability.UIExtensionContentSession.ets @@ -50,9 +50,9 @@ export default class UIExtensionContentSession { } terminateSelf(): Promise { - let p = new Promise((resolve: (data: undefined) => void, reject:(err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined) => void, reject:(err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -73,9 +73,9 @@ export default class UIExtensionContentSession { } terminateSelfWithResult(parameter: AbilityResult): Promise { - let p = new Promise((resolve: (data: undefined) => void, reject:(err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined) => void, reject:(err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); diff --git a/frameworks/ets/ets/@ohos.app.ability.abilityManager.ets b/frameworks/ets/ets/@ohos.app.ability.abilityManager.ets index 274a24fc0af837e4077fcee9f2a9c1d7ccb4765b..cbd232400bc95363b88a20b06eade8e7f345f769 100644 --- a/frameworks/ets/ets/@ohos.app.ability.abilityManager.ets +++ b/frameworks/ets/ets/@ohos.app.ability.abilityManager.ets @@ -13,7 +13,6 @@ * limitations under the License. */ -import AbilityStateData from 'application.AbilityStateData'; import { ElementName } from 'bundleManager.ElementName' import { BusinessError, AsyncCallback } from '@ohos.base'; import AsyncCallbackWrapper from './utils/AbilityUtils'; @@ -54,10 +53,10 @@ export default namespace abilityManager { } export function getTopAbility():Promise { - let p = new Promise((resolve: (data: ElementName)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: ElementName)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise((resolve: (data: ElementName)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: ElementName | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as ElementName); } else { reject(err); } @@ -78,11 +77,11 @@ export function getTopAbility(callback: AsyncCallback): void function getAbilityRunningInfos(): Promise> { return new Promise>((resolve: (data: Array) => void, - reject: (err: BusinessError) => void): void => { - let syncCall = new AsyncCallbackWrapper>((err: BusinessError, - data: Array) => { - if (err.code == 0) { - resolve(data); + reject: (err: BusinessError) => void): void => { + let syncCall = new AsyncCallbackWrapper>((err: BusinessError | null, + data: Array | undefined) => { + if (err == null || err.code == 0) { + resolve(data as Array); } else { reject(err); } diff --git a/frameworks/ets/ets/@ohos.app.ability.appManager.ets b/frameworks/ets/ets/@ohos.app.ability.appManager.ets index fe4df6bd34b107bc516fa8cc2ec8f0a51c9fa134..d88bb50d90bee95164f40832c6454bb3ba811ecf 100644 --- a/frameworks/ets/ets/@ohos.app.ability.appManager.ets +++ b/frameworks/ets/ets/@ohos.app.ability.appManager.ets @@ -16,7 +16,6 @@ import { ProcessInformation as _ProcessInformation } from 'application.ProcessIn import { RunningMultiAppInfo as _RunningMultiAppInfo } from 'application.RunningMultiAppInfo'; import _AbilityStateData from 'application.AbilityStateData'; import _AppStateData from 'application.AppStateData'; -import hilog from '@ohos.hilog'; import { BusinessError, AsyncCallback } from '@ohos.base'; import _ProcessData from 'application.ProcessData'; import _ApplicationStateObserver from 'application.ApplicationStateObserver'; @@ -79,9 +78,9 @@ export class KeepAliveBundleInfoInner implements KeepAliveBundleInfo { export native function nativePreloadApplication(callback: AsyncCallbackWrapper, bundleName: string, userId: number, mode: PreloadMode, appIndex?: number): void; export function preloadApplication(bundleName: string, userId: number, mode: PreloadMode, appIndex?: number): Promise{ - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError | null)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -103,10 +102,10 @@ export function getRunningProcessInformation(callback: AsyncCallback> { - let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError, data: Array)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as Array); } else { reject(err); } @@ -127,10 +126,10 @@ export function getForegroundApplications(callback: AsyncCallback> { - let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError, data: Array)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as Array); } else { reject(err); } @@ -144,10 +143,10 @@ export function getForegroundApplications(): Promise> { export native function nativeGetRunningMultiAppInfo(bundleName: string, callback: AsyncCallbackWrapper): void; export function getRunningMultiAppInfo(bundleName: string): Promise { - let p = new Promise((resolve:(data: RunningMultiAppInfo)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: RunningMultiAppInfo)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise((resolve:(data: RunningMultiAppInfo)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: RunningMultiAppInfo | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as RunningMultiAppInfo); } else { reject(err); } @@ -168,10 +167,10 @@ export function getRunningProcessInfoByBundleName(bundleName: string, callback: } export function getRunningProcessInfoByBundleName(bundleName: string): Promise> { - let p = new Promise>((resolve:(data: Array)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError, data: Array)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise>((resolve:(data: Array)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as Array); } else { reject(err); } @@ -193,10 +192,10 @@ export function getRunningProcessInfoByBundleName(bundleName: string, userId: nu } export function getRunningProcessInfoByBundleName(bundleName: string, userId: number): Promise> { - let p = new Promise>((resolve:(data: Array)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError, data: Array)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise>((resolve:(data: Array)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as Array); } else { reject(err); } @@ -228,9 +227,9 @@ export function off(type: 'applicationState', observerId: number, callback: Asyn } export function off(type: 'applicationState', observerId: number): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError | null)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -252,10 +251,10 @@ export function getAppMemorySize(callback: AsyncCallback): void }); } export function getAppMemorySize(): Promise { - let p = new Promise((resolve:(data:number)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: number)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise((resolve:(data:number)=>void, reject:(err: BusinessError | null)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: number | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as number); } else { reject(err); } @@ -275,10 +274,10 @@ export function isRamConstrainedDevice(callback: AsyncCallback): void { }); } export function isRamConstrainedDevice(): Promise { - let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: boolean)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError | null)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as boolean); } else { reject(err); } @@ -298,10 +297,10 @@ export function isRunningInStabilityTest(callback: AsyncCallback): void }); } export function isRunningInStabilityTest(): Promise { - let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: boolean)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError | null)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as boolean); } else { reject(err); } @@ -322,9 +321,9 @@ export function killProcessesByBundleName(bundleName: string, callback: AsyncCal }); } export function killProcessesByBundleName(bundleName: string): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError | null)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -337,9 +336,9 @@ export function killProcessesByBundleName(bundleName: string): Promise { return p; } export function killProcessesByBundleName(bundleName: string, clearPageStack: boolean, appIndex?: number): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError | null)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -360,9 +359,9 @@ export function killProcessWithAccount(bundleName: string, accountId: number, ca }); } export function killProcessWithAccount(bundleName: string, accountId: number): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -379,9 +378,9 @@ export native function nativeKillProcessWithAccount(callback: AsyncCallbackWrapp export function killProcessWithAccount(bundleName: string, accountId: number, clearPageStack: boolean, appIndex?: number): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -402,10 +401,10 @@ export function getProcessMemoryByPid(pid: number, callback: AsyncCallback { - let p = new Promise((resolve:(data:number)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: number)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise((resolve:(data:number)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: number | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as number); } else { reject(err); } @@ -421,10 +420,10 @@ export native function nativeGetRunningProcessInformationByBundleType(bundleType callback: AsyncCallbackWrapper>) : void; export function getRunningProcessInformationByBundleType(bundleType: bundleManager.BundleType): Promise> { - let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError, data: Array)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as Array); } else { reject(err); } @@ -444,10 +443,10 @@ export function isSharedBundleRunning(bundleName: string, versionCode: number, c }); } export function isSharedBundleRunning(bundleName: string, versionCode: number): Promise { - let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: boolean)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as boolean); } else { reject(err); } @@ -461,10 +460,10 @@ export function isSharedBundleRunning(bundleName: string, versionCode: number): export native function nativeGetSupportedProcessCachePids(bundleName: string, callback: AsyncCallbackWrapper>) : void; export function getSupportedProcessCachePids(bundleName: string): Promise> { - let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError, data: Array)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as Array); } else { reject(err); } @@ -478,9 +477,9 @@ export function getSupportedProcessCachePids(bundleName: string): Promise, callback: AsyncCallbackWrapper) : void; export function killProcessesInBatch(pids: Array) : Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -495,10 +494,10 @@ export function killProcessesInBatch(pids: Array) : Promise { export native function nativeIsAppRunning(callback: AsyncCallbackWrapper, bundleName: string, appCloneIndex?: number) : void; export function isAppRunning(bundleName: string, appCloneIndex?: number): Promise { - let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: boolean)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise((resolve:(data:boolean)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as boolean); } else { reject(err); } @@ -513,9 +512,9 @@ export function isAppRunning(bundleName: string, appCloneIndex?: number): Promis export native function nativeSetKeepAliveForBundle(bundleName: string, userId: number, enable: boolean, callback: AsyncCallbackWrapper) : void; export function setKeepAliveForBundle(bundleName: string, userId: number, enable: boolean): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -531,10 +530,10 @@ export function setKeepAliveForBundle(bundleName: string, userId: number, enable export native function nativeGetKeepAliveBundles(callback: AsyncCallbackWrapper>, type: KeepAliveAppType, userId?: number) : void; export function getKeepAliveBundles(type: KeepAliveAppType, userId?: number): Promise> { - let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError, data: Array)=>{ - if (err.code == 0) { - resolve(data); + let p = new Promise>((resolve:(data:Array)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, data: Array | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as Array); } else { reject(err); } diff --git a/frameworks/ets/ets/@ohos.app.ability.application.ets b/frameworks/ets/ets/@ohos.app.ability.application.ets index f32197999a7d6956bbda34864750b4178633358d..63038dbf38a35f3e29c878e301c3eda0d0e1847b 100644 --- a/frameworks/ets/ets/@ohos.app.ability.application.ets +++ b/frameworks/ets/ets/@ohos.app.ability.application.ets @@ -30,10 +30,10 @@ export default namespace application { export function createModuleContext(context: Context, moduleName: string): Promise { let p = - new Promise((resolve: (data: Context) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: Context) => { - if (err.code == 0) { - resolve(data); + new Promise((resolve: (data: Context) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: Context | undefined) => { + if (err == null || err.code == 0) { + resolve(data as Context); } else { reject(err); } @@ -47,10 +47,10 @@ export default namespace application { export function createModuleContext(context: Context, bundleName: string, moduleName: string): Promise { let p = - new Promise((resolve: (data: Context) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: Context) => { - if (err.code == 0) { - resolve(data); + new Promise((resolve: (data: Context) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: Context | undefined) => { + if (err == null || err.code == 0) { + resolve(data as Context); } else { reject(err); } @@ -64,10 +64,10 @@ export default namespace application { export function createBundleContext(context: Context, bundleName: string): Promise { let p = - new Promise((resolve: (data: Context) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: Context) => { - if (err.code == 0) { - resolve(data); + new Promise((resolve: (data: Context) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: Context | undefined) => { + if (err == null || err.code == 0) { + resolve(data as Context); } else { reject(err); } diff --git a/frameworks/ets/ets/@ohos.app.ability.insightIntentDriver.ets b/frameworks/ets/ets/@ohos.app.ability.insightIntentDriver.ets index 2d897c008b8d682e2d91feb2a2c7348d5163d08c..0f9362e7e4ab85e34024d2de98beea593b643dd9 100644 --- a/frameworks/ets/ets/@ohos.app.ability.insightIntentDriver.ets +++ b/frameworks/ets/ets/@ohos.app.ability.insightIntentDriver.ets @@ -49,11 +49,11 @@ export default namespace insightIntentDriver { export function execute(param: ExecuteParam): Promise { let pPromise = new Promise(( resolve: (data: insightIntent.ExecuteResult) => void, - reject: (error: BusinessError) => void) => { + reject: (err: BusinessError) => void) => { let pCallback = new AsyncCallbackWrapper(( - err: BusinessError, data: insightIntent.ExecuteResult) => { - if (err.code == 0) { - resolve(data); + err: BusinessError | null, data: insightIntent.ExecuteResult | undefined) => { + if (err == null || err.code == 0) { + resolve(data as insightIntent.ExecuteResult); } else { reject(err); } diff --git a/frameworks/ets/ets/@ohos.app.ability.wantAgent.ets b/frameworks/ets/ets/@ohos.app.ability.wantAgent.ets index dc084c94b9ad24b73d0631eeb405cdcc87eccb16..45ca57ebc0ca61327664043c1097403817b36e83 100644 --- a/frameworks/ets/ets/@ohos.app.ability.wantAgent.ets +++ b/frameworks/ets/ets/@ohos.app.ability.wantAgent.ets @@ -37,10 +37,10 @@ namespace wantAgent { }); } export function getBundleName(agent: WantAgent): Promise { - return new Promise((resolve: (data:string)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: string)=>{ - if (err.code == 0) { - resolve(data); + return new Promise((resolve: (data:string)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: string | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as string); } else { reject(err); } @@ -57,10 +57,10 @@ namespace wantAgent { }); } export function getUid(agent: WantAgent): Promise { - return new Promise((resolve: (data:number)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: number)=>{ - if (err.code == 0) { - resolve(data); + return new Promise((resolve: (data:number)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: number | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as number); } else { reject(err); } @@ -77,10 +77,10 @@ namespace wantAgent { }); } export function getWant(agent: WantAgent): Promise { - return new Promise((resolve: (data:Want)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: Want)=>{ - if (err.code == 0) { - resolve(data); + return new Promise((resolve: (data:Want)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: Want | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as Want); } else { reject(err); } @@ -97,9 +97,9 @@ namespace wantAgent { }); } export function cancel(agent: WantAgent): Promise { - return new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + return new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null)=>{ + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -127,10 +127,10 @@ namespace wantAgent { }); } export function equal(agent: WantAgent, otherAgent: WantAgent): Promise { - return new Promise((resolve: (data:boolean)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: boolean)=>{ - if (err.code == 0) { - resolve(data); + return new Promise((resolve: (data:boolean)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: boolean | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as boolean); } else { reject(err); } @@ -147,10 +147,10 @@ namespace wantAgent { }); } export function getWantAgent(info: WantAgentInfo): Promise { - return new Promise((resolve: (data:WantAgent)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: WantAgent)=>{ - if (err.code == 0) { - resolve(data); + return new Promise((resolve: (data:WantAgent)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: WantAgent | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as WantAgent); } else { reject(err); } @@ -167,10 +167,10 @@ namespace wantAgent { }); } export function getOperationType(agent: WantAgent): Promise { - return new Promise((resolve: (data:number)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: number)=>{ - if (err.code == 0) { - resolve(data); + return new Promise((resolve: (data:number)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: number | undefined)=>{ + if (err == null || err.code == 0) { + resolve(data as number); } else { reject(err); } diff --git a/frameworks/ets/ani/uri_permission_manager/ets/@ohos.application.uriPermissionManager.ets b/frameworks/ets/ets/@ohos.application.uriPermissionManager.ets similarity index 79% rename from frameworks/ets/ani/uri_permission_manager/ets/@ohos.application.uriPermissionManager.ets rename to frameworks/ets/ets/@ohos.application.uriPermissionManager.ets index c586a2cca3900d702063c47e1a321be6b1c72e6f..403a0c969ef49e2d4cc6bca40fd4dfa262254661 100644 --- a/frameworks/ets/ani/uri_permission_manager/ets/@ohos.application.uriPermissionManager.ets +++ b/frameworks/ets/ets/@ohos.application.uriPermissionManager.ets @@ -15,18 +15,7 @@ import wantConstant from '@ohos.app.ability.wantConstant'; import { BusinessError, AsyncCallback } from '@ohos.base'; - -export class AsyncCallbackWrapper { - myFun_:AsyncCallback = (err: BusinessError, data: T) => {} - - constructor(myFun:AsyncCallback){ - this.myFun_ = myFun; - } - - invoke(err: BusinessError, data: T) : void { - this.myFun_(err, data); - } -} +import AsyncCallbackWrapper from './utils/AbilityUtils'; export default namespace uriPermissionManager { loadLibrary("uri_permission_manager_ani_kit.z"); @@ -37,10 +26,14 @@ export default namespace uriPermissionManager { callback: AsyncCallbackWrapper): void; export function grantUriPermission(uri: string, flag: wantConstant.Flags, targetBundleName: string): Promise { - let p:Promise = new Promise((resolve: (data: number)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: number)=>{ - if (err.code == 0) { - resolve(data); + let p:Promise = new Promise((resolve: (data: number)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: number | undefined)=>{ + if (err === null || err.code === 0) { + if (data === undefined) { + resolve(-1); + } else { + resolve(data); + } } else { reject(err); } @@ -54,9 +47,9 @@ export default namespace uriPermissionManager { export function grantUriPermission(uri: string, flag: wantConstant.Flags, targetBundleName: string, appCloneIndex: number): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: number)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: number | undefined)=>{ + if (err === null || err.code === 0) { resolve(undefined); } else { reject(err); @@ -79,10 +72,14 @@ export default namespace uriPermissionManager { } export function revokeUriPermission(uri: string, targetBundleName: string): Promise { - let p:Promise = new Promise((resolve: (data: number)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: number)=>{ - if (err.code == 0) { - resolve(data); + let p:Promise = new Promise((resolve: (data: number)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: number | undefined)=>{ + if (err === null || err.code === 0) { + if (data === undefined) { + resolve(-1); + } else { + resolve(data); + } } else { reject(err); } @@ -95,9 +92,9 @@ export default namespace uriPermissionManager { } export function revokeUriPermission(uri: string, targetBundleName: string, appCloneIndex: number): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: number)=>{ - if (err.code == 0) { + let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: number | undefined)=>{ + if (err === null || err.code === 0) { resolve(undefined); } else { reject(err); diff --git a/frameworks/ets/ets/BUILD.gn b/frameworks/ets/ets/BUILD.gn index e692229ae8e6afface32d379d3c467c820e8081c..86ebcaa825a48ed27783ce75deeddbf997302d20 100644 --- a/frameworks/ets/ets/BUILD.gn +++ b/frameworks/ets/ets/BUILD.gn @@ -916,6 +916,26 @@ ohos_prebuilt_etc("ability_runtime_AbilityRunningInfo_abc_etc") { deps = [ ":ability_runtime_AbilityRunningInfo_abc" ] } +generate_static_abc("uri_permission_manager_abc") { + base_url = "./" + + files = [ "./@ohos.application.uriPermissionManager.ets" ] + + dst_file = "$target_out_dir/uri_permission_manager.abc" + out_puts = [ "$target_out_dir/uri_permission_manager.abc" ] + + is_boot_abc = "True" + device_dst_file = "/system/framework/uri_permission_manager.abc" +} + +ohos_prebuilt_etc("uri_permission_manager_abc_etc") { + source = "$target_out_dir/uri_permission_manager.abc" + module_install_dir = "framework" + subsystem_name = "ability" + part_name = "ability_runtime" + deps = [ ":uri_permission_manager_abc" ] +} + generate_static_abc("ability_runtime_custom_data_abc") { base_url = "./" files = [ "./application/CustomData.ets" ] @@ -1004,6 +1024,7 @@ group("ets_packages") { ":ability_runtime_want_constant_abc_etc", ":service_extension_ability_abc_etc", ":ui_extension_ability_ani_etc", + ":uri_permission_manager_abc_etc", ":ability_runtime_OpenLink_Options_abc_etc", ":ability_runtime_AbilityRunningInfo_abc_etc", ] diff --git a/frameworks/ets/ets/application/AbilityDelegator.ets b/frameworks/ets/ets/application/AbilityDelegator.ets index 45c9f02e73c0f12a6a73c9663feec5a2abe892db..a7676468dcddd8df9546181a4b61d7dc09c7dc26 100644 --- a/frameworks/ets/ets/application/AbilityDelegator.ets +++ b/frameworks/ets/ets/application/AbilityDelegator.ets @@ -39,40 +39,51 @@ export interface AbilityDelegator { executeShellCommand(cmd: string, timeoutSecs?: number): Promise; addAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback): void; + addAbilityMonitor(monitor: AbilityMonitor): Promise; addAbilityMonitorSync(monitor: AbilityMonitor): void; removeAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback): void + removeAbilityMonitor(monitor: AbilityMonitor): Promise; removeAbilityMonitorSync(monitor: AbilityMonitor): void; waitAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallback): void; + waitAbilityMonitor(monitor: AbilityMonitor, timeout: number, callback: AsyncCallback): void; + waitAbilityMonitor(monitor: AbilityMonitor, timeout?: number): Promise; addAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback): void; + addAbilityStageMonitor(monitor: AbilityStageMonitor): Promise; addAbilityStageMonitorSync(monitor: AbilityStageMonitor): void; removeAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback): void; + removeAbilityStageMonitor(monitor: AbilityStageMonitor): Promise; removeAbilityStageMonitorSync(monitor: AbilityStageMonitor): void; waitAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback): void; + waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout: number, callback: AsyncCallback): void; + waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout?: number): Promise; doAbilityForeground(ability: UIAbility, callback: AsyncCallback): void; + doAbilityForeground(ability: UIAbility): Promise; doAbilityBackground(ability: UIAbility, callback: AsyncCallback): void; + doAbilityBackground(ability: UIAbility): Promise; print(msg: string, callback: AsyncCallback): void; + print(msg: string): Promise; getAbilityState(ability: UIAbility): number; @@ -80,9 +91,11 @@ export interface AbilityDelegator { setMockList(mockList: Record): void; startAbility(want: Want, callback: AsyncCallback): void; + startAbility(want: Want): Promise; getCurrentTopAbility(callback: AsyncCallback); + getCurrentTopAbility(): Promise; } @@ -99,18 +112,23 @@ class AbilityDelegatorInner implements AbilityDelegator { callback: AsyncCallbackWrapper): void; public native nativeAddAbilityMonitor(monitor: AbilityMonitor, callback: AsyncCallbackWrapper): void; + public native addAbilityMonitorSync(monitor: AbilityMonitor): void; public native removeAbilityMonitorAsync(monitor: AbilityMonitor, callback: AsyncCallbackWrapper): void; + public native removeAbilityMonitorSync(monitor: AbilityMonitor): void; public native waitAbilityMonitorAsync(monitor: AbilityMonitor, timeout: number, callback: AsyncCallbackWrapper): void; public native addAbilityStageMonitorAsync(monitor: AbilityStageMonitor, callback: AsyncCallbackWrapper): void; + public native addAbilityStageMonitorSync(monitor: AbilityStageMonitor): void; - public native removeAbilityStageMonitorAsync(monitor: AbilityStageMonitor, callback: AsyncCallbackWrapper): void; + public native removeAbilityStageMonitorAsync(monitor: AbilityStageMonitor, + callback: AsyncCallbackWrapper): void; + public native removeAbilityStageMonitorSync(monitor: AbilityStageMonitor): void; public native waitAbilityStageMonitorAsync(monitor: AbilityStageMonitor, timeout: number, @@ -136,9 +154,9 @@ class AbilityDelegatorInner implements AbilityDelegator { } finishTest(msg: string, code: number): Promise { let p: Promise = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -166,14 +184,15 @@ class AbilityDelegatorInner implements AbilityDelegator { } executeShellCommand(cmd: string, timeoutSecs?: number): Promise { let p = new Promise((resolve: (data: ShellCmdResult) => void, - reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: ShellCmdResult) => { - if (err.code == 0) { - resolve(data); - } else { - reject(err); - } - }); + reject: (err: BusinessError) => void): void => { + let myCall = + new AsyncCallbackWrapper((err: BusinessError | null, data: ShellCmdResult | undefined) => { + if (err == null || err.code == 0) { + resolve(data as ShellCmdResult); + } else { + reject(err); + } + }); taskpool.execute((): void => { if (timeoutSecs == null) { this.nativeExecuteShellCommand(cmd, 0, myCall); @@ -193,9 +212,9 @@ class AbilityDelegatorInner implements AbilityDelegator { } addAbilityMonitor(monitor: AbilityMonitor): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -216,9 +235,9 @@ class AbilityDelegatorInner implements AbilityDelegator { } removeAbilityMonitor(monitor: AbilityMonitor): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -246,10 +265,10 @@ class AbilityDelegatorInner implements AbilityDelegator { } waitAbilityMonitor(monitor: AbilityMonitor, timeout?: number): Promise { let p = new Promise((resolve: (data: UIAbility) => void, - reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: UIAbility) => { - if (err.code == 0) { - resolve(data); + reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: UIAbility | undefined) => { + if (err == null || err.code == 0) { + resolve(data as UIAbility); } else { reject(err); } @@ -273,9 +292,9 @@ class AbilityDelegatorInner implements AbilityDelegator { } addAbilityStageMonitor(monitor: AbilityStageMonitor): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -296,9 +315,9 @@ class AbilityDelegatorInner implements AbilityDelegator { } removeAbilityStageMonitor(monitor: AbilityStageMonitor): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -311,14 +330,15 @@ class AbilityDelegatorInner implements AbilityDelegator { return p; } - waitAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback): void { + waitAbilityStageMonitor(monitor: AbilityStageMonitor, callback: AsyncCallback): void { let timeout = -1; let myCall = new AsyncCallbackWrapper(callback); taskpool.execute((): void => { this.waitAbilityStageMonitorAsync(monitor, timeout, myCall); }); } - waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout: number, callback: AsyncCallback): void { + waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout: number, + callback: AsyncCallback): void { let myCall = new AsyncCallbackWrapper(callback); taskpool.execute((): void => { this.waitAbilityStageMonitorAsync(monitor, timeout, myCall); @@ -326,14 +346,15 @@ class AbilityDelegatorInner implements AbilityDelegator { } waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout?: number): Promise { let p = new Promise((resolve: (data: AbilityStage) => void, - reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: AbilityStage) => { - if (err.code == 0) { - resolve(data); - } else { - reject(err); - } - }); + reject: (err: BusinessError) => void): void => { + let myCall = + new AsyncCallbackWrapper((err: BusinessError | null, data: AbilityStage | undefined) => { + if (err == null || err.code == 0) { + resolve(data as AbilityStage); + } else { + reject(err); + } + }); taskpool.execute((): void => { if (timeout == null) { this.waitAbilityStageMonitorAsync(monitor, -1, myCall); @@ -353,9 +374,9 @@ class AbilityDelegatorInner implements AbilityDelegator { } doAbilityForeground(ability: UIAbility): Promise { let p: Promise = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -376,9 +397,9 @@ class AbilityDelegatorInner implements AbilityDelegator { } doAbilityBackground(ability: UIAbility): Promise { let p: Promise = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -399,9 +420,9 @@ class AbilityDelegatorInner implements AbilityDelegator { } print(msg: string): Promise { let p: Promise = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -422,9 +443,9 @@ class AbilityDelegatorInner implements AbilityDelegator { } startAbility(want: Want): Promise { let p: Promise = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -454,20 +475,21 @@ class AbilityDelegatorInner implements AbilityDelegator { }); } getCurrentTopAbility(): Promise { - let p: Promise = new Promise((resolve: (v: UIAbility) => void, reject: (error: Error) => void) => { - console.log("getCurrentTopAbility promise1_01"); - let pPromise1 = taskpool.execute((): UIAbility => { - return this.nativeGetCurrentTopAbility(); - }); - pPromise1.then((e: NullishType) => { - console.log("getCurrentTopAbility promise1_04"); - let r: UIAbility = e as UIAbility; - resolve(r); - }).catch((err: Error): void => { - reject(err); - console.log("getCurrentTopAbility promise1 end"); + let p: Promise = + new Promise((resolve: (v: UIAbility) => void, reject: (error: Error) => void) => { + console.log("getCurrentTopAbility promise1_01"); + let pPromise1 = taskpool.execute((): UIAbility => { + return this.nativeGetCurrentTopAbility(); + }); + pPromise1.then((e: NullishType) => { + console.log("getCurrentTopAbility promise1_04"); + let r: UIAbility = e as UIAbility; + resolve(r); + }).catch((err: Error): void => { + reject(err); + console.log("getCurrentTopAbility promise1 end"); + }); }); - }); return p; } } diff --git a/frameworks/ets/ets/application/ApplicationContext.ets b/frameworks/ets/ets/application/ApplicationContext.ets index cdba8ab952af261866576c8c18455972a99dde0c..009175645d0bacb07d68bec6c9c6ff52367bd1f7 100644 --- a/frameworks/ets/ets/application/ApplicationContext.ets +++ b/frameworks/ets/ets/application/ApplicationContext.ets @@ -76,9 +76,9 @@ export default class ApplicationContext extends Context { off(type: 'environment', callbackId: number): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -93,9 +93,9 @@ export default class ApplicationContext extends Context { preloadUIExtensionAbility(want: Want): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -117,9 +117,9 @@ export default class ApplicationContext extends Context { killAllProcesses(): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -134,9 +134,9 @@ export default class ApplicationContext extends Context { killAllProcesses(clearPageStack: boolean): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -158,11 +158,11 @@ export default class ApplicationContext extends Context { getRunningProcessInformation(): Promise> { let p = new Promise>((resolve: (data: Array) => void, - reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper>((err: BusinessError, - data: Array) => { - if (err.code == 0) { - resolve(data); + reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper>((err: BusinessError | null, + data: Array | undefined) => { + if (err == null || err.code == 0) { + resolve(data as Array); } else { reject(err); } @@ -183,9 +183,9 @@ export default class ApplicationContext extends Context { clearUpApplicationData(): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); diff --git a/frameworks/ets/ets/application/Context.ets b/frameworks/ets/ets/application/Context.ets index 40dc82ee95beb89fde0926931f8e303dce941aaf..9dbfdfa18dcef83fa1a4131e3ac97f8ec422efb5 100644 --- a/frameworks/ets/ets/application/Context.ets +++ b/frameworks/ets/ets/application/Context.ets @@ -71,10 +71,10 @@ export class Context extends BaseContext { } getGroupDir(dataGroupID: string): Promise { - return new Promise((resolve: (data: string) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: string) => { - if (err.code == 0) { - resolve(data); + return new Promise((resolve: (data: string) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: string | undefined) => { + if (err == null || err.code == 0) { + resolve(data as string); } else { reject(err); } diff --git a/frameworks/ets/ets/application/ServiceExtensionContext.ets b/frameworks/ets/ets/application/ServiceExtensionContext.ets index e868ac50cdcc2aa8c081dd8f7b9efa9bbaf2253d..23ed2295fae7be9e5f60574f52ffaf1a248911eb 100644 --- a/frameworks/ets/ets/application/ServiceExtensionContext.ets +++ b/frameworks/ets/ets/application/ServiceExtensionContext.ets @@ -12,8 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { AbilityResult } from 'ability.abilityResult'; -import { ConnectOptions } from 'ability.connectOptions'; + import StartOptions from '@ohos.app.ability.StartOptions'; import Want from '@ohos.app.ability.Want'; import { AsyncCallback } from '@ohos.base'; @@ -24,13 +23,18 @@ import AsyncCallbackWrapper from '../utils/AbilityUtils'; export default class ServiceExtensionContext extends ExtensionContext { nativeServiceExtensionContext: long = 0; - native nativeTerminateSelfSync(callback:AsyncCallbackWrapper): void; + + native nativeTerminateSelfSync(callback: AsyncCallbackWrapper): void; + native nativeStartAbilitySync(want: Want, callback: AsyncCallbackWrapper): void; - native nativeStartAbilitySync(want: Want, options: StartOptions, callback:AsyncCallbackWrapper): void; + + native nativeStartAbilitySync(want: Want, options: StartOptions, callback: AsyncCallbackWrapper): void; + native nativeStartServiceExtensionAbilitySync(want: Want, callback: AsyncCallbackWrapper): void; + native nativeStopServiceExtensionAbility(want: Want, callback: AsyncCallbackWrapper): void; - terminateSelf(callback:AsyncCallback): void { + terminateSelf(callback: AsyncCallback): void { let myCall = new AsyncCallbackWrapper(callback); taskpool.execute((): void => { this.nativeTerminateSelfSync(myCall); @@ -38,9 +42,9 @@ export default class ServiceExtensionContext extends ExtensionContext { } terminateSelf(): Promise { - let p = new Promise((resolve: (data: undefined) => void, reject:(err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -68,9 +72,9 @@ export default class ServiceExtensionContext extends ExtensionContext { } startAbility(want: Want, options: StartOptions): Promise { - let p = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -89,11 +93,11 @@ export default class ServiceExtensionContext extends ExtensionContext { this.nativeStartServiceExtensionAbilitySync(want, myCall); }); } - + startServiceExtensionAbility(want: Want): Promise { - let p = new Promise((resolve: (data: undefined)=>void, reject:(err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -114,9 +118,9 @@ export default class ServiceExtensionContext extends ExtensionContext { } stopServiceExtensionAbility(want: Want): Promise { - return new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + return new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); diff --git a/frameworks/ets/ets/application/UIAbilityContext.ets b/frameworks/ets/ets/application/UIAbilityContext.ets index 6cd38d8892bff0933ad662fda2737a4c404fac74..a30b144b5522580d146212f2f7a803eb4b23aa4c 100644 --- a/frameworks/ets/ets/application/UIAbilityContext.ets +++ b/frameworks/ets/ets/application/UIAbilityContext.ets @@ -42,7 +42,9 @@ export default class UIAbilityContext extends Context { currentHapModuleInfo: HapModuleInfo; native constructor(); - constructor(config: Configuration, abilityInfo: AbilityInfo, windowStage: window.WindowStage, currentHapModuleInfo: HapModuleInfo) { + + constructor(config: Configuration, abilityInfo: AbilityInfo, windowStage: window.WindowStage, + currentHapModuleInfo: HapModuleInfo) { super(); this.config = config; this.abilityInfo = abilityInfo; @@ -60,20 +62,38 @@ export default class UIAbilityContext extends Context { } private native nativeStartAbilitySync(want: Want, callback: AsyncCallbackWrapper): void; - private native nativeStartAbilitySync(want: Want, options: StartOptions, callback:AsyncCallbackWrapper): void; - private native nativeStartAbilityForResult(want: Want, callback:AsyncCallbackWrapper): void; - private native nativeStartAbilityForResult(want: Want, startOptions: StartOptions, callback:AsyncCallbackWrapper): void; - private native nativeTerminateSelfSync(callback:AsyncCallbackWrapper): void; - private native nativeTerminateSelfWithResult(parameter: AbilityResult, callback:AsyncCallbackWrapper): void; - private native nativeReportDrawnCompletedSync(callback:AsyncCallbackWrapper): void; - private native nativeStartAbilityByTypeSync(type: string, wantParam: Record, startCallback: AbilityStartCallback): BusinessError; + + private native nativeStartAbilitySync(want: Want, options: StartOptions, callback: AsyncCallbackWrapper): void; + + private native nativeStartAbilityForResult(want: Want, callback: AsyncCallbackWrapper): void; + + private native nativeStartAbilityForResult(want: Want, startOptions: StartOptions, + callback: AsyncCallbackWrapper): void; + + private native nativeTerminateSelfSync(callback: AsyncCallbackWrapper): void; + + private native nativeTerminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallbackWrapper): void; + + private native nativeReportDrawnCompletedSync(callback: AsyncCallbackWrapper): void; + + private native nativeStartAbilityByTypeSync(type: string, wantParam: Record, + startCallback: AbilityStartCallback): BusinessError; + private native nativeStartServiceExtensionAbilitySync(want: Want, callback: AsyncCallbackWrapper): void; + private native nativeStartAbilityByCallSync(want: Want): Caller; - private native nativeOpenLinkSync(link: string, myCallback:AsyncCallbackWrapper, options?: OpenLinkOptions, callback?: AsyncCallbackWrapper): void; + + private native nativeOpenLinkSync(link: string, myCallback: AsyncCallbackWrapper, options?: OpenLinkOptions, + callback?: AsyncCallbackWrapper): void; + private native nativeRestoreWindowStage(localStorage: LocalStorage): boolean; + private native nativeIsTerminating(): boolean; + private native nativeMoveAbilityToBackground(callback: AsyncCallbackWrapper): void; + private native nativeRequestModalUIExtension(pickerWant: Want, callback: AsyncCallbackWrapper): void; + startAbility(want: Want, callback: AsyncCallback): void { let myCall = new AsyncCallbackWrapper(callback); taskpool.execute((): void => { @@ -89,25 +109,26 @@ export default class UIAbilityContext extends Context { } startAbility(want: Want): Promise { - let p:Promise = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { - resolve(undefined); - } else { - reject(err); - } + let p: Promise = + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { + resolve(undefined); + } else { + reject(err); + } + }); + taskpool.execute((): void => { + this.nativeStartAbilitySync(want, myCall); + }); }); - taskpool.execute((): void => { - this.nativeStartAbilitySync(want, myCall); - }); - }); return p; } startAbility(want: Want, options: StartOptions): Promise { - let p = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -134,15 +155,17 @@ export default class UIAbilityContext extends Context { }); } - startAbilityForResult(want: Want): Promise{ - let p = new Promise((resolve: (data: AbilityResult)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: AbilityResult)=>{ - if (err.code == 0) { - resolve(data); - } else { - reject(err); - } - }); + startAbilityForResult(want: Want): Promise { + let p = new Promise((resolve: (data: AbilityResult) => void, + reject: (err: BusinessError) => void): void => { + let myCall = + new AsyncCallbackWrapper((err: BusinessError | null, data: AbilityResult | undefined) => { + if (err == null || err.code == 0) { + resolve(data as AbilityResult); + } else { + reject(err); + } + }); taskpool.execute((): void => { this.nativeStartAbilityForResult(want, myCall); }); @@ -151,14 +174,16 @@ export default class UIAbilityContext extends Context { } startAbilityForResult(want: Want, startOptions: StartOptions): Promise { - let p = new Promise((resolve: (data: AbilityResult)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError, data: AbilityResult)=>{ - if (err.code == 0) { - resolve(data); - } else { - reject(err); - } - }); + let p = new Promise((resolve: (data: AbilityResult) => void, + reject: (err: BusinessError) => void): void => { + let myCall = + new AsyncCallbackWrapper((err: BusinessError | null, data: AbilityResult | undefined) => { + if (err == null || err.code == 0) { + resolve(data as AbilityResult); + } else { + reject(err); + } + }); taskpool.execute((): void => { this.nativeStartAbilityForResult(want, startOptions, myCall); }); @@ -166,7 +191,7 @@ export default class UIAbilityContext extends Context { return p; } - terminateSelf(callback:AsyncCallback): void { + terminateSelf(callback: AsyncCallback): void { let myCall = new AsyncCallbackWrapper(callback); taskpool.execute((): void => { this.nativeTerminateSelfSync(myCall); @@ -174,9 +199,9 @@ export default class UIAbilityContext extends Context { } terminateSelf(): Promise { - let p = new Promise((resolve: (data:undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -196,10 +221,10 @@ export default class UIAbilityContext extends Context { }); } - terminateSelfWithResult(parameter: AbilityResult): Promise{ - let p = new Promise((resolve: (data: undefined)=>void, reject:(err: BusinessError)=>void):void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError)=>{ - if (err.code == 0) { + terminateSelfWithResult(parameter: AbilityResult): Promise { + let p = new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -212,32 +237,34 @@ export default class UIAbilityContext extends Context { return p; } - reportDrawnCompleted(callback:AsyncCallback): void { + reportDrawnCompleted(callback: AsyncCallback): void { let myCall = new AsyncCallbackWrapper(callback); taskpool.execute((): void => { this.nativeReportDrawnCompletedSync(myCall); }); } - startAbilityByType(type: string, wantParam: Record, startCallback: AbilityStartCallback, callback: AsyncCallback): void { - let p1 = taskpool.execute((): BusinessError => { + startAbilityByType(type: string, wantParam: Record, startCallback: AbilityStartCallback, + callback: AsyncCallback): void { + let p1 = taskpool.execute((): BusinessError => { return this.nativeStartAbilityByTypeSync(type, wantParam, startCallback); }); p1.then((e: NullishType) => { - let retError = e as BusinessError; + let retError = e as BusinessError; callback(retError, undefined); - },(err: Error): void => { + }, (err: Error): void => { callback(err as BusinessError, undefined); }); } - startAbilityByType(type: string, wantParam: Record, startCallback: AbilityStartCallback): Promise { - let p = new Promise((resolve: (v: undefined) => void, reject: (error: BusinessError) => void): void => { - let p1 = taskpool.execute((): BusinessError => { + startAbilityByType(type: string, wantParam: Record, + startCallback: AbilityStartCallback): Promise { + let p = new Promise((resolve: (v: undefined) => void, reject: (error: BusinessError) => void): void => { + let p1 = taskpool.execute((): BusinessError => { return this.nativeStartAbilityByTypeSync(type, wantParam, startCallback); }); p1.then((e: NullishType) => { - let retError = e as BusinessError; + let retError = e as BusinessError; if (retError.code === 0) { resolve(undefined); } else { @@ -256,9 +283,9 @@ export default class UIAbilityContext extends Context { } startServiceExtensionAbility(want: Want): Promise { - let p = new Promise((resolve: (data: undefined)=>void, reject:(err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -276,7 +303,7 @@ export default class UIAbilityContext extends Context { } openLink(link: string, options?: OpenLinkOptions, callback?: AsyncCallback): Promise { - return new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + return new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { let finalOptions: OpenLinkOptions | undefined = undefined; if (options) { finalOptions = options; @@ -285,8 +312,8 @@ export default class UIAbilityContext extends Context { if (callback) { callParam = new AsyncCallbackWrapper(callback); } - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -307,9 +334,9 @@ export default class UIAbilityContext extends Context { } moveAbilityToBackground(): Promise { - return new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let syncCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + return new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let syncCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -329,9 +356,9 @@ export default class UIAbilityContext extends Context { } requestModalUIExtension(pickerWant: Want): Promise { - return new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let syncCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + return new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let syncCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); diff --git a/frameworks/ets/ets/application/UIExtensionContext.ets b/frameworks/ets/ets/application/UIExtensionContext.ets index 565278a9ddb11e9a304a76a3e664b5e85e206e42..94265e8c8c0b62414a1a57fb1d2d8ca36b34647f 100644 --- a/frameworks/ets/ets/application/UIExtensionContext.ets +++ b/frameworks/ets/ets/application/UIExtensionContext.ets @@ -36,9 +36,9 @@ export default class UIExtensionContext extends ExtensionContext { } terminateSelf(): Promise { - let p = new Promise((resolve: (data: undefined) => void, reject:(err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined) => void, reject:(err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -59,9 +59,9 @@ export default class UIExtensionContext extends ExtensionContext { } terminateSelfWithResult(parameter: AbilityResult): Promise { - let p = new Promise((resolve: (data: undefined)=>void, reject:(err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + let p = new Promise((resolve: (data: undefined)=>void, reject:(err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); @@ -90,9 +90,9 @@ export default class UIExtensionContext extends ExtensionContext { startAbility(want: Want, options: StartOptions): Promise { let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { + new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { resolve(undefined); } else { reject(err); diff --git a/frameworks/ets/ets/utils/AbilityUtils.ets b/frameworks/ets/ets/utils/AbilityUtils.ets index b12da5e18c399dfc1d833148b18a73b210c9ac9b..cf3f297f0c45870b5bd17df15be837c9c422a518 100644 --- a/frameworks/ets/ets/utils/AbilityUtils.ets +++ b/frameworks/ets/ets/utils/AbilityUtils.ets @@ -20,14 +20,14 @@ const DOMAIN_ID = 0xD001300; const TAG = 'AbilityUtils'; const LEVEL = 100; -export default class AsyncCallbackWrapper { - private myFun_:AsyncCallback = (err: BusinessError, data: T) => {} +export default class AsyncCallbackWrapper { + private myFun_: AsyncCallback = (err: BusinessError | null, data: T | undefined) => {} - constructor(myFun:AsyncCallback){ + constructor(myFun: AsyncCallback) { this.myFun_ = myFun; } - invoke(err: BusinessError, data: T) : void { + invoke(err: BusinessError | null, data: T | undefined): void { this.myFun_(err, data); } }