From b1d831680e8e9983f9599fca200a0d3e0c525feb Mon Sep 17 00:00:00 2001 From: zhengyongjie <15531316327@163.com> Date: Fri, 14 Jun 2024 16:02:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?launcher=E6=9D=83=E9=99=90=E7=AD=BE?= =?UTF-8?q?=E5=90=8D=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhengyongjie <15531316327@163.com> --- feature/settings/src/main/module.json5 | 3 +++ product/pad/src/main/module.json5 | 3 +++ product/phone/src/main/module.json5 | 3 +++ signature/launcher.p7b | Bin 4074 -> 3892 bytes 4 files changed, 9 insertions(+) diff --git a/feature/settings/src/main/module.json5 b/feature/settings/src/main/module.json5 index 55b4e833..8ebf5e49 100644 --- a/feature/settings/src/main/module.json5 +++ b/feature/settings/src/main/module.json5 @@ -32,6 +32,9 @@ } ], "requestPermissions": [ + { + "name": "ohos.permission.INJECT_INPUT_EVENT" + }, { "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" }, diff --git a/product/pad/src/main/module.json5 b/product/pad/src/main/module.json5 index 5c60299c..2110f970 100644 --- a/product/pad/src/main/module.json5 +++ b/product/pad/src/main/module.json5 @@ -44,6 +44,9 @@ } ], "requestPermissions": [ + { + "name": "ohos.permission.INJECT_INPUT_EVENT" + }, { "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" }, diff --git a/product/phone/src/main/module.json5 b/product/phone/src/main/module.json5 index e26bbda1..c2ef114b 100644 --- a/product/phone/src/main/module.json5 +++ b/product/phone/src/main/module.json5 @@ -44,6 +44,9 @@ } ], "requestPermissions": [ + { + "name": "ohos.permission.INJECT_INPUT_EVENT" + }, { "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" }, diff --git a/signature/launcher.p7b b/signature/launcher.p7b index 6959e7ca0d67d4e4aa375b32b3f3a19af1070788..8cb2834095077e565d8d496afc6214e3a5ad26b0 100644 GIT binary patch delta 734 zcmY+CPiPZC7{%RmJ27glv=&QiZ95``nm?16q-h{XXk$~6v`E^BLE z)Dj3Z9yRPKg4m*>qIj?sFXBN2521!4f;U0%ptlO52M^B1+TwBF{NDH8d^_Lz*N=&) z+>U^4xDu`WY~!q!m2&$allm+i=Wav$f$ef7%8?e{!l5$Q+y%LnGI-6G!K+1BAgU%( z*&*W`fkEhYA}50O9XUewUj99WKP98voI>37X=usJ|8N<0+vKU)Qd2< z2xY1}(j-e&)9M@b2K+vcFJN!#II9zt$^O8ocjOe4m+Vk4DrUAyB!V@<=BD$qAQ6Ws zXQ??)AO#{(g{TfQ4o)dVj$$=O1+tDTJtu1Bsx-5bN?59x(TU*r z?zmu@pWS4hN#?D5@;;G5l^h`VznT^Ea&~AKc9W;0_WViq{ zWdt1kC^ z?d-T$cYl9h2tTY1t#;i$W7H;posJ*zpnYI3dw}mke2ayjKoQH}p2mU3c%N%)_5uBU zcVi2lUzeum0$;A5b0t3b7d9IgECcXljm}c Go7^8S5cgdG delta 952 zcmZ9LPe>F|9LJq?ch*_k43bEK94E*SXMMZw+HPQFMXiVGpdD%ndpq-1AI{Dj=Z~_K z2^;JsJH%Qb6$(XNx+!!M0=%R2-puT-<(z)}{(V2c-|x-r{x6MV zAYb>1x3P}c4dp!)u`wLr%%yiyA;?4VwtHA(I zKVcZ@1}3Vg!YmSw@Ip8QLO^KU7L|x>N5f@5?9en(#)hfmv}M}$W=?bJiP48u6ZPxR zc2^o%7M5v)+mp>><JA>o2Vn6 zh#qdI8E)IrGGUoVM+$-ls(_@ATdJ%e5vv)pO5uOT%F^(;|y<#JoU zm|*rX{7f%%rn)qXLzQ;>miH);Y={gHBcwn}l?Es*CF3{&Y6_JVjGSSjY+o80So*g) zjcZ~CLDO;;AkYqdrCb^jwhh@pVYAq<4`}>9Op)<506ukjtAI*NN-4|cP!uwPWU=H- z*>J^_ugU8e*L=;c@z5u@#)7ZWH9q(bxQ3r?ag8t=aSe$*gzR#v%2f_Q@hs<5f;Nbq zx1p<0akk+MtLbdrJ>zZ5Pv!{-ur>70TJH2#d%Q_-+S61u;p@KecyR9X%kG0q z?^f%-&fj^x_wH29`^?nuwav*}<1}S$x>vq2^yAm_(R(ZPwU2sMtG=(NMgog(qgKzl IdiH+*UofN*Jpcdz -- Gitee From e2dcb4c19102b59f7b8152a946abf437952ba21c Mon Sep 17 00:00:00 2001 From: zhengyongjie <15531316327@163.com> Date: Fri, 5 Jul 2024 10:27:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A1=8C=E9=9D=A2=E7=9A=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E8=BF=99=E6=AC=A1=E6=8A=8A=E5=A3=81=E7=BA=B8?= =?UTF-8?q?=E6=8B=BF=E4=BA=86=E5=87=BA=E5=8E=BB=E9=80=9F=E5=BA=A6=E6=98=AF?= =?UTF-8?q?=E4=B8=80=E6=A0=B7=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhengyongjie <15531316327@163.com> --- .../ets/default/manager/DisplayManager.ts | 1 + .../ets/default/manager/RdbStoreManager.ts | 4 + .../default/manager/SettingsDataManager.ts | 84 +++++++++++++++---- .../main/ets/default/manager/WindowManager.ts | 45 +++++----- .../common/GestureNavigationManager.ts | 4 +- local.properties | 37 +++----- .../src/main/ets/MainAbility/MainAbility.ts | 80 ++++++++++++++---- .../phone/src/main/ets/pages/EntryView.ets | 84 +++++++++++++------ 8 files changed, 235 insertions(+), 104 deletions(-) diff --git a/common/src/main/ets/default/manager/DisplayManager.ts b/common/src/main/ets/default/manager/DisplayManager.ts index 9a7b2bae..5e751f84 100644 --- a/common/src/main/ets/default/manager/DisplayManager.ts +++ b/common/src/main/ets/default/manager/DisplayManager.ts @@ -83,6 +83,7 @@ export class DisplayManager { //主屏不需要创建主窗口 return } + Log.showError(TAG, `在指定屏幕上创建主window`) window.createWindow({ ctx: globalThis.desktopContext, name: this.MAIN_WINDOW_PREFIX + display.id, diff --git a/common/src/main/ets/default/manager/RdbStoreManager.ts b/common/src/main/ets/default/manager/RdbStoreManager.ts index 9e5efb8e..2c94d902 100644 --- a/common/src/main/ets/default/manager/RdbStoreManager.ts +++ b/common/src/main/ets/default/manager/RdbStoreManager.ts @@ -31,6 +31,7 @@ import GridLayoutInfoColumns from '../bean/GridLayoutInfoColumns'; import DesktopApplicationColumns from '../bean/DesktopApplicationColumns'; import { GridLayoutInfo } from '../interface'; import { LauncherDragItemInfo } from '../bean'; +import { settingsDataManager } from './SettingsDataManager'; const TAG = 'RdbStoreManager'; @@ -48,9 +49,12 @@ export class RdbStoreManager { * @return rdbStoreManager instance */ static getInstance(): RdbStoreManager { + Log.showError(TAG, `getInstance 开始`) if (globalThis.RdbStoreManagerInstance == null) { globalThis.RdbStoreManagerInstance = new RdbStoreManager(); } + Log.showError(TAG, `getInstance 结束`) + // settingsDataManager.sendToLockscreen(); return globalThis.RdbStoreManagerInstance; } diff --git a/common/src/main/ets/default/manager/SettingsDataManager.ts b/common/src/main/ets/default/manager/SettingsDataManager.ts index 85f156d6..28e81263 100644 --- a/common/src/main/ets/default/manager/SettingsDataManager.ts +++ b/common/src/main/ets/default/manager/SettingsDataManager.ts @@ -1,4 +1,4 @@ -//@ts-nocheck + /* * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -28,6 +28,8 @@ const TAG = 'SettingsDataManager' class SettingsDataManager { private readonly uriShare: string = 'datashare:///com.ohos.settingsdata/entry/settingsdata/SETTINGSDATA?Proxy=true&key='; private dataShareHelper: dataShare.DataShareHelper | null = null; + private RETRY_INTERVAL_MS = 2000; + private MAX_RETRY_TIME = 10; private constructor() { } @@ -43,21 +45,71 @@ class SettingsDataManager { return globalThis.SettingsDataManagerInstance; } - public createDataShareHelper() { - Log.showInfo(TAG, 'createDataShareHelper context:' + globalThis.desktopContext); - const UPDATE_INTERVAL = 30; - const timer = setInterval(() => { - dataShare.createDataShareHelper(globalThis.desktopContext, this.uriShare) - .then((dataHelper) => { - Log.showInfo(TAG, `createDataShareHelper success.`); - this.dataShareHelper = dataHelper; - globalThis.sGestureNavigationManager.getGestureNavigationStatus(); - clearInterval(timer); - }) - .catch((err: BusinessError) => { - Log.showError(TAG, `createDataShareHelper fail. ${JSON.stringify(err)}`); - }); - }, UPDATE_INTERVAL); + private sleep (time: number) { + return new Promise(resolve => { + setTimeout(resolve, time); + }) + } + + public async createDataShareHelper(retryTimes: number): Promise { + Log.showError(TAG, 'createDataShareHelper'); + if (retryTimes < 1) { + Log.showError(TAG, 'createDataShareHelper, retry too many times'); + return; + } + Log.showError(TAG, 'createDataShareHelper in, retry times: %{public}d', this.MAX_RETRY_TIME - retryTimes + 1); + try { + this.dataShareHelper = await dataShare.createDataShareHelper(globalThis.desktopContext, this.uriShare); + if (this.dataShareHelper) { + Log.showInfo(TAG, 'createDataShareHelper success.'); + globalThis.sGestureNavigationManager.getGestureNavigationStatus(); + } + } catch (err) { + Log.showError(TAG, 'createDataShareHelper error, code: ' + err?.code + ', message: ' + err?.message); + await this.sleep(this.RETRY_INTERVAL_MS); + this.createDataShareHelper(retryTimes - 1); + } + } + + // public createDataShareHelper(retryTimes) { + // Log.showInfo(TAG, 'createDataShareHelper context:' + globalThis.desktopContext); + // const UPDATE_INTERVAL = 30; + // const timer = setInterval(() => { + // dataShare.createDataShareHelper(globalThis.desktopContext, this.uriShare) + // .then((dataHelper) => { + // Log.showInfo(TAG, `createDataShareHelper success.`); + // this.dataShareHelper = dataHelper; + // globalThis.sGestureNavigationManager.getGestureNavigationStatus(); + // clearInterval(timer); + // }) + // .catch((err: BusinessError) => { + // Log.showError(TAG, `createDataShareHelper fail. ${JSON.stringify(err)}`); + // }); + // }, UPDATE_INTERVAL); + // } + + sendToLockscreen() { + Log.showInfo(TAG, 'setValue to LockScreen'); + if (typeof globalThis.desktopContext === 'undefined') { + Log.showError(TAG, `桌面开始写数据1`) + settings.setValue(globalThis.settingsContext as Context, 'launcherIsLoad', 'launcherIsLoad').then((status)=>{ + Log.showError(TAG, `callback:return whether value is set 2. status:${status}`) + }) + // settings.setValue(globalThis.settingsContext as Context, 'launcherIsLoad', 'launcherIsLoad', + // (status) => { + // Log.showError(TAG, `callback:return whether value is set 1. status:${status}`) + // }) + } else { + Log.showError(TAG, `桌面开始写数据2`) + settings.setValue(globalThis.desktopContext as Context, 'launcherIsLoad', 'launcherIsLoad').then((status)=>{ + Log.showError(TAG, `callback:return whether value is set 2. status:${status}`) + }) + + // settings.setValue(globalThis.desktopContext as Context, 'launcherIsLoad', 'launcherIsLoad', + // (status) => { + // Log.showError(TAG, `callback:return whether value is set 2. status:${status}`) + // }) + } } /** diff --git a/common/src/main/ets/default/manager/WindowManager.ts b/common/src/main/ets/default/manager/WindowManager.ts index cd0d9724..449fb18c 100644 --- a/common/src/main/ets/default/manager/WindowManager.ts +++ b/common/src/main/ets/default/manager/WindowManager.ts @@ -21,6 +21,7 @@ import { AsyncCallback, BusinessError } from '@ohos.base'; import AbilityConstant from '@ohos.app.ability.AbilityConstant'; import commonEventManager from './CommonEventManager' import { Log } from '../utils/Log'; +import { settingsDataManager } from './SettingsDataManager' import { StyleConstants } from '../constants/StyleConstants'; const TAG = 'WindowManager'; @@ -189,6 +190,10 @@ class WindowManager { if (name !== this.RECENT_WINDOW_NAME) { win.setWindowLayoutFullScreen(true).then(() => { Log.showDebug(TAG, `${name} setLayoutFullScreen`); + // Log.showError(TAG, `在WindowManager进行开始去设置数据`) + // settingsDataManager.sendToLockscreen() + // AppStorage.setOrCreate('loaded', true); + }); } if (callback) { @@ -244,10 +249,12 @@ class WindowManager { showWindow(name: string, callback?: Function): void { Log.showDebug(TAG, `showWindow, name ${name}`); + // settingsDataManager.sendToLockscreen() this.findWindow(name, (win) => { Log.showDebug(TAG, `showWindow, findWindow callback name: ${name}`); win.show().then(() => { Log.showDebug(TAG, `showWindow, show then name: ${name}`); + settingsDataManager.sendToLockscreen() if (callback) { callback(win); } @@ -321,24 +328,24 @@ class WindowManager { Log.showDebug(TAG, `${this.RECENT_WINDOW_NAME} setFullScreen`); }); }; - let registerWinEvent = (win: window.Window) => { - Log.showDebug(TAG, 'registerWinEvent Begin'); - win.on('windowEvent', (stageEventType) => { - Log.showDebug(TAG,`Recent lifeCycleEvent callback stageEventType=${stageEventType}`); - if (stageEventType === window.WindowEventType.WINDOW_INACTIVE) { - - Log.showDebug(TAG,'Recent MainAbility onWindowStageInactive'); - try { - let wins: window.Window = window.findWindow(windowManager.RECENT_WINDOW_NAME); - Log.showDebug(TAG,'Hide recent on inactive'); - wins.hide(); - } catch (err) { - let _err = err as BusinessError; - Log.showError(TAG, `Recent lifeCycleEvent findWindow errCode: ${_err.code}, errMsg: ${_err.message}`); - } - } - }) - }; + // let registerWinEvent = (win: window.Window) => { + // Log.showDebug(TAG, 'registerWinEvent Begin'); + // win.on('windowEvent', (stageEventType) => { + // Log.showDebug(TAG,`Recent lifeCycleEvent callback stageEventType=${stageEventType}`); + // if (stageEventType === window.WindowEventType.WINDOW_INACTIVE) { + // + // Log.showDebug(TAG,'Recent MainAbility onWindowStageInactive'); + // try { + // let wins: window.Window = window.findWindow(windowManager.RECENT_WINDOW_NAME); + // Log.showDebug(TAG,'Hide recent on inactive'); + // wins.hide(); + // } catch (err) { + // let _err = err as BusinessError; + // Log.showError(TAG, `Recent lifeCycleEvent findWindow errCode: ${_err.code}, errMsg: ${_err.message}`); + // } + // } + // }) + // }; try { let win: window.Window = window.findWindow(windowManager.RECENT_WINDOW_NAME); setWinMode(win); @@ -350,7 +357,7 @@ class WindowManager { Log.showDebug(TAG, `recent window is not created, because ${JSON.stringify(err)}`); let callback = (win) => { Log.showDebug(TAG, 'Post recent window created'); - registerWinEvent(win); + // registerWinEvent(win); setWinMode(win); } this.createWindow(globalThis.desktopContext, windowManager.RECENT_WINDOW_NAME, windowManager.RECENT_RANK, diff --git a/feature/gesturenavigation/src/main/ets/default/common/GestureNavigationManager.ts b/feature/gesturenavigation/src/main/ets/default/common/GestureNavigationManager.ts index 2f42caf6..e4f01b3c 100644 --- a/feature/gesturenavigation/src/main/ets/default/common/GestureNavigationManager.ts +++ b/feature/gesturenavigation/src/main/ets/default/common/GestureNavigationManager.ts @@ -33,6 +33,7 @@ export class GestureNavigationManager { private helper: dataShare.DataShareHelper; private readonly sGestureNavigationExecutors: GestureNavigationExecutors = GestureNavigationExecutors.getInstance(); private touchEventCallback: inputMonitor.TouchEventReceiver | null = null; + private MAX_RETRY_TIME = 10; private constructor() { this.uri = settingsDataManager.getUri(CommonConstants.NAVIGATION_BAR_STATUS_KEY); @@ -58,12 +59,13 @@ export class GestureNavigationManager { } initWindowSize(display: display.Display) { + Log.showError(TAG, `去创建 createDataShareHelper`) if (globalThis.sGestureNavigationExecutors) { globalThis.sGestureNavigationExecutors.setScreenWidth(display.width); globalThis.sGestureNavigationExecutors.setScreenHeight(display.height); this.touchEventCallback = globalThis.sGestureNavigationExecutors.touchEventCallback .bind(globalThis.sGestureNavigationExecutors); - settingsDataManager.createDataShareHelper(); + settingsDataManager.createDataShareHelper(this.MAX_RETRY_TIME); } } diff --git a/local.properties b/local.properties index 5ce895d2..6e4973ca 100755 --- a/local.properties +++ b/local.properties @@ -1,25 +1,14 @@ -/* - * Copyright (c) 2021 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. - */ - -## This file must *NOT* be checked into Version Control Systems, -# as it contains information specific to your local configuration. -# -# Location of the SDK. This is only used by Gradle. -# For customization when using a Version Control System, please read the -# header note. -#Thu Mar 18 17:01:34 CST 2021 -hwsdk.dir=XXX +# This file is automatically generated by DevEco Studio. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file should *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# For customization when using a Version Control System, please read the header note. native.dir=XXX -nodejs.dir=XXX +sdk.dir=E:/IDE/my_openharmony_sdk +*/= +nodejs.dir=E:/IDE/nodejs +*=limitations under the License. +/*= +hwsdk.dir=XXX \ No newline at end of file diff --git a/product/phone/src/main/ets/MainAbility/MainAbility.ts b/product/phone/src/main/ets/MainAbility/MainAbility.ts index 87f0db6c..407ee7c5 100644 --- a/product/phone/src/main/ets/MainAbility/MainAbility.ts +++ b/product/phone/src/main/ets/MainAbility/MainAbility.ts @@ -28,7 +28,8 @@ import { navigationBarCommonEventManager, localEventManager, EventConstants, - DisplayManager + DisplayManager, + settingsDataManager } from '@ohos/common'; import { GestureNavigationManager } from '@ohos/gesturenavigation'; import StyleConstants from '../common/constants/StyleConstants'; @@ -38,6 +39,8 @@ import inputConsumer from '@ohos.multimodalInput.inputConsumer'; import { KeyCode } from '@ohos.multimodalInput.keyCode'; import window from '@ohos.window'; import { PreferencesHelper } from '@ohos/common/src/main/ets/default/manager/PreferencesHelper'; +import dataShare from '@ohos.data.dataShare'; +import settings from '@ohos.settings'; const TAG = 'LauncherMainAbility'; @@ -52,18 +55,9 @@ export default class MainAbility extends ServiceExtension { async initLauncher(): Promise { // init Launcher context + Log.showError(TAG,'test initLauncher 1'); globalThis.desktopContext = this.context; - PreferencesHelper.getInstance().initPreference(this.context); - // init global const - this.initGlobalConst(); - - // init Gesture navigation - this.startGestureNavigation(); - - // init rdb - let dbStore = RdbStoreManager.getInstance(); - await dbStore.initRdbConfig(); - await dbStore.createTable(); + Log.showError(TAG,'test initLauncher 2'); let registerWinEvent = (win: window.Window) => { win.on('windowEvent', (stageEventType) => { @@ -71,24 +65,74 @@ export default class MainAbility extends ServiceExtension { if (stageEventType === window.WindowEventType.WINDOW_ACTIVE) { launcherAbilityManager.checkBundleMonitor(); localEventManager.sendLocalEventSticky(EventConstants.EVENT_REQUEST_FORM_ITEM_VISIBLE, null); - Log.showInfo(TAG, `lifeCycleEvent change: ${stageEventType}`); + Log.showError(TAG, `lifeCycleEvent change: ${stageEventType}`); } }) }; - windowManager.registerWindowEvent(); - navigationBarCommonEventManager.registerNavigationBarEvent(); - // create Launcher entry view windowManager.createWindow(globalThis.desktopContext, windowManager.DESKTOP_WINDOW_NAME, windowManager.DESKTOP_RANK, 'pages/' + windowManager.DESKTOP_WINDOW_NAME, true, registerWinEvent); + await PreferencesHelper.getInstance().initPreference(globalThis.desktopContext); + Log.showError(TAG,'test initLauncher 8'); + + + Log.showError(TAG,'test initLauncher 3'); + // init global const + this.initGlobalConst(); + + Log.showError(TAG,'test initLauncher 4'); + + // init rdb + let dbStore = RdbStoreManager.getInstance(); + Log.showError(TAG,'test initLauncher 6'); + await dbStore.initRdbConfig(); + + Log.showError(TAG,'test initLauncher 7'); + + // PreferencesHelper.getInstance().initPreference(globalThis.desktopContext); + Log.showError(TAG, `test initLauncher 7-8`) + // settingsDataManager.sendToLockscreen() + await dbStore.createTable(); + Log.showError(TAG,'test initLauncher 16'); + // settingsDataManager.sendToLockscreen() + Log.showError(TAG,'test initLauncher 17'); + + Log.showError(TAG,'test initLauncher 12'); + + // init Gesture navigation + this.startGestureNavigation(); + Log.showError(TAG,'test initLauncher 5'); + + + Log.showError(TAG,'test initLauncher 9'); + windowManager.registerWindowEvent(); + Log.showError(TAG,'test initLauncher 10'); + navigationBarCommonEventManager.registerNavigationBarEvent(); + Log.showError(TAG,'test initLauncher 11'); + // // create Launcher entry view + // windowManager.createWindow(globalThis.desktopContext, windowManager.DESKTOP_WINDOW_NAME, + // windowManager.DESKTOP_RANK, 'pages/' + windowManager.DESKTOP_WINDOW_NAME, true, registerWinEvent); + + // Log.showError(TAG,'test initLauncher 16'); + // settingsDataManager.sendToLockscreen() + // Log.showError(TAG,'test initLauncher 17'); + // AppStorage.setOrCreate('loaded', true); + // load recent windowManager.createRecentWindow(); + Log.showError(TAG,'test initLauncher 13'); + this.registerInputConsumer(); + + Log.showError(TAG,'test initLauncher 14'); this.displayManager = DisplayManager.getInstance() + Log.showError(TAG,'test initLauncher 15'); + } + private registerInputConsumer(): void { // register/unregister HOME inputConsumer inputConsumer.on('key', { @@ -139,15 +183,17 @@ export default class MainAbility extends ServiceExtension { } private initGlobalConst(): void { + Log.showError(TAG, `initGlobalConst 开始`) // init create window global function globalThis.createWindowWithName = ((windowName: string, windowRank: number): void => { Log.showInfo(TAG, `createWindowWithName begin windowName: ${windowName}`); if (windowName === windowManager.RECENT_WINDOW_NAME) { windowManager.createRecentWindow(); } else { - windowManager.createWindowIfAbsent(globalThis.desktopContext, windowName, windowRank, 'pages/' + windowName); + windowManager.createWindowIfAbsent(this.context, windowName, windowRank, 'pages/' + windowName); } }); + Log.showError(TAG, `initGlobalConst 结束`) } private startGestureNavigation(): void { diff --git a/product/phone/src/main/ets/pages/EntryView.ets b/product/phone/src/main/ets/pages/EntryView.ets index 87a224e4..6d481b74 100644 --- a/product/phone/src/main/ets/pages/EntryView.ets +++ b/product/phone/src/main/ets/pages/EntryView.ets @@ -13,7 +13,7 @@ * limitations under the License. */ -import { Log } from '@ohos/common'; +import { Log, settingsDataManager } from '@ohos/common'; import { CommonConstants } from '@ohos/common'; import { EventConstants } from '@ohos/common'; import { windowManager } from '@ohos/common'; @@ -29,8 +29,10 @@ import StyleConstants from '../common/constants/StyleConstants'; import { SmartDockStyleConfig } from '@ohos/smartdock'; import PhonePageDesktopGridStyleConfig from '../common/PhonePageDesktopGridStyleConfig'; import { FormStyleConfig } from '@ohos/form'; +import { PreferencesHelper } from '@ohos/common/src/main/ets/default/manager/PreferencesHelper'; +import Wallpaper from './Wallpaper' -const TAG = 'EntryView'; +const TAG = "EntryView"; interface LocalEventListener { onReceiveEvent: (event: string, params: string) => void; @@ -42,6 +44,7 @@ struct EntryView { @StorageLink('screenWidth') screenWidth: number = 0; @StorageLink('screenHeight') @Watch('updateScreenInfo') screenHeight: number = 0; @StorageLink('deviceType') deviceType: string = CommonConstants.DEFAULT_DEVICE_TYPE; + @StorageLink('loaded') loaded: boolean = false; @State workSpaceWidth: number = 0; @State workSpaceHeight: number = 0; @State dockHeight: number = 0; @@ -50,6 +53,7 @@ struct EntryView { onPageShow(): void { Log.showInfo(TAG, 'onPageShow'); + // settingsDataManager.sendToLockscreen() } onPageHide(): void { @@ -64,7 +68,7 @@ struct EntryView { this.updateScreenSize(); this.registerPageDesktopNavigatorStatusChangeEvent(this.mLocalEventListener); - + // settingsDataManager.sendToLockscreen() } registerPageDesktopNavigatorStatusChangeEvent(listener: LocalEventListener): void { @@ -128,37 +132,63 @@ struct EntryView { workSpaceWidth: ${this.workSpaceWidth}, workSpaceHeight: ${this.workSpaceHeight}, dockHeight: ${this.dockHeight}`); } + printlog(): boolean { + Log.showError(TAG, `桌面 build begin`) + return true; + } + build() { - Stack() { - Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Start }) { + if (this.printlog()){ + Stack() { Column() { - PageDesktopLayout(); + Wallpaper(); } - .height(this.workSpaceHeight) - .onAreaChange((oldValue: Area, newValue: Area) => { - Log.showDebug(TAG, `onAreaChange navigationBarStatus: ${this.navigationBarStatus}`); - if (JSON.stringify(oldValue) == JSON.stringify(newValue)) { - return; - } - if (this.navigationBarStatus == '1') { - setTimeout(() => { - SettingsModel.getInstance().setValue(this.navigationBarStatus); - }, 50) - } + .onAppear(()=>{ + Log.showError(TAG, `桌面的壁纸加载完毕`) + AppStorage.setOrCreate('loaded', true); }) - Column() { - SmartDock(); + if (this.loaded) { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Start }) { + Column() { + PageDesktopLayout(); + } + .height(this.workSpaceHeight) + .onAreaChange((oldValue: Area, newValue: Area) => { + Log.showError(TAG, `onAreaChange navigationBarStatus: ${this.navigationBarStatus}`); + try { + if (JSON.stringify(oldValue) == JSON.stringify(newValue)) return; + if (this.navigationBarStatus == "1") { + setTimeout(() => { + SettingsModel.getInstance().setValue(this.navigationBarStatus); + }, 50) + } + } catch (err) { + Log.showError(TAG ,`build > onAreaChange err:${err}`) + } + }) + + Column() { + SmartDock(); + } + .height(this.dockHeight) + } + + FolderOpenComponent(); } - .height(this.dockHeight) } - - FolderOpenComponent(); + .onAppear(()=>{ + Log.showError(TAG, `桌面加载完毕`) + // settingsDataManager.sendToLockscreen() + // AppStorage.setOrCreate('loaded', true); + }) + // .backgroundImage( + // this.loaded ? StyleConstants.DEFAULT_BACKGROUND_IMAGE : '' + // ) + // .backgroundImageSize(ImageSize.Cover) + // .backgroundImagePosition(Alignment.Center) + .width('100%') + .height('100%') } - .backgroundImage(StyleConstants.DEFAULT_BACKGROUND_IMAGE) - .backgroundImageSize(ImageSize.Cover) - .backgroundImagePosition(Alignment.Center) - .width('100%') - .height('100%') } } -- Gitee