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