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 { TimelineDataSource } from './TimelineDataSource'; 17import { BroadCast, Constants, Log } from '@ohos/common'; 18import { Constants as TimeLineConstants } from './Constants'; 19 20const TAG: string = 'timeline_TimelineDataSourceManager'; 21 22export class TimelineDataSourceManager { 23 private broadCast: BroadCast; 24 private dataSource: TimelineDataSource; 25 26 private constructor() { 27 Log.info(TAG, 'constructor'); 28 this.broadCast = new BroadCast(); 29 this.dataSource = new TimelineDataSource(Constants.DEFAULT_SLIDING_WIN_SIZE, this.broadCast); 30 this.dataSource.registerTimelineObserver(); 31 } 32 33 public static getInstance(): TimelineDataSourceManager { 34 if (AppStorage.Get(TimeLineConstants.APP_KEY_GROUP_DATA_SOURCE_MANAGER) == null) { 35 AppStorage.setOrCreate(TimeLineConstants.APP_KEY_GROUP_DATA_SOURCE_MANAGER, new TimelineDataSourceManager()); 36 } 37 return AppStorage.Get(TimeLineConstants.APP_KEY_GROUP_DATA_SOURCE_MANAGER); 38 } 39 40 public getBroadCast(): BroadCast { 41 return this.broadCast; 42 } 43 44 public getDataSource(): TimelineDataSource { 45 return this.dataSource; 46 } 47}