Files
GitJournal/lib/appstate.dart
Vishesh Handa c14ffda409 App: Store the gitBasePath in the settings
This is the folder where the git repo should be stored.

By storing it, we can easily change it later. Also it allows us to
reduce of our custom platform code.
2020-04-15 14:25:40 +02:00

69 lines
2.1 KiB
Dart

import 'package:shared_preferences/shared_preferences.dart';
import 'package:gitjournal/core/notes_folder_fs.dart';
import 'package:gitjournal/utils/logger.dart';
enum SyncStatus {
Unknown,
Done,
Pulling,
Pushing,
Error,
}
class AppState {
//
// Saved on Disk
//
// FIXME: These should be figured out by querying the 'git remotes'
String localGitRepoFolderName = "";
bool localGitRepoConfigured = false;
String remoteGitRepoFolderName = "";
bool remoteGitRepoConfigured = false;
bool onBoardingCompleted = false;
SyncStatus syncStatus = SyncStatus.Unknown;
//
// Temporary
//
/// This is the directory where all the git repos are stored
String gitBaseDirectory = "";
bool get hasJournalEntries {
return notesFolder.hasNotes;
}
NotesFolderFS notesFolder;
AppState(SharedPreferences pref) {
localGitRepoConfigured = pref.getBool("localGitRepoConfigured") ?? false;
remoteGitRepoConfigured = pref.getBool("remoteGitRepoConfigured") ?? false;
localGitRepoFolderName = pref.getString("localGitRepoPath") ?? "";
remoteGitRepoFolderName = pref.getString("remoteGitRepoPath") ?? "";
onBoardingCompleted = pref.getBool("onBoardingCompleted") ?? false;
gitBaseDirectory = pref.getString("gitBaseDirectory") ?? "";
}
void dumpToLog() {
Log.d(" ---- Settings ---- ");
Log.d("localGitRepoConfigured: $localGitRepoConfigured");
Log.d("remoteGitRepoConfigured: $remoteGitRepoConfigured");
Log.d("localGitRepoFolderName: $localGitRepoFolderName");
Log.d("remoteGitRepoFolderName: $remoteGitRepoFolderName");
Log.d("onBoardingCompleted: $onBoardingCompleted");
Log.d(" ------------------ ");
}
Future save(SharedPreferences pref) async {
await pref.setBool("localGitRepoConfigured", localGitRepoConfigured);
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);
}
}