• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2022 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
16import missionManager from '@ohos.application.missionManager';
17import image from '@ohos.multimedia.image';
18import MissionInfo from '../../../../../../base/src/main/ets/default/bean/MisssionInfo';
19import { LauncherAbilityManager, Logger } from '@ohos/base';
20
21const NUMMAX: number = 20
22const TAG: string = 'MissionModel'
23
24class MissionModel {
25  async getMissionInfos(context: Context) {
26    let missionInfoList: Array<MissionInfo> = new Array<MissionInfo>()
27    let missionInfos = await missionManager.getMissionInfos('', NUMMAX)
28    Logger.info(TAG, `getMissionInfos = ${missionInfos.length}`)
29    let launcherAbilityManager = LauncherAbilityManager.getInstance(context)
30    for (let recentItem of missionInfos) {
31      let missionInfo = new MissionInfo()
32      missionInfo.missionId = recentItem.missionId
33      missionInfo.bundleName = recentItem.want.bundleName!
34      missionInfo.abilityName = recentItem.want.abilityName!
35      missionInfo.lockedState = recentItem.lockedState
36      let appInfo = await launcherAbilityManager.getAppInfoByBundleName(missionInfo.bundleName)
37      if (appInfo == undefined) {
38        continue
39      }
40      missionInfo.appIconId = appInfo.appIconId!
41      missionInfo.appName = appInfo.appName!
42      Logger.info(TAG, `missionInfo = ${JSON.stringify(missionInfo)}`)
43      missionInfoList.push(missionInfo)
44    }
45    Logger.info(TAG, `getMissionInfos result, count= ${JSON.stringify(missionInfoList)}`)
46    return missionInfoList
47  }
48
49  async getSnapShot(missionId: number) {
50    let missionSnapshot = await missionManager.getMissionSnapShot('', missionId)
51    let snapshot: image.PixelMap = missionSnapshot.snapshot
52    return snapshot
53  }
54
55  async lockMission(missionId: number) {
56    await missionManager.lockMission(missionId)
57  }
58
59  async unLockMission(missionId: number) {
60    await missionManager.unlockMission(missionId)
61  }
62
63  async clearMission(missionId: number) {
64    await missionManager.clearMission(missionId)
65  }
66
67  async clearAllMission() {
68    await missionManager.clearAllMissions()
69  }
70}
71
72export default new MissionModel()