18779efd5Sopenharmony_ci/** 28779efd5Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 38779efd5Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 48779efd5Sopenharmony_ci * you may not use this file except in compliance with the License. 58779efd5Sopenharmony_ci * You may obtain a copy of the License at 68779efd5Sopenharmony_ci * 78779efd5Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 88779efd5Sopenharmony_ci * 98779efd5Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 108779efd5Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 118779efd5Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 128779efd5Sopenharmony_ci * See the License for the specific language governing permissions and 138779efd5Sopenharmony_ci * limitations under the License. 148779efd5Sopenharmony_ci */ 158779efd5Sopenharmony_ci 168779efd5Sopenharmony_ciimport router from '@ohos.router'; 178779efd5Sopenharmony_ciimport pasteboard from '@ohos.pasteboard'; 188779efd5Sopenharmony_ciimport { HiLog } from '../../../../../common/src/main/ets/util/HiLog'; 198779efd5Sopenharmony_ciimport { StringUtil } from '../../../../../common/src/main/ets/util/StringUtil'; 208779efd5Sopenharmony_ciimport StringFormatUtil from '../util/StringFormatUtil'; 218779efd5Sopenharmony_ciimport { missedCallManager } from '../feature/missedCall/MissedCallManager'; 228779efd5Sopenharmony_ciimport CallRecordPresenter from './dialer/callRecord/CallRecordPresenter'; 238779efd5Sopenharmony_ciimport FavoriteListPresenter from './favorite/FavoriteListPresenter'; 248779efd5Sopenharmony_ci 258779efd5Sopenharmony_ciconst TAG = 'IndexPresenter '; 268779efd5Sopenharmony_ci 278779efd5Sopenharmony_ciexport default class IndexPresenter { 288779efd5Sopenharmony_ci private static instance: IndexPresenter; 298779efd5Sopenharmony_ci 308779efd5Sopenharmony_ci public static getInstance(): IndexPresenter { 318779efd5Sopenharmony_ci if (!IndexPresenter.instance) { 328779efd5Sopenharmony_ci IndexPresenter.instance = new IndexPresenter(); 338779efd5Sopenharmony_ci } 348779efd5Sopenharmony_ci return IndexPresenter.instance; 358779efd5Sopenharmony_ci } 368779efd5Sopenharmony_ci 378779efd5Sopenharmony_ci onPageShow() { 388779efd5Sopenharmony_ci HiLog.i(TAG, 'onPageShow !!!'); 398779efd5Sopenharmony_ci this.cancelMissedCallNotification() 408779efd5Sopenharmony_ci if (parseInt(StringFormatUtil.judgeSysTime()) !== AppStorage.Get('sysTime')) { 418779efd5Sopenharmony_ci HiLog.i(TAG, 'DO requestItem cause systemTime changed'); 428779efd5Sopenharmony_ci CallRecordPresenter.getInstance().requestItem(); 438779efd5Sopenharmony_ci AppStorage.SetOrCreate('sysTime', parseInt(StringFormatUtil.judgeSysTime())); 448779efd5Sopenharmony_ci } 458779efd5Sopenharmony_ci } 468779efd5Sopenharmony_ci 478779efd5Sopenharmony_ci getCurrentUrl(){ 488779efd5Sopenharmony_ci let url = router.getState().path+router.getState().name; 498779efd5Sopenharmony_ci HiLog.i(TAG,'getCurrentUrl:'+url) 508779efd5Sopenharmony_ci return url; 518779efd5Sopenharmony_ci } 528779efd5Sopenharmony_ci 538779efd5Sopenharmony_ci goToPage(url: string, pageIndex?: number, params?) { 548779efd5Sopenharmony_ci HiLog.i(TAG, 'goToPage: ' + url); 558779efd5Sopenharmony_ci if (pageIndex != undefined && router.getState().index >= pageIndex) { 568779efd5Sopenharmony_ci if (url == globalThis.presenterManager?.mainUrl || this.getCurrentUrl() == url) { 578779efd5Sopenharmony_ci router.back({ 588779efd5Sopenharmony_ci url: url, 598779efd5Sopenharmony_ci params: params 608779efd5Sopenharmony_ci }) 618779efd5Sopenharmony_ci return; 628779efd5Sopenharmony_ci } 638779efd5Sopenharmony_ci router.replaceUrl({ 648779efd5Sopenharmony_ci url: url, 658779efd5Sopenharmony_ci params: params 668779efd5Sopenharmony_ci }); 678779efd5Sopenharmony_ci } else { 688779efd5Sopenharmony_ci router.pushUrl({ 698779efd5Sopenharmony_ci url: url, 708779efd5Sopenharmony_ci params: params 718779efd5Sopenharmony_ci }); 728779efd5Sopenharmony_ci } 738779efd5Sopenharmony_ci } 748779efd5Sopenharmony_ci 758779efd5Sopenharmony_ci cancelMissedCallNotification() { 768779efd5Sopenharmony_ci HiLog.i(TAG, `cancelMissedCallNotification`); 778779efd5Sopenharmony_ci missedCallManager.cancelNotification() 788779efd5Sopenharmony_ci } 798779efd5Sopenharmony_ci 808779efd5Sopenharmony_ci aboutToAppear() { 818779efd5Sopenharmony_ci HiLog.i(TAG, 'aboutToAppear !!!'); 828779efd5Sopenharmony_ci AppStorage.SetOrCreate('sysTime', parseInt(StringFormatUtil.judgeSysTime())); 838779efd5Sopenharmony_ci } 848779efd5Sopenharmony_ci 858779efd5Sopenharmony_ci aboutToDisappear() { 868779efd5Sopenharmony_ci HiLog.i(TAG, 'aboutToDisappear !!!'); 878779efd5Sopenharmony_ci } 888779efd5Sopenharmony_ci 898779efd5Sopenharmony_ci getCopy(phoneNumber) { 908779efd5Sopenharmony_ci HiLog.i(TAG, 'Succeeded PasteData is ' + JSON.stringify(phoneNumber)); 918779efd5Sopenharmony_ci let pasteData = pasteboard.createPlainTextData(phoneNumber); 928779efd5Sopenharmony_ci let systemPasteboard = pasteboard.getSystemPasteboard(); 938779efd5Sopenharmony_ci systemPasteboard.setPasteData(pasteData, (err, data) => { 948779efd5Sopenharmony_ci if (err) { 958779efd5Sopenharmony_ci HiLog.e(TAG, 'Failed to set PasteData. Cause: ' + JSON.stringify(err.message)); 968779efd5Sopenharmony_ci return; 978779efd5Sopenharmony_ci } 988779efd5Sopenharmony_ci HiLog.i(TAG, 'Succeeded in setting PasteData.'); 998779efd5Sopenharmony_ci }); 1008779efd5Sopenharmony_ci } 1018779efd5Sopenharmony_ci 1028779efd5Sopenharmony_ci getTabSrc(tabIndex: number, index: number): Resource { 1038779efd5Sopenharmony_ci let imgSrc = $r('app.media.ic_call_filled_normal'); 1048779efd5Sopenharmony_ci if (index === 1) { 1058779efd5Sopenharmony_ci imgSrc = $r('app.media.ic_contacts_normal_filled'); 1068779efd5Sopenharmony_ci } 1078779efd5Sopenharmony_ci if (index === 2) { 1088779efd5Sopenharmony_ci imgSrc = $r('app.media.ic_feature_normal_filled'); 1098779efd5Sopenharmony_ci } 1108779efd5Sopenharmony_ci return imgSrc; 1118779efd5Sopenharmony_ci } 1128779efd5Sopenharmony_ci 1138779efd5Sopenharmony_ci getTabText(tabIndex: number, index: number): Resource { 1148779efd5Sopenharmony_ci let text = $r('app.string.dialer'); 1158779efd5Sopenharmony_ci if (index === 1) { 1168779efd5Sopenharmony_ci text = $r('app.string.contact'); 1178779efd5Sopenharmony_ci } 1188779efd5Sopenharmony_ci if (index === 2) { 1198779efd5Sopenharmony_ci text = $r('app.string.favorite'); 1208779efd5Sopenharmony_ci } 1218779efd5Sopenharmony_ci return text; 1228779efd5Sopenharmony_ci } 1238779efd5Sopenharmony_ci 1248779efd5Sopenharmony_ci getTabTextColor(tabIndex: number, index: number): Resource { 1258779efd5Sopenharmony_ci let color = $r('sys.color.ohos_id_color_bottom_tab_text_off'); 1268779efd5Sopenharmony_ci if (tabIndex === index) { 1278779efd5Sopenharmony_ci color = $r('sys.color.ohos_id_color_connected'); 1288779efd5Sopenharmony_ci } 1298779efd5Sopenharmony_ci return color; 1308779efd5Sopenharmony_ci } 1318779efd5Sopenharmony_ci}