Skip to content

Commit

Permalink
Merge pull request #180 from icodelifee/master
Browse files Browse the repository at this point in the history
Implement dart class models instead using dynamic types and Maps
  • Loading branch information
hiennguyen92 committed Dec 21, 2022
2 parents 3ddc61d + 62c4aba commit 0f03888
Show file tree
Hide file tree
Showing 16 changed files with 875 additions and 299 deletions.
2 changes: 1 addition & 1 deletion example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ apply plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 31
compileSdkVersion 33

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
Expand Down
70 changes: 37 additions & 33 deletions example/lib/calling_page.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:flutter_callkit_incoming/entities/entities.dart';
import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart';
import 'package:flutter_callkit_incoming_example/navigation_service.dart';
import 'package:http/http.dart';
Expand All @@ -11,52 +14,53 @@ class CallingPage extends StatefulWidget {
}

class CallingPageState extends State<CallingPage> {
late dynamic calling;
late CallKitParams? calling;

@override
Widget build(BuildContext context) {
calling = ModalRoute.of(context)!.settings.arguments;
print(calling);
final params = jsonDecode(jsonEncode(ModalRoute.of(context)!.settings.arguments as Map<dynamic, dynamic>));
calling = CallKitParams.fromJson(params);
debugPrint(calling?.toJson().toString());

return Scaffold(
body: Container(
height: MediaQuery.of(context).size.height,
width: double.infinity,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text('Calling...'),
TextButton(
style: ButtonStyle(
foregroundColor:
MaterialStateProperty.all<Color>(Colors.blue),
),
onPressed: () async {
FlutterCallkitIncoming.endCall(calling);
calling = null;
NavigationService.instance.goBack();
await requestHttp('END_CALL');
},
child: Text('End Call'),
)
],
),
)));
body: Container(
height: MediaQuery.of(context).size.height,
width: double.infinity,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text('Calling...'),
TextButton(
style: ButtonStyle(
foregroundColor: MaterialStateProperty.all<Color>(Colors.blue),
),
onPressed: () async {
if (calling != null) {
FlutterCallkitIncoming.endCall(calling!.id!);
calling = null;
}
NavigationService.instance.goBack();
await requestHttp('END_CALL');
},
child: Text('End Call'),
)
],
),
),
),
);
}

//check with https://webhook.site/#!/2748bc41-8599-4093-b8ad-93fd328f1cd2
Future<void> requestHttp(content) async {
get(Uri.parse(
'https://webhook.site/2748bc41-8599-4093-b8ad-93fd328f1cd2?data=$content'));
get(Uri.parse('https://webhook.site/2748bc41-8599-4093-b8ad-93fd328f1cd2?data=$content'));
}

@override
void dispose() {
super.dispose();
if (calling != null) {
FlutterCallkitIncoming.endCall(calling);
}
if (calling != null) FlutterCallkitIncoming.endCall(calling!.id!);
}
}
Loading

0 comments on commit 0f03888

Please sign in to comment.