Files
GitJournal/lib/appstate.dart
Vishesh Handa 70877438eb Git: Take the folderPath instead of folderName
The Git Api was strange and took a foldeName and it would only allow you
to access git operations in a particular path. This has now been fixed,
and now it can operate in any path.

This was the first step to moving the git api into its own library.
2019-12-20 20:40:00 +01:00

56 lines
1.9 KiB
Dart

import 'package:shared_preferences/shared_preferences.dart';
import 'package:fimber/fimber.dart';
import 'package:gitjournal/core/notes_folder.dart';
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;
//
// Temporary
//
/// This is the directory where all the git repos are stored
String gitBaseDirectory = "";
bool get hasJournalEntries {
return notesFolder.hasNotes;
}
NotesFolder 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;
}
void dumpToLog() {
Fimber.d(" ---- Settings ---- ");
Fimber.d("localGitRepoConfigured: $localGitRepoConfigured");
Fimber.d("remoteGitRepoConfigured: $remoteGitRepoConfigured");
Fimber.d("localGitRepoFolderName: $localGitRepoFolderName");
Fimber.d("remoteGitRepoFolderName: $remoteGitRepoFolderName");
Fimber.d("onBoardingCompleted: $onBoardingCompleted");
Fimber.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);
}
}