• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import type Want from '@ohos.application.Want';
2import ServiceExtension from '@ohos.app.ability.ServiceExtensionAbility';
3import CallManagerService from './CallManagerService';
4import rpc from '@ohos.rpc';
5import LogUtils from '../common/utils/LogUtils';
6import DefaultCallData from '../common/struct/TypeUtils';
7import CallManager from '../model/CallManager';
8
9const TAG = 'ServiceAbility';
10
11export default class ServiceAbility extends ServiceExtension {
12  callManagerService: CallManagerService;
13
14  onCreate(want): void {
15    LogUtils.i(TAG, 'onCreate callUI service');
16    this.callManagerService = CallManagerService.getInstance();
17    this.callManagerService.init(this.context);
18  }
19
20  onConnect(want: Want): Stub {
21    LogUtils.i(TAG, 'onConnect callUI service');
22    let callData: DefaultCallData = new DefaultCallData();
23    callData.accountNumber = want.parameters?.accountNumber;
24    callData.videoState = want.parameters?.videoState;
25    callData.callType = want.parameters?.callType;
26    callData.callState = want.parameters?.callState;
27    callData.callId = want.parameters?.callId;
28    callData.startTime = want.parameters?.startTime;
29    callData.accountId = want.parameters?.accountId;
30    callData.isEcc = want.parameters?.isEcc;
31    callData.conferenceState = want.parameters?.conferenceState;
32    this.callManagerService.getCallData(callData);
33    CallManager.getInstance().setServiceConnected(true);
34    return new Stub('ServiceAbility');
35  }
36
37  onDisconnect(): void {
38    LogUtils.i(TAG, 'onDisconnect callUI service');
39    CallManager.getInstance().setServiceConnected(false);
40    this.callManagerService.onDisconnected();
41  }
42
43  onRequest(want: Want, startId: number): void {
44    LogUtils.i(TAG, 'onRequest callUI service');
45  }
46
47  onDestroy(): void {
48    LogUtils.i(TAG, 'onDestroy callUI service');
49    this.callManagerService.removeRegisterListener();
50  }
51}
52
53class Stub extends rpc.RemoteObject {
54  constructor(descriptor) {
55    super(descriptor);
56  }
57
58  onRemoteRequest(code, date, reply, option): boolean {
59    LogUtils.i(TAG, 'Stub onRemoteRequest code:' + code);
60    return true;
61  }
62}