Added success tone

merge-requests/46/head
FaizHashmiCS22 3 years ago
parent b2e03b2647
commit 034436425a

Binary file not shown.

@ -1,11 +1,41 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:just_audio/just_audio.dart';
import 'package:lottie/lottie.dart'; import 'package:lottie/lottie.dart';
class SuccessDialog extends StatelessWidget { class SuccessDialog extends StatefulWidget {
bool isFromDashboard; bool isFromDashboard;
SuccessDialog(this.isFromDashboard); SuccessDialog(this.isFromDashboard);
@override
State<SuccessDialog> createState() => _SuccessDialogState();
}
class _SuccessDialogState extends State<SuccessDialog> with TickerProviderStateMixin {
late AnimationController _controller;
@override
void initState() {
_controller = AnimationController(vsync: this);
super.initState();
}
Future<void> playSuccessSound() async {
AudioPlayer player = AudioPlayer();
String audioAsset = "";
if (Platform.isAndroid) {
audioAsset = "assets/audio/success_tone_android.mp3";
} else {
audioAsset = "assets/audio/success_tone_ios.caf";
}
await player.setAsset(audioAsset);
await player.load();
player.play();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double size = MediaQuery.of(context).size.width / 1.8; double size = MediaQuery.of(context).size.width / 1.8;
@ -18,13 +48,22 @@ class SuccessDialog extends StatelessWidget {
width: size, width: size,
height: size, height: size,
child: Card( child: Card(
child: Lottie.asset('assets/lottie/lt_success.json', repeat: false, reverse: false, onLoaded: (v) { child: Lottie.asset(
print("calling_lottie " + v.seconds.toString()); 'assets/lottie/lt_success.json',
Future.delayed(Duration(seconds: 2)).then((value) { repeat: false,
Navigator.pop(context); reverse: false,
if (isFromDashboard) Navigator.pop(context); controller: _controller,
}); onLoaded: (LottieComposition v) async {
}), print("calling_lottie " + v.seconds.toString());
await playSuccessSound();
_controller
..duration = v.duration
..forward().whenComplete(() async {
Navigator.pop(context);
if (widget.isFromDashboard) Navigator.pop(context);
});
},
),
), ),
), ),
], ],

@ -92,6 +92,7 @@ dependencies:
video_player: ^2.4.7 video_player: ^2.4.7
just_audio: ^0.9.30
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
@ -124,6 +125,7 @@ flutter:
- assets/langs/ - assets/langs/
- assets/icons/ - assets/icons/
- assets/lottie/ - assets/lottie/
- assets/audio/
- assets/images/ - assets/images/
- assets/images/login/ - assets/images/login/
- assets/icons/chat/ - assets/icons/chat/

Loading…
Cancel
Save