feat: Cupertino style record dialog

This commit is contained in:
Christian Pauly 2021-08-12 09:48:10 +02:00
parent ca3d409714
commit 493987fe74
1 changed files with 56 additions and 27 deletions

View File

@ -1,6 +1,8 @@
import 'dart:async'; import 'dart:async';
import 'package:fluffychat/utils/platform_infos.dart';
import 'package:fluffychat/utils/sentry_controller.dart'; import 'package:fluffychat/utils/sentry_controller.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
@ -81,38 +83,65 @@ class _RecordingDialogState extends State<RecordingDialog> {
(maxDecibalWidth / 4).toDouble(); (maxDecibalWidth / 4).toDouble();
final time = final time =
'${_duration.inMinutes.toString().padLeft(2, '0')}:${(_duration.inSeconds % 60).toString().padLeft(2, '0')}'; '${_duration.inMinutes.toString().padLeft(2, '0')}:${(_duration.inSeconds % 60).toString().padLeft(2, '0')}';
print('Decibal width: $decibalWidth'); final content = error
return AlertDialog( ? Text(L10n.of(context).oopsSomethingWentWrong)
content: error : Row(
? Text(L10n.of(context).oopsSomethingWentWrong) children: <Widget>[
: Row( Container(
children: <Widget>[ width: maxDecibalWidth,
Container( height: maxDecibalWidth,
width: maxDecibalWidth, alignment: Alignment.center,
height: maxDecibalWidth, child: AnimatedContainer(
alignment: Alignment.center, duration: Duration(milliseconds: 100),
child: AnimatedContainer( width: decibalWidth,
duration: Duration(milliseconds: 100), height: decibalWidth,
width: decibalWidth, decoration: BoxDecoration(
height: decibalWidth, color: Colors.red,
decoration: BoxDecoration( borderRadius: BorderRadius.circular(decibalWidth),
color: Colors.red,
borderRadius: BorderRadius.circular(decibalWidth),
),
), ),
), ),
SizedBox(width: 8), ),
Expanded( SizedBox(width: 8),
child: Text( Expanded(
'${L10n.of(context).recording}: $time', child: Text(
style: TextStyle( '${L10n.of(context).recording}: $time',
fontSize: 18, 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: <Widget>[ ),
if (error != true)
CupertinoDialogAction(
onPressed: () async {
_recorderSubscription?.cancel();
await _audioRecorder.stop();
Navigator.of(context, rootNavigator: false)
.pop<String>(_recordedPath);
},
child: Text(L10n.of(context).send.toUpperCase()),
),
],
);
}
return AlertDialog(
content: content,
actions: [
TextButton( TextButton(
onPressed: () => Navigator.of(context, rootNavigator: false).pop(), onPressed: () => Navigator.of(context, rootNavigator: false).pop(),
child: Text( child: Text(