1/**
2 * Copyright (c) 2023 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 */
15import type UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession';
16import LogUtils from './LogUtils';
17
18const TAG = 'WindowPrivacyUtils';
19
20export class WindowPrivacyUtils {
21  setWindowPrivacyMode(session: UIExtensionContentSession, isPrivacyMode: boolean): void {
22    LogUtils.debug(TAG, 'setWindowPrivacyMode');
23    try {
24      session?.setWindowPrivacyMode(isPrivacyMode, (error) => {
25        if (error) {
26          LogUtils.error(TAG, 'setWindowPrivacyMode error');
27          return;
28        }
29        LogUtils.debug(TAG, 'setWindowPrivacyMode success');
30      });
31    } catch (error) {
32      LogUtils.error(TAG, 'setWindowPrivacyMode catch error: ' + error?.code);
33      (AppStorage.get("session") as UIExtensionContentSession)?.terminateSelf();
34    }
35  }
36}
37
38let mWindowPrivacyUtils = new WindowPrivacyUtils();
39
40export default mWindowPrivacyUtils as WindowPrivacyUtils;
41