diff --git a/permissionmanager/src/main/ets/SecurityExtAbility/SecurityExtAbility.ets b/permissionmanager/src/main/ets/SecurityExtAbility/SecurityExtAbility.ets index a498303ae938bffed3e147fafd59ca6f1b6791fb..4d20ecc38fe78b3664a62cc443e23dba7ff321d3 100644 --- a/permissionmanager/src/main/ets/SecurityExtAbility/SecurityExtAbility.ets +++ b/permissionmanager/src/main/ets/SecurityExtAbility/SecurityExtAbility.ets @@ -19,7 +19,6 @@ import { GlobalContext } from '../common/utils/globalContext'; import { Configuration } from '@ohos.app.ability.Configuration'; import Want from '@ohos.app.ability.Want'; import { Property, NavigationBarRect } from '../common/model/typedef'; -import { NotifyType } from '../common/model/definition'; import { Log } from '../common/utils/utils'; const BG_COLOR = '#00000000'; @@ -42,17 +41,13 @@ export default class SecurityExtensionAbility extends extension { try { let width = want.parameters?.['ohos.display.width'] as number ?? 0; let height = want.parameters?.['ohos.display.height'] as number ?? 0; - let top = want.parameters?.['ohos.display.top'] as number ?? 0; let navigationBarRect: NavigationBarRect = { left: 0, - top: top, + top: 0, width: width, height: height }; - let notifyType = want.parameters?.['ohos.ability.notify.type'] ?? 0; - if (notifyType === NotifyType.Dialog) { - this.createWindow('SecurityDialog' + startId, window.WindowType.TYPE_DIALOG, navigationBarRect, want); - } + this.createWindow('SecurityDialog' + startId, window.WindowType.TYPE_DIALOG, navigationBarRect, want); } catch (exception) { Log.error(`Failed to obtain the default display object. Code: ${JSON.stringify(exception)}.`); }; @@ -119,27 +114,4 @@ export default class SecurityExtensionAbility extends extension { Log.error(`window create failed! err: ${JSON.stringify(err)}.`); }; } - - private async createToast(name: string, windowType: window.WindowType, rect: NavigationBarRect, - want: Want): Promise { - try { - const win = await window.createWindow({ ctx: this.context, name, windowType }); - let property: Record = { 'want': want, 'win': win }; - let storage: LocalStorage = new LocalStorage(property); - await win.moveWindowTo(rect.left, rect.top); - await win.resize(rect.width, rect.height); - try { - await win.setSystemAvoidAreaEnabled(true); - } catch (error) { - Log.error(`setSystemAvoidAreaEnabled error: ${JSON.stringify(error)}.`); - }; - await win.loadContent('pages/securityToast', storage); - win.setWindowBackgroundColor(BG_COLOR); - await win.setWindowTouchable(false); - await win.setWindowFocusable(false); - await win.showWindow(); - } catch (error) { - Log.error(`window create failed! err: ${JSON.stringify(error)}.`); - }; - } }; diff --git a/permissionmanager/src/main/ets/common/model/definition.ets b/permissionmanager/src/main/ets/common/model/definition.ets index 59f0c40d96ecf07118c8b938da0fbf383344953e..c3b50f8fd4360b16cbbbedf6a46da9f4f76f95ce 100644 --- a/permissionmanager/src/main/ets/common/model/definition.ets +++ b/permissionmanager/src/main/ets/common/model/definition.ets @@ -99,8 +99,3 @@ export enum PermissionOption { // 不操作 SKIP = 'SKIP' } - -export enum NotifyType { - Toast = 1, - Dialog = 0 -} \ No newline at end of file diff --git a/permissionmanager/src/main/ets/common/utils/constant.ets b/permissionmanager/src/main/ets/common/utils/constant.ets index 8b958710112669d235eb11b5ba8d44957de4cf26..12592fdcaa9ca9cd18d04f1cd16d7a036ca6f4f9 100644 --- a/permissionmanager/src/main/ets/common/utils/constant.ets +++ b/permissionmanager/src/main/ets/common/utils/constant.ets @@ -350,27 +350,4 @@ export default class Constants { public static CUSTOMIZE_BUTTON_WIDTH = 152; public static CUSTOMIZE_BUTTON_TEXT_MIN_SIZE = 12; public static CUSTOMIZE_BUTTON_TEXT_MAX_SIZE = 15; - - // SecurityToast - public static TOAST_SYMBOLGLYPH_FONTSIZE = '16vp'; - public static TOAST_TEXT_MIDDLE_FONT_SIZE = '12vp'; - public static TOAST_POSITION_Y_UP = 15; - public static TOAST_POSITION_Y_UNDER = -15; - public static TOAST_ANIMATION_OFFSET = 80; - public static TOAST_ANIMATION_TIMEOUT_START = 100; - public static TOAST_ANIMATION_TIMEOUT_END = 3100; - public static TOAST_ANIMATION_TIMEOUT_ID = 3500; - public static TOAST_ICON_FONTSIZE_4 = 4; - public static TOAST_ICON_FONTSIZE_2 = 2; - public static TOAST_ICON_FONTSIZE_16 = 16; - public static TOAST_ICON_FONTSIZE_14 = 14; - public static TOAST_MAX_FONT_SCALE = 1; - public static TOAST_CONSTRAINT_SIZE_MAX_WIDTH = 400; - public static TOAST_CONSTRAINT_SIZE_MIN_HEIGHT = 36; - public static TOAST_COLUMN_WIDTH = '100%'; - public static TOAST_COLUMN_HEIGHT = '100%'; - public static TOAST_FLEX_SHADOW_RADIUS_40 = 40; - public static TOAST_FLEX_SHADOW_RADIUS_60 = 60; - public static TOAST_FLEX_SHADOW_OFFSET_X = 0; - public static TOAST_FLEX_SHADOW_OFFSET_Y = 10; } diff --git a/permissionmanager/src/main/ets/pages/securityToast.ets b/permissionmanager/src/main/ets/pages/securityToast.ets deleted file mode 100644 index c56dc2cab49b7a731999dc73615eb2a9bb7383b2..0000000000000000000000000000000000000000 --- a/permissionmanager/src/main/ets/pages/securityToast.ets +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (c) 2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import window from '@ohos.window'; -import display from '@ohos.display'; -import accessibility from '@ohos.accessibility'; -import { Log } from '../common/utils/utils'; -import { DeviceUtil } from '../common/utils/deviceUtil'; -import Constants from '../common/utils/constant'; -import { WantInfo } from '../common/model/typedef'; - -class ToastFlexModifier implements AttributeModifier { - - applyNormalAttribute(instance: FlexAttribute): void { - if (DeviceUtil.isPC()) { - instance.padding($r('sys.float.padding_level4')) - instance.shadow({ - radius: Constants.TOAST_FLEX_SHADOW_RADIUS_40, - color: $r('app.color.outerDefaultSMColor'), - offsetX: Constants.TOAST_FLEX_SHADOW_OFFSET_X, - offsetY: Constants.TOAST_FLEX_SHADOW_OFFSET_Y - }) - instance.borderRadius($r('sys.float.corner_radius_level4')) - instance.backgroundBlurStyle(BlurStyle.COMPONENT_REGULAR) - instance.border({ width: '1px', color: '#33ffffff' }) - instance.outline({ width: '1px', color: $r('app.color.outline'), radius: $r('sys.float.corner_radius_level4') }) - } else { - instance.padding({ - top: Constants.PADDING_8, - right: Constants.PADDING_16, - bottom: Constants.PADDING_8, - left: Constants.PADDING_16 - }) - instance.shadow({ - radius: Constants.TOAST_FLEX_SHADOW_RADIUS_60, - color: $r('app.color.outerDefaultMDColor'), - offsetX: Constants.TOAST_FLEX_SHADOW_OFFSET_X, - offsetY: Constants.TOAST_FLEX_SHADOW_OFFSET_Y - }) - instance.borderRadius($r('sys.float.corner_radius_level9')) - instance.backgroundBlurStyle(BlurStyle.COMPONENT_ULTRA_THICK) - } - } -} - -@Entry({ useSharedStorage: true }) -@Component -struct SecurityToast { - @State modifier: ToastFlexModifier = new ToastFlexModifier(); - @LocalStorageLink('want') want: WantInfo = new WantInfo([]); - @LocalStorageLink('win') win: window.Window = {} as window.Window; - @State alpha: number = 0; - @State positionY: number = 0; - @State setPosition: boolean = false; - @State setOffset: number = Constants.TOAST_ANIMATION_OFFSET; - @State windowWidth: number = 0; - @State windowHeight: number = 0; - @State rotationInit: number = 0; - @State densityDPIInit: number = 0; - @State topRectHeight: number = 0; - - getAnnounceForAccessibility() { - try { - let textAnnounce = - this.getUIContext().getHostContext()?.resourceManager.getStringSync($r('app.string.SecurityTitle_mediaFiles') - .id); - let eventInfo: accessibility.EventInfo = ({ - type: 'announceForAccessibility', - bundleName: 'com.ohos.permissionmanager', - triggerAction: 'common', - textAnnouncedForAccessibility: textAnnounce - }); - accessibility.sendAccessibilityEvent(eventInfo) - .catch((error: Error) => { - Log.error(`sendAnnounceForAccessibilityEvent fail: ${error.message}`); - return false; - }); - } catch (error) { - Log.error(`sendAccessibilityEvent failed, error code: ${error.code}, message: ${error.message}.`); - }; - } - - getWinAvoidArea() { - let type = window.AvoidAreaType.TYPE_SYSTEM; - try { - let avoidArea = this.win?.getWindowAvoidArea(type); - this.topRectHeight = avoidArea.topRect.height; - } catch (error) { - Log.error(`Failed to obtain the area. Cause code: ${error.code}, message: ${error.message}`); - }; - } - - aboutToAppear(): void { - Log.info('onAboutToAppear'); - try { - let dis = display.getDefaultDisplaySync(); - this.rotationInit = dis.orientation; - this.densityDPIInit = dis.densityDPI; - } catch (error) { - Log.error(`Failed to get default display. Cause code: ${error.code}, message: ${error.message}`); - }; - this.setPosition = this.want.parameters['ohos.toast.position'] ?? false; - this.positionY = this.setPosition ? Constants.TOAST_POSITION_Y_UP : Constants.TOAST_POSITION_Y_UNDER; - this.setOffset = this.want.parameters['ohos.toast.offset'] ?? Constants.TOAST_ANIMATION_OFFSET; - this.screenMonitor(); - this.getWinAvoidArea(); - let timeoutStart = setTimeout(() => { - this.alpha = 1; - this.positionY = 0; - clearTimeout(timeoutStart); - }, Constants.TOAST_ANIMATION_TIMEOUT_START); - let timeoutEnd = setTimeout(() => { - this.alpha = 0; - this.positionY = this.setPosition ? Constants.TOAST_POSITION_Y_UP : Constants.TOAST_POSITION_Y_UNDER; - clearTimeout(timeoutEnd); - }, Constants.TOAST_ANIMATION_TIMEOUT_END); - let timeoutID = setTimeout(() => { - this.win?.destroyWindow(); - clearTimeout(timeoutID); - }, Constants.TOAST_ANIMATION_TIMEOUT_ID); - } - - aboutToDisappear(): void { - try { - display.off('foldStatusChange'); - display.off('change'); - } catch (exception) { - Log.error(`Failed to unregister callback. Cause code: ${exception.code}, message: ${exception.message}`); - }; - } - - screenMonitor() { - try { - display.on('foldStatusChange', (data: display.FoldStatus) => { - Log.info(`Listening foldStatusChange. Data: ${JSON.stringify(data)}`); - this.win?.destroyWindow(); - }); - } catch (exception) { - Log.error(`Failed to register callback. Code: ${JSON.stringify(exception)}`); - }; - - try { - display.on('change', (data: number) => { - Log.info(`Listening change. Data: ${JSON.stringify(data)}`); - let rotation: number = display.getDefaultDisplaySync().orientation; - let densityDPI = display.getDefaultDisplaySync().densityDPI; - if (rotation !== this.rotationInit) { - this.rotationInit = rotation; - this.win?.destroyWindow(); - return; - } - if (this.densityDPIInit !== densityDPI) { - this.densityDPIInit = densityDPI; - this.win?.destroyWindow(); - } - }); - } catch (exception) { - Log.error(`Failed to register callback. Code: ${JSON.stringify(exception)}`); - }; - } - - build() { - Column() { - Flex({ alignItems: ItemAlign.Center }) { - SymbolGlyph($r('sys.symbol.security_shield')) - .fontSize(Constants.TOAST_SYMBOLGLYPH_FONTSIZE) - .fontColor([$r('sys.color.icon_primary'), $r('sys.color.icon_emphasize')]) - .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_COLOR) - Blank() - .width('4vp') - Text($r('app.string.SecurityTitle_mediaFiles')) - .fontColor($r('sys.color.font_primary')) - .minFontSize(Constants.TOAST_TEXT_MIDDLE_FONT_SIZE) - .maxFontSize($r('sys.float.Body_M')) - .fontSize($r('sys.float.Body_M')) - .maxLines(Constants.SECURITY_HEADER_MAX_LINES) - .heightAdaptivePolicy(TextHeightAdaptivePolicy.MAX_LINES_FIRST) - .textOverflow({ overflow: TextOverflow.Ellipsis }) - .onAppear(() => { - this.getAnnounceForAccessibility(); - }) - } - .opacity(this.alpha) - .offset({ bottom: this.positionY }) - .animation({ - duration: Constants.TOAST_ANIMATION_TIMEOUT_START, - curve: 'cubic-bezier(0.2, 0, 0.1, 1)', - }) - .width('auto') - .constraintSize({ - maxWidth: Constants.TOAST_CONSTRAINT_SIZE_MAX_WIDTH, - minHeight: Constants.TOAST_CONSTRAINT_SIZE_MIN_HEIGHT - }) - .margin(this.setPosition ? { top: this.setOffset - px2vp(this.topRectHeight) } : { bottom: this.setOffset }) - .attributeModifier(this.modifier) - } - .width(Constants.TOAST_COLUMN_WIDTH) - .height(Constants.TOAST_COLUMN_HEIGHT) - .justifyContent(this.setPosition ? FlexAlign.Start : FlexAlign.End) - .padding({ - left: (DeviceUtil.isPC() || DeviceUtil.isTablet()) ? Constants.PADDING_24 : Constants.PADDING_16, - right: (DeviceUtil.isPC() || DeviceUtil.isTablet()) ? Constants.PADDING_24 : Constants.PADDING_16 - }) - } -} \ No newline at end of file diff --git a/permissionmanager/src/main/resources/base/element/color.json b/permissionmanager/src/main/resources/base/element/color.json index 52fa911851f00fb5a9a2278d34f2c49a68de43b2..353356bb1a54cf919fe7a9d78844ddb4813ff7d4 100644 --- a/permissionmanager/src/main/resources/base/element/color.json +++ b/permissionmanager/src/main/resources/base/element/color.json @@ -27,18 +27,6 @@ { "name": "local_background_color", "value": "#3194F7" - }, - { - "name": "outline", - "value": "#1A000000" - }, - { - "name": "outerDefaultMDColor", - "value": "#33000000" - }, - { - "name": "outerDefaultSMColor", - "value": "#26000000" } ] } \ No newline at end of file diff --git a/permissionmanager/src/main/resources/base/profile/main_pages.json b/permissionmanager/src/main/resources/base/profile/main_pages.json index 9515dd2b45819364287087527948f48cbba81349..2de3e8934d7c0ac42fd57c1424d14daa0cb43d13 100644 --- a/permissionmanager/src/main/resources/base/profile/main_pages.json +++ b/permissionmanager/src/main/resources/base/profile/main_pages.json @@ -10,7 +10,6 @@ "pages/dialogPlus", "pages/globalSwitch", "pages/securityDialog", - "pages/securityToast", "pages/transition", "PermissionSheet/PermissionStateSheetDialog", "PermissionSheet/GlobalSwitchSheetDialog" diff --git a/permissionmanager/src/main/resources/dark/element/color.json b/permissionmanager/src/main/resources/dark/element/color.json deleted file mode 100644 index aec87c7292e1bb7149fda95afc74777c5188cbcd..0000000000000000000000000000000000000000 --- a/permissionmanager/src/main/resources/dark/element/color.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "color": [ - { - "name": "outline", - "value": "#66000000" - }, - { - "name": "outerDefaultMDColor", - "value": "#7B050505" - }, - { - "name": "outerDefaultSMColor", - "value": "#52050505" - } - ] -} \ No newline at end of file