From 6441ff4319689712f8265510ec1f247d83d35d6e Mon Sep 17 00:00:00 2001 From: zhangzezhong Date: Fri, 1 Aug 2025 17:28:04 +0800 Subject: [PATCH] upd startability Signed-off-by: zhangzezhong --- .../application/ServiceExtensionContext.ets | 35 ++++---- .../ets/ets/application/UIAbilityContext.ets | 88 +++++++------------ .../ets/application/UIExtensionContext.ets | 41 ++++----- 3 files changed, 66 insertions(+), 98 deletions(-) diff --git a/frameworks/ets/ets/application/ServiceExtensionContext.ets b/frameworks/ets/ets/application/ServiceExtensionContext.ets index 569ada6a428..2bb11c2f1f5 100644 --- a/frameworks/ets/ets/application/ServiceExtensionContext.ets +++ b/frameworks/ets/ets/application/ServiceExtensionContext.ets @@ -101,26 +101,25 @@ export default class ServiceExtensionContext extends ExtensionContext { }); } - startAbility(want: Want, options: StartOptions, callback: AsyncCallback): void { - let myCall = new AsyncCallbackWrapper(callback); - taskpool.execute((): void => { - this.nativeStartAbility(want, options, myCall); - }); - } - - startAbility(want: Want, options: StartOptions): Promise { + startAbility(want: Want, options?: StartOptions): Promise { 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); - } - }); - taskpool.execute((): void => { - this.nativeStartAbility(want, options, myCall); - }); + let myCall = new AsyncCallbackWrapper((err: BusinessError | null) => { + if (err == null || err.code == 0) { + resolve(undefined); + } else { + reject(err); + } + }); + taskpool.execute((): void => { + if (options == null) { + this.nativeStartAbility(want, myCall); + } else { + this.nativeStartAbility(want, options as StartOptions, myCall); + } + }).catch((err: Error): void => { + reject(err as BusinessError); }); + }); } startServiceExtensionAbility(want: Want, callback: AsyncCallback): void { diff --git a/frameworks/ets/ets/application/UIAbilityContext.ets b/frameworks/ets/ets/application/UIAbilityContext.ets index fce9b28feff..d4798301488 100644 --- a/frameworks/ets/ets/application/UIAbilityContext.ets +++ b/frameworks/ets/ets/application/UIAbilityContext.ets @@ -153,38 +153,25 @@ 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 | null) => { - if (err == null || err.code == 0) { - resolve(undefined); - } else { - reject(err); - } - }); - taskpool.execute((): void => { - this.nativeStartAbilitySync(want, myCall); - }); + startAbility(want: Want, options?: StartOptions): Promise { + 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); + } }); - 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 | null) => { - if (err == null || err.code == 0) { - resolve(undefined); - } else { - reject(err); - } - }); - taskpool.execute((): void => { - this.nativeStartAbilitySync(want, options, myCall); - }); + taskpool.execute((): void => { + if (options == null) { + this.nativeStartAbilitySync(want, myCall); + } else { + this.nativeStartAbilitySync(want, options as StartOptions, myCall); + } + }).catch((err: Error): void => { + reject(err as BusinessError); }); - return p; + }); } startAbilityForResult(want: Want, callback: AsyncCallback): void { @@ -201,38 +188,27 @@ export default class UIAbilityContext extends Context { }); } - startAbilityForResult(want: Want): Promise { - let p = new Promise((resolve: (data: AbilityResult) => void, + startAbilityForResult(want: Want, startOptions?: StartOptions): Promise { + return 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); - } - }); + 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); - }); - }); - return p; - } - - 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 | null, data: AbilityResult | undefined) => { - if (err == null || err.code == 0) { - resolve(data as AbilityResult); + if (startOptions == null) { + this.nativeStartAbilityForResult(want, myCall); } else { - reject(err); + this.nativeStartAbilityForResult(want, startOptions as StartOptions, myCall); } - }); - taskpool.execute((): void => { - this.nativeStartAbilityForResult(want, startOptions, myCall); + }).catch((err: Error): void => { + reject(err as BusinessError); }); }); - return p; } startAbilityByCall(want: Want): Promise { diff --git a/frameworks/ets/ets/application/UIExtensionContext.ets b/frameworks/ets/ets/application/UIExtensionContext.ets index b7fb7e061ed..fc684e9764f 100644 --- a/frameworks/ets/ets/application/UIExtensionContext.ets +++ b/frameworks/ets/ets/application/UIExtensionContext.ets @@ -125,7 +125,7 @@ export default class UIExtensionContext extends ExtensionContext { }); } - startAbility(want: Want, options: StartOptions): Promise { + startAbility(want: Want, options?: StartOptions): Promise { 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) { @@ -135,7 +135,13 @@ export default class UIExtensionContext extends ExtensionContext { } }); taskpool.execute((): void => { - this.nativeStartAbility(want, options, myCall); + if (options == null) { + this.nativeStartAbility(want, myCall); + } else { + this.nativeStartAbility(want, options as StartOptions, myCall); + } + }).catch((err: Error): void => { + reject(err as BusinessError); }); }); } @@ -180,26 +186,8 @@ export default class UIExtensionContext extends ExtensionContext { }); } - 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); - }); - }); - return p; - } - - startAbilityForResult(want: Want, startOptions: StartOptions): Promise { - let p = new Promise((resolve: (data: AbilityResult) => void, + startAbilityForResult(want: Want, startOptions?: StartOptions): Promise { + return new Promise((resolve: (data: AbilityResult) => void, reject: (err: BusinessError) => void): void => { let myCall = new AsyncCallbackWrapper((err: BusinessError | null, data: AbilityResult | undefined) => { @@ -210,10 +198,15 @@ export default class UIExtensionContext extends ExtensionContext { } }); taskpool.execute((): void => { - this.nativeStartAbilityForResult(want, startOptions, myCall); + if (startOptions == null) { + this.nativeStartAbilityForResult(want, myCall); + } else { + this.nativeStartAbilityForResult(want, startOptions as StartOptions, myCall); + } + }).catch((err: Error): void => { + reject(err as BusinessError); }); }); - return p; } reportDrawnCompleted(callback: AsyncCallback): void { -- Gitee