Professional Documents
Culture Documents
import 'package:flutter/material.dart';
import 'package:flutter_duration_picker/flutter_duration_picker.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:flutter_phone_state/flutter_phone_state.dart';
@override
return MaterialApp(
);
@override
FlutterLocalNotificationsPlugin _notificationsPlugin;
PhoneState _phoneState;
@override
void initState() {
super.initState();
_notificationsPlugin = FlutterLocalNotificationsPlugin();
_notificationsPlugin.initialize(initializationSettings);
// Initialize the phone state listener
_phoneState = PhoneState();
_phoneState.onCallStateChanged.listen(_onCallStateChanged);
if (callState == PhoneCallState.ringing) {
_resetCallDuration();
_startCallDurationTimer();
_stopCallDurationTimer();
void _resetCallDuration() {
setState(() {
_callDuration = Duration.zero;
});
void _startCallDurationTimer() {
setState(() {
});
_showNotification();
_stopCallDurationTimer();
}
});
void _stopCallDurationTimer() {
setState(() {
_callDuration = Duration.zero;
});
'channelId',
'Call Timer',
importance: Importance.high,
priority: Priority.high,
playSound: true,
sound: RawResourceAndroidNotificationSound('notification_sound'),
);
@override
return Scaffold(
appBar: AppBar(
title: Text('Call Timer'),
),