Updated Flutter SDK for Null-Safety
Ported Progress Detail Screen to PlatformScaffold Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
@ -8,10 +8,10 @@ class ColorPickerButton extends StatelessWidget {
|
||||
final void Function(Color) onColorPicked;
|
||||
|
||||
ColorPickerButton({
|
||||
@required this.title,
|
||||
@required this.dialogTitle,
|
||||
@required this.selectedColor,
|
||||
@required this.onColorPicked,
|
||||
required this.title,
|
||||
required this.dialogTitle,
|
||||
required this.selectedColor,
|
||||
required this.onColorPicked,
|
||||
});
|
||||
|
||||
@override
|
||||
@ -37,8 +37,8 @@ class ColorPickerButton extends StatelessWidget {
|
||||
child: Text(title),
|
||||
style: TextButton.styleFrom(
|
||||
primary: useBrightBackground(selectedColor)
|
||||
? appTheme.primaryTextTheme.button.color
|
||||
: appTheme.textTheme.button.color,
|
||||
? appTheme.primaryTextTheme.button!.color
|
||||
: appTheme.textTheme.button!.color,
|
||||
backgroundColor: selectedColor,
|
||||
),
|
||||
);
|
||||
|
@ -8,7 +8,7 @@ class CreateProgressButton extends StatelessWidget {
|
||||
|
||||
final void Function() createProgress;
|
||||
|
||||
const CreateProgressButton({Key key, @required this.createProgress})
|
||||
const CreateProgressButton({Key? key, required this.createProgress})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
|
@ -6,18 +6,18 @@ class DatePickerBtn extends StatelessWidget {
|
||||
final void Function(DateTime) onDatePicked;
|
||||
|
||||
DatePickerBtn({
|
||||
@required this.leadingString,
|
||||
@required this.pickedDate,
|
||||
@required this.onDatePicked,
|
||||
required this.leadingString,
|
||||
required this.pickedDate,
|
||||
required this.onDatePicked,
|
||||
}) : super();
|
||||
|
||||
void _onButtonPressed(BuildContext context) async {
|
||||
onDatePicked(await showDatePicker(
|
||||
onDatePicked((await showDatePicker(
|
||||
context: context,
|
||||
initialDate: pickedDate,
|
||||
firstDate: DateTime(1900),
|
||||
lastDate: DateTime(2100),
|
||||
));
|
||||
))!);
|
||||
}
|
||||
|
||||
@override
|
||||
@ -28,7 +28,7 @@ class DatePickerBtn extends StatelessWidget {
|
||||
child: Text(
|
||||
"$leadingString ${pickedDate.toLocal().toString().split(" ")[0]}"),
|
||||
style: TextButton.styleFrom(
|
||||
primary: appTheme.primaryTextTheme.button.color,
|
||||
primary: appTheme.primaryTextTheme.button!.color,
|
||||
backgroundColor: appTheme.accentColor,
|
||||
),
|
||||
);
|
||||
|
34
lib/ui/buttons/detail_screen_leading_button.dart
Normal file
34
lib/ui/buttons/detail_screen_leading_button.dart
Normal file
@ -0,0 +1,34 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:time_progress_tracker/ui/buttons/platform_action_button.dart';
|
||||
|
||||
class DetailScreenLeadingButton extends StatelessWidget {
|
||||
final bool isEditMode, isEditedTpValid;
|
||||
final void Function() saveTp, editTp;
|
||||
|
||||
const DetailScreenLeadingButton({
|
||||
Key? key,
|
||||
required this.isEditMode,
|
||||
required this.isEditedTpValid,
|
||||
required this.saveTp,
|
||||
required this.editTp,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final ThemeData materialTheme = Theme.of(context);
|
||||
|
||||
if (isEditMode)
|
||||
return PlatformActionButton(
|
||||
heroTag: "saveEditedTimeProgressBTN",
|
||||
icon: Icons.save,
|
||||
materialBackground: Colors.green,
|
||||
onBtnPressed: isEditedTpValid ? saveTp : null);
|
||||
return PlatformActionButton(
|
||||
heroTag: "editTimeProgressBTN",
|
||||
icon: Icons.edit,
|
||||
materialBackground: materialTheme.accentColor,
|
||||
onBtnPressed: editTp,
|
||||
);
|
||||
}
|
||||
}
|
31
lib/ui/buttons/detail_screen_trailing_button.dart
Normal file
31
lib/ui/buttons/detail_screen_trailing_button.dart
Normal file
@ -0,0 +1,31 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:time_progress_tracker/ui/buttons/platform_action_button.dart';
|
||||
|
||||
class DetailScreenTrailingButton extends StatelessWidget {
|
||||
final bool isEditMode;
|
||||
final void Function() cancelEditTp, deleteTp;
|
||||
|
||||
const DetailScreenTrailingButton({
|
||||
Key? key,
|
||||
required this.isEditMode,
|
||||
required this.cancelEditTp,
|
||||
required this.deleteTp,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (isEditMode)
|
||||
return PlatformActionButton(
|
||||
heroTag: "cancelEditTimeProgressBTN",
|
||||
icon: Icons.cancel,
|
||||
materialBackground: Colors.red,
|
||||
onBtnPressed: cancelEditTp);
|
||||
return PlatformActionButton(
|
||||
heroTag: "deleteTimeProgressBTN",
|
||||
icon: Icons.delete,
|
||||
materialBackground: Colors.red,
|
||||
onBtnPressed: deleteTp,
|
||||
);
|
||||
}
|
||||
}
|
@ -6,13 +6,15 @@ import 'package:time_progress_tracker/utils/helper_functions.dart';
|
||||
class PlatformActionButton extends StatelessWidget {
|
||||
final String heroTag;
|
||||
final IconData icon;
|
||||
final void Function() onBtnPressed;
|
||||
final Color? materialBackground;
|
||||
final void Function()? onBtnPressed;
|
||||
|
||||
const PlatformActionButton({
|
||||
Key key,
|
||||
@required this.heroTag,
|
||||
@required this.icon,
|
||||
@required this.onBtnPressed,
|
||||
Key? key,
|
||||
required this.heroTag,
|
||||
required this.icon,
|
||||
this.materialBackground,
|
||||
required this.onBtnPressed,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
@ -32,6 +34,7 @@ class PlatformActionButton extends StatelessWidget {
|
||||
return FloatingActionButton(
|
||||
heroTag: heroTag,
|
||||
child: Icon(icon),
|
||||
backgroundColor: materialBackground,
|
||||
onPressed: onBtnPressed,
|
||||
);
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ class SelectDurationBtn extends StatelessWidget {
|
||||
final void Function(Duration) updateDuration;
|
||||
|
||||
SelectDurationBtn({
|
||||
@required this.duration,
|
||||
@required this.updateDuration,
|
||||
required this.duration,
|
||||
required this.updateDuration,
|
||||
});
|
||||
|
||||
void _onPickerConfirm(Picker picker, List<int> values) {
|
||||
@ -40,7 +40,7 @@ class SelectDurationBtn extends StatelessWidget {
|
||||
onPressed: () => _onButtonPressed(context, appTheme),
|
||||
child: Text("$years Years $months Months $days Days"),
|
||||
style: TextButton.styleFrom(
|
||||
primary: appTheme.primaryTextTheme.button.color,
|
||||
primary: appTheme.primaryTextTheme.button!.color,
|
||||
backgroundColor: appTheme.accentColor,
|
||||
));
|
||||
}
|
||||
|
Reference in New Issue
Block a user