mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-10-18 11:03:27 +08:00
Move onBoardingCompleted from AppState to Settings
I want to get rid of the AppState entirely. It serves exactly the same purpose as Settings.
This commit is contained in:
@ -289,7 +289,7 @@ class _JournalAppState extends State<JournalApp> {
|
||||
var settings = Provider.of<Settings>(context);
|
||||
|
||||
var initialRoute = '/';
|
||||
if (!stateContainer.appState.onBoardingCompleted) {
|
||||
if (!settings.onBoardingCompleted) {
|
||||
initialRoute = '/onBoarding';
|
||||
}
|
||||
if (settings.homeScreen == SettingsHomeScreen.AllFolders) {
|
||||
@ -354,7 +354,7 @@ class _JournalAppState extends State<JournalApp> {
|
||||
stateContainer.completeGitHostSetup,
|
||||
);
|
||||
case '/onBoarding':
|
||||
return OnBoardingScreen(stateContainer.completeOnBoarding);
|
||||
return OnBoardingScreen();
|
||||
case '/purchase':
|
||||
return PurchaseScreen();
|
||||
case '/purchase_thank_you':
|
||||
|
@ -22,8 +22,6 @@ class AppState {
|
||||
String remoteGitRepoFolderName = "";
|
||||
bool remoteGitRepoConfigured = false;
|
||||
|
||||
bool onBoardingCompleted = false;
|
||||
|
||||
SyncStatus syncStatus = SyncStatus.Unknown;
|
||||
int numChanges = 0;
|
||||
|
||||
@ -44,7 +42,6 @@ class AppState {
|
||||
remoteGitRepoConfigured = pref.getBool("remoteGitRepoConfigured") ?? false;
|
||||
localGitRepoFolderName = pref.getString("localGitRepoPath") ?? "";
|
||||
remoteGitRepoFolderName = pref.getString("remoteGitRepoPath") ?? "";
|
||||
onBoardingCompleted = pref.getBool("onBoardingCompleted") ?? false;
|
||||
gitBaseDirectory = pref.getString("gitBaseDirectory") ?? "";
|
||||
}
|
||||
|
||||
@ -54,7 +51,6 @@ class AppState {
|
||||
Log.i("remoteGitRepoConfigured: $remoteGitRepoConfigured");
|
||||
Log.i("localGitRepoFolderName: $localGitRepoFolderName");
|
||||
Log.i("remoteGitRepoFolderName: $remoteGitRepoFolderName");
|
||||
Log.i("onBoardingCompleted: $onBoardingCompleted");
|
||||
Log.i("gitBaseDirectory: $gitBaseDirectory");
|
||||
Log.i(" ------------------ ");
|
||||
}
|
||||
@ -64,7 +60,6 @@ class AppState {
|
||||
await pref.setBool("remoteGitRepoConfigured", remoteGitRepoConfigured);
|
||||
await pref.setString("localGitRepoPath", localGitRepoFolderName);
|
||||
await pref.setString("remoteGitRepoPath", remoteGitRepoFolderName);
|
||||
await pref.setBool("onBoardingCompleted", onBoardingCompleted);
|
||||
await pref.setString("gitBaseDirectory", gitBaseDirectory);
|
||||
}
|
||||
}
|
||||
|
@ -3,11 +3,12 @@ import 'package:flutter/material.dart';
|
||||
import 'package:auto_size_text/auto_size_text.dart';
|
||||
import 'package:dots_indicator/dots_indicator.dart';
|
||||
import 'package:function_types/function_types.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'package:gitjournal/settings.dart';
|
||||
|
||||
class OnBoardingScreen extends StatefulWidget {
|
||||
final Func0<void> onCompletedFunction;
|
||||
|
||||
OnBoardingScreen(this.onCompletedFunction);
|
||||
OnBoardingScreen();
|
||||
|
||||
@override
|
||||
OnBoardingScreenState createState() {
|
||||
@ -109,7 +110,9 @@ class OnBoardingScreenState extends State<OnBoardingScreen> {
|
||||
}
|
||||
|
||||
void _finish() {
|
||||
widget.onCompletedFunction();
|
||||
var settings = Provider.of<Settings>(context);
|
||||
settings.onBoardingCompleted = true;
|
||||
settings.save();
|
||||
|
||||
Navigator.pop(context);
|
||||
Navigator.pushNamed(context, "/");
|
||||
|
@ -16,6 +16,8 @@ class Settings extends ChangeNotifier {
|
||||
static Settings get instance => _singleton;
|
||||
|
||||
// Properties
|
||||
bool onBoardingCompleted = false;
|
||||
|
||||
String gitAuthor = "GitJournal";
|
||||
String gitAuthorEmail = "app@gitjournal.io";
|
||||
NoteFileNameFormat noteFileNameFormat = NoteFileNameFormat.Default;
|
||||
@ -64,6 +66,8 @@ class Settings extends ChangeNotifier {
|
||||
bool saveTitleInH1 = true;
|
||||
|
||||
void load(SharedPreferences pref) {
|
||||
onBoardingCompleted = pref.getBool("onBoardingCompleted") ?? false;
|
||||
|
||||
gitAuthor = pref.getString("gitAuthor") ?? gitAuthor;
|
||||
gitAuthorEmail = pref.getString("gitAuthorEmail") ?? gitAuthorEmail;
|
||||
|
||||
@ -142,6 +146,8 @@ class Settings extends ChangeNotifier {
|
||||
var pref = await SharedPreferences.getInstance();
|
||||
var defaultSet = Settings._internal();
|
||||
|
||||
await pref.setBool("onBoardingCompleted", onBoardingCompleted);
|
||||
|
||||
_setString(pref, "gitAuthor", gitAuthor, defaultSet.gitAuthor);
|
||||
_setString(
|
||||
pref, "gitAuthorEmail", gitAuthorEmail, defaultSet.gitAuthorEmail);
|
||||
@ -244,6 +250,7 @@ class Settings extends ChangeNotifier {
|
||||
|
||||
Map<String, String> toMap() {
|
||||
return <String, String>{
|
||||
"onBoardingCompleted": onBoardingCompleted.toString(),
|
||||
"gitAuthor": gitAuthor,
|
||||
"gitAuthorEmail": gitAuthorEmail,
|
||||
"noteFileNameFormat": noteFileNameFormat.toInternalString(),
|
||||
|
@ -375,12 +375,6 @@ class StateContainer with ChangeNotifier {
|
||||
}();
|
||||
}
|
||||
|
||||
void completeOnBoarding() {
|
||||
appState.onBoardingCompleted = true;
|
||||
_persistConfig();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future _persistConfig() async {
|
||||
var pref = await SharedPreferences.getInstance();
|
||||
await appState.save(pref);
|
||||
|
Reference in New Issue
Block a user