Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Myzel394 committed Oct 27, 2023
2 parents 5bb3fa0 + 612c7ed commit b0487d1
Show file tree
Hide file tree
Showing 7 changed files with 110 additions and 113 deletions.
2 changes: 1 addition & 1 deletion lib/constants/values.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const LOCATION_INTERVAL = Duration(minutes: 1);
const TRANSFER_DATA_USERNAME = "locus_transfer";
final TRANSFER_SUCCESS_MESSAGE = Uint8List.fromList([1, 2, 3, 4]);

const CURRENT_APP_VERSION = "0.15.1";
const CURRENT_APP_VERSION = "0.15.2";

const LOG_TAG = "LocusLog";

Expand Down
13 changes: 9 additions & 4 deletions lib/screens/SharesOverviewScreen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,15 @@ class _SharesOverviewScreenState extends State<SharesOverviewScreen> {
floatingActionButton: OpenContainer(
transitionDuration: const Duration(milliseconds: 500),
transitionType: ContainerTransitionType.fadeThrough,
openBuilder: (_, action) => CreateTaskScreen(
onCreated: () {
Navigator.pop(context);
},
openBuilder: (_, action) => Scaffold(
appBar: AppBar(
title: Text(l10n.sharesOverviewScreen_createTask_action_create),
),
body: CreateTaskScreen(
onCreated: () {
Navigator.pop(context);
},
),
),
closedBuilder: (context, action) => InkWell(
onTap: action,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,16 @@ class _EmptyScreenState extends State<EmptyScreen> {
OpenContainer(
transitionDuration: const Duration(milliseconds: 700),
transitionType: ContainerTransitionType.fade,
openBuilder: (context, action) => CreateTaskScreen(
onCreated: () {
Navigator.pop(context);
},
openBuilder: (context, action) => PlatformScaffold(
appBar: PlatformAppBar(
title: Text(
l10n.sharesOverviewScreen_createTask_action_create),
),
body: CreateTaskScreen(
onCreated: () {
Navigator.pop(context);
},
),
),
closedShape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Expand Down
4 changes: 2 additions & 2 deletions lib/widgets/ModalSheetContent.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
import 'package:locus/services/settings_service/index.dart';
import 'package:locus/utils/theme.dart';
import 'package:provider/provider.dart';

import '../constants/spacing.dart';
import 'package:locus/services/settings_service/index.dart';

class ModalSheetContent extends StatelessWidget {
final String title;
Expand Down Expand Up @@ -61,7 +61,7 @@ class ModalSheetContent extends StatelessWidget {
style: getCaptionTextStyle(context),
),
],
const SizedBox(height: LARGE_SPACE),
if (isMaterial(context)) const SizedBox(height: LARGE_SPACE),
...children,
if (submitLabel != null) ...[
const SizedBox(height: LARGE_SPACE),
Expand Down
3 changes: 3 additions & 0 deletions lib/widgets/TimerWidget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,14 @@ class TimerController extends ChangeNotifier {

class TimerWidget extends StatefulWidget {
final TimerController? controller;
final ScrollController? scrollController;
final List<TaskRuntimeTimer> timers;
final bool allowEdit;
final ScrollPhysics? physics;

const TimerWidget({
this.controller,
this.scrollController,
this.timers = const [],
this.allowEdit = true,
this.physics,
Expand Down Expand Up @@ -126,6 +128,7 @@ class _TimerWidgetState extends State<TimerWidget> {
Widget build(BuildContext context) {
return ListView.builder(
shrinkWrap: true,
controller: widget.scrollController,
physics: widget.physics,
itemCount: _controller.timers.length,
itemBuilder: (_, index) {
Expand Down
185 changes: 84 additions & 101 deletions lib/widgets/TimerWidgetSheet.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,62 +52,45 @@ class _TimerWidgetSheetState extends State<TimerWidgetSheet> {
final l10n = AppLocalizations.of(context);

return DraggableScrollableSheet(
initialChildSize: 0.6,
minChildSize: 0.6,
maxChildSize: 0.6,
initialChildSize: 0.5,
minChildSize: 0.5,
maxChildSize: 1,
expand: false,
builder: (_, __) => ModalSheet(
child: ModalSheetContent(
title: l10n.detailsTimersLabel,
submitLabel: l10n.closePositiveSheetAction,
onSubmit: (widget.controller.timers.isEmpty && !widget.allowEmpty)
? null
: () {
Navigator.of(context).pop(widget.controller.timers);
},
children: [
if (widget.controller.timers.isNotEmpty) ...[
Expanded(
child: TimerWidget(
builder: (context, controller) => ModalSheet(
child: SingleChildScrollView(
controller: controller,
child: ModalSheetContent(
title: l10n.detailsTimersLabel,
submitLabel: l10n.closePositiveSheetAction,
onSubmit: (widget.controller.timers.isEmpty && !widget.allowEmpty)
? null
: () {
Navigator.of(context).pop(widget.controller.timers);
},
children: [
if (widget.controller.timers.isNotEmpty) ...[
TimerWidget(
controller: widget.controller,
physics: const NeverScrollableScrollPhysics(),
),
),
const SizedBox(height: SMALL_SPACE),
if (findNextStartDate(widget.controller.timers) == null)
Text(l10n.timer_executionStartsImmediately)
else
Text(l10n.timer_nextExecution(
findNextStartDate(widget.controller.timers)!)),
if (widget.controller.timers
.any((timer) => timer.isInfinite())) ...[
const SizedBox(height: SMALL_SPACE),
WarningText(l10n.timer_runsInfiniteMessage),
if (findNextStartDate(widget.controller.timers) == null)
Text(l10n.timer_executionStartsImmediately)
else
Text(l10n.timer_nextExecution(
findNextStartDate(widget.controller.timers)!)),
if (widget.controller.timers
.any((timer) => timer.isInfinite())) ...[
const SizedBox(height: SMALL_SPACE),
WarningText(l10n.timer_runsInfiniteMessage),
],
],
],
const SizedBox(height: MEDIUM_SPACE),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
PlatformPopup<String>(
type: PlatformPopupType.longPress,
items: List<PlatformPopupMenuItem<String>>.from(
WEEKDAY_TIMERS.entries.map(
(entry) => PlatformPopupMenuItem<String>(
label: Text(entry.value["name"] as String),
onPressed: () {
widget.controller.clear();

final timers =
entry.value["timers"] as List<WeekdayTimer>;
widget.controller.addAll(timers);

Navigator.pop(context);
},
),
),
),
child: PlatformTextButton(
const SizedBox(height: MEDIUM_SPACE),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
PlatformTextButton(
child: Text(l10n.timer_addWeekday),
material: (_, __) => MaterialTextButtonData(
icon: const Icon(Icons.date_range_rounded),
Expand All @@ -133,59 +116,59 @@ class _TimerWidgetSheetState extends State<TimerWidgetSheet> {
}
},
),
),
PlatformTextButton(
child: Text(l10n.timer_addDuration),
material: (_, __) => MaterialTextButtonData(
icon: const Icon(Icons.timelapse_rounded),
),
onPressed: () async {
Duration? duration;

if (isCupertino(context)) {
await showCupertinoModalPopup(
context: context,
builder: (context) => Container(
height: 300,
padding: const EdgeInsets.only(top: 6.0),
margin: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom,
),
color: CupertinoColors.systemBackground
.resolveFrom(context),
child: SafeArea(
top: false,
child: CupertinoTimerPicker(
initialTimerDuration: Duration.zero,
minuteInterval: 5,
onTimerDurationChanged: (value) {
duration = value;
},
mode: CupertinoTimerPickerMode.hm,
PlatformTextButton(
child: Text(l10n.timer_addDuration),
material: (_, __) => MaterialTextButtonData(
icon: const Icon(Icons.timelapse_rounded),
),
onPressed: () async {
Duration? duration;

if (isCupertino(context)) {
await showCupertinoModalPopup(
context: context,
builder: (context) => Container(
height: 300,
padding: const EdgeInsets.only(top: 6.0),
margin: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom,
),
color: CupertinoColors.systemBackground
.resolveFrom(context),
child: SafeArea(
top: false,
child: CupertinoTimerPicker(
initialTimerDuration: Duration.zero,
minuteInterval: 5,
onTimerDurationChanged: (value) {
duration = value;
},
mode: CupertinoTimerPickerMode.hm,
),
),
),
),
);
} else {
duration = await showDurationPicker(
context: context,
initialTime: Duration.zero,
snapToMins: 15.0,
);
}
);
} else {
duration = await showDurationPicker(
context: context,
initialTime: Duration.zero,
snapToMins: 15.0,
);
}

if (duration != null && duration!.inSeconds > 0) {
widget.controller.add(
DurationTimer(
duration: duration!,
),
);
}
},
),
],
),
],
if (duration != null && duration!.inSeconds > 0) {
widget.controller.add(
DurationTimer(
duration: duration!,
),
);
}
},
),
],
),
],
),
),
),
);
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 0.15.1+37
version: 0.15.2+38

environment:
sdk: '>=3.0.0'
Expand Down

0 comments on commit b0487d1

Please sign in to comment.