Remove another use of Settings.instance

I really want to remove this global variable, and only access it through
the Provider.
This commit is contained in:
Vishesh Handa
2020-08-16 15:51:53 +02:00
parent 155d04e465
commit d94a1e1630
3 changed files with 19 additions and 10 deletions

View File

@ -313,12 +313,13 @@ class _JournalAppState extends State<JournalApp> {
initialRoute: initialRoute, initialRoute: initialRoute,
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
//debugShowMaterialGrid: true, //debugShowMaterialGrid: true,
onGenerateRoute: (settings) { onGenerateRoute: (routeSettings) {
var route = settings.name; var route = routeSettings.name;
if (route == '/folders' || route == '/tags' || route == '/filesystem') { if (route == '/folders' || route == '/tags' || route == '/filesystem') {
return PageRouteBuilder( return PageRouteBuilder(
settings: settings, settings: routeSettings,
pageBuilder: (_, __, ___) => _screenForRoute(route, stateContainer), pageBuilder: (_, __, ___) =>
_screenForRoute(route, stateContainer, settings),
transitionsBuilder: (_, anim, __, child) { transitionsBuilder: (_, anim, __, child) {
return FadeTransition(opacity: anim, child: child); return FadeTransition(opacity: anim, child: child);
}, },
@ -326,17 +327,22 @@ class _JournalAppState extends State<JournalApp> {
} }
return MaterialPageRoute( return MaterialPageRoute(
settings: settings, settings: routeSettings,
builder: (context) => _screenForRoute( builder: (context) => _screenForRoute(
route, route,
stateContainer, stateContainer,
settings,
), ),
); );
}, },
); );
} }
Widget _screenForRoute(String route, StateContainer stateContainer) { Widget _screenForRoute(
String route,
StateContainer stateContainer,
Settings settings,
) {
switch (route) { switch (route) {
case '/': case '/':
return HomeScreen(); return HomeScreen();
@ -379,7 +385,7 @@ class _JournalAppState extends State<JournalApp> {
Log.d("sharedImages: $sharedImages"); Log.d("sharedImages: $sharedImages");
return NoteEditor.newNote( return NoteEditor.newNote(
getFolderForEditor(rootFolder, et), getFolderForEditor(settings, rootFolder, et),
et, et,
existingText: sharedText, existingText: sharedText,
existingImages: sharedImages, existingImages: sharedImages,

View File

@ -169,7 +169,9 @@ class _FolderViewState extends State<FolderView> {
var isVirtualFolder = folder.name != folder.fsFolder.name; var isVirtualFolder = folder.name != folder.fsFolder.name;
if (isVirtualFolder) { if (isVirtualFolder) {
var rootFolder = Provider.of<NotesFolderFS>(context); var rootFolder = Provider.of<NotesFolderFS>(context);
fsFolder = getFolderForEditor(rootFolder, editorType); var settings = Provider.of<Settings>(context);
fsFolder = getFolderForEditor(settings, rootFolder, editorType);
} }
var routeType = var routeType =

View File

@ -47,14 +47,15 @@ void showSnackbar(BuildContext context, String message) {
} }
NotesFolderFS getFolderForEditor( NotesFolderFS getFolderForEditor(
Settings settings,
NotesFolderFS rootFolder, NotesFolderFS rootFolder,
EditorType editorType, EditorType editorType,
) { ) {
var spec = Settings.instance.defaultNewNoteFolderSpec; var spec = settings.defaultNewNoteFolderSpec;
switch (editorType) { switch (editorType) {
case EditorType.Journal: case EditorType.Journal:
spec = Settings.instance.journalEditordefaultNewNoteFolderSpec; spec = settings.journalEditordefaultNewNoteFolderSpec;
break; break;
default: default:
break; break;