服务卡片PIN桌面

Signed-off-by: liubaibao <liubaibao2@huawei.com>
This commit is contained in:
liubaibao 2022-07-29 15:28:59 +08:00
parent dbef3259f0
commit 8fa09358b0
8 changed files with 106 additions and 2 deletions

View File

@ -27,6 +27,7 @@ export { SettingItemInfo } from './src/main/ets/default/bean/SettingItemInfo'
export { RecentMissionInfo } from './src/main/ets/default/bean/RecentMissionInfo'
export { RecentBundleMissionInfo } from './src/main/ets/default/bean/RecentBundleMissionInfo'
export { EventConstants } from './src/main/ets/default/constants/EventConstants'
export { FormConstants } from './src/main/ets/default/constants/FormConstants'
export { StyleConstants } from './src/main/ets/default/constants/StyleConstants'
export { CommonConstants } from './src/main/ets/default/constants/CommonConstants'
export { PresetStyleConstants } from './src/main/ets/default/constants/PresetStyleConstants'

View File

@ -0,0 +1,31 @@
/**
* Copyright (c) 2021-2022 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.
*/
/**
* Constants of events that will be registered to system.
*/
export const FormConstants = {
// publish form action
ACTION_PUBLISH_FORM: "action.form.publish",
// publish card parameters
ID_PARAM: "ohos.extra.param.key.form_identity",
NAME_PARAM: "ohos.extra.param.key.form_name",
BUNDLE_PARAM: "ohos.extra.param.key.bundle_name",
ABILITY_PARAM: "ohos.extra.param.key.ability_name",
MODULE_PARAM: "ohos.extra.param.key.module_name",
DIMENSION_PARAM: "ohos.extra.param.key.form_dimension",
TEMPORARY_PARAM:"ohos.extra.param.key.form_temporary"
};

View File

@ -14,9 +14,11 @@
*/
import formManagerAbility from '@ohos.application.formHost';
import { FormConstants } from '@ohos/common';
import { Log } from '../utils/Log';
import { CardItemInfo } from '../bean/CardItemInfo';
import { CommonConstants } from '../constants/CommonConstants';
import { launcherAbilityManager } from './LauncherAbilityManager';
const TAG = 'FormManager';
@ -104,6 +106,50 @@ export class FormManager {
return cardItemInfoList;
}
/**
* get formCardItem by want parameters
*
* @param parameters
* @return formCardItem
*/
async getFormCardItemByWant(params) {
Log.showInfo(TAG, 'getFormCardItemByWant');
let formCardItem: any = {};
formCardItem.id = params[FormConstants.ID_PARAM];
formCardItem.name = params[FormConstants.NAME_PARAM];
formCardItem.bundleName = params[FormConstants.BUNDLE_PARAM];
formCardItem.abilityName = params[FormConstants.ABILITY_PARAM];
formCardItem.moduleName = params[FormConstants.MODULE_PARAM];
formCardItem.dimension = params[FormConstants.DIMENSION_PARAM];
formCardItem.formConfigAbility = await this.getFormConfigAbility(params[FormConstants.BUNDLE_PARAM],
params[FormConstants.MODULE_PARAM], params[FormConstants.ABILITY_PARAM], params[FormConstants.NAME_PARAM]);
const appInfo = await launcherAbilityManager.getAppInfoByBundleName(params[FormConstants.BUNDLE_PARAM] ,
params[FormConstants.ABILITY_PARAM]);
formCardItem.appLabelId = appInfo.appLabelId;
return formCardItem;
}
/**
* get formConfigAbility by bundleName moduleName abilityName and cardName
*
* @param bundle
* @param moduleName
* @param abilityName
* @param cardName
* @return formConfigAbility
*/
async getFormConfigAbility(bundle:string, moduleName:string, abilityName:string, cardName:string) : Promise<string> {
const formList = await formManagerAbility.getFormsInfo(bundle);
let formConfigAbility = "";
for (const formItem of formList) {
if(formItem.moduleName == moduleName && formItem.abilityName == abilityName && formItem.name == cardName ) {
formConfigAbility = formItem.formConfigAbility;
break;
}
}
return formConfigAbility;
}
/**
* get form info by bundleName and moduleName
*

View File

@ -32,6 +32,7 @@ import { MenuInfo } from '@ohos/common';
import { CardItemInfo } from '@ohos/common';
import { BigFolderModel } from '@ohos/bigfolder';
import { FormDetailLayoutConfig } from '@ohos/form';
import { localEventManager } from '@ohos/common';
import PageDesktopModel from '../model/PageDesktopModel';
import PagedesktopConstants from '../common/constants/PagedesktopConstants';
import { PageDesktopGridStyleConfig } from '../common/PageDesktopGridStyleConfig';
@ -1342,6 +1343,17 @@ export default class PageDesktopViewModel extends BaseViewModel {
this.jumpTo(abilityName, bundleName, moduleName);
}
/**
* other app publish card to pageDesktop
*
* @param parameters
*/
async publishCardToDesktop(parameters:any) {
Log.showInfo(TAG, 'publishCardToDesktop');
const formItem = await FormManager.getInstance().getFormCardItemByWant(parameters);
localEventManager.sendLocalEventSticky(EventConstants.EVENT_REQUEST_PAGEDESK_FORM_ITEM_ADD, formItem);
}
/**
* add card to pageDesktop
* @param appInfo

View File

@ -19,9 +19,11 @@ import Want from '@ohos.application.Want';
import { Log } from '@ohos/common';
import { windowManager } from '@ohos/common';
import { RdbStoreManager } from '@ohos/common';
import { FormConstants } from '@ohos/common';
import { GestureNavigationManager } from '@ohos/gesturenavigation';
import StyleConstants from '../common/constants/StyleConstants';
import { navigationBarCommonEventManager } from '@ohos/common';
import PageDesktopViewModel from '../../../../../../feature/pagedesktop/src/main/ets/default/viewmodel/PageDesktopViewModel';
const TAG = 'LauncherMainAbility';
@ -88,6 +90,10 @@ export default class MainAbility extends ServiceExtension {
onRequest(want: Want, startId: number): void {
Log.showInfo(TAG,`onRequest, want: ${want.abilityName}`);
// if app publish card to launcher
if(want.action == FormConstants.ACTION_PUBLISH_FORM) {
PageDesktopViewModel.getInstance().publishCardToDesktop(want.parameters);
}
windowManager.minimizeAllApps();
windowManager.hideWindow(windowManager.RECENT_WINDOW_NAME);
windowManager.destroyWindow(windowManager.APP_CENTER_WINDOW_NAME);

View File

@ -23,7 +23,8 @@
],
"actions": [
"action.system.home",
"com.ohos.action.main"
"com.ohos.action.main",
"action.form.publish"
]
}
],

View File

@ -19,9 +19,11 @@ import Want from '@ohos.application.Want';
import { Log } from '@ohos/common';
import { windowManager } from '@ohos/common';
import { RdbStoreManager } from '@ohos/common';
import { FormConstants } from '@ohos/common';
import { GestureNavigationManager } from '@ohos/gesturenavigation';
import StyleConstants from '../common/constants/StyleConstants';
import { navigationBarCommonEventManager } from '@ohos/common';
import PageDesktopViewModel from '../../../../../../feature/pagedesktop/src/main/ets/default/viewmodel/PageDesktopViewModel';
const TAG = 'LauncherMainAbility';
@ -88,6 +90,10 @@ export default class MainAbility extends ServiceExtension {
onRequest(want: Want, startId: number): void {
Log.showInfo(TAG,`onRequest, want:${want.abilityName}`);
// if app publish card to launcher
if(want.action == FormConstants.ACTION_PUBLISH_FORM) {
PageDesktopViewModel.getInstance().publishCardToDesktop(want.parameters);
}
windowManager.minimizeAllApps();
windowManager.hideWindow(windowManager.RECENT_WINDOW_NAME);
this.closeFolder();

View File

@ -23,7 +23,8 @@
],
"actions": [
"action.system.home",
"com.ohos.action.main"
"com.ohos.action.main",
"action.form.publish"
]
}
],