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 */ 15import Ability from '@ohos.application.Ability' 16import DistributedObjectModel from '../model/DistributedObjectModel' 17import Logger from '../model/Logger' 18 19const TAG: string = 'MainAbility' 20 21export default class MainAbility extends Ability { 22 onCreate(want, launchParam) { 23 Logger.info(TAG, 'MainAbility onCreate') 24 this.context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC']) 25 let sessionId = want.parameters.sessionId ? want.parameters.sessionId : '' 26 AppStorage.SetOrCreate('sessionId', sessionId) 27 AppStorage.SetOrCreate('objectModel', new DistributedObjectModel()) 28 } 29 30 onDestroy() { 31 Logger.info(TAG, 'MainAbility onDestroy') 32 } 33 34 onWindowStageCreate(windowStage) { 35 // Main window is created, set main page for this ability 36 Logger.info(TAG, 'MainAbility onWindowStageCreate') 37 windowStage.setUIContent(this.context, "pages/Index", null) 38 } 39 40 onWindowStageDestroy() { 41 // Main window is destroyed, release UI related resources 42 Logger.info(TAG, 'MainAbility onWindowStageDestroy') 43 } 44 45 onForeground() { 46 // Ability has brought to foreground 47 Logger.info(TAG, 'MainAbility onForeground') 48 } 49 50 onBackground() { 51 // Ability has back to background 52 Logger.info(TAG, 'MainAbility onBackground') 53 } 54 55 onNewWant(want) { 56 Logger.info(TAG, 'onNewWant') 57 AppStorage.SetOrCreate('sessionId', want.parameters.sessionId) 58 let objectModel = <DistributedObjectModel> AppStorage.Get('objectModel') 59 objectModel.off() 60 AppStorage.SetOrCreate('objectModel', new DistributedObjectModel()) 61 } 62} 63