100aff185Sopenharmony_ci/* 200aff185Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 300aff185Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 400aff185Sopenharmony_ci * you may not use this file except in compliance with the License. 500aff185Sopenharmony_ci * You may obtain a copy of the License at 600aff185Sopenharmony_ci * 700aff185Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 800aff185Sopenharmony_ci * 900aff185Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1000aff185Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1100aff185Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1200aff185Sopenharmony_ci * See the License for the specific language governing permissions and 1300aff185Sopenharmony_ci * limitations under the License. 1400aff185Sopenharmony_ci */ 1500aff185Sopenharmony_ci 1600aff185Sopenharmony_ciimport { TimelineDataSource } from './TimelineDataSource'; 1700aff185Sopenharmony_ciimport { BroadCast, Constants, Log } from '@ohos/common'; 1800aff185Sopenharmony_ciimport { Constants as TimeLineConstants } from './Constants'; 1900aff185Sopenharmony_ci 2000aff185Sopenharmony_ciconst TAG: string = 'timeline_TimelineDataSourceManager'; 2100aff185Sopenharmony_ci 2200aff185Sopenharmony_ciexport class TimelineDataSourceManager { 2300aff185Sopenharmony_ci private broadCast: BroadCast; 2400aff185Sopenharmony_ci private dataSource: TimelineDataSource; 2500aff185Sopenharmony_ci 2600aff185Sopenharmony_ci private constructor() { 2700aff185Sopenharmony_ci Log.info(TAG, 'constructor'); 2800aff185Sopenharmony_ci this.broadCast = new BroadCast(); 2900aff185Sopenharmony_ci this.dataSource = new TimelineDataSource(Constants.DEFAULT_SLIDING_WIN_SIZE, this.broadCast); 3000aff185Sopenharmony_ci this.dataSource.registerTimelineObserver(); 3100aff185Sopenharmony_ci } 3200aff185Sopenharmony_ci 3300aff185Sopenharmony_ci public static getInstance(): TimelineDataSourceManager { 3400aff185Sopenharmony_ci if (AppStorage.Get(TimeLineConstants.APP_KEY_GROUP_DATA_SOURCE_MANAGER) == null) { 3500aff185Sopenharmony_ci AppStorage.setOrCreate(TimeLineConstants.APP_KEY_GROUP_DATA_SOURCE_MANAGER, new TimelineDataSourceManager()); 3600aff185Sopenharmony_ci } 3700aff185Sopenharmony_ci return AppStorage.Get(TimeLineConstants.APP_KEY_GROUP_DATA_SOURCE_MANAGER); 3800aff185Sopenharmony_ci } 3900aff185Sopenharmony_ci 4000aff185Sopenharmony_ci public getBroadCast(): BroadCast { 4100aff185Sopenharmony_ci return this.broadCast; 4200aff185Sopenharmony_ci } 4300aff185Sopenharmony_ci 4400aff185Sopenharmony_ci public getDataSource(): TimelineDataSource { 4500aff185Sopenharmony_ci return this.dataSource; 4600aff185Sopenharmony_ci } 4700aff185Sopenharmony_ci}