mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 12:23:31 +00:00
Add stand-in focus mode disable screen
This commit is contained in:
parent
0e463460fb
commit
f000a73cab
3 changed files with 51 additions and 3 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -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,
|
||||||
|
|
41
lib/screens/disable_focus_mode_screen.dart
Normal file
41
lib/screens/disable_focus_mode_screen.dart
Normal 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'))
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue