10fbfc30aSopenharmony_ci/** 20fbfc30aSopenharmony_ci * @file Describe the file 30fbfc30aSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 40fbfc30aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 50fbfc30aSopenharmony_ci * you may not use this file except in compliance with the License. 60fbfc30aSopenharmony_ci * You may obtain a copy of the License at 70fbfc30aSopenharmony_ci * 80fbfc30aSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 90fbfc30aSopenharmony_ci * 100fbfc30aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 110fbfc30aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 120fbfc30aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130fbfc30aSopenharmony_ci * See the License for the specific language governing permissions and 140fbfc30aSopenharmony_ci * limitations under the License. 150fbfc30aSopenharmony_ci */ 160fbfc30aSopenharmony_ci 170fbfc30aSopenharmony_ciimport { sendBroadcast } from '@ohos/common/src/main/ets/broadcast/BroadcastHelper'; 180fbfc30aSopenharmony_ciimport { CommonEventConstants } from '../CommonEventConstants'; 190fbfc30aSopenharmony_ciimport { runScheduleNextAlarm } from '../../processor/alerts/AlertsProcessor'; 200fbfc30aSopenharmony_ci 210fbfc30aSopenharmony_ci/** 220fbfc30aSopenharmony_ci * 在需要提醒的时间发送 Event_Reminder 广播通知,如果提醒时间小于当前时间,则返回false 230fbfc30aSopenharmony_ci * 240fbfc30aSopenharmony_ci * @param nextAlarmTime 提醒的时间 250fbfc30aSopenharmony_ci * @return 提醒时间是否小于当前时间 260fbfc30aSopenharmony_ci */ 270fbfc30aSopenharmony_ciexport async function notifyEventReminder(nextAlarmTime: number): Promise<boolean> { 280fbfc30aSopenharmony_ci // 设置定时器发送 EVENT_REMINDER 广播 290fbfc30aSopenharmony_ci let currentMillis = new Date().getTime(); 300fbfc30aSopenharmony_ci if (nextAlarmTime < currentMillis) { 310fbfc30aSopenharmony_ci return false; 320fbfc30aSopenharmony_ci } 330fbfc30aSopenharmony_ci setTimeout(() => { 340fbfc30aSopenharmony_ci sendBroadcast(CommonEventConstants.EVENT_REMINDER); 350fbfc30aSopenharmony_ci runScheduleNextAlarm(); 360fbfc30aSopenharmony_ci }, nextAlarmTime - currentMillis); 370fbfc30aSopenharmony_ci return true; 380fbfc30aSopenharmony_ci}