0 purchases
call mode
call_mode #
A plugin for getting and listening to a current call mode
Basic information #
There are currently implemented only following call modes:
inProgress
ringing
none
A call is currently active
Incoming call ringing
No active or ringing calls
Getting Started #
Add the plugin to your dependencies in pubspec.yaml
dependencies:
call_mode: ^0.1.0
copied to clipboard
Run the following command to get the package:
flutter pub get
copied to clipboard
Import plugin to your dart file
import 'package:call_mode/call_mode.dart';
copied to clipboard
Usage #
Getting current call mode #
You can get current call mode using CallModePlugin.instance.getCallMode() method.
Listening to call mode changes #
There are 2 ways to listen to call mode changes
Using CallModePlugin
Add listener
void someFunction() {
CallModePlugin.instance.addListener(_callModeListener);
}
void _callModeListener(CallMode mode) {
// TODO: your logic
}
copied to clipboard
Remove listener when you're done
void dispose() {
CallModePlugin.instance.removeListener(_callModeListener);
}
copied to clipboard
Using CallModeListener or CallModeBuilder widgets
CallModeListener
void _callModeListener(BuildContext context, CallMode mode) {
// TODO: your logic
}
@override
Widget build() {
return CallModeListener(
listener: _callModeListener,
child: YourWidget(),
);
}
copied to clipboard
CallModeBuilder
@override
Widget build() {
return CallModeBuilder(
builder: (context, callMode) {
// TODO: your widgets
},
);
}
copied to clipboard
Additional methods #
You can configure how often will an underlying system be checking for a call state.
Use CallModePlugin.instance.setListenerInterval(Duration duration) method.
!!! WARNING !!!
This method will affect ALL listeners in your app, including ones that are used inside
CallModeBuilder's and CallModeListener's. It is because there is only one state watcher
on platform side.
Platform implementations #
Android
iOS
inProgress
AudioManager.MODE_IN_CALL or AudioManager.MODE_IN_COMMUNICATION
Any CXCall has hasEnded == false and hasConnected == true
ringing
AudioManager.MODE_RINGTONE
Any CXCall has hasEnded == false and hasConnected == false
none
Any other AudioManager mode
No CXCall's or all CXCall's have hasEnded == true
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.