From 493987fe741a78b77e7ea1d069bfd10ac131e2a5 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Thu, 12 Aug 2021 09:48:10 +0200 Subject: [PATCH] feat: Cupertino style record dialog --- lib/pages/recording_dialog.dart | 83 ++++++++++++++++++++++----------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/lib/pages/recording_dialog.dart b/lib/pages/recording_dialog.dart index 7f60284a..f7802058 100644 --- a/lib/pages/recording_dialog.dart +++ b/lib/pages/recording_dialog.dart @@ -1,6 +1,8 @@ import 'dart:async'; +import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/utils/sentry_controller.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:path_provider/path_provider.dart'; @@ -81,38 +83,65 @@ class _RecordingDialogState extends State { (maxDecibalWidth / 4).toDouble(); final time = '${_duration.inMinutes.toString().padLeft(2, '0')}:${(_duration.inSeconds % 60).toString().padLeft(2, '0')}'; - print('Decibal width: $decibalWidth'); - return AlertDialog( - content: error - ? Text(L10n.of(context).oopsSomethingWentWrong) - : Row( - children: [ - Container( - width: maxDecibalWidth, - height: maxDecibalWidth, - alignment: Alignment.center, - child: AnimatedContainer( - duration: Duration(milliseconds: 100), - width: decibalWidth, - height: decibalWidth, - decoration: BoxDecoration( - color: Colors.red, - borderRadius: BorderRadius.circular(decibalWidth), - ), + final content = error + ? Text(L10n.of(context).oopsSomethingWentWrong) + : Row( + children: [ + Container( + width: maxDecibalWidth, + height: maxDecibalWidth, + alignment: Alignment.center, + child: AnimatedContainer( + duration: Duration(milliseconds: 100), + width: decibalWidth, + height: decibalWidth, + decoration: BoxDecoration( + color: Colors.red, + borderRadius: BorderRadius.circular(decibalWidth), ), ), - SizedBox(width: 8), - Expanded( - child: Text( - '${L10n.of(context).recording}: $time', - style: TextStyle( - fontSize: 18, - ), + ), + SizedBox(width: 8), + Expanded( + child: Text( + '${L10n.of(context).recording}: $time', + style: TextStyle( + fontSize: 18, ), ), - ], + ), + ], + ); + if (PlatformInfos.isCupertinoStyle) { + return CupertinoAlertDialog( + content: content, + actions: [ + CupertinoDialogAction( + onPressed: () => Navigator.of(context, rootNavigator: false).pop(), + child: Text( + L10n.of(context).cancel.toUpperCase(), + style: TextStyle( + color: + Theme.of(context).textTheme.bodyText2.color.withAlpha(150), + ), ), - actions: [ + ), + if (error != true) + CupertinoDialogAction( + onPressed: () async { + _recorderSubscription?.cancel(); + await _audioRecorder.stop(); + Navigator.of(context, rootNavigator: false) + .pop(_recordedPath); + }, + child: Text(L10n.of(context).send.toUpperCase()), + ), + ], + ); + } + return AlertDialog( + content: content, + actions: [ TextButton( onPressed: () => Navigator.of(context, rootNavigator: false).pop(), child: Text(