• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2021-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 Log from '../../../../../../../../common/src/main/ets/default/Log';
17import { FASlotName } from '../../../../../../../../common/src/main/ets/default/Constants';
18import { TintContentInfo, getOrCreateTintContentInfo
19} from '../../../../../../../../common/src/main/ets/default/TintStateManager';
20import createOrGet from '../../../../../../../../common/src/main/ets/default/SingleInstanceHelper';
21import BluetoothService from '../model/BluetoothService';
22
23export const BLUETOOTH_OPEN_STATUS_KEY = 'BluetoothOpenStatus';
24
25const TAG = 'BluetoothVM';
26
27export class BluetoothVM {
28  mIsStart = false;
29  mBluetoothOpenStatus: SubscribedAbstractProperty<boolean>;
30  mTintContentInfo: TintContentInfo = getOrCreateTintContentInfo(FASlotName.BLUETOOTH);
31
32  constructor() {
33    Log.showDebug(TAG, 'constructor');
34  }
35
36  initViewModel(): void {
37    if (this.mIsStart) {
38      return;
39    }
40    Log.showDebug(TAG, 'initViewModel ');
41    this.mIsStart = true;
42    this.mBluetoothOpenStatus = AppStorage.SetAndLink(BLUETOOTH_OPEN_STATUS_KEY, false);
43    BluetoothService.startService();
44    BluetoothService.registerListener(this);
45  }
46
47  updateState(state: boolean): void {
48    Log.showInfo(TAG, `updateState, state: ${state} this.mBluetoothOpenStatus ${this.mBluetoothOpenStatus}`);
49    this.mBluetoothOpenStatus.set(state);
50  }
51
52  enableBluetooth(): boolean{
53    return BluetoothService.enableBluetooth();
54  }
55
56  disableBluetooth(): boolean{
57    return BluetoothService.disableBluetooth();
58  }
59
60  getTintContentInfo(): TintContentInfo {
61    return this.mTintContentInfo;
62  }
63}
64
65let sBluetoothVM = createOrGet(BluetoothVM, TAG);
66
67export default sBluetoothVM;