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}