Add stand-in focus mode disable screen

This commit is contained in:
Hank Grabowski 2024-07-24 13:08:13 -04:00
parent 0e463460fb
commit f000a73cab
3 changed files with 51 additions and 3 deletions

View file

@ -28,9 +28,8 @@ class FocusModeMenuItem extends ConsumerWidget {
title: Text(title), title: Text(title),
onTap: () async { onTap: () async {
if (focusMode.enabled) { if (focusMode.enabled) {
ref context.pop();
.read(focusModeProvider.notifier) context.push(ScreenPaths.focusModeDisable);
.setMode(const FocusModeData(false));
} else { } else {
final result = await showChooseOptions(context, final result = await showChooseOptions(context,
'How long would you like to focus?', _options.keys.toList()); 'How long would you like to focus?', _options.keys.toList());
@ -40,6 +39,7 @@ class FocusModeMenuItem extends ConsumerWidget {
final disableTime = DateTime.now().add(_options[result]!); final disableTime = DateTime.now().add(_options[result]!);
final update = FocusModeData(true, disableTime: disableTime); final update = FocusModeData(true, disableTime: disableTime);
ref.read(focusModeProvider.notifier).setMode(update); ref.read(focusModeProvider.notifier).setMode(update);
context.pop();
context.go(ScreenPaths.timelines); context.go(ScreenPaths.timelines);
} }
}, },

View file

@ -7,6 +7,7 @@ import 'screens/circle_create_screen.dart';
import 'screens/circle_editor_screen.dart'; import 'screens/circle_editor_screen.dart';
import 'screens/circle_management_screen.dart'; import 'screens/circle_management_screen.dart';
import 'screens/contacts_screen.dart'; import 'screens/contacts_screen.dart';
import 'screens/disable_focus_mode_screen.dart';
import 'screens/editor.dart'; import 'screens/editor.dart';
import 'screens/filter_editor_screen.dart'; import 'screens/filter_editor_screen.dart';
import 'screens/filters_screen.dart'; import 'screens/filters_screen.dart';
@ -35,6 +36,7 @@ class ScreenPaths {
static String thread = '/thread'; static String thread = '/thread';
static String connectHandle = '/connect'; static String connectHandle = '/connect';
static String contacts = '/contacts'; static String contacts = '/contacts';
static String focusModeDisable = '/focus_mode_disable';
static String splash = '/splash'; static String splash = '/splash';
static String settings = '/settings'; static String settings = '/settings';
static String messages = '/messages'; static String messages = '/messages';
@ -66,6 +68,11 @@ final routes = [
name: ScreenPaths.blocks, name: ScreenPaths.blocks,
builder: (context, state) => const BlocksScreen(), builder: (context, state) => const BlocksScreen(),
), ),
GoRoute(
path: ScreenPaths.focusModeDisable,
name: ScreenPaths.focusModeDisable,
builder: (context, state) => const DisableFocusModeScreen(),
),
GoRoute( GoRoute(
path: ScreenPaths.filters, path: ScreenPaths.filters,
name: ScreenPaths.filters, name: ScreenPaths.filters,

View file

@ -0,0 +1,41 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:relatica/models/focus_mode_data.dart';
import 'package:relatica/riverpod_controllers/focus_mode.dart';
import 'package:relatica/routes.dart';
class DisableFocusModeScreen extends ConsumerStatefulWidget {
const DisableFocusModeScreen({super.key});
@override
ConsumerState<DisableFocusModeScreen> createState() =>
_DisableFocusModeScreenState();
}
class _DisableFocusModeScreenState
extends ConsumerState<DisableFocusModeScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Unlock Focus Mode?'),
),
body: Center(
child: Column(
children: [
Text('Want to disable focus mode?'),
ElevatedButton(
onPressed: () {
ref
.read(focusModeProvider.notifier)
.setMode(FocusModeData(false));
context.go(ScreenPaths.timelines);
},
child: Text('Disable'))
],
),
),
);
}
}