mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-07-13 06:30:51 +08:00
Make Repository a consumer of RepoManager
I feel like I really don't understand Provider properly and this is going to blow up in my face.
This commit is contained in:
14
lib/app.dart
14
lib/app.dart
@ -19,6 +19,7 @@ import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:gitjournal/analytics.dart';
|
||||
import 'package:gitjournal/app_router.dart';
|
||||
import 'package:gitjournal/app_settings.dart';
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/iap.dart';
|
||||
import 'package:gitjournal/repository.dart';
|
||||
import 'package:gitjournal/repository_manager.dart';
|
||||
@ -54,19 +55,24 @@ class JournalApp extends StatefulWidget {
|
||||
cacheDir: cacheDir,
|
||||
pref: pref,
|
||||
);
|
||||
var repo = await repoManager.buildActiveRepository();
|
||||
await repoManager.buildActiveRepository();
|
||||
|
||||
Widget app = ChangeNotifierProvider.value(
|
||||
value: repo,
|
||||
value: repoManager,
|
||||
child: Consumer<RepositoryManager>(
|
||||
builder: (_, repoManager, __) => ChangeNotifierProvider.value(
|
||||
value: repoManager.currentRepo,
|
||||
child: Consumer<Repository>(
|
||||
builder: (_, repo, __) => ChangeNotifierProvider.value(
|
||||
builder: (_, repo, __) => ChangeNotifierProvider<Settings>.value(
|
||||
value: repo.settings,
|
||||
child: ChangeNotifierProvider.value(
|
||||
child: ChangeNotifierProvider<NotesFolderFS>.value(
|
||||
child: JournalApp(),
|
||||
value: repo.notesFolder,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
app = ChangeNotifierProvider.value(
|
||||
|
@ -36,6 +36,8 @@ class RepositoryManager with ChangeNotifier {
|
||||
// From the pref load all the RepositoryInfos
|
||||
}
|
||||
|
||||
Repository get currentRepo => _repo;
|
||||
|
||||
Future<Repository> buildActiveRepository() async {
|
||||
if (_repo != null) {
|
||||
return _repo;
|
||||
@ -51,6 +53,8 @@ class RepositoryManager with ChangeNotifier {
|
||||
pref: pref,
|
||||
id: currentId,
|
||||
);
|
||||
|
||||
notifyListeners();
|
||||
return _repo;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user