• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/**
17 * @file
18 * @kit AbilityKit
19 */
20
21import { AsyncCallback, BusinessError } from '@ohos.base';
22import { OverlayModuleInfo as _OverlayModuleInfo } from 'bundleManager.OverlayModuleInfo';
23
24export default namespace overlay {
25
26  loadLibrary("ani_overlay.z");
27
28  export native function setOverlayEnabledNative(moduleName: string, isEnabled: boolean): void;
29  export native function setOverlayEnabledByBundleNameNative(bundleName: string, moduleName: string, isEnabled: boolean): void;
30  export native function getOverlayModuleInfoNative(moduleName: string): OverlayModuleInfo;
31  export native function getTargetOverlayModuleInfosNative(targetModuleName: string): Array<OverlayModuleInfo>;
32  export native function getOverlayModuleInfoByBundleNameNative(bundleName: string, moduleName: string): Array<OverlayModuleInfo>;
33  export native function getTargetOverlayModuleInfosByBundleNameNative(targetBundleName: string, moduleName: string): Array<OverlayModuleInfo>;
34
35  function setOverlayEnabled(moduleName: string, isEnabled: boolean, callback: AsyncCallback<void>): void {
36    let cb = (): void => {
37      return overlay.setOverlayEnabledNative(moduleName, isEnabled);
38    };
39    let p1 = taskpool.execute(cb);
40    p1.then(() => {
41      callback(null, undefined);
42    }, (err: Error): void => {
43      callback(err as BusinessError, undefined);
44    });
45  }
46
47  function setOverlayEnabled(moduleName: string, isEnabled: boolean): Promise<void> {
48    let p = new Promise<void>((resolve: (v: undefined) => void, reject: (error: BusinessError) => void) : void => {
49      let cb = (): void => {
50        return overlay.setOverlayEnabledNative(moduleName, isEnabled);
51      };
52      let p1 = taskpool.execute(cb);
53      p1.then((): void => {
54        resolve(undefined);
55      }, (err: Error): void => {
56        reject(err as BusinessError);
57      });
58    }
59    );
60    return p;
61  }
62
63  function setOverlayEnabledByBundleName(bundleName: string, moduleName: string, isEnabled: boolean, callback: AsyncCallback<void>): void {
64    let cb = (): void => {
65      return overlay.setOverlayEnabledByBundleNameNative(bundleName, moduleName, isEnabled);
66    };
67    let p1 = taskpool.execute(cb);
68    p1.then(() => {
69      callback(null, undefined);
70    }, (err: Error): void => {
71      callback(err as BusinessError, undefined);
72    });
73  }
74
75  function setOverlayEnabledByBundleName(bundleName: string, moduleName: string, isEnabled: boolean): Promise<void> {
76    let p = new Promise<void>((resolve: (v: undefined) => void, reject: (error: BusinessError) => void) : void => {
77      let cb = (): void => {
78        return overlay.setOverlayEnabledByBundleNameNative(bundleName, moduleName, isEnabled);
79      };
80      let p1 = taskpool.execute(cb);
81      p1.then((): void => {
82        resolve(undefined);
83      }, (err: Error): void => {
84        reject(err as BusinessError);
85      });
86    }
87    );
88    return p;
89  }
90
91  function getOverlayModuleInfo(moduleName: string, callback: AsyncCallback<OverlayModuleInfo>): void {
92    let cb = (): OverlayModuleInfo => {
93      return overlay.getOverlayModuleInfoNative(moduleName);
94    };
95    let p1 = taskpool.execute(cb);
96    p1.then((e: NullishType) => {
97      let result: OverlayModuleInfo = e as OverlayModuleInfo;
98      callback(null, result);
99    }, (err: Error): void => {
100      callback(err as BusinessError, undefined);
101    });
102  }
103
104  function getOverlayModuleInfo(moduleName: string): Promise<OverlayModuleInfo> {
105    let p = new Promise<OverlayModuleInfo>((resolve: (overlayModuleInfo: OverlayModuleInfo) => void, reject: (error: BusinessError) => void) => {
106      let cb = (): OverlayModuleInfo => {
107        return overlay.getOverlayModuleInfoNative(moduleName);
108      };
109      let p1 = taskpool.execute(cb);
110      p1.then((e: NullishType) => {
111        let result: OverlayModuleInfo = e as OverlayModuleInfo;
112        resolve(result);
113      }, (err: Error): void => {
114        reject(err as BusinessError);
115      });
116    });
117    return p;
118  }
119
120  function getTargetOverlayModuleInfos(targetModuleName: string, callback: AsyncCallback<Array<OverlayModuleInfo>>): void {
121    let cb = (): (Array<OverlayModuleInfo>) => {
122      return overlay.getTargetOverlayModuleInfosNative(targetModuleName);
123    };
124    let p1 = taskpool.execute(cb);
125    p1.then((e: NullishType) => {
126      let resultArray: Array<OverlayModuleInfo> = e as Array<OverlayModuleInfo>;
127      callback(null, resultArray);
128    }, (err: Error): void => {
129      callback(err as BusinessError, undefined);
130    });
131  }
132
133  function getTargetOverlayModuleInfos(targetModuleName: string): Promise<Array<OverlayModuleInfo>> {
134    let p = new Promise<Array<OverlayModuleInfo>>((resolve: (arrOverlayModuleInfo: Array<OverlayModuleInfo>) => void, reject: (error: BusinessError) => void) => {
135      let cb = (): (Array<OverlayModuleInfo>) => {
136        return overlay.getTargetOverlayModuleInfosNative(targetModuleName);
137      };
138      let p1 = taskpool.execute(cb);
139      p1.then((e: NullishType) => {
140        let resultArray: Array<OverlayModuleInfo> = e as Array<OverlayModuleInfo>;
141        resolve(resultArray);
142      }, (err: Error): void => {
143        reject(err as BusinessError);
144      });
145    });
146    return p;
147  }
148
149  function getOverlayModuleInfoByBundleName(bundleName: string, callback: AsyncCallback<Array<OverlayModuleInfo>>): void {
150    let cb = (): (Array<OverlayModuleInfo>) => {
151      return overlay.getOverlayModuleInfoByBundleNameNative(bundleName, '');
152    };
153    let p1 = taskpool.execute(cb);
154    p1.then((e: NullishType) => {
155      let resultArray: Array<OverlayModuleInfo> = e as Array<OverlayModuleInfo>;
156      callback(null, resultArray);
157    }, (err: Error): void => {
158      callback(err as BusinessError, undefined);
159    });
160  }
161
162  function getOverlayModuleInfoByBundleName(bundleName: string, moduleName: string, callback: AsyncCallback<Array<OverlayModuleInfo>>): void {
163    let cb = (): (Array<OverlayModuleInfo>) => {
164      return overlay.getOverlayModuleInfoByBundleNameNative(bundleName, moduleName);
165    };
166    let p1 = taskpool.execute(cb);
167    p1.then((e: NullishType) => {
168      let resultArray: Array<OverlayModuleInfo> = e as Array<OverlayModuleInfo>;
169      callback(null, resultArray);
170    }, (err: Error): void => {
171      callback(err as BusinessError, undefined);
172    });
173  }
174
175  function getOverlayModuleInfoByBundleName(bundleName: string, moduleName?: string): Promise<Array<OverlayModuleInfo>> {
176    let moduleNameInfo: string = moduleName ?? '';
177    let p = new Promise<Array<OverlayModuleInfo>>((resolve: (arrOverlayModuleInfo: Array<OverlayModuleInfo>) => void, reject: (error: BusinessError) => void) => {
178      let cb = (): (Array<OverlayModuleInfo>) => {
179        return overlay.getOverlayModuleInfoByBundleNameNative(bundleName, moduleNameInfo);
180      };
181      let p1 = taskpool.execute(cb);
182      p1.then((e: NullishType) => {
183        let resultArray: Array<OverlayModuleInfo> = e as Array<OverlayModuleInfo>;
184        resolve(resultArray);
185      }, (err: Error): void => {
186        reject(err as BusinessError);
187      });
188    });
189    return p;
190  }
191
192  function getTargetOverlayModuleInfosByBundleName(targetBundleName: string, callback: AsyncCallback<Array<OverlayModuleInfo>>): void {
193    let cb = (): (Array<OverlayModuleInfo>) => {
194      return overlay.getTargetOverlayModuleInfosByBundleNameNative(targetBundleName, '');
195    };
196    let p1 = taskpool.execute(cb);
197    p1.then((e: NullishType) => {
198      let resultArray: Array<OverlayModuleInfo> = e as Array<OverlayModuleInfo>;
199      callback(null, resultArray);
200    }, (err: Error): void => {
201      callback(err as BusinessError, undefined);
202    });
203  }
204
205  function getTargetOverlayModuleInfosByBundleName(targetBundleName: string, moduleName: string, callback: AsyncCallback<Array<OverlayModuleInfo>>): void {
206    let cb = (): (Array<OverlayModuleInfo>) => {
207      return overlay.getTargetOverlayModuleInfosByBundleNameNative(targetBundleName, moduleName);
208    };
209    let p1 = taskpool.execute(cb);
210    p1.then((e: NullishType) => {
211      let resultArray: Array<OverlayModuleInfo> = e as Array<OverlayModuleInfo>;
212      callback(null, resultArray);
213    }, (err: Error): void => {
214      callback(err as BusinessError, undefined);
215    });
216  }
217
218  function getTargetOverlayModuleInfosByBundleName(targetBundleName: string, moduleName?: string): Promise<Array<OverlayModuleInfo>> {
219    let moduleNameInfo: string = moduleName ?? '';
220    let p = new Promise<Array<OverlayModuleInfo>>((resolve: (arrOverlayModuleInfo: Array<OverlayModuleInfo>) => void, reject: (error: BusinessError) => void) => {
221      let cb = (): (Array<OverlayModuleInfo>) => {
222        return overlay.getTargetOverlayModuleInfosByBundleNameNative(targetBundleName, moduleNameInfo);
223      };
224      let p1 = taskpool.execute(cb);
225      p1.then((e: NullishType) => {
226        let resultArray: Array<OverlayModuleInfo> = e as Array<OverlayModuleInfo>;
227        resolve(resultArray);
228      }, (err: Error): void => {
229        reject(err as BusinessError);
230      });
231    });
232    return p;
233  }
234
235  export type OverlayModuleInfo = _OverlayModuleInfo;
236}
237