Files
TPSchedule/mobile/lib/services/notification_service.dart
T

35 lines
968 B
Dart

import '../domain/app_settings.dart';
import '../domain/course_occurrence.dart';
enum ReminderStatus { off, permissionDenied, exact, inexact, error }
class ReminderResult {
const ReminderResult(
this.status, {
this.scheduledCount = 0,
this.message = '',
});
final ReminderStatus status;
final int scheduledCount;
final String message;
}
abstract class NotificationService {
Future<ReminderResult> reconcile(
List<CourseOccurrence> occurrences,
AppSettings settings,
DateTime now,
);
Future<void> requestPermissions();
Future<void> cancelOwned();
Future<String> sendTestReminder({required bool scheduled}) async =>
'当前环境不支持通知测试';
Future<Map<String, Object?>> diagnose() async => {};
Future<void> openSettings({required bool background}) async {}
}
class ReminderSetupException implements Exception {
const ReminderSetupException(this.code, this.message);
final String code, message;
}